浅谈操作系统

浅谈操作系统

      • 浅谈操作系统
        • 站在冯诺依曼角度,理解操作系统定位
        • 站在管理角度,理解操作系统[先描述再组织]
        • 站在应用者的角度,理解操作系统
        • 站在操作系统角度,理解系统调用接口
        • 站在操作系统角度,理解操作系统外壳程序定位与作用(Linux shell)
        • 对比系统调用,理解库函数

站在冯诺依曼角度,理解操作系统定位

管理和控制计算机硬件与软件资源的计算机程序
冯诺伊曼(存储程序原理)

  1. 冯诺伊曼体系的存储器指的是内存

  2. 不考虑缓存的情况,CPU只能对内存进行操作,不能访问外设(输入或输出设备)

  3. 外设(输入输出设备)如果想输入输出数据也只能写入内存或从内存中读取

  4. 所有设备只能直接和内存打交道

站在管理角度,理解操作系统[先描述再组织]

  1. 描述:管理软件的软件

  2. 组织:如何管理软件?
    操作系统是最基本的系统软件,它控制着计算机所有的资源并提供应用程序开发的接口

站在应用者的角度,理解操作系统

  1. 从程序员角度看,操作系统是将程序员从复杂的硬件控制中解脱出来,并为软件开发者提供了一个虚拟机,从而能更方便的进行程序设计

  2. 从一般用户角度看,操作系统为他们提供了一个良好的交互界面,使得他们不必了解有关硬件和系统软件的细节,就能方便地使用计算机

站在操作系统角度,理解系统调用接口

操作系统作为系统软件,它的任务是为用户的应用程序提供良好的运行环境。因此,由操作系统内核提供一系列内核函数,通过一组称为系统调用的接口提供给用户使用。系统调用的作用是把应用程序的请求传递给系统内核,然后调用相应的内核函数完成所需的处理,最终将处理结果返回给应用程序。因此,系统调用是应用程序和系统内核之间的接口

站在操作系统角度,理解操作系统外壳程序定位与作用(Linux shell)

  1. 在操作系统之上提供的一套命令解释程序叫做外壳程序(shell)

  2. 外壳程序是操作员与操作系统交互的界面,操作系统再负责完成与机器硬件的交互。

  3. 所以操作系统可成为机器硬件的外壳,shell命令解析程序可称为操作系统的外壳。

  4. 自定义网站/动画/图片/flash等、可添加统计代码、自定义限制运行时间,限制操作等、自定义公告内容、到时自动运行、设置开机启动、隐藏执行‘、hosts修改、设置主页

对比系统调用,理解库函数

  • 一般而言,跟内核功能与操作系统特性紧密相关的服务,由系统调用提供;
  • 具有共通特性的功能一般需要较好的平台移植性,故而由库函数提供。

  • 库函数与系统调用在功能上相互补充:

    1. 如进程间通信资源的管理,进程控制等功能与平台特性和内核息息相关,必须由系统调用来实现。
    2. 文件 I/O操作等各平台都具有的共通功能一般采用库函数,也便于跨平台移植。
  • 某些情况下,库函数与系统调用也有交集:
    如库函数中的I/O操作的内部实现依然需要调用系统的I/O方能实现。

主要区别:

  1. 所有 C 函数库是相同的,而各个操作系统的系统调用是不同的。

  2. 函数库调用是调用函数库中的一个程序,而系统调用是调用系统内核的服务。

  3. 函数库调用是与用户程序相联系,而系统调用是操作系统的一个进入点

  4. 函数库调用是在用户地址空间执行,而系统调用是在内核地址空间执行

  5. 函数库调用的运行时间属于「用户」时间,而系统调用的运行时间属于「系统」时间

  6. 函数库调用属于过程调用,开销较小,而系统调用需要切换到内核上下文环境然后切换回来,开销较大

  7. 在C函数库libc中大约 300 个程序,在 UNIX 中大约有 90 个系统调用

  8. 函数库典型的 C 函数:system, fprintf, malloc,而典型的系统调用:chdir, fork, write, brk

你可能感兴趣的:(Linux,操作系统,Linux)