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

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

 

 

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

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

 

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

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

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

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

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

 

 

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

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

  PS:  分布式软件系统

  分布式软件系统(Distributed Software Systems),是支持体系结构上执行任务的系统。

       它包括分布式数据库系统等。

2.3  面向对象设计

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

 

<3>  操作系统的历史

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

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

 

windows macOS linux 和unix 的关系

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

 

 

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

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

 

内核

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

 

ubuntu源码目录

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

 

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

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

 

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

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

 

<5>  启动流程

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

 

<6>  init进程

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

 

 <7>  内存管理概述

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

 

Linux操作系统的内存布局

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

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

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

 

<8>  段页式内存管理

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

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

 

<9> 系统调用

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

 

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

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

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

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

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

 

 

 

 

.

相关文章:

  • 2021-10-31
  • 2022-01-03
  • 2021-09-29
  • 2021-04-03
  • 2022-01-21
猜你喜欢
  • 2022-02-06
  • 2021-05-17
  • 2021-11-30
相关资源
相似解决方案