第六期-Linux内核源码结构(2)

作者:罗宇哲,中国科学院软件研究所智能软件研究中心

在上一期中,我们按照openEuler内核的目录结构简要介绍了openEuler内核目录中各个子目录的功能,这一期我们将简要介绍Linux内核的基本功能和抽象层级。

一、Linux内核Kernel Map简介

Linux内核的Kernel Map从功能上将Linux内核划分为不同功能的区域,并展示了不同区域中函数互相之间的调用关系。下图展示了Linux 2.6.36版内核的Kernel Map[1]:
在这里插入图片描述

从Kernel Map中我们可以看出,操作系统事实上提供了硬件资源的抽象,供用户程序调用,例如在图中操作系统管理的硬件资源有用户外设(如键盘、摄像头和图形卡等)、IO端口(如USB、PCI接口等)、CPU、内存、磁盘和网络设备等。

针对所有硬件资源的使用,在用户态程序看来都是一系列的系统调用,这些系统调用展示在user space interface层,例如对于进程来说有fork、execve等系统调用,分别用于创建新的进程和运行可执行文件等;而对于文件系统则有read和write等系统调用,用于读写文件等。Linux系统可以通过执行软中断将系统控制权交给内核,内核可以执行不同的系统调用再将结果返回[2]。下表列出了Linux内核各系统调用的基本功能[2]:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值