1.操作系统的概念:
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。
笼统的理解,操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)
1.1 设计OS的目的
与硬件交互,管理所有的软硬件资源
为用户程序(应用程序)提供一个良好的执行环境
1.2 OS的定位
在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件!!!
1.21 如何理解 "管理"
1. 描述起来,用struct结构体
2. 组织起来,用链表或其他高效的数据结构
举例说明:
将各个硬件当做一个单独的机构体,操作系统则是控制驱动 利用 不同的数据结构将这些硬件结构体组织起来
总结为:描述和组织
2.系统调用和库函数概念
2.1 为什么会有系统调用和库函数?
我们的电脑里面的大多东西不能修改!!设计者只允许我们进行一些简单操作,大部分的权限我们都是没有的。
这就好比银行一样,里面的钱我们是取不走的,一堵墙将我们阻挡在外面。 这堵墙就好比操作系统将我们与电脑硬件隔离开来。
但是当我们需要进行简单的操作时,例如:
当我们运行一个函数
printf("hello");
操作系统也会允许进行简单操作。这就好比我们在银行中虽然拿不到银行里的钱,但是银行可以给我们开设柜台,我们可以进行简单的业务。
这个开设的柜台就相当于 系统调用
这个业务相当于库函数
2.2 概念理解
系统调用:
在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分,由操作系统提供的接口。
库函数:
系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统,调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。