一:什么是操作系统

  (1)linux、windows、android、ucos就是操作系统

  (2)操作系统本质上是一个程序,由很多个源文件构成,需要编译

连接成操作系统程序(vmlinz、zImage)

  (3)操作系统的主要作用就是管理计算机硬件,给应用程序提供一

个运行环境。


二:操作系统的核心功能

  (1)内存管理。如果没有操作系统,内存是需要程序自己来管理

的。譬、如在uboot中要使用内存的哪里是自己随便用的,没有注册也

没有限制。这时候如果程序自己不小心把同一块内存重复用了就会出

现程序逻辑错误。系统大了之后(内存多了)内存管理非常麻烦;有

了操作系统之后,操作系统负责管控所有的内存,所有的应用程序需

要使用内存时都要向操作系统去申请和注册,由操作系统的内存管理

模块来分配内存给你使用,这样好处是可以保证内存使用不会冲突。

 (2)进程调度。操作系统下支持多个应用程序同时运行(所以可以

一边聊QQ一边看电影···),这是宏观上的并行。实际上在单核心CPU上

微观上是不能并行的,宏观上的并行就是操作系统提供的分时复用机

制。操作系统的进程调度模块负责在各个进程之间进行切换。

  (3)硬件设备管理。没有操作系统时要控制任何硬件都要自己写代

码,有了操作系统后操作系统本身会去控制各个硬件,应用程序就不

用考虑硬件的具体细节了。操作系统的硬件设备管理模块就是驱动模

块。

  (4)文件系统。文件系统是管理存储设备的一种方式。存储设备是

由很多个扇区组成的,每个扇区有512/1024/2048/4096字节,存储设

备要以扇区为单位进行读写。如果没有文件系统,程序要自己去读写

扇区,就得记得哪个文件在哪个扇区。有了文件系统之后我们人不用

再关注扇区,人只用关注文件系统中的目录和文件名,而不用管这个

文件在物理磁盘的哪个扇区。


三:操作系统的扩展功能

 (1)协议栈

 (2)有用的应用程序包。应用程序本身不属于操作系统内核的一部

分,应用程序是给人用的,面向某种功能的。譬如ping程序用来测试

网络是否联通,ifconfig程序用来配置网卡。