Linux操作系统内核

操作系统本质上来讲就是一个比较大的程序,由多个源文件和头文件编译连接而成。操作系统的主要功能就是操作设备平台的各个硬件,将使用设备的人和具体的硬件操作隔离开来,只留下操作接口供使用,这样使用者就不必直接操作硬件,避免了繁杂的工作量,只需要通过api接口来间接操作硬件。

操作系统具体的功能主要体现在以下四个方面:

1.内存管理:裸机程序要使用内存,需要程序员自己去管理分配,这样容易造成已使用内存被覆盖、访问到不该访问的区域以及内存泄漏等致命问题,有了操作系统后,当任何进程需要使用到内存时,都要向操作系统申请、注册,再由操作系统统一分配、调度,操作系统清楚地知道哪些内存归哪个进程所有,哪些区域不允许被访问,这就极大地降低了内存覆盖、越权访问等问题,提高了整个系统的稳定性。

2.进程调度:操作系统允许多个进程进行宏观上的并行运行,即可以同时间段运行多个进程,通过操作系统的协调调度实现cpu的分时复用,以在各进程间来回切换执行,实现宏观上的并行。

3.硬件设备管理:操作系统会去控制操作各个硬件设备,这样有了操作系统就不需要直接操作硬件了,而只需要通过API来调用操作系统中的硬件驱动程序来间接操作硬件。

4.有文件系统来管理块存储设备:操作系统提供文件系统来帮助用户管理块存储设备。块存储设备是由一个个扇区组成的,对块设备操作要一扇区为单位,当没有操作系统时,就需要用户自己操作各个扇区来管理文件,有了操作系统后,用户就不必再去关注具体的扇区操作了,而是只需要关注文件名称以及文件存储于块设备的哪个区域。

Linux操作系统最重要的一个特点就是:实现了模块化。

所谓模块化,也就是说linux操作系统的各个功能模块之间的关系是相互独立的松耦合形式,相互之间没有通过全局变量来相互管理,甚至函数间的相互调用都很少,比如内存管理模块就是用来管理内存用的,它和硬件驱动模块内有必要的联系,不至于硬件驱动发生了故障会导致内存管理模块也发生故障。模块化的最大好处就是可以实现内核功能的可裁剪,实现功能定制。

实现模块化的手段:

1.配置时可裁剪。Linux在配置时可以分为成千上万个功能模块,可以根据需要将想要的功能模块配置进去。

2.模块化编译和安装:linux实现了模块化的编译安装,可以将某些功能以模块的形式安装去系统,而不必使其成为内核的一部分,这样有利于功能模块的动态增减,实现动态升级。

3.在源码中使用条件编译来决定哪些模块需要被编译安装,哪些不需要。

猜你喜欢

转载自blog.csdn.net/weixin_39330853/article/details/81531613