分类: LINUX
2014-12-06 20:47:56
在内核编程中,需要遵循它的框架和机制,对于应用层编程,设备驱动编程也可有类似动态内存分配的
大多数的系统调用实际上是修改内核中数据结构(如:页表),或者是在内核中建立数据结构
内核中错误码定义文件
/usr/include/asm-generic/errno.h
/usr/include/asm-generic/errno-base.h
内核中的模块之间的引用关系,或许只能通过EXPORT_SYMBOL来使用其他模块中的接口
内核模块子系统对外是一个封闭的,内核只能通过系统调用的方式提供接口
内核模块也需要map文件
内核中也有运行实体-内核线程
内核与进程的通信方式,传统的就是signal,即使是用户态的进程,执行时遇到了问题,如内存操作问题,虽然程序在用户态,但是CPU资源是由内核管理的,出了问题,内核就会发信号给进程
驱动、内核、进程的关系是这样的,驱动通知内核,内核通知进程
DMA环形缓冲区实际上是内核分配的,写完后,DMA再中断通知内核,内核取走这些之前它自己分配好的缓冲区,然后又分配新的缓冲区