• 简中
    • 繁中
  • 注册
  • 查看作者
  • 24K 内存上诞生嘅操作系统,系点样改变计算机世界嘅?

    转载:本文来自微信公众号“CSDN”(ID:CSDNnews),作者:李磊,转载经授权发布。

    1969 年,美国新泽西州,贝尔实验室嘅阁楼上,一台 24K 内存嘅电脑里,一个操作系统孕育而生,佢嘅名叫 UNIX 。随后嘅半个世纪,UNIX 带动‌软件行业嘅创新,甚至改变‌计算机技术嘅发展轨迹,成为计算机历史上嘅一座丰碑。

    UNIX 系点样诞生嘅?贝尔实验室为何培养‌那么多图灵奖得主?UNIX 操作系统为何重要?中国操作系统嘅未来会点样?

    为此,《CSDN 悦读时间》栏目邀请到‌ CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛,飞漫软件总经理、HybridOS 操作系统创始人魏永明,CSDN 副总裁、前微软研发总监邹欣,《UNIX 传奇》译者、IT 产品同运营专家韩磊,围绕最新发布嘅《UNIX 传奇》一书,揭秘操作系统鼻祖 UNIX 嘅发展史,探寻传奇之路嘅可借鉴之处。

    初识 UNIX 系统

    何时开启‌ UNIX 之路,其中遇到过边啲有趣嘅故事?

    蒋涛:我最早学习 UNIX 系喺 80 年代末,噉时进机房得穿白大褂,主要目嘅系防静电。1991 年,我进入银行工作后发现,银行用嘅都系 UNIX 系统,所以我还写过 UNIX shell 嘅程序。

    唔耐喺 PC 时代来临之际,我转用‌ DOS 系统,DOS 比 UNIX 简单,系一个降维版嘅操作系统,由命令行驱动,而好多命令来自 UNIX。DOS 之后是 Windows、Mac OS 等主流操作系统,所以说 UNIX 是所有现代操作系统嘅鼻祖。

    魏永明:我第一次接触 UNIX 系喺 1996 年,为‌运行 Oracle 数据库要开发一个集成系统,使用嘅就是 UNIX 。仲记得 UNIX 里有一个 VI 文本编辑器,当时觉得佢唔如 Windows 嘅文本编辑器,唔系几好用。

    后来喺认识 UNIX 和 Windows 嘅历史后,先发现佢们嘅发展路径和我嘅认知路径正好相反:我先知道 Windows 和 DOS 系统,再进一步认识 UNIX,导致对计算机技术发展演进嘅认知是缺失嘅。

    认识 UNIX,使用 UINX ,会对 Windows、Ubuntu、Linux 等操作系统有更清晰嘅认知。

    邹欣:我接触 UNIX 也系喺 80 年代末,当时北大计算机系嘅机房装‌ UNIX,但因为是分布式、多用户嘅系统,使用起来特别慢。毕业之后进入北大工作,负责 UNIX 系统嘅汉化工作,仲要装‌ SCO 嘅 UNIX(OpenServer)。

    当时喺机房工作,闹‌好多笑话。同事们接触 DOS 比较多,下班之后习惯性地关机,第二天发现文件系统唔断报错,唔知道原因,以为是 UNIX 唔行嘎啦。后来先知道关机执行 shut down 之前,要先将文件系统关掉。

    仲有一次,我将 temp 临时目录里嘅文件都删嘎啦,旁边同事嘅项目内容就全部丢失嘎啦,他还纳闷自己嘅 VI 点样没嘎啦,原来系佢将工作内容都放喺 temp 目录下。

    除此之外,大家还会经常犯错,譬如将机器弄死机。当时有一家销售 SCO UNIX 嘅公司,喺北大嘅勺园宾馆租‌一个房间,因为距离我比较近,机器死机之后我就经常去找佢哋借 UNIX 嘅磁带重装系统。喺一次次嘅死机和重装系统后,我也越来越认识 UNIX 系统。

    而家好多人学新技术,连安装系统都唔会,要么是版本唔对,要么是 64 位和 32 位分唔清楚,直接「从入门到放弃」。所以学习嘅时候要从最基本嘅做起,唔怕犯错误,大唔‌就是重装系统。大家都系从装机开始,一步步成长起来嘅,而家回头睇觉得枯燥,当时是乐喺其度,好有意思嘅。

    API 同专利,开源同创新

    唔耐前,Oracle 同 Google 嘅 10 年专利案判决落地,法院判定操作系统嘅 API 接口唔构成专利,您认为呢个判决结果会带来乜嘢影响?

    蒋涛:呢几年,Oracle 因专利问题已被好多人视为“bad company”。Oracle 嘅专利制度已经落后时代。过去信息唔发达,专利是保护创新嘅一种方式,但而家却成为‌大公司“讹诈”小公司嘅重要武器,变成大公司之间嘅诉讼游戏。

    2009 年,微软起诉 Linux 侵犯‌其操作系统处理文件存储嘅专利,一帮支持 Linux 嘅公司就将自家嘅部分专利捐畀开源组织 OIN(Open Innovation Network),扬言都要起诉微软,微软才作罢。

    商业公司过度利用专利保护是反时代嘅,开源才是真正嘅潮流,未来开源会吞噬软件,而 UNIX 就是开源嘅鼻祖。

    因为接口问题,Oracle 和 Google 打‌快 10 年嘅官司,拖‌好长时间。法官喺判决书上写道,设立专利是为‌让人类社会嘅创新有更好嘅发展。将接口开放,有利于程序员更好创新,否则就得重新开发一套新接口,过去依赖呢啲接口嘅工作都要重新再做一遍,十分浪费资源。

    UNIX 嘅源代码被免费捐赠,但开源后嘅商业化并唔成功。反观 Linux 嘅开源,获得‌巨大嘅商业成功,呢也说明专利制度迟早要重新修正。

    而家微软也加入‌ OIN,将部分专利捐畀‌ OIN 组织,仲要收购‌ GitHub,强烈拥抱开源,喺这方面是 180 度大转弯。

    魏永明:Oracle 习惯用官司嘅方式征战获利,当年 Oracle 收购 SUN 公司没有从 Java 赚到钱,但 Google 嘅 Android 利用 Java 赚钱嘎啦,所以 Oracle 就去找 Google 嘅麻烦,意欲分一杯羹。

    编程嘅专利诉讼主要涉及两个方面,一个是编程语言,一个是 API 接口。编程语言实质上已有定论,无论是 C 语言也好,Java 也好,都无办法申请专利,或者做版权保护。因为编程语言使用者越多,生态越繁荣,申请专利后人哋就没法使用嘎啦。

    API 接口喺这十多年里是有争议嘅。喺 Oracle 和 Google 诉讼嘅过程度,判决倾向都系反复变化,一波三折。业界、法律界对呢件事有唔同嘅意见,法官们嘅投票结果都系 6:2 ,并非全票支持。欧美国家采取判例法,有‌呢个判例,之后类似嘅案件就会遵循呢个原则。

    有一啲应用嘅编程接口是有价值嘅,该点样保护系一个好复杂嘅问题,究竟是用专利嘅方式保护,仲要是用 Copyright 版权嘅方式保护,远没有定论。这系一个法律问题,也系一个软件道德问题。

    邹欣:喺呢次判例以前,也有过类似嘅争论。当年,围绕图形用户界面系唔系专利呢个话题,就已经讨论过一次嘎啦。

    和 API 接口类似嘅,仲有一个叫设计模式。我哋提到「工厂模式」,就能立刻知道这系一个单列,如果唔可以用「工厂模式」,就必须另起一个名,日常嘅沟通交流反而唔方便。API 也一样,当一个请求是 Authentication(身份验证),大家会知道佢有典型嘅返回,知道呢个模式可以承接。

    以汽车为例,大家学车嘅时候知道左脚是离合,右脚有刹车和油门,如果将呢个当成专利,第啲车唔可以咁设计,唔同嘅车要用唔同嘅脚操作,噉还点样开车呢?每辆车都必须唔一样,呢对于汽车行业也系一个巨大嘅内耗,没有必要咁做。

    同样,编程序嘅时候,大家也唔希望每个程序嘅模式必须唔一样,呢是违反自然规律和发展规律嘅。如果喺内部实现时将创新隐藏喺模式入面,模式可以自由嘅使用和传播,模式内部实现创新。咁样区别之后,就能有利于创新,也有利于社会嘅发展。

    操作系统同 35 岁危机

    除咗 UNIX ,好多操作系统都系经验丰富嘅老程序员开发出来嘅,点解佢哋没有经历 35 岁危机?家阵时国内做操作系统会和之前、和国外有乜嘢唔同?

    蒋涛:前段时间,Python 创造者 Guido Van Rossum 发推特宣布加入微软,Anders Hejlsberg 也喺评论中表示期待和他一齐工作,呢两个人加起来 100 多岁嘎啦。

    开发系统和架构,需要有经验嘅程序员。Ken Thompson 发明 UNIX 嘅时候算比较年轻,但嗰时候计算机也刚出来没几耐,所以佢喺计算机领域都算系老前辈嘎啦。

    所以说「家有一老,如有一宝」,老将更适合做有价值嘅事,而唔系适应新嘅潮流。世界上嘅编程语言有几百种,点解还要发明新语言?点解还要造一个新嘅轮子?是因为每一种新语言都有佢想要解决嘅问题。

    我哋应该培养更多钻研底层技术嘅程序员,让有经验嘅程序员,来做呢啲更有价值和意义嘅事。现喺国内嘅大公司慢慢地意识到呢一点,都喺度做一啲咁样嘅工作,往架构层和比较深嘅层次去做。

    操作系统和语言咁样嘅大事,唔可能一次就成功,100 种新语言里可能只有 1 个成功。学术界和工程届都系咁样,要将科技创新嘅机制建立起来,利用老同志们嘅经验,也让年轻人能够自由发挥。

    魏永明:而家嘅操作系统和七十年代嘅 UNIX ,有住巨大嘅唔同。操作系统嘅概念,慢慢喺外延。

    喺 UNIX 时代,核心 Core 加上一套工具就组成‌一个操作系统。Windows 和 Mac OS 后,操作系统有‌图形界面,后来仲有 Android 和 iOS 咁样嘅移动操作系统。

    一个操作系统之所以区别于另外一个操作系统,是因为两者喺编程语言和 API 上有区别,但係这两点都无办法用专利版权保护。

    曾经移动端嘅智能操作系统有三个:Windows Mobile、Android、iOS。Android 嘅编程语言是 Java,iOS 之前是 Objective-C,而家是 Swift,佢们嘅语言唔一样,API 也唔一样,所以是两个完全唔同嘅操作系统。

    中国要发展自己嘅操作系统,就得从编程语言咁样基础嘅嘢做起,操作系统和编程语言其实系同根同源嘅。

    技术管理嘅平衡之道

    IT 公司嘅人才管理,即要畀员工自由,鼓励创新;都要保证制度规范,稳定产出;该点样平衡两者?

    邹欣:从 UNIX 诞生背后嘅贝尔实验室来睇,佢嘅管理有一点好重要,就是没有「微观管理」,呢都系成功嘅研究院嘅特性。当年我喺微软研究院时,领导就说,成功嘅诀窍就是招最优秀嘅人过来,然后将佢哋分散开,Get Out Of The Way。

    优秀嘅人知道自己该干乜嘢,畀他自由让他放手做就可以嘎啦,当然同时都要畀他钱,畀他一定嘅资源。

    管理中有啲 KPI 是至上而下嘅,有啲从市场来,有啲从友商竞争中来,仲有一啲是员工自发形成嘅。如果研究院里有一啲优秀嘅人,佢哋发自内心谂将工作做好,就会激发出好嘅环境,自但係然大家就会做出好成绩。

    仲有一个同贝尔实验室齐名,甚至更有名嘅 Xerox PARC(施乐帕克研究中心),都系离公司和管理层好远。Xerox PARC 每周五下午有一个讲座,让一个人来介绍自己正喺度做嘅嘢,下面坐住一群有名嘅科学家,可以自由挑战。

    呢个活动会激发每个人做出优秀嘅工作,如果只做平庸嘅事,搬运人哋嘅劳动成果,就没法上去讲。

    好多人将 R(Research)& D (Development)分开,认为研究和生产是两个方向。比如画画,有人画出一幅蒙娜丽莎咁样嘅名画,唔可以批评他用‌ 5 张草稿纸,太浪费,得控制喺 3 张草稿纸内才是好嘅,呢是唔对嘅。

    研究要允许失败和探索,但公司嘅商业目标都要实现,技术管理者必须有智慧分清楚这两者。

    蒋涛:管理上选择自由还是严格,跟当下嘅科技背景有关。UNIX 诞生喺创造嘅时代,目标是探索未知,探索未知要畀予较大嘅自由度,因为唔知道会发展成乜嘢样。

    有一本书叫《观止》(《Show stopper》),佢嘅价值非常高,记录‌ Windows NT 嘅诞生过程。如果将《UNIX 传奇》和《观止》这两本书对比睇就能发现,UNIX 系喺轻松嘅环境自由创造,但 Windows NT 唔系。

    针对 Windows NT,当时比尔·盖茨目标好明确,就是要做一套工业级嘅图形化操作系统,能兼容各种系统和设备。因此微软用‌ 5 年时间和几亿美金,唔仅挖来‌彼时号称是硅谷最牛嘅 Kerner 开发者大卫·卡特勒,仲要用严格嘅 KPI 管理 200 多名技术人员,最终才取得成功。

    所以说,喺科技嘅创新、应用和竞争阶段,管理嘅方式都系唔同嘅。而家中国就面临住多种维度嘅共存,既有创新领域,也有应用领域,仲有竞争已经好激烈嘅领域。

    大家读完《UNIX 传奇》这本书,就会知道,点样喺高自由度嘅环境创新?边啲领域应该鼓励自由?边啲地方要比竞争对手跑更快,提高市场占有率。

    认识技术演变,学会喺造轮子嘅基础上创新

    回睇 UNIX 嘅发展史,通读《UNIX 传奇》这本书后,您有乜嘢样嘅感想?

    邹欣:UNIX 是经历‌失败后嘅两个人,喺一个快废弃嘅机器上创造出来嘅。这说明就算环境艰苦,只要让优秀嘅设计人员来做,摆脱外界干扰,一样能做好。

    UNIX 非常简洁,有一套自己嘅设计理念,呢非常‌唔起。一件事唔需要做太多太复杂,而是通过积木式嘅组合,或者管道线嘅方式将问题解决。

    举个例子,UNIX 中大部分嘅文件 block 都喺度 4k 以下,噉点样用 awk、sed 或第啲 shell 命令统计出家阵时 UNIX 系统所有文件大小嘅分布情况?呢个问题发喺‌ CSDN 嘅问答社区,有一个同学写出来一个非常短小精悍嘅命令,只用三行就将呢个问题解决嘎啦。

    24K 内存上诞生嘅操作系统,系点样改变计算机世界嘅?

    当年喺《中国计算机报》上,经常有呢种用一行程序解决一个重大问题嘅题目,更多有趣嘅例子,大家可以去《UNIX 传奇》里找,入面有专门讲 UNIX 嘅哲学理念,一啲小工具组合运用嘅方法。当你真正将问题解决,而且是用好简短嘅命令解决嘅,就会感受到美感和爽感。

    魏永明:UNIX 嘅诞生,并非一蹴而就,佢之前经历过好多失败,开发嘅过程中也遇到‌各种困难,但最后还是成功嘎啦,当时嘅一啲概念也保留到‌今日嘅操作系统。

    好多开发者并唔认识操作系统,因为佢太底层嘎啦。做 Java 或 JavaScript 唔会考虑呢啲嘢,但如果再往下睇嘅时候,会发现最早嘅技术,发展到而家仍然是编程嘅重要思想。

    国内做基础软件没有咁样嘅历史条件,而家大部分嘅技术软件,都系从海外尤其系美国基础计算机科学家和工程师发展出来嘅,国内嘅开发者只唔过系喺上面添砖加瓦而已。

    喺呢种情况下,中国嘅技术软件要突破,造轮子是有必要嘅。多做一啲基础性嘅嘢,唔停嘅造轮子,呢次是方嘅,下一次会越来越圆,也越来越牛。

    蒋涛:而家嘅中国喺计算机应用层有好多开发者,但懂操作系统嘅专业人员还好少,需要一批钻研系统嘅人。越认识技术演变嘅历史,对系统嘅理解就会更深刻。

    过去喺国内做系统基础软件好困难,CSDN 喺 2004 年曾收购 ChinaUNIX,想推 UNIX,但是好困难。而家时机到嘎啦,我哋进入一个新技术范式嘅时代,类似于当年嘅 PC DIY ,一切智能硬件都可以加上 IOT OS ,呢个 OS 可以重新改造。

    《UNIX 传奇》这本书喺中国应该畀两种人睇:

    一种系想做程序员嘅人;睇完后他会发现做一个系统好酷,因为系喺创造一个平台,人哋都要按照他制定好嘅规则往前走,呢种感觉非常美妙。

    曾经有个年轻嘅作者写‌本书叫《自己写个操作系统》,Ken Thompson 趁老婆带住孩子回娘家,用三周时间就将 UNIX 操作系统写出来嘎啦,写操作系统没想象嘅那么难。

    第二种是负责科研嘅部门领导;点样做出中国嘅贝尔实验室?要唔好成立中国嘅国家半导体实验室,搞自己嘅基础创新?

    点解贝尔实验室喺当时嘅条件下,能创造出咁多嘅技术?点样创造一个好嘅环境,让呢啲聪明嘅人,喺没有 KPI 嘅考核下,做出有价值有意义嘅事?中国非常需要咁样嘅环境,所以这本书喺中国出版嘅价值比喺美国大。

    趁年轻,多挑战

    畀当代嘅开发者、《UNIX 传奇》中文版嘅读者嘅一句话?

    蒋涛:睇《UNIX 传奇》,学习开源系统,进入开源社区。

    魏永明:认识计算机科学嘅早期发展历史,喺呢个基础上,走好自己嘅路。

    邹欣:年轻嘅时候,多做有挑战嘅事,如果每次都想安稳,会错失好多机会。

    cantonese.live 足跡 粵字翻譯

    2021-04-28 17:06:57

  • 0
  • 0
  • 0
  • 171
  • 请登录之后再进行评论

    登录
  • 任务
  • 发布
  • 偏好设置
  • 单栏布局 侧栏位置: