1.3操作系统简介

@为什么要有操作系统?

  • 计算机硬件能够直接识别的语言是机器语言,是由1和0所组成的,其底层是电路的闭合与断开;
  • 计算机硬件在出厂时,将硬件提供的功能封装为相对易读的指令集,指令集与硬件是唯一适配的,没有通用性,这极大地制约了计算机的易用性和普及程度;
  • 在此背景下,操作系统定义了硬件功能的标准接口,硬件厂商通过自家的驱动程序,对这些标准接口进行具体实现;
  • 程序员在为计算机硬件开发应用程序时,无需考虑具体硬件对标准接口的实现细节,而只需要通过统一标准的接口去调用硬件的功能,就能为不同硬件开发相同的应用程序了;
  • 只要硬件搭载的是相同的操作系统,就能实现一套应用程序跑在不同的硬件上;
  • 因此,操作系统诞生最原始的初衷,就是为了实现“不一样的硬件,一样的代码”,这使得计算机变得易于“操作”了;
  • 随着应用程序的日渐丰富和复杂,位于应用和硬件中间层的操作系统,还承担着系统管理、资源调度、应用程序调度等诸多职责;

@系统管理

  • 管理文件系统,实现共享、实现安全;
  • 管理外部设备,例如电源、磁盘、网络等等;
  • 管理用户和权限,使得多个用户可以安全地使用同一台设备,这对服务器尤其重要;

@资源调度

  • 由于CPU、内存、外设、磁盘等资源,都是为众多应用程序所共享的,因此操作系统承担着资源调度之责,即:
  • CPU执行时间片调度;
  • 内存空间调度;
  • 输入输出设备调度;
  • 磁盘IO调度;

@应用程序调度

  • 如今的操作系统都是支持多任务的,即用户可以一边写代码,一边听音乐,一边下载电影,一边运行服务程序,一边运行爬虫程序,等等,whatever you say!
  • 具体到某一个应用程序,其内部又支持多进程、进程内又支持多线程;
  • 因此任务管理、并发管理、以及其间的资源调度,都需要经由操作系统来实现;
  • 这种管理和调度,既应该是自动的智能的,又应该支持用户自定义操作;

@著名操作系统

  • Windows,图形用户界面的先驱(其实是抄袭施乐),盖茨实现了人人桌面都有一台电脑的梦想,用户量最大、应用程序最多;
  • Mac,用户体验最好的个人电脑,美观、高效、易用,无论休闲、办公还是开发;
  • Linux,开源的、以网络通信为出发点的操作系统,广泛用于服务器、嵌入式设备,经过定制的桌面版操作系统同样是很棒的PC机操作系统;开源、高效、安全、强大,越来越多地得到各国政府(包括中国政府)的大力支持;比较著名的定制版有Ubuntu、CentOS、RedHat、Debian、KaliLinux;国产的有红旗、在Ubuntu基础上优化过的Deepin等;安卓操作系统也使用的也是Linux内核;

你可能感兴趣的:(Python,语言程序设计)