概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
·内核(进程管理,内存管理,文件管理,驱动管理)
·其他程序(例如函数库,shell程序等等)
设计OS的目的
·与硬件交互,管理所有的软硬件资源
·为用户程序(应用程序)提供一个良好的执行环境
定位
·在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件
如何理解 "管理"
·核心:先描述,再组织
·描述被管理对象(利用struct结构体进行属性描述)
·组织被管理对象(通过数据结构进行组织)通过一幅图来深入观察OS的分层组织结构:
计算机管理硬件:
1. 描述起来,用struct结构体
2. 组织起来,用链表或其他高效的数据结构
系统调用和库函数概念
·在开发角度,即程序员看来,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用,(通过对接口的调用,传入适当参数可以让使用者使用内核功能).
·系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发,提高开发效率,屏蔽底层细节的理解负担,便于更高效地设计出产品.·系统调用的既是对操作系统内核功能的保护,防止操作者恶意或者操作原因使得操作系统进入崩溃或者宕机的危险,对核心数据的代码进行保护组织;同时这样屏蔽底层的硬件细节也极大地提升了开发者的效率.
·总结:我们通常所说的库函数是比系统调用更上层的东西,可以理解为库函数是对系统调用的进一步封装。