许式伟的架构课
许式伟
七牛云 CEO
84945 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 89 讲
许式伟的架构课
15
15
1.0x
00:00/00:00
登录|注册

06 | 操作系统进场

安全管理
网络管理
输出设备管理
输入设备管理
存储管理
进程管理
操作系统、浏览器和搜索引擎的关系
移动时代的浏览器
互联网内容管理
模糊的边界
移动时代的Android和iOS
PC市场
收税模式的现代操作系统
核心的流量入口
基础的刚需软件
解决基础编程接口问题
解决软件治理问题
DOS/Windows在个人计算机市场的成功
UNIX和DOS的崛起
大型机时期的单任务计算机
未来展望
操作系统与浏览器的关系
操作系统与硬件的关系
商业价值
客户价值
操作系统的发展历程
引导程序跳转到外置存储引导区的固定地址,将执行权交给引导程序
BIOS包含存储设备驱动程序、外部设备驱动程序、设备管理能力、支持执行外置存储引导区的机器代码程序
计算机加电启动后,CPU加载指令序列执行
边界
需求演进
启动过程
操作系统

该思维导图由 AI 生成,仅供参考

你好,我是七牛云许式伟。
在编程语言出现后,软件生产效率得到了大幅度的提升。随着越来越多软件的出现,自然而然就诞生了多个软件如何共处,也就是软件治理的需求。比如下面的这些需求场景。
多个软件如何同时运行(多任务的需求)?
多个软件如何共同使用计算机上的存储空间(内存管理、文件系统的需求)?
多个软件如何共同使用同一个外部设备(设备管理的需求)?
多个软件如何相互通讯,如何进行数据交换(进程间通讯、共享内存的需求)?
病毒、恶意软件如何治理(安全管理的需求)?
如果没有一个中间的协调方,软件与软件之间并不知道彼此的存在,你不难想象出,这种没有统一规则约束下的场面,会有多么凌乱。
于是,操作系统就出现了。对于软件而言,它像一个大法官,制定规则并据此约束大家的行为。

操作系统的启动过程

操作系统是怎么获得执行权的?
这是计算机主板 ROM 上的启动程序(BIOS)交给它的。
计算机加电启动后,中央处理器(CPU)会从一个固定的存储地址加载指令序列执行。通常,这个固定的存储地址指向计算机主板的 ROM 上的一段启动程序(BIOS)。这段启动程序通常包含以下这些内容。
存储设备的驱动程序,用以识别常规的外置存储设备,比如硬盘、光驱、U 盘。
基础外部设备的驱动程序,比如键盘、鼠标、显示器。
设备和启动配置的基础管理能力。
支持执行外置存储中引导区的机器代码程序。
跳转到外置存储引导区的固定地址,把执行权交给该地址上的引导程序。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

操作系统是计算机中的大法官,负责协调多个软件的运行和资源管理。文章首先介绍了操作系统的启动过程,从计算机主板ROM上的启动程序(BIOS)开始,解释了操作系统如何获得执行权。随后,文章回顾了操作系统的需求演进,从大型机时代到个人计算机时代,阐述了操作系统在客户价值和商业价值上的重要性。在客户价值方面,操作系统解决了软件治理问题,包括进程管理、存储管理、输入输出设备管理、网络管理和安全管理等。在商业价值方面,操作系统成为了基础的刚需软件,带来了丰厚的利润。文章还指出,操作系统是核心的流量入口,占领了操作系统就占有了用户,成为推送内容给用户的便捷途径。最后,文章提到了现代操作系统的商业模式,如iOS和Android构建的商业闭环,以及Web操作系统(浏览器)如微信小程序,实现了“帐号-支付-应用市场”这样的商业闭环。文章通过对操作系统的启动过程、需求演进和商业模式的介绍,全面展现了操作系统在计算机领域的重要性和影响力。文章深入探讨了操作系统与硬件、浏览器之间的关系,以及移动时代的浏览器和操作系统的相处方式。操作系统的核心价值在于实现软件治理和提供基础的编程接口,而商业价值则体现在其成为刚性需求和核心的流量入口。现代操作系统引入了“账号-支付-应用市场”商业闭环的收税模式,成为了操作系统的新形态。通过对硬件、操作系统、浏览器三者关系的分析,读者可以对需求发展做出预判。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《许式伟的架构课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(101)

  • 最新
  • 精选
  • coder
    许老师,您好,虽然自己是科班出身,但是对于下面这个问题困扰了我很久: 1. 一般来说程序的运行需要OS的支撑,那么在BIOS之前,选择运行哪个操作系统那一段程序是怎么运行的?再问一句,编译器可以独立于操作系统运行吗? 2. 可以用C语言去实现很多其他的语言,比如说python, go等,那在C语言之前,这么一直追寻下去,会衍生成鸡生蛋的问题。但是编程语言又具有自举的功能,那自举是怎么实现的?e.g. 目前版本的go核心实现中,很多是用go本身实现的,它是怎么做到自己编译自己的?

    作者回复: 1、程序运行不需要操作系统支持,有bios支持就可以(把控制权交给它)。编译器可以独立于操作系统存在,而且它应该先于操作系统产生。 2、语言诞生的过程是这样的:机器码 =》汇编 =〉C =》C写的汇编,C写的C(自举)。当然这个过程不需要每次新架构的cpu或操作系统都重新来一遍,因为人是聪明的,发明了交叉编译这样的东西,C =〉新平台的C,这样就一下子完成整个语言的进化了。

    2019-05-05
    7
    79
  • 晓凉
    隐隐感觉到架构的主要难点在于对需求的前瞻性判断,这要求的不仅仅是技术能力。目前几乎所有的架构课程,都是基于确定的需求来讲技术架构,例如秒杀系统怎么做高可用高并发。能听到许老师这么高视角讲架构,实在幸运。

    作者回复: 架构在于创造,如果你从事的事情总是重复别人,那这个公司又有何价值?即使有所参考,也应该有自己的精气神,这个精气神是需要架构师把它干出来的

    2019-05-04
    3
    38
  • gbfa
    这种对需求的前瞻性探索挺重要,但同时感觉也是最难的,应该如何培养呢~

    作者回复: 很多时候是思维方式的转变。首先要尝试去做前瞻,预测错了并不可怕,但可以事后复盘到底是缺失了什么重要的信息让你判断出现什了偏差。

    2019-05-06
    22
  • Cordova
    根据老师的理论过程来看,个人觉得操作系统它是一个没有明确边界的,只有放在历史(时间)的维度上它才有边界的表现,其实也不需要去深究其边界、在pc时代互联网的出现的确让人感觉浏览器赋予了不同反响的历史使命,以后将发挥更大的价值,移动时代发现我们所需要的内容不仅仅可以在浏览器上才能获取到,在不同的内容平台也能获取到自己想要的内容,而现在正是如此、要说操作系统的下一次演进、我想只有两个方向:更具有便携性、个性化的硬件产品出现了,这会进一步催生… 历史好像就是这样的,但实际是软件反推动硬件(第二个方向):信息数据格式和渲染出现了新的表现形式。浏览器就让他一直停在pc时代随着pc演进吧、app就让他跟着移动端的脚步继续前进吧。至于以后,微系统-多联网、也许是下一步吧、这又将催生出怎样的新生态~ 拭目以待!

    作者回复: 挺好的思考

    2019-05-09
    2
    14
  • frostawn
    许老师,小白请教个很困惑的问题。 为什么pc可以有兼容机,让操作系统windows收费或者linux免费各占半壁江山,但是手机不能有兼容机呢,而说手机是个性化产品,不能标准化,他们再怎么个性,也脱离不了前面讲过的冯诺依曼体系吧。而且现在现实也是有安卓和ios两大阵营。所以并不是技术上没做到兼容,而是商业盈利模式的区别,ios可以利用支付闭环将流量变现,安卓拿不到支付系统的控制权无法做生意盈利。 请您指教。谢谢!

    作者回复: 和技术没关系,是人性的问题。手机是人体器官的延伸,是门面,用户不会接受白牌机的,所以手机不是技术上做不到兼容机,而是人性上不会接受白牌机。

    2019-05-09
    3
    12
  • 苟范儿
    老师现在主要提到的是终端(PC/Mobile)类的操作系统. 当前的云计算底层的系统,以及未来 IoT 边缘系统会有什么特殊之处么?

    作者回复: 挺好的问题。后面会在第三章服务端开发再次讨论操作系统,会探讨它的演进历程和方向。

    2019-05-06
    12
  • Smallfly
    许老师,我今天重新回顾了一遍这篇文章,以需求为出发点的写法,给读者的印象更加深刻,也更好理解,非常赞。但是我有两个问题想请教: 1、 对于六大系统的划分,文件和内存被统一为存储管理,为什么不把输入输出合并为设备管理呢?后面也都只是放一篇文章讲的。 2、 如何理解 PC 兼容机?是指 PC 能运行 Windows 和 Linux 么?而像三星小米只能运行 Android,iPhone 只能运行 iOS,所以不是兼容机?

    作者回复: 1、这里的输入与输出设备,是指用户输入和面向用户交互的输出设备,不同于冯诺依曼结构中提到的输入输出设备(泛指所有设备,包括存储设备和网络设备)。输入与输出设备管理合并为一章并不是因为它的内容少,而是因为它不是本章的重点。 2、PC 兼容机是指白牌机,没有品牌或品牌几乎没有知名度。而且很多白牌机连操作系统都没有预装,硬件厂商没有意识到预装是一个巨大的市场。

    2019-06-06
    7
  • 胡鹏
    老师: 大概两个月前听到这篇文章, 期间在做spark相关的需求, 从中了解到程序开发的时候, 很多情况下需要花大把的精力来考虑分布式的问题 操作系统的出校是为了治理软件: 分布式系统的出现, 是为了解决单个机器无法完成的超大存储或者运算. 现在确实已经出现了相应的软件, 比如spark就是分布式计算, 区块链就是分布式存储. 同是目前在学习k8s, 发现k8s也是为了治理分布式软件的. 但是目前却没有一款 操作系统 能够把分布式计算和分布式存储统一起来, 封装在底层, 从而使软件开发更多就需要关心业务, 而不用太多的考虑分布式问题 我认为 分布式操作系统 大有可为, 但是目前还没有发展到这个层面还是说很多人都考虑到了, 但是有什么技术限制之类的?

    作者回复: 你说的分布式操作系统,大概率未来是k8s的

    2019-07-03
    6
  • apk
    对于“PC无法摆脱操作系统控制但是手机厂商可以摆脱Google的控制形成自己的商业闭环”这一点不是明白? Pad、一体机这些能不能也形成自己的商业闭环呢?

    作者回复: 历史阶段不同。PC的历史再演一遍,可能会是完全不同的结果。

    2019-05-08
    4
  • crazier.huang
    操作系统软件服务的治理,那到底治理的是什么。像现有Spring的架构他事实上也提高了治理。但两者治理是截然不同的,那么治理最核心的概念又是什么

    作者回复: 不同领域的治理目标并不一样。操作系统的软件治理,最核心目标最基础的是软件之间和谐共存。比如Kubernetes,它也负责软件(服务)治理,最核心的目标就变了,变成软件在线上远行的稳定性和可维护性。

    2019-08-16
    3
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部