Linux | Linux结构模型简述

基本结构

图中⼼的硬件部分向操作系统提供基本服务。操作系统直接与硬件交互,向程序提供公共服务,并使他们同硬件特性隔离;

  • 当我们把整个系统看成层的集合时,通常将操作系统成为系统内核,或简称内核。
  • 程序不依赖于其下⾯的硬件的,若程序对硬件没做什么假定的话,就容易把它们在不同硬件上运⾏的UNIX 系统之间迁移。⽐如,那些假定了机器字⻓的程序⽐起没假定机器字⻓的程序来就较难于搬到其它机器上。
  • 外层的程序,是通过引⽤⼀组明确定义的系统调⽤⽽与内核交互的。这些系统调⽤通知内核为调⽤程序做各种操作,并在内核与调⽤程序之间交换数据。
  • 其它应⽤程序能在较低的程序层次之上构筑⽽成,因此它们存在于本图的最外层。⽐如,标准的 C 编译程序gcc 就处在本图的最外层;它引⽤C 预处理程序两次编译程序汇编程序装⼊程序(称为连接—编译程序),这些都是彼此分开的低层程序。
  • 虽然该图对应⽤程序只描绘了两个级别的层次,但⽤户能够对层次进⾏扩从,直到级别的数⽬适合于⾃⼰的需要。

在这里插入图片描述

  • 系统调⽤类似C程序中普通的函数调⽤,⽽库把这些函数调⽤映射成进⼊操作系统所需要的源语
  • 然⽽,汇编语⾔程序可以不经过系统调⽤直接引⽤系统调⽤
  • 程序常常使⽤像标准I/O库这样⼀些其它的库程序以提供对系统调⽤的更⾼级的使⽤;
  • 由于在编译期间把这些库连接到程序上,库是⽤户程序的⼀部分;

在这里插入图片描述

内核主要成分:文件子系统、进程控制子系统

三个层次:用户、内核、硬件;

文件子系统
  • 管理:分配⽂件空间,管理空闲空间,控制对⽂件的存取,以及为⽤户检索数据;
  • 使用一个文件缓冲机制存储文件数据,缓冲机制调节在核⼼⼆级存储设备之间的数据流;
  • 缓冲机制同块 I/O 设备驱动程序交互作⽤,以便启动往核⼼去的数据传送及从核⼼的来的数据传送;

设备驱动

  • 设备驱动程序是⽤来控制外围设备操作的核⼼模块;
  • 块 I/O 设备是随机存取存储设备,或者说,它们的设备驱动程序似的它们的设备驱动程序使得它们对于系统的其它部分来说好像是随机存取存储设备。例如,⼀个磁带驱动程序可以允许核⼼把⼀个磁带装置作为⼀个随机存取存储设备看待。
  • ⽂件⼦系统和可以在没有缓冲机制⼲预的情况下直接与“ 原始” I/O 设备驱动程序交互作⽤。
  • 原始设备,有时也被成为字符设备,包括所有⾮块设备的设备;
进程控制子系统
  • 负责进程同步进程间通讯存储管理进程调度
  • 当要执⾏⼀个⽂件⽽把该⽂件装⼊存储器中时,⽂件⼦系统进程控制⼦系统交互;
    • 进程⼦系统在执⾏可执⾏⽂件之前,把它们读到内存中。输⼊输出存储管理模块控制存储分配。在任何时刻,只要系统没有⾜够的屋⾥存储供所有进程使⽤,核⼼就在内存与⼆级存储之间对进程进⾏交换,以便所有的进程都得到公平的执⾏机会;

调度程序

  • 调度程序模块把CPU 分配给进程。该模块调度进程依次运⾏,直到它们因等待资源⽽⾃愿放弃 CPU,或者知道它们最近⼀次的运⾏时间超出⼀个时间量,从⽽核⼼抢占它们。于是调度程序选择最⾼优先权的合格进程投⼊运⾏;当原来的进程成为最⾼优先权的合格进程时,还会再次投⼊运⾏。
  • 进程间通信有⼏种形式,从时间的异步软中断信号进程间消息的同步传输,等等。本书中主要的讲的⽹络通信,也是进程间通信的⼀种;
硬件控制
  • 硬件控制负责处理中断及其与机器通信。类似磁盘终端这样的设备可以在⼀个进程正在执⾏时中断 CPU。如果出现这种情况,在对中断服务完毕之后核⼼可以恢复被中断了的进程的执⾏。中断不是由特殊的进程服务的,⽽是由核⼼中的特殊函数服务的。这些特殊函数是在当前运⾏的进程上下⽂中被调⽤的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jxiepc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值