往大了说,几乎所有互联网都是运行在Linux服务器上的;往小了说,嵌入式系统很大一部分也都是Linux内核的。可以说,Linux内核无处不在,Linux内核是一个普遍复杂的开源项目之一,Linux内核之大,代码量之多,在我感觉就像是一个原始森林,要想精通实在是不容易,但是,不求精通,但求理解内核的工作原理,工作机制,了解一下Linux内核架构也是好的。
总结来说内核的功能有以下四个:
负责响应中断的中断服务程序
负责管理多进程从而分享处理器时间的调度程序
负责管理进程地址空间的内存管理程序
网络 进程间通信等系统服务程序
说到操作系统的内核,可以简略分为单内核和微内核:
单内核:运行于独立的地址空间,均运行于内核态。内核间通信微不足道。可直接调用函数
微内核:功能被划分为多个独立的过程,每个过程叫做一个服务器,一般都运行在用户空间,各自运行在独立的地址空间,进程间通信花销比较大
Linux内核就是属于单内核,独立的地址空间,且是模块化设计,抢占式内核,支持内核线程及动态装载内核模块。
内核开发特点:
内核开发不能访问C库也不能使用C头文件
必须使用GNU C
内核编程不像用户空间那样有内存保护机制
难以执行浮点操作
内核给每个进程只有很小的一个定长的堆栈
由于内核支持异步中断,抢占和SMP,因此必须时刻注意同步和并发
想要了解更多的嵌入式应用技术那就加入我们吧!