本文共 3423 字,大约阅读时间需要 11 分钟。
一、Linux内核的特征
1.linux内核组织形式为整体式结构
linux内核是面向过程的,每一个模块单独编译,最后链接成一个独立的目标程序。这种结构最大的特点是内部结构简单,子系统容易进行访问,因此内核的工作效率比较高。基于过程的结构有助于不同业务的成员进行基于不同业务的开发,基于这种角度,linux内核又是开放式的开发,它允许任何人对其不同模块进行完善和再次开发。
2.进程调度方式简单而有效。
可以说linux追求效率方面领先,体现在调度方式上也是别具一格,对于用户进程linux采用简单的动态优先级调用方式。对内核的例程,比如中断服务程序、设备驱动程序等采用一种独特的机制,就是我们所讲的软中断机制,这种机制保证内核例程以一种高效的机制运行。
3.支持内核线程(或称为守护进程)。
内核线程是在后台运行而业务终端和登录shell和它结合在一起的进程。有许多标准的内核线程,其中有一些是周期运行的来完成一些特定的任务。而其余的部分它是连续运行的等待处理某些特定的事件。内核线程可以说是用户进程,但它和一般用户进程又不一样,它像内核一样不被放出,因此运行效率比较高。
4.支持多种平台的虚拟内存管理。
内存管理是和硬件平台相互关联的一部分。为了支持不同的平台,又要保证虚拟管理存储技术的一个通用性。那linux虚拟内存管理为不同硬件平台提供统一的接口。因为我们把linux内核移植到一个新的硬件平台并不是一个很困难的事情。
5.虚拟文件系统。
虚拟文件系统不仅为多种逻辑文件统一了一个接口,而且为各种硬件设备提供了统一的接口,作为一种特殊的文件。
6.模块机制。
模块机制可以使内核保持独立而又容易扩展。使内核很容易增加一个模块,比如一个新的设备驱动程序,不需要重新编译内核,同时模块机制可以把一个模块按照需要添加到内核,或者把一个模块从内核当中卸载下来。这使得我们可以开发需要定制自己的内核。
7.增加系统调用。
满足特殊的需求,一般来讲系统调用是操作系统设计者提供给用户使用内核工具的一个内核接口。但是linux开放源代码也允许我们自己设计自己的系统调用。然后把它加入到系统里面去。
8.面向对象。
网络部分面向对象的思想使得我们现代linux内核支持多种协议、多种网卡驱动程序变得更加容易。
二、为什么要学习linux内核
1、提升研发出高水平软件
对技术提升有巨大参考价值,站在巨人的肩膀上,尤其对各种驱动的开发起到一个博采众长的参考作用。 我们只要认真的钻研,就一定能吃透他们牛逼的思想。为能够自己研究出解压芯片,路由器等设备提供借鉴,打破一些外来的技术封锁。 2、开发自己的操作系统 为嵌入式系统提供一个极有吸引力的选择。以内核为基础的完全内核手册,支持多种计算机硬件,比如x86,arm等等现有的这些芯片,连源代码都全部公开,任何人员都可以修改,开发人员也可以为操作系统进行定制。它也有个好处,不用像windows操作系统一样有后台的威胁,这就是linux操作系统的好处。为开发嵌入式操作系统提供广泛的开发前景,比如数字家电,机顶盒,多媒体手机等。还有智能沟通设备,比如pos机、atm机等等。 3、有助于计算机科学领域研究 4、Linux系统性能优化三、linux操作系统结构
1、linux内核在系统中的位置
linux内核并不孤立,要把它放到整个系统中去研究更容易理解,如下图所示内核在操作系统中的位置。系统调用是运行在系统态,而一般程序调用是运行在用户态。系统调用是内核代码的一部分。内核负责管理linux系统里面的文件、内存以及负责从网络上接受或者发送消息等等。2、Linux内核子系统之间关系
进程调度: 控制进程对cpu的访问,当要选择下一个运行的程序,是调度程序选择下一个要运行的程序,可运行程序是等待cpu资源的进程。如果某个进程
在等待其他资源,那么这个进程是不可运行进程,需要通过调度进程去运行,它有个选择调度算法选择新的进程。内存管理:允许多个进程安全的共享主存储区。
虚拟文件系统:隐藏各种各样不同硬件的具体细节,为所有设备提供了一个统一的接口。NFS支持多到10种不同的文件系统。也就是linux比较有特色的一部分,虚拟文件系统还可以分为逻辑文件系统和设备驱动程序。
网络接口: 对各种网络标准协议的存取和各种网络硬件的支持,网络接口可以分为网络协议和网络驱动程序两个部分,网络协议负责实现每种可能的网络传输协议,硬件驱动程序负责驱动每种可能的网络硬件。
进程间通讯:支持进程各种通讯机制。
四、linux内核源码组织
转载地址:https://blog.csdn.net/huohunri2013/article/details/114538154 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!