零零客微文大全00ke.net

  • 24K 内存上诞生的操作系统,是如何改变计算机世界的?
  • 来源:CSDN

图片

作者 | 李磊       责编 | 欧阳姝黎
出品 | 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 与专利,开源与创新


CSDN
设置专利制度能否促进更好的创新?#大咖来了#悦读时间#程序员#创新#知识大作战#开源#互联网
视频号

不久前,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 岁危机


CSDN
很多操作系统都是经验丰富的老程序员开发出来的,为什么他们没有经历 35 岁危机?#程序员#悦读时间#大咖来了#知识大作战#互联网#操作系统#UNIX#技术#创新#开发系统
视频号

除了 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 的问答社区,有一个同学写出来一个非常短小精悍的命令,只用三行就把这个问题解决了。

图片

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

魏永明:UNIX 的诞生,并非一蹴而就,它之前经历过许多失败,开发的过程中也遇到了各种困难,但最后还是成功了,当时的一些概念也保留到了今天的操作系统。

许多开发者并不了解操作系统,因为它太底层了。做 Java 或 JavaScript 不会考虑这些东西,但如果再往下看的时候,会发现最早的技术,发展到现在仍然是编程的重要思想。

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

在这种情况下,中国的技术软件要突破,造轮子是有必要的。多做一些基础性的东西,不停的造轮子,这次是方的,下一次会越来越圆,也越来越牛。

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

过去在国内做系统基础软件很困难,CSDN 在 2004 年曾收购 ChinaUNIX,想推 UNIX,但是很困难。现在时机到了,我们进入一个新技术范式的时代,类似于当年的 PC DIY ,一切智能硬件都可以加上 IOT OS ,这个 OS 可以重新改造。

《UNIX 传奇》这本书在中国应该给两种人看:

一种是想做程序员的人;看完后他会发现做一个系统很酷,因为是在创造一个平台,别人都要按照他制定好的规则往前走,这种感觉非常美妙。

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

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

为什么贝尔实验室在当时的条件下,能创造出这么多的技术?怎么创造一个好的环境,让这些聪明的人,在没有 KPI 的考核下,做出有价值有意义的事情?中国非常需要这样的环境,所以这本书在中国出版的价值比在美国大。


图片

趁年轻,多挑战


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

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

魏永明:了解计算机科学的早期发展历史,在这个基础上,走好自己的路。

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

观看完整视频,扫码观看直播回放

图片

更多好书推荐,阅读分享,尽在「CSDN 悦读时间」

科技

1 2 3 4 5 >> 

公众号 • CSDN

Flag Counter