Linux操作系统概述

时间:2021-12-09 16:31:46

Linux操作系统概述

操作系统在整个计算机系统所处的位置

Linux操作系统概述

操作系统执行C程序的过程

一个简单的C程序在操作系统下运行,操作系统的执行过程是怎样到的?

文件名:test.c

#include <stdio.h>
main()
{
printf("Hello world\n");
return 0;
}

用户对这个程序编译并链接

gcc test.c -o test

形成一个可执行的二进制文件test,在Linux下执行该程序./test

执行过程如下:

  1. 用户告诉操作系统执行test。
  2. 操作系统通过文件名在磁盘找到该程序
  3. 检查可执行代码首部,找出代码和数据存放的地址
  4. 文件系统找到第一个磁盘块
  5. 操作系统建立程序的执行环境
  6. 操作系统把程序从磁盘装入内存,并跳到程序开始处执行
  7. 操作系统检查字符串的位置是否正确
  8. 操作系统找到字符串被送往的设备
  9. 操作系统将字符串送往输出设备窗口系统确定这是一个合法的操作,然后将字符串转换成像素
  10. 窗口系统将像素写入存储映像区
  11. 视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
  12. 显示器发射电子束,最后在屏幕上看到Hello world。

操作系统的组成

从操作系统设计者的角度考虑,一个操作系统必须包含以下几部分

(1)操作系统接口
(2)CPU管理
(3)内存管理
(4)设备管理
(5)文件管理

用一组简单的公式来描述操作系统的组成要素

操作系统 = 内核+系统程序

系统程序 = 编译环境+API(应用程序接口)+AUI(用户接口)

编译环境 = 编译程序+连接程序+装载程序

API = 系统调用+语言函数库(C、C++、Java等)

AUI =shell + 系统服务例程(如X服务器等)+应用程序(浏览器、字处理、编辑器等)

整个软件系统:

软件系统 = 操作系统+AUI

操作系统最底层的组件是内核,其上层大捡了许多系统程序。

系统程序包括三个部分,分别是编译环境,应用程序接口和用户接口。

编译环境包括汇编、C等高级语言编译程序、连接程序和装载程序,这些程序负责将文本格式的程序语言
转变为机器能识别和装载的机器代码。

应用程序接口(API)包含内核提供的系统调用接口和语言库。系统调用是为了能让应用程序使用内核提
供的服务;语言库函数则是为了方便应用程序开发,所以将一些常用的基础功能预先编译以供使用,比如对C语言来说有常用的C库等。

用户接口(AUI)包括shell、系统服务程序和常用的应用程序。

操作系统标准POSIX

POSIX表示可移植操作系统接口。该标准由IEEE制定,并由国际标准化组织接受为国际标准。任何操作系统只要符合POSIX 1003.1这一标准,就可以运行UNIX程序