什么是操作系统以及如何学习操作系统
2017-11-05 12:19 ☆Ronny丶 阅读(4013) 评论(0) 编辑 收藏 举报操作系统是什么
- 计算机是由若干硬件组成:显示器、CPU、内存、主板(提供总线)、键盘、鼠标、硬盘等。
- 计算的发明是帮助人类完成一些计算与逻辑任务。
- 但是人们不能直接的使用计算机硬件,需要在计算机硬件上包上一层软件,我们使用这些软件来完成一些特定的任务,比如进行数学计算、文字排版、聊天、邮件等。
- 操作系统就是计算机硬件与应用软件之间的一层软件(或者说是接口),两个目标:1)方便我们使用硬件;2)高效的使用硬件
- 操作系统管理哪些硬件呢:CPU管理、内存管理、终端管理、磁盘管理、文件管理、网络管理、电源管理和多CPU管理。
- 网络管理、电源管理和多核管理属于高级操作系统的相关知识。在Udacity的高级操作系统中有讲授。
操作系统的发展历史
操作系统是伴随着计算机的发展而发展的,在任何时期都是以解决当时遇到的实际问题为创新点,大致经历了如下几个时期:
- 第一个阶段,以上古神机IBM7094为代表的计算上的操作系统,计算机的主要目的是大量计算,所以当时的操作系统是一种批处理操作系统,作业一批一批的被顺序执行。输入输出都是磁带。
- 第二个阶段,计算机开始进入多个行业,需要完成各种不同的任务,一台计算机需要干更多的事,这时候就出现了多道程序操作系统,因为有的作业是计算任务,有的作业是IO类型的任务,所以可以在作业之间进行切换和调度,让CPU忙碌起来。典型代表为IBM OS/360。
- 第三个阶段,出现了分时操作系统,每个使用计算机的人都可以启动一个作业,作业之间快速的进行切换,而不是像上个阶段那样只有处理IO时,才会换到下个作业。这个时期的代表是MIT的MULTICS。
- 第四个阶段是,随着小型机的大量普及,出现了Unix和Linux操作系统。从设计上更简单和灵活。同时Windows操作系统也诞生了,它主要是在用户界面方面做了很大的创新与改进。
学习操作系统的三个层次
Learn OS concepts by coding them!
学习操作系统根据学习深浅的不同可以分为三个层次:
- 层次一:从应用软件出发“探到操作系统”,主要讲解如何使用操作系统提供的接口如:
printf/fork/open/read
等。 - 层次二:从应用软件出发“进入操作系统”:了解操作提供的系统接口是如何实现的,可以自己给操作系统增加服务接口,为新的硬件写驱动程序等。
- 层次三:硬件出发“设计操作系统”,给一个硬件板子,通过查硬件手册,可以自己配一个操作系统,针对这个板子实现自己的操作系统。
我们要以对照一下Standford的操作系统的学习要求,主要是能完成4个操作系统实验,这4个实验也体现了操作系统的真正核心。
- 实验一: 扩展线现,实现线程调度
- 实验二: 实现系统调用,将整个接口剥掉,添加
- 实验三: 实现虚存管理,扩展实现内存管理
- 实验四: 扩展文件系统,扩展实现一个文件管理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)