操作系统基础:06 操作系统历史

news2025/4/15 20:00:37

我们前面已经讲过了操作系统的基本轮廓、启动过程以及系统调用等相关内容,就如同揭开了钢琴的盖子,对操作系统有了初步的表面认识。从现在起,我们要更深入地剖析操作系统,就像分解钢琴一样,探究其各个部分的构成、原理以及组装方式。为了更好地理解操作系统,我们先来讲讲它的历史。培根说过“读史使人明智” ,了解操作系统的历史,能让我们知晓它的诞生过程、核心模块及其产生的必然性,从而在深入学习时不迷失方向。

早期计算机与批处理系统

最开始出现的计算机是IBM 7094,人们称其为上古神机,造价高达250万美元以上,极其昂贵。在那个时期,计算机是绝对的主体,所有任务都围绕它展开,使用原则是只专注于计算。当时采用批处理系统(Batch system),有一个简单的监控程序。一个作业完成后,会自动读入下一个作业 。若任务出错,就把出错信息输出到磁带上,供人分析。分析完后再添加新任务继续批处理。此时的监控系统功能简单,只能在任务完成或出错时,修改PC指针切换到下一个任务,严格来说还算不上真正的操作系统。【**此处插入第一张图**】

操作系统的演进 - OS/360

随着计算机技术发展,计算机变得越来越便宜,开始进入多个行业,如科学计算(IBM 7094)和银行(IBM 1401)等。一台计算机需要承担多种任务,批处理方式不再适用。因为不同任务特点不同,比如科学计算主要依赖CPU运算,I/O任务则需访问磁盘、磁带等,若仍用批处理,在I/O任务等待时CPU会闲置,造成资源浪费。于是,多道程序(multiprogramming)的概念应运而生,即多个程序或任务同时存在于计算机中,交替执行,作业之间的切换和调度成为核心。IBM组织大量人员(约5000人)开发了OS/360操作系统 ,360表示全方位服务,旨在为各种任务提供支持。这个系统标志着多进程结构和进程管理概念的萌芽,但由于系统过于复杂,开发周期长达5000个人年,最终存在很多bug,算是一个不太成功的项目。【**此处插入第二张图**】

从OS/360到MULTICS

计算机应用范围不断扩大,使用人数也日益增加。如果每个人都启动一个作业,就需要作业之间快速切换,分时系统(timesharing)由此出现。代表系统是MIT的MULTICS(MULTiplexed Information and Computer Service) 。其核心依然是任务切换,并且引入了资源复用的思想,比如虚拟内存就是一种资源复用方式。虽然MULTICS本质上与OS/360没有太大的推进,但它让多进程、多任务同时推进的模式更加清晰和实用。【**此处插入第三张图**】

从MULTICS到UNIX

小型化计算机的出现让更多人能够使用计算机,例如PDP - 1每台售价120,000美元,价格大幅降低。1969年,贝尔实验室的Ken Thompson、Dennis Ritchie等在一台没人使用的PDP - 7上开发了一个简化的MULTICS,也就是后来的UNIX 。UNIX继承了MULTICS的核心概念,但因为是由少数人(两人)开发,所以更灵活、紧凑,bug也更少,取得了成功,成为计算机领域广为人知的操作系统。【**此处插入第四张图**】

从UNIX到Linux

1981年,IBM推出IBM PC,个人计算机开始普及,很多人有机会接触计算机和UNIX 。1987年Andrew Tanenbaum发布了MINIX(非常类似UNIX)用于教学 。Linus Torvalds在386sx兼容微机上学习minix后,于1991年开发出小Linux,并在1994年发布Linux 1.0,采用GPL协议。1998年以后,在互联网世界展开了一场历史性的Linux产业化运动,Linux逐渐辉煌起来,如今很多系统如安卓手机底层都基于Linux。【**此处插入第五张图**】

总结操作系统演进主线

从IBSYS到OS/360,再到MULTICS、Unix、Linux,我们可以总结出以下几点:

  • 核心思想角度:用户通过执行程序使用计算机,这与冯诺依曼思想相契合;操作系统作为管理者,要让多个程序合理推进,也就是进行进程管理;多进程推进时需要内存复用等技术支持。多进程结构一直是操作系统的基本图谱,并且对于操作系统而言,实现概念远比理解概念重要。
  • 软件实现角度:从OS/360到UNIX,体现了实现的重要性;从UNIX到Linux,则展现了群体智慧在操作系统发展中的作用。我们的任务是掌握操作系统的多进程图谱并实现它。【**此处插入第六张图**】

另一条发展线 - PC与DOS相关演进

PC机诞生后,自然需要配备操作系统。1975年Digital Research为Altair 8800开发了操作系统CP/M ,它让用户通过写命令来执行对应的程序,属于单任务执行模式。1980年出现了8086 16位芯片,在此基础上从CP/M衍生出了QDOS(Quick and Dirty OS) 。【**此处插入第七张图**】

从QDOS到MS - DOS

1975年,22岁的Paul Allen和20岁的Bill Gates为Altair 8800开发了BASIC解释器,开创了微软 。1977年Bill Gates开发FAT用于管理磁盘 。QDOS成功在于以CP/M为基础,融合了BASIC和FAT,涵盖了文件管理和编程环境等用户关心的功能。1980年IBM想和Digital Research授权使用CP/M未达成,转而与微软合作。1981年微软买下QDOS,改名为MS - DOS(Disk OS),并与IBM PC打包出售。【**此处插入第八张图**】

从MS - DOS到Windows

MS - DOS通过磁盘、文件、命令等让用户使用计算机更方便,但微软仍在追求更便捷的操作方式。1989年,MS - DOS 4.0出现,支持了鼠标和键盘,此时微软已决定放弃MS - DOS 。不久后Windows 3.0大获成功,随后Windows不断发展,出现了95、XP、Vista、Win 7、Win 8等版本 。这一发展过程体现了文件、开发环境、图形界面对于操作系统的重要性。【**此处插入第九张图**】

Mac OS与iOS

1984年,苹果推出PC(麦金塔机,Macintosh) ,简称Mac机,其处理器使用IBM、Intel或AMD等,核心关注屏幕、能耗等方面 。与Mac机一起发布System X系统,一开始就是图形用户界面(GUI) ,在System 7以后改名为Mac OS 8 。2007年发布iOS,其核心仍是Mac OS,专为移动设备设计,加入了手势等操作方式 。Mac OS核心基于UNIX,专注于界面、文件、媒体等与用户相关的内容,与Windows思路有相似之处,未来人机交互方式可能会有更多创新,但文件依然是核心。【**此处插入第十张图**】

学习操作系统历史的意义与课程主旨

总结操作系统的历史,我们发现多进程结构始终是其核心,同时操作系统不断在用户使用层面进行发展,比如文件操作视图以及图形界面等方面。对于我们学习操作系统这门课程而言,要做到两个关键方面:一是理解多进程图谱,明白其原理(源于OS/360,最终在UNIX中体现),并通过研究Linux代码等方式掌握其实现过程;二是学习文件操作视图,了解文件的概念(源于DOS、Windows、iOS等)并实现相关操作。只有理解原理、实现代码、掌握思想,才能真正理解、掌握和利用操作系统,为未来的工作、研究和创造奠定坚实基础。 这就是我们学习操作系统历史的目的,从历史中汲取经验教训,明确操作系统核心,提升实现和应用操作系统核心的能力。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2334502.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大模型微调】如何解决llamaFactory微调效果与vllm部署效果不一致如何解决

以下个人没整理太全 一、生成式语言模型的对话模板介绍 使用Qwen/Qwen1.5-0.5B-Chat训练 对话模板不一样。回答的内容就会不一样。 我们可以看到例如qwen模型的tokenizer_config.json文件,就可以看到对话模板,一般同系列的模型,模板基本都…

【2025最新】windows本地部署LightRAG,完成neo4j知识图谱保存

之前在服务器部署neo4j失败,无奈只能在本地部署,导致后期所有使用的知识图谱数据都存在本地,这里为了节省时间,先在本地安装LigthRAG完成整个实验流程,后续在学习各种服务器部署和端口调用。从基础和简单的部分先做起来…

14、nRF52xx蓝牙学习(串口 UART 和 UARTE 外设应用)

一、UART 功能描述 串口 UART 也称为通用异步收发器。是各种处理器中常用了通信接口,在 nRF52 芯片中, UART 具有以下特点: ● 全双工操作 ● 自动流控 ● 奇偶校验产生第 9 位数据 串口 UART 的数据发送与接收流程 : ◆硬件配置…

DeepSeek轻松入门教程——从入门到精通

大家好,我是吾鳴。 今天吾鳴要给大家分享一份DeepSeek小白轻松入门指导手册——《DeepSeek 15天指导手册,从入门到精通》。指导手册分为基础入门对话篇、效率飞跃篇、场景实战篇、高手进化篇等,按照指导手册操作,DeepSeek从入门到…

Vue2 老项目升级 Vue3 深度解析教程

Vue2 老项目升级 Vue3 深度解析教程 摘要 Vue3 带来了诸多改进和新特性,如性能提升、组合式 API、更好的 TypeScript 支持等,将 Vue2 老项目升级到 Vue3 可以让项目获得这些优势。本文将深入解析升级过程,涵盖升级前的准备工作、具体升级步骤…

WXJ196微机小电流接地选线装置使用简单方便无需维护

WXJ196微机小电流接地选线装置,能在系统发生单相接地时,准确、迅速地选出接地线路母 线。使用简单方便,无需维护,可根据用户需要将相关信息通过通信接口传给上级监控系统, 适用于无人值守变电站。 2 功能及特点 全新的…

Java第四节:idea在debug模式夏改变变量的值

作者往期文章 Java第一节:debug如何调试程序(附带源代码)-CSDN博客 Java第二节:debug如何调试栈帧链(附带源代码)-CSDN博客 Java第三节:新手如何用idea创建java项目-CSDN博客 步骤一 在需要修改…

门极驱动器DRV8353M设计(二)

目录 13.3.4.4 MOSFET VDS 感测 (SPI Only) 13.3.5 Gate Driver保护回路 13.3.5.1 VM 电源和 VDRAIN 欠压锁定 (UVLO) 13.3.5.2 VCP 电荷泵和 VGLS 稳压器欠压锁定 (GDUV) 13.3.5.3 MOSFET VDS过流保护 (VDS_OCP) 13.3.5.3.1 VDS Latched Shutdown (OCP_MODE 00b) 13.…

学点概率论,打破认识误区

概率论是统计分析和机器学习的核心。掌握概率论对于理解和开发稳健的模型至关重要,因为数据科学家需要掌握概率论。本博客将带您了解概率论中的关键概念,从集合论的基础知识到高级贝叶斯推理,并提供详细的解释和实际示例。 目录 简介 基本集合…

NVIDIA AI Aerial

NVIDIA AI Aerial 适用于无线研发的 NVIDIA AI Aerial 基础模组Aerial CUDA 加速 RANAerial Omniverse 数字孪生Aerial AI 无线电框架 用例构建商业 5G 网络加速 5G生成式 AI 和 5G 数据中心 加速 6G 研究基于云的工具 优势100% 软件定义通过部署在数字孪生中进行测试6G 标准化…

OpenCV 关键点定位

一、Opencv关键点定位介绍 关键点定位在计算机视觉领域占据着核心地位,它能够精准识别图像里物体的关键特征点。OpenCV 作为功能强大的计算机视觉库,提供了多种实用的关键点定位方法。本文将详细阐述关键点定位的基本原理,深入探讨 OpenCV 中…

arm_math.h、arm_const_structs.h 和 arm_common_tables.h

在 ​​FOC(Field-Oriented Control,磁场定向控制)​​ 中,arm_math.h、arm_const_structs.h 和 arm_common_tables.h 是 CMSIS-DSP 库的核心组件,用于实现高效的数学运算、预定义结构和查表操作。以下是它们在 FOC 控…

buuctf sql注入类练习

BUU SQL COURSE 1 1 实例无法访问 / Instance cant be reached at that time | BUUCTF但是这个地方很迷惑就是这个 一个 # 我们不抓包就不知道这个是sql注入类的判断是 get 类型的sql注入直接使用sqlmap我们放入到1.txt中 目的是 优先检测 ?id1>python3 sqlmap.py -r 1.t…

具身导航中的视觉语言注意力蒸馏!Vi-LAD:实现动态环境中的社会意识机器人导航

作者:Mohamed Elnoor 1 ^{1} 1, Kasun Weerakoon 1 ^{1} 1, Gershom Seneviratne 1 ^{1} 1, Jing Liang 2 ^{2} 2, Vignesh Rajagopal 3 ^{3} 3, and Dinesh Manocha 1 , 2 ^{1,2} 1,2单位: 1 ^{1} 1马里兰大学帕克分校电气与计算机工程系, 2…

全局前置守卫与购物车页面鉴权

在很多应用里,并非所有页面都能随意访问。例如购物车页面,用户需先登录才能查看。这时可以利用全局前置守卫来实现这一鉴权功能。 全局前置守卫的书写位置在 router/index.js 文件中,在创建 router 对象之后,暴露 router 对象之前…

layui 弹窗-调整窗口的缩放拖拽几次就看不到标题、被遮挡了怎么解决

拖拽几次,调整窗口的缩放,就出现了弹出的页面,右上角叉号调不出来了,窗口关不掉 废话不多说直入主题: 在使用layer.alert layer.confirm layer.msg 等等弹窗时,发现看不到弹窗,然后通过控制台检查代码发现…

网络空间安全(57)K8s安全加固

一、升级K8s版本和组件 原因:K8s新版本通常会引入一系列安全功能,提供关键的安全补丁,能够补救已知的安全风险,减少攻击面。 操作:将K8s部署更新到最新稳定版本,并使用到达stable状态的API。 二、启用RBAC&…

2025蓝桥杯C++A组省赛 题解

昨天打完蓝桥杯本来想写个 p y t h o n python python A A A 组的题解,结果被队友截胡了。今天上课把 C A CA CA 组的题看了,感觉挺简单的,所以来水一篇题解。 这场 B B B 是一个爆搜, C C C 利用取余的性质比较好写&#…

论文学习:《通过基于元学习的图变换探索冷启动场景下的药物-靶标相互作用预测》

原文标题:Exploring drug-target interaction prediction on cold-start scenarios via meta-learning-based graph transformer 原文链接:https://www.sciencedirect.com/science/article/pii/S1046202324002470 药物-靶点相互作用(DTI&…

十八、TCP多线程、多进程并发服务器

1、TCP多线程并发服务器 服务端&#xff1a; #include<stdio.h> #include <arpa/inet.h> #include<stdlib.h> #include<string.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <pthread.h>…