任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。简单来说,操作系统就是一款进行软硬件资源管理的软件。
操作系统包括:
1.内核(进程管理,内存管理,文件管理,驱动管理)
2.其他程序(例如函数库,shell程序等等)
对于计算机底层的硬件,肯定有一个软件来对这些硬件进行管理;eg:内存什么时候读取数据?什么时候刷新缓存区…这些都由软件来管理,而这个软件就是操作系统。
但是操作系统肯定不能直接和底层硬件交互,eg:如果操作系统自己来完成键盘的读取操作,你的键盘读取方式改变了,操作系统那边就需要重新编译,这对操作系统的维护成本太高了。
所以我们在之间加了一层驱动程序,驱动程序可以单独去控制底层硬件。eg:键盘有键盘驱动,网卡有网卡驱动…。驱动简单来讲就是去访问这个硬件,去访问硬件的读,写,状态…。
从图中我们也可以看出操作系统主要进行四项管理:
而操作系统再往上,就是我们使用命令行或者图形化界面进行各种操作,这一层被称为用户层。
但操作系统为了保护自己,对上只暴露了一些接口,而不会让用户直接访问操作系统,这一系列接口被称为系统调用接口。
但这些系统调用接口对我们普通用户来说使用成本又太高了,因为要使用系统调用前提条件是你得对系统有一定了解。所以在系统调用接口之上又构建出了一批库,例如libc和libc++。实际上在语言级别上使用的各种库,就是封装了系统调用接口的,我们就是通过调用这些库当中的各种函数(例如printf和scanf)进行各种程序的编写。
eg:学校管理学生,校长不了解学生,但是可以进行管理,根据的是数据:基本信息,健康信息,成绩信息等…。
先描述:
后组织:
总结:
计算机管理硬件: