一:什么是操作系统
(1)linux、windows、android、ucos就是操作系统
(2)操作系统本质上是一个程序,由很多个源文件构成,需要编译
连接成操作系统程序(vmlinz、zImage)
(3)操作系统的主要作用就是管理计算机硬件,给应用程序提供一
个运行环境。
二:操作系统的核心功能
(1)内存管理。如果没有操作系统,内存是需要程序自己来管理
的。譬、如在uboot中要使用内存的哪里是自己随便用的,没有注册也
没有限制。这时候如果程序自己不小心把同一块内存重复用了就会出
现程序逻辑错误。系统大了之后(内存多了)内存管理非常麻烦;有
了操作系统之后,操作系统负责管控所有的内存,所有的应用程序需
要使用内存时都要向操作系统去申请和注册,由操作系统的内存管理
模块来分配内存给你使用,这样好处是可以保证内存使用不会冲突。
(2)进程调度。操作系统下支持多个应用程序同时运行(所以可以
一边聊QQ一边看电影···),这是宏观上的并行。实际上在单核心CPU上
微观上是不能并行的,宏观上的并行就是操作系统提供的分时复用机
制。操作系统的进程调度模块负责在各个进程之间进行切换。
(3)硬件设备管理。没有操作系统时要控制任何硬件都要自己写代
码,有了操作系统后操作系统本身会去控制各个硬件,应用程序就不
用考虑硬件的具体细节了。操作系统的硬件设备管理模块就是驱动模
块。
(4)文件系统。文件系统是管理存储设备的一种方式。存储设备是
由很多个扇区组成的,每个扇区有512/1024/2048/4096字节,存储设
备要以扇区为单位进行读写。如果没有文件系统,程序要自己去读写
扇区,就得记得哪个文件在哪个扇区。有了文件系统之后我们人不用
再关注扇区,人只用关注文件系统中的目录和文件名,而不用管这个
文件在物理磁盘的哪个扇区。
三:操作系统的扩展功能
(1)协议栈
(2)有用的应用程序包。应用程序本身不属于操作系统内核的一部
分,应用程序是给人用的,面向某种功能的。譬如ping程序用来测试
网络是否联通,ifconfig程序用来配置网卡。