linux 内核套接口,linux 内核开发

linux的体系结构

从大的方面可以分为用户空间(User Space)和内核空间(Kernal Space)。

bVbBQ3W

用户空间

C库

用户应用程序

shell(某些体系包含)

内核空间

硬件平台

平台依赖代码

内核

系统调用接口

系统分层

从程序员的角度:

将 linux 底层和和应用分开,将 linux 底层和应用分开,做应用的做应用,做底层的做底层,各干各的。经济学的基本原理是,分工产生效率。

从安全的角度:

为了保护内核。

以 ARM 为例:ARM 实现了 7 种工作模式,不同模式下 CPU 可以执行的指令或者访问的寄存器不同:

(1)用户模式 usr

(2)系统模式 sys

(3)管理模式 svc

(4)快速中断 fiq

(5)外部中断irq

(6)数据访问终止 abt

(7)未定义指令异常。

如果任何一个上层应用都可以调用都可以调用寄存器,那样肯定是无法稳定执行的。而且因为出现了这个问题,出现了一个新的学科“现代操作系统”。

linux内核结构

bVbBQ7d

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 提

供了一个大的通用模型,使这个模型包含了所有文件系统功能的集合。如下图所示,是一个虚

拟文件系统的结构图。

bVbBQ7K

Device Drivers 设备驱动,这一部分就是需要学习和掌握的。Linux 内核中有大量的代码在设备驱动程序部分,用于控制特定的硬件设备。

Linux 驱动一般分为网络设备、块设备、字符设备、杂项设备,需要编写的只有字符设备,杂项设备是不容易归类的一种驱动,杂项设备和字符设备有很多重合的地方。

网络协议栈,Linux 内核中提供了丰富的网络协议实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值