技术栈
内核
刘争Stanley
7 小时前
android
·
linux
·
运维
·
内核
·
镜像
·
gki
·
kmi
Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普
今天我们聊聊Android生态中最“硬核”的话题:通用内核镜像(GKI)与内核模块接口(KMI)。这是内核碎片化终结者的秘密武器,解决了内核和供应商模块之间无尽的兼容性问题。为什么重要?试想一下,如果每个厂商都要为不同内核版本手动适配驱动代码,那Android硬件的开发效率岂不是要“哭晕在厕所”?而GKI通过统一接口(KMI),让模块复用成为可能,为Android开发者铺平了道路!本文将带你从理论到实践,全面掌握GKI和KMI的奥秘。
一只搬砖的猹
8 天前
嵌入式硬件
·
内核
·
小米
·
rtos
·
信号量
·
线程通信
·
vela系统
小米vela系统(基于开源nuttx内核)——如何使用信号量进行PV操作
在嵌入式系统中,任务间的同步与通信是非常重要的。NuttX作为一款轻量级实时操作系统,提供了多种同步机制,其中信号量(Semaphore)是一种常见且高效的工具,用于实现线程或任务之间的同步。本文将深入探讨如何在NuttX中使用信号量,并通过一个实例来展示其应用。
极客代码
9 天前
linux
·
内核
·
驱动
·
设备驱动
·
iocto
【Linux】设备驱动中的ioctl详解
在Linux设备驱动开发中,ioctl(输入输出控制)是一个非常重要的接口,用于用户空间应用程序与内核空间设备驱动之间进行通信。通过ioctl,应用程序可以发送命令给设备驱动,控制设备的行为或获取设备的状态信息。本文将详细介绍ioctl的基本原理、实现方法及其应用场景,并给出相应的示例代码。
ATFWUS
14 天前
内核
·
文件系统
·
inode
·
ext4
·
文件删除
【linux内核分析-存储】EXT4源码分析之“文件删除”原理【七万字超长合并版】(源码+关键细节分析)
EXT4源码分析之“文件删除”原理【七万字超长合并版】(源码+关键细节分析),详细的跟踪了ext4文件删除的核心调用链,分析关键函数的细节,解答了开篇中提出的三个核心疑问。
看星猩的柴狗
1 个月前
内核
GhostRace: Exploiting and Mitigating Speculative Race Conditions-记录
https://www.usenix.org/system/files/usenixsecurity24-ragab.pdf
极客代码
2 个月前
linux
·
内核
·
内核模块
·
unix
·
驱动
【Linux】内核驱动模块
Linux内核模块是一种特殊的内核组件,它们可以被动态地加载到正在运行的内核中以扩展其功能,或者在不需要时从内核中卸载。这种动态特性使得Linux内核能够保持精简,同时又可以根据需要加载不同的功能模块。本文将详细介绍Linux内核模块的相关知识。
zhyjhacker
3 个月前
c++
·
windows
·
内核
·
reactos
memset()函数的实现
_CRTIMP void* __cdecl memset (void*, int, size_t); memset()函数的实现
zhyjhacker
3 个月前
java
·
前端
·
c++
·
windows
·
算法
·
内核
·
reactos
3.1.1 ReactOS系统中二叉树创建一个MEMORY_AREA节点
二叉树中创建一个MEMORY_AREA节点: MmCreateMemoryArea() 参数AddressSpace是MADDRESS SPACE结构指针,所指向的数据结构代表着一个进程的用 户空间。 参数BaseAddress是个指针,用来给定和返回内存区块的基地址
zhyjhacker
3 个月前
c++
·
windows
·
算法
·
内核
·
reactos
2.6.ReactOS系统中从内核中发起系统调用
2.6.ReactOS系统中从内核中发起系统调用上面我们已经可以看到用户空间(R3)进行系统调用的全过程即两种方法的具体实现。
zhyjhacker
3 个月前
c++
·
windows
·
内核
·
reactos
2.2.ReactOS系统KSERVICE_TABLE_DESCRIPTOR结构体的声明
2.2.ReactOS系统KSERVICE_TABLE_DESCRIPTOR结构体的声明
爱桥代码的程序媛
4 个月前
内核
·
harmonyos
·
鸿蒙
·
鸿蒙系统
·
内存管理
·
openharmony
·
子系统开发
鸿蒙OpenHarmony【小型系统基础内核(虚拟内存管理)】子系统开发
虚拟内存管理是计算机系统管理内存的一种技术。每个进程都有连续的虚拟地址空间,虚拟地址空间的大小由CPU的位数决定,32位的硬件平台可以提供的最大的寻址空间为0-4GiB。整个4GiB空间分成两部分,LiteOS-A内核占据3GiB的高地址空间,1GiB的低地址空间留给用户态进程使用。各个进程空间的虚拟地址空间是独立的,代码、数据互不影响。
爱桥代码的程序媛
4 个月前
嵌入式硬件
·
内核
·
harmonyos
·
鸿蒙
·
鸿蒙系统
·
openharmony
·
子系统开发
鸿蒙OpenHarmony【小型系统基础内核(物理内存管理)】子系统开发
物理内存是计算机上最重要的资源之一,指的是实际的内存设备提供的、可以通过CPU总线直接进行寻址的内存空间,其主要作用是为操作系统及程序提供临时存储空间。LiteOS-A内核管理物理内存是通过分页实现的,除了内核堆占用的一部分内存外,其余可用内存均以4KiB为单位划分成页帧,内存分配和内存回收便是以页帧为单位进行操作。内核采用伙伴算法管理空闲页面,可以降低一定的内存碎片率,提高内存分配和释放的效率,但是一个很小的块往往也会阻塞一个大块的合并,导致不能分配较大的内存块。
爱桥代码的程序媛
4 个月前
单片机
·
消息队列
·
内核
·
harmonyos
·
鸿蒙
·
鸿蒙系统
·
openharmony
鸿蒙OpenHarmony【轻量系统内核通信机制(消息队列)】子系统开发
消息队列又称队列,是一种任务间通信的机制。消息队列接收来自任务或中断的不固定长度消息,并根据不同的接口确定传递的消息是否存放在队列空间中。
爱桥代码的程序媛
4 个月前
嵌入式硬件
·
内核
·
harmonyos
·
鸿蒙
·
openharmony
·
鸿蒙开发
·
子系统开发
鸿蒙OpenHarmony【轻量系统内核(异常调测)】子系统开发
OpenHarmony LiteOS-M提供异常接管调测手段,帮助开发者定位分析问题。异常接管是操作系统对运行期间发生的异常情况进行处理的一系列动作,例如打印异常发生时异常类型、发生异常时的系统状态、当前函数的调用栈信息、CPU现场信息、任务调用堆栈等信息。
IronmanJay
4 个月前
信息安全
·
内核
·
系统调用
·
fuzz测试
·
漏洞检测
·
内核漏洞检测工具
·
kafl
kAFL部署、使用与原理分析
本博客的主要内容为kAFL的部署、使用与原理分析。本博文内容较长,因为涵盖了kAFL的几乎全部内容,从部署的详细过程到如何使用kAFL对目标程序进行Fuzz测试,以及对kAFL进行漏洞检测的原理分析,相信认真读完本博文,各位读者一定会对kAFL有更深的了解。以下就是本篇博客的全部内容了。
橘色的喵
5 个月前
linux
·
内核
·
grub
如何清理Linux旧内核并设置默认内核版本
在 Linux 系统中,旧的内核版本可能会在系统中积累,使得 GRUB 菜单变得冗长。 本文将介绍如何清理旧内核并设置系统默认使用的内核版本。
nginux
5 个月前
android
·
linux
·
服务器
·
内核
Linux TLB和cache
This document describes the cache/tlb flushing interfaces called by the Linux VM subsystem. It enumerates over each interface, describes its intended purpose, and what side effect is expected after the interface is invoked.
0xwangliang
5 个月前
windows
·
内核
线程优先级调度
系统维护了一个全局的处理器数组KiProcessorBlock,其中每个元素对应于一个处理器的KPRCB对象。其次,另有一个全局变量KiIdleSummary记录了哪些处理器当前是空闲的。所谓一个处理器是空闲的,是指该处理器正在执行空闲循环。KiIdleSummary每一位对应于一个处理器,在32位系统中,由于KiIdleSummary是32位的。所以只支持至多32个处理器。 当一个处理器没有找到合适的线程运行时,会调用KiSetIdleSummary函数来设置KiIdleSummary中相应位,相反,如
我想学LINUX
5 个月前
嵌入式硬件
·
内核
·
嵌入式
·
api
·
freertos
·
实时操作系统
FreeRTOS基础入门——FreeRTOS内核控制函数(十)
个人名片:🎓作者简介:嵌入式领域优质创作者 🌐个人主页:妄北y📞个人QQ:2061314755💌个人邮箱:[mailto:2061314755@qq.com] 📱个人微信:Vir2025WBY
因缘而起1
6 个月前
linux
·
内核
·
系统调用
【Linux】文件创建与写入系统调用流程摸索
在终端运行测试的Shell脚本test.sh内容如下:第一行是打开日志输出(其实操作系统运行时日志是输出到/var/log/kern.log和/var/log/syslog里了,这也即是为什么我们老是去syslog文件搜索我们在内核源代码的打印信息);