Linux内核入门简介

往大了说,几乎所有互联网都是运行在Linux服务器上的;往小了说,嵌入式系统很大一部分也都是Linux内核的。可以说,Linux内核无处不在,Linux内核是一个最普遍最复杂的开源项目之一,Linux内核之大,代码量之多,在我感觉就像是一个原始森林,要想精通实在是不容易,但是,不求精通,但求理解内核的工作原理,工作机制,了解一下Linux内核架构也是好的。

内核是操作系统的一部分,是介于应用程序和底层硬件的一个桥梁,同时因为是操作系统的核心大脑
这里写图片描述

总结来说内核的功能有以下四个:

  • 负责响应中断的中断服务程序
  • 负责管理多进程从而分享处理器时间的调度程序
  • 负责管理进程地址空间的内存管理程序
  • 网络 进程间通信等系统服务程序

说到操作系统的内核,可以简略分为单内核和微内核:

  • 单内核:运行于独立的地址空间,均运行于内核态。内核间通信微不足道。可直接调用函数
  • 微内核:功能被划分为多个独立的过程,每个过程叫做一个服务器,一般都运行在用户空间,各自运行在独立的地址空间,进程间通信花销比较大

Linux内核就是属于单内核,独立的地址空间,且是模块化设计,抢占式内核,支持内核线程及动态装载内核模块。

内核开发特点:

  • 内核开发不能访问C库也不能使用C头文件
  • 必须使用GNU C
  • 内核编程不像用户空间那样有内存保护机制
  • 难以执行浮点操作
  • 内核给每个进程只有很小的一个定长的堆栈
  • 由于内核支持异步中断,抢占和SMP,因此必须时刻注意同步和并发

哦,对了,要学习内核没有内核源程序怎么能行,官网 随时能下载Linux内核源代码。推荐使用Git分布式版本控制系统来下载,保持与官网代码书一致。

下载:
$ git clone git://git.kernel.org/pub/scm/linux/kernit/torvalds/linux-2.6.git
更新:
$ git pull
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页