Linux体系结构
如下图所示,linux体系结构,从大的方面可以分为用户空间(user space)和内核空间(kernel space)。
用户空间包括C库和用户的应用程序,有些体系结构图中还包括shell,当然shell脚本也是Linux体系中不可或缺的一部分。
内核空间包括硬件平台、平台依赖代码、内核和系统调用接口。
在任何一个现代操作系统中,都是分层的。为什么需要分层呢?从程序员的角度来看,将Linux底层和应用程序分开可以让各自专注于自己的领域,从而提高效率。从安全性的角度来看,分层是为了保护内核。现代CPU通常实现了不同的工作模式,例如ARM实现了7种工作模式,不同模式下CPU可以执行的指令或访问的寄存器不同。如果所有的上层应用程序都可以随意调用寄存器,那么操作系统就无法稳定地执行。因此,操作系统出现了一个新的学科——“现代操作系统”。
在X86架构中,实现了4个不同级别的权限,即Ring0到Ring3。在Ring0权限下,可以执行特权指令,可以访问IO设备,而在Ring3权限下则有很多限制。
Android做的更加“丧心病狂”,所有的APK应用程序都在Java虚拟机上运行,应用程序更加远离底层。
此外,用户空间和内核空间是程序执行的两种不同状态,我们可以通过“系统调用”和“硬件中断”来完成用户空间到内核空间的转移。
Linux内核结构
这一节,分析一下内核结构。
如下图所示,是Linux内核结构图。
SCI层(System Call Interface),这一层是给应用用户空间提供一套标准的系统调用函数来访问Linux。前面分析Linux体系结构的时候,介绍过任何一类现代操作系统都不会允许上层应用直接访问底层,在Linux中,内核提供了一套标准接口,上层应用就可以通过这一套标准接口来访问底层。
PM(Procees Management),这一部分包括具体创建创建进程(fork、exec),停止进程(kill、exit),并控制他们之间的通信(signal等)。还包括进程调度,控制活动进程如何共享CPU。这一部分是Linux已经做好的,在写驱动的时候,只需要调用对应的函数即可实现这些功能,例如创建进程、进程通信等等。
MM(Memory Management),内存管理的主要作用是控制多个进程安全的共享内存区域。
VFS(Virtual File Systems),虚拟文件系统,隐藏各种文件系统的具体细节,为文件操作提供统一的接口。在Linux中“一切皆文件”,这些文件就是通过VFS来实现的。Linux提供了一个大的通用模型,使这个模型包含了所有文件系统功能的集合。如下图所示,是一个虚拟文件系统的结构图。
Device Drivers设备驱动,这一部分就是需要学习和掌握的。Linux内核中有大量的代码在设备驱动程序部分,用于控制特定的硬件设备。
Linux驱动一般分为网络设备、块设备、字符设备、杂项设备,需要我们编写的只有字符设备,杂项设备是不容易归类的一种驱动,杂项设备和字符设备有很多重合的地方。
网络协议栈,Linux内核中提供了丰富的网络协议实现。
在学习Linux驱动之前需要理解和掌握linux体系结构和Linux内核结构
以上就是详解Linux体系结构和内核结构的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 详解Linux体系结构和内核结构
发表评论 取消回复