什么是操做系统以及如何学习操做系统

操做系统是什么

  1. 计算机是由若干硬件组成:显示器、CPU、内存、主板(提供总线)、键盘、鼠标、硬盘等。
  2. 计算的发明是帮助人类完成一些计算与逻辑任务。
  3. 可是人们不能直接的使用计算机硬件,须要在计算机硬件上包上一层软件,咱们使用这些软件来完成一些特定的任务,好比进行数学计算、文字排版、聊天、邮件等。
  4. 操做系统就是计算机硬件与应用软件之间的一层软件(或者说是接口),两个目标:1)方便咱们使用硬件;2)高效的使用硬件
  5. 操做系统管理哪些硬件呢:CPU管理、内存管理、终端管理、磁盘管理、文件管理、网络管理、电源管理和多CPU管理。
  6. 网络管理、电源管理和多核管理属于高级操做系统的相关知识。在Udacity的高级操做系统中有讲授。

操做系统的发展历史

操做系统是伴随着计算机的发展而发展的,在任什么时候期都是以解决当时遇到的实际问题为创新点,大体经历了以下几个时期:html

  • 第一个阶段,以上古神机IBM7094为表明的计算上的操做系统,计算机的主要目的是大量计算,因此当时的操做系统是一种批处理操做系统,做业一批一批的被顺序执行。输入输出都是磁带。
  • 第二个阶段,计算机开始进入多个行业,须要完成各类不一样的任务,一台计算机须要干更多的事,这时候就出现了多道程序操做系统,由于有的做业是计算任务,有的做业是IO类型的任务,因此能够在做业之间进行切换和调度,让CPU忙碌起来。典型表明为IBM OS/360。
  • 第三个阶段,出现了分时操做系统,每一个使用计算机的人均可以启动一个做业,做业之间快速的进行切换,而不是像上个阶段那样只有处理IO时,才会换到下个做业。这个时期的表明是MIT的MULTICS。
  • 第四个阶段是,随着小型机的大量普及,出现了Unix和Linux操做系统。从设计上更简单和灵活。同时Windows操做系统也诞生了,它主要是在用户界面方面作了很大的创新与改进。

学习操做系统的三个层次

Learn OS concepts by coding them!git

学习操做系统根据学习深浅的不一样能够分为三个层次:github

  • 层次一:从应用软件出发“探到操做系统”,主要讲解如何使用操做系统提供的接口如:printf/fork/open/read等。
  • 层次二:从应用软件出发“进入操做系统”:了解操做提供的系统接口是如何实现的,能够本身给操做系统增长服务接口,为新的硬件写驱动程序等。
  • 层次三:硬件出发“设计操做系统”,给一个硬件板子,经过查硬件手册,能够本身配一个操做系统,针对这个板子实现本身的操做系统。

咱们要以对照一下Standford的操做系统的学习要求,主要是能完成4个操做系统实验,这4个实验也体现了操做系统的真正核心。网络

  • 实验一: 扩展线现,实现线程调度
  • 实验二: 实现系统调用,将整个接口剥掉,添加
  • 实验三: 实现虚存管理,扩展实现内存管理
  • 实验四: 扩展文件系统,扩展实现一个文件管理

操做系统相关学习资源

相关文章
相关标签/搜索