0-入门准备篇

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。

Linux内核里可以看到数据结构和算法的经典案例,并发情况下的保护这种复杂场景;实践中的问题也可以参考内核中的实现。

假设,我们现在就是做一家外包公司,目标是把这家公司做上市,操作系统就是外包公司的老板。公司的发展阶段分为这样的几个时期:

  • 初创期:基于开放的营运环境(x86体系结构),创办一家外包公司(系统的启动),因为一开始没有其他员工,老板需要亲自接项目(实模式)。

  • 发展期:公司慢慢做大,项目越接越多(保护模式,多进程),为了管理各个外包项目,建立了项目管理体系(进程管理)、会议室管理(内存管理)、文档资料管理系统(文件系统)、售前售后体系(输入输出设备管理)

  • 壮大期:公司越来越牛,开始促进内部项目的合作(进程间通信)和外部公司合作(网络通信)

  • 集团化:公司业务越来越多,会成立多家子公司(虚拟化),或者鼓励内部创业(容器化),这个时候公司就变成了集团(linux集群),从而上市成功(从单机操作系统到数据中心操作系统)

操作系统相当于一家外包公司,内核相当于是公司的老板。
后续的内容就是假设自己是老板,看操作系统如何协调资源,完成工作的。

鼠标和键盘是输入设备。
显示屏是输出设备。

输入设备驱动类似外包公司里的销售,售前等客户对接员。安装驱动相当于给你分配一个客户对接员。
客户告诉对接人员需求的时候,对于操作系统来说会发送一个中断。
因为客户肯定系统对接人员停下手里的事情,只服务他一个客户。
客户发送的需求就是 中断事件。

显卡驱动,操作系统中称为输出设备驱动,类似外包公司的交付人员。

例如点击运行QQ:对于公司来说这个是大单子,不是零碎的需求。需要有项目执行计划书(程序),每一步骤做什么之类的。

程序以二进制的格式存在硬盘上,硬盘是个物理设备,要按照规定格式化成为文件系统才能存放数据。
文件系统需要一个系统进行统一管理,称为文件管理子系统。

QQ的二进制文件是静态的,称为程序(program)
运行起来的QQ是不断进行的,称为进程(process)

一个项目需要运行:需要各种资源,如证明,会议室,打印材料等
一方面资源有限,不能滥用,有些还涉及机密
另一方面最多跑一次效率要高一些。

为了解决这些问题:一方面有些资源需要审批了才能用,严格把控,另一方面可以提供个办事大厅,方便操作。

例如打印的操作,如果进程自己随意操作,一张纸上的内容就会混乱。
所以打印的操作放在操作系统内核,进程不能随便乱操作,操作系统也提供了一个办事大厅,就是系统调用(system call)。

系统调用提供了哪些接口可以调用,类似办事大厅体提供了哪些服务。

任何一个程序想要运行起来,就需要调用系统调用,创建进程。

为了管理进程,需要一个进程管理子系统。如果运行的进程很多,一个CPU会并发运行多个进程,就需要CPU调度能力强一些了。

不同的进程需要有不同的内存空间,但是内存是有限的,需要统一的管理和分配,需要内存管理子系统(Memory Management Subsystem)

办事大厅里包括各种功能:(图感觉不合适,办事大厅和其他的不是平级的)
在这里插入图片描述

操作系统内核结构体系图:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值