Operating System — 用中文阅读

故事标题目前仍是英文,正文是中文。

Operating System — 图书封面 — Wonder Inventions 二十世纪中叶,第一批电子计算机是庞大、占据整个房间的机器,它们是工程上的胜利,但却受到一个关键低效率问题的困扰。

二十世纪中叶,第一批电子计算机是庞大、占据整个房间的机器,它们是工程上的胜利,但却受到一个关键低效率问题的困扰。每一次计算、每一个程序都需要由技术娴熟的操作员进行细致的手动设置。这个时代见证了杰出人才努力应对复杂的后勤工作,将原始硬件转化为功能性工具。 “IBM 七零四 又有一个任务排队了,”高级操作员汤普森指着一叠打孔卡说道,“光是更换磁带驱动器和重新配置跳线板来运行下一个程序,我们就要花二十分钟。” “那就是二十分钟的空闲中央处理器时间,”工程师戴维斯叹了口气,查看系统日志,“我们运行的每一个任务,机器都要空闲将近一刻钟。这台机器是个奇迹,但它花在等待我们上的时间比计算的时间还多。” 汤普森严肃地点点头。“我们宝贵的计算周期都在这些手动转换中流失了。我们需要一种更快、更集成的方式来管理这些操作。”

为每项新任务准备计算机的繁琐过程,在技术和经济上都是巨大的消耗。每个程序,无论是复杂的科学计算还是简单的数据排序,都需要对机器进行完全的手动重新初始…

为每项新任务准备计算机的繁琐过程,在技术和经济上都是巨大的消耗。每个程序,无论是复杂的科学计算还是简单的数据排序,都需要对机器进行完全的手动重新初始化。这意味着在实际计算开始之前,必须加载正确的编译器、配置输入/输出设备并设置内存分区。这种“设置时间”意味着这些极其昂贵的机器经常闲置,等待人工干预,其巨大的处理能力暂时处于休眠状态。 “看看这个,”技术员安雅·夏尔马说,她二十多岁,深色头发向后梳,表情专注,穿着一件实用的灰色工作服,她指着一块详细列出机器使用情况的大型日程板。“任务甲完成,然后我们有十五分钟的重新校准时间,接着是任务乙,又是一个十分钟的间隔。这就像操作一个工厂,每生产一件产品,流水线就完全停下来。” 戴维斯工程师扶了扶眼镜,摇了摇头。“正是如此。我们每天都在损失数小时宝贵的计算时间。这种进程之间的‘空闲时间’是天文数字。机器在等着我们,而我们是它的瓶颈。” “对于如此强大的工具来说,这简直是不可接受的,”汤普森补充道,他缓慢地踱着步。“我们需要一个能够自动管理这些转换、排队作业并减少这种代价高昂的停机时间的系统。”

机器利用效率低下的严酷现实,激发了计算机先驱们一个激进的愿景:如果机器本身能够管理自己的进程呢?这个想法是创建一个“主程序”,它驻留在计算机内存中,…

机器利用效率低下的严酷现实,激发了计算机先驱们一个激进的愿景:如果机器本身能够管理自己的进程呢?这个想法是创建一个“主程序”,它驻留在计算机内存中,协调其他程序的执行,处理资源分配,并最大限度地减少人工干预。这种“监督”或“监控”程序的概念是操作系统的思想先驱,它有望将混乱的手动操作转变为流线型、自动化的工作流程。 “我们需要一个监督程序,一个机器内部操作的交通管制员,”伊芙琳·里德博士提议道。她是一位才华横溢的计算机科学家,三十多岁,留着整齐的棕色头发,穿着考究的二十世纪五十年代商务套装。她指着白板上一个复杂的示意图说:“想象一个常驻程序,它接收任务,加载它们,执行它们,然后为下一个任务准备机器——所有这些都在任务之间无需任何人工干预。” 工程师大卫·金,一位二十多岁、认真好学的程序员,留着黑色短发,戴着眼镜,穿着一件干净的白衬衫,若有所思地说道:“一个管理其他程序的程序。这听起来像是给机器一个大脑来管理自己的事务。其本身的复杂性……内存保护、输入输出处理、错误恢复……” 里德博士笑了。“正是如此。正如列奥纳多·达·芬奇曾经说过的那样,‘简洁是终极的复杂。’我们的挑战不仅仅是自动化,而是以一种潜在的优雅来设计这个系统,使其能够处理机器固有的复杂性。它必须对程序员来说显得简单,即使其内部运作错综复杂。”

理论思想开始汇聚成实际解决方案。最早且最具影响力的监控系统实现之一是通用汽车-北美航空输入输出系统(GM-NAA I/O…

理论思想开始汇聚成实际解决方案。最早且最具影响力的监控系统实现之一是通用汽车-北美航空输入输出系统(GM-NAA I/O system),由罗伯特·帕特里克于一九五六年为国际商用机器七零四型计算机在通用汽车和北美航空开发。这个开创性的系统迈出了关键一步,用自动化作业排序取代了手动设置。这是一个基础性的飞跃,将昂贵大型机的操作从手动输入过程转变为更连续、面向批处理的工作流程。 “通用汽车-北美航空输入输出系统真正彻底改变了我们在国际商用机器七零四型计算机上的操作,”罗伯特·帕特里克解释道,他是一位专注的工程师,三十多岁,留着实用的短棕发,戴着眼镜,穿着塞进裤子的短袖衬衫和领带,在一个繁忙的实验室里向来访的同事解释。“我们的目标很简单:消除批处理作业之间的手动干预。以前,我们每个程序之间都要浪费几分钟。” 他的同事,工程师莎拉·陈,三十出头,留着黑色短发,穿着一件得体的女式衬衫,指着一张显示“常驻监控器”的图表。“所以,这个‘监控器’一直驻留在内存中。它读取作业控制卡,加载用户程序,然后在作业完成后返回控制权?” “正是如此,”帕特里克肯定道。“这是一个连续的循环。监控器本身是一个程序,但它的工作是管理其他程序的执行。这大大减少了我们的空闲时间,提高了吞吐量。每次运行之间不再需要手忙脚乱地操作磁带或开关了。”

GM-NAA I/O…

GM-NAA I/O 系统遵循一个简单而深刻的原则:批处理。操作员不再一次只加载一个程序,而是将多个作业捆绑成一个“批次”,每个作业前面都有一张特殊的控制卡。驻留监视器程序会顺序读取这些控制卡,自动加载正确的用户程序,执行它,然后清理,再转到批次中的下一个作业。这种自动化排序是一个里程碑式的进步,因为它使 CPU 持续运行,最大限度地减少了困扰早期计算的昂贵等待时间。 “它是这样工作的,”帕特里克在控制台前演示时解释道,“我们准备一批程序,每个程序都由这些专门的控制卡清晰地划分。监视器程序本身很小,但功能强大。它始终在机器内存的一小部分中运行。” 陈观察着一叠穿孔卡片被送入读卡器。“所以,监视器读取一张卡片,识别程序,分配资源,然后将控制权交给用户程序?” “没错,”帕特里克证实道,“一旦用户程序完成任务,它会执行一个特定的指令,将控制权交还给我们的监视器。监视器然后检查下一张作业卡,加载下一个程序,循环继续。这种自动化交接是最大限度减少空闲时间的关键。我们已经将一系列手动停止变成了流畅、连续的计算流。”

虽然批处理显著提高了效率,但计算机一次仍然只执行一个程序。下一个逻辑飞跃是多道程序设计:允许多个程序同时驻留在内存中,而中央处理器在它们之间快速切换。

虽然批处理显著提高了效率,但计算机一次仍然只执行一个程序。下一个逻辑飞跃是多道程序设计:允许多个程序同时驻留在内存中,而中央处理器在它们之间快速切换。这与分时技术相结合,将多道程序设计扩展到允许多个用户同时与计算机交互,从而将计算从单一的、面向批处理的任务,彻底转变为强大的交互式实用工具。早期的努力,例如麻省理工学院在一千九百六十一年推出的CTSS(兼容分时系统),起到了关键作用,它证明了一台机器可以有效地服务于许多用户。 “真正的挑战是如何在简单的批处理之外,最大限度地提高中央处理器的利用率,”艾丽斯·斯特林博士向她在麻省理工学院的团队解释道。她是一位富有远见的计算机科学家,四十多岁,留着短短的灰色卷发,眼神锐利而睿智,穿着一件粗花呢夹克。“当中央处理器可以处理另一个程序时,为什么它要闲置着等待一个程序的输入/输出操作完成呢?” 年轻的程序员迈克尔·陈,二十出头,发型整洁,表情热切,穿着一件大学毛衣,他身体前倾。“所以,我们一次将多个程序加载到内存中,然后操作系统在它们之间快速切换中央处理器?但是内存冲突怎么办?我们又如何确保程序之间的公平性呢?” 斯特林博士点了点头。“问得好。这需要复杂的内存管理和中央处理器调度。操作系统成为一个裁判,仲裁资源,给予每个程序公平的处理器时间份额。这是内核的核心职责——一个关键的抽象层,它将程序彼此隔离,并屏蔽了硬件的复杂性。”

每个操作系统的核心都是内核,它是最基本的组成部分。内核管理着计算机最关键的资源:中央处理器、内存和输入/输出设备。

每个操作系统的核心都是内核,它是最基本的组成部分。内核管理着计算机最关键的资源:中央处理器、内存和输入/输出设备。它充当中间层,将复杂的硬件细节从应用程序中抽象出来,提供一个一致且安全的环境。其关键机制包括:中央处理器调度,它决定哪个程序可以使用处理器以及使用多长时间;内存管理,为每个程序分配和保护内存段;以及输入/输出管理,控制与键盘、显示器和存储等外围设备的通信。 “内核是操作的大脑,是第一个加载到内存的程序,也是最后一个离开内存的程序,”首席架构师莉娜·彼得罗娃博士解释道。她是一位四十多岁、头发花白、向后梳理的女士,穿着一套专业且略显严肃的套装,向一位新入职的工程师解释说,“它处理一切事务,从进程调度——决定哪个程序轮到使用中央处理器——到管理每一个字节的内存和每一个外围设备。” 新工程师亚历克斯·约翰逊,二十出头,热情专注,手里拿着一本厚厚的说明书,回答道:“所以,当一个程序请求一个文件时,是内核将这个请求转化为实际的磁盘操作,对吗?它还能防止一个程序覆盖另一个程序的内存吗?” “正是如此,亚历克斯,”彼得罗娃博士确认道,她指着一张显示同心圆的图表。“内核在特权的‘零环’中运行,拥有绝对控制权,而应用程序在‘三环’中运行。这种保护机制是基础。这意味着一个有缺陷的应用程序不会导致整个系统崩溃。正是这个抽象层使得现代计算稳定高效。”

到二十世纪六十年代末,随着贝尔实验室创造出 Unix,操作系统的演进达到了一个关键时刻。Unix…

到二十世纪六十年代末,随着贝尔实验室创造出 Unix,操作系统的演进达到了一个关键时刻。Unix 主要由肯·汤普森和丹尼斯·里奇开发,旨在成为一个比其前身更简单、更优雅、更重要的是更具可移植性的操作系统。其创新的设计,特别是对命令行界面、分层文件系统以及用于进程间通信的强大管道概念的关注,使其具有令人难以置信的灵活性和适应性。Unix 的效率和清晰的架构直接解决并化解了早期计算中发现的“空闲时间”和效率低下问题,从而实现了前所未有的资源利用。 “我们想要一个简单、优雅、可移植的东西,”肯·汤普森解释道,他是一位二十多岁、专注的工程师,留着一头深色蓬乱的头发,戴着眼镜,穿着一件休闲的纽扣衬衫,他对丹尼斯·里奇说。他们正弓着身子趴在电传打字机终端前,纸质输出上滚动着代码。“Multics 太雄心勃勃了,也太复杂了。我们需要一个操作系统本身就是一系列小型、专注工具的系统。” 丹尼斯·里奇,留着他标志性的胡须,表情沉思,二十多岁,穿着一件简单的衬衫,敲入了一个命令。“这就是文件系统和管道真正闪光的地方。像管道一样连接程序——一个程序的输出成为另一个程序的输入。它从简单中创造出巨大的力量。” “没错,”汤普森肯定道,眼睛盯着屏幕。“通过设计一个健壮的内核和一套可以轻松组合的实用程序,我们开启了新的生产力水平。不再因为复杂的设置而浪费周期;Unix 有效地优化了机器的时间,无缝管理进程,并允许开发人员从简单的组件构建复杂的系统。”

Unix…

Unix 等开创性操作系统所确立的原则深刻影响了下一代计算。随着微处理器的出现,使得更小、更经济的计算机成为可能,对强大且用户友好的操作系统的需求变得至关重要。CP/M、MS-DOS,以及后来的 Apple DOS 和 Macintosh 操作系统等系统,为个人计算机带来了复杂的资源管理和用户交互。这一转变使计算能力得以普及,将其从专业的实验室和企业数据中心带入世界各地的家庭、办公室和大学。 “这太不可思议了!我竟然可以直接输入命令并立即看到结果!”年轻的学生玛丽亚·罗德里格斯惊叹道。她二十出头,一头卷曲的黑发,穿着一件休闲的二十世纪八十年代毛衣,正坐在大学实验室里的一台早期 Apple II 电脑前。“这不像我们教授描述的批处理作业。我感觉我正在和电脑对话。” 她的同学大卫·李,二十出头,一头直黑发,表情沉思,穿着一件牛仔夹克,俯身过来。“这就是操作系统的力量,玛丽亚。它管理着底层的一切,所以我们只需专注于我们的程序。IBM PC 上的 MS-DOS,或者 Macintosh 上的图形界面,让它变得更容易。它正在让每个人都能接触到计算,而不仅仅是专家。” “确实如此,”他们的教授埃莉诺·范斯博士评论道。她五十多岁,一头优雅的灰发,带着会心的微笑,穿着一件西装外套。“操作系统在我们和硬件之间提供了一个直观的层面。它将一个专家工具转变为大众工具。这不仅仅是关于更快的计算;这是关于赋予个人权力。”

如今,操作系统是我们数字世界的无形建筑师,是支撑我们几乎所有互动技术的不可或缺的底层。从驱动全球网络的强大服务器到我们口袋里的智能手机,从汽车和医疗…

如今,操作系统是我们数字世界的无形建筑师,是支撑我们几乎所有互动技术的不可或缺的底层。从驱动全球网络的强大服务器到我们口袋里的智能手机,从汽车和医疗设备中的嵌入式系统到云计算的复杂基础设施,操作系统管理、分配和保护着大量的计算资源。它们是无声、持续的协调者,确保效率、稳定性和安全性,这是那些致力于将混乱硬件转变为有组织、智能系统的富有远见工程师的遗产。 “叙事以视觉为主,蒙太奇场景上附有简短的集成标签。”