系统编程-操作系统概论PART2

 

<1> 操作系统提供的服务

 

 

 

<2> 现代操作系统的特征

 

2.1 微内核(英文中常译作&micro;-kernel或者micro kernel)

这是一种能够提供必要服务的操作系统内核;其中这些必要的服务包括任务,线程,交互进程通信(IPC,Inter-Process Communication)以及内存管理等等。

所有服务(包括设备驱动)在用户模式下运行,而处理这些服务同处理其他的任何一个程序一样。

因为每个服务只是在自己的地址空间运行。所以这些服务之间彼此之间都受到了保护。

 

 

 2.2 分布式操作系统(Distributed Operating System)

分布式操作系统是将负载分散到多个计算机硬件服务器上的系统。这种操作系统提供更好的性能和可用性,因为它分布在多个组件中。

  PS:  分布式软件系统

  分布式软件系统(Distributed Software Systems),是支持分布式处理软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。

       它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统分布式数据库系统等。

2.3  面向对象设计

面向对象设计有利于模块化设计,有利于扩展

 

<3>  操作系统的历史

下图红线左侧的都是unix操作系统

 

windows macOS linux 和unix 的关系

 

 

<4>  Linux操作系统的基本构成

 

内核

 

ubuntu源码目录

 

ubuntu上的内核压缩文件, BootLoader加载的就是这个文件

 

最小文件系统: BootLoader先加载该最小文件系统,它会执行一些初始化操作,完毕后才会加载根文件系统。

 

<5>  启动流程

 

<6>  init进程

 

 <7>  内存管理概述

 

Linux操作系统的内存布局

而下图主要是更清晰地展示了内核空间的布局

 

<8>  段页式内存管理

 

<9> 系统调用

 

我们自己写的应用程序、linux的shell、一些库函数,都可以调用系统调用来获得操作系统内核提供的服务。

在调用系统调用过程中,和调用系统调用结束之后,Linux的进程的运行状态会发生变化,前者在内核态,后者处在用户态。

PS:不同的具体的操作系统提供的系统调用都不一样吗?

NO!有标准,这就是POSIX标准

 

 

 

 

.

posted @ 2021-01-18 08:48  一匹夫  阅读(85)  评论(0编辑  收藏  举报