查看原文
其他

Unix 消亡史,Linux 如何崛起 | 极客头条

Dave Taylor CSDN 2019-05-25

你还记得最早用 UNIX 是什么时候吗?

在这篇文章中,专栏作家戴夫·泰勒(Dave Taylor)将回忆 UNIX 的早期阶段以及分享 Linux 是如何从一颗 UNIX 的种子萌发和进化而来的。

作者 | Dave Taylor

译者 | 王艳妮

责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

Linux Journal二十五周年了。这也是我在这本杂志上写的第161个专栏,这意味着我已经陪伴这本刊物将近14年了。时间都去哪儿了?

为了纪念这期杂志的历史意义,我想分享一下我对UNIX、Minix和Linux最早期的一些回忆。如果你常读我的专栏,你应该记得我正在开发一个邮件合并Bash实用程序,但这个需要放一放了。我保证,在此期间我也不会忘记shell的!


那些年


1980年底,作为一名计算机专业学生,我第一次踏上加州大学圣地亚哥分校的校园。那时,我们的很多cs课程都基于Apple II系统上的UCSD Pascal。对软盘驱动器和那些笨拙,像素化——但是很有趣的——我们在实验室玩的Apple II游戏,我仍然保留着美好的记忆。

然而,对于更严肃的课程,我们有一些大铁家伙——一个带有帐户的大型机和在指定房间设置的远程计算机实验室终端。那些系统之上的操作系统? UNIX——我猜测是BSD UNIX的早期版本。它使用modem到modem的连接来联网,称为UNIX-to-UNIX Copy Protocol或UUCP。如果你想向某人发送电子邮件,使用的地址是:

unique-hostname ! unique-hostname ! account

我不记得我的UCSD电子邮件地址,但几年后,我是UUCP hub hplabs管理团队的一员,而我的电子邮件地址只是简单的hplabs!taylor。

在此过程中,计算机网络因为TCP / IP的出现而向前发展了。一旦我们有多对多连接,很明显“!”符号无法使用且过于复杂了。我们不想担心路由的问题,只考虑目的地。输入“@”符号。我就变成了taylor@hplabs.com。

与此同时,UNIX不断增长,而MIT的X Window系统因其在UNIX的命令行上层的UI而越来越受欢迎。实际上,X是一个我和我的同事们在Xerox Palo Alto研究中心首次看到的窗口系统在公共区域的实现。Palo Alto研究中心的计算机在“窗口”中同时在屏幕上显示多个程序,并且有一个用于控制它们的指针设备 - 太酷了。 Doug Englebart也受到启发。他回到斯坦福研究所,发明了鼠标,以便更容易控制这些窗口。在Apple,他们也看到了Palo Alto研究中心的在做的东西,并受到启发,创造了具有所有窗口优点的Macintosh。

还有,谁会不喜欢命令行呢,就像Ritchie和Kernighan最初在UNIX早期设计的那样? (顺便说一下,UNIX的名字来源是一个文字游戏,是关于一个先前的名为Multics的多用户操作系统的,但那就是另一个故事了。)


知识产权为谁所有?


UNIX的麻烦在于软件知识产权的老大难问题。 UNIX来自AT&T的贝尔实验室,所以UNIX为AT&T所有。我们学者对此并不太开心,因此加州大学伯克利分校的计算机科学研究小组(CSRG)替换了UNIX的某些部分。他们发布了BSD UNIX。 这引起了后来AT&T起诉他们的著名官司,因此CSRG只好从底层开始全面重写。我为BSD 4.3做出的骄傲贡献(除了我受欢迎的Elm电子邮件程序)是重写了寻找Wumpus(Hunt the Wumpus)。是的,就是我重写的。

与此同时,BSD重写UNIX这件事启发了世界各地的人,包括Andrew S. Tanenbaum,他拼凑起了MINIX作为他Operating Systems Design and Implementation一书的教学工具。一个芬兰开发者在把玩MINIX过程中进一步受到启发,而他的名字,你猜得到,就是Linus Torvalds。

这时候,知识产权世界在商业方面依旧乌烟瘴气。 Sun Microsystems和Digital Equipment Corporation这两家公司试图跨越专有商业开发和公共领域软件之间的界限。但是软件版权时至今日仍然困扰着我们,所以毫不奇怪,在Linux的发展过程中,这是火上浇油——偶尔甚至是火灾本身。

软件版权问题的混乱之中出现了另一个有意思的家伙:Richard Stallman。他厌恶私人企业软件所有权和自由软件之间的混淆。在技术界其他人的大力帮助下,Stallman开始构建GNU(字面意思是GNU不是UNIX),并且在此过程中,他创建了自由软件基金会(Free Software Foundation)。

自由软件基金会后来成为了Linux和现代UNIX系统许多构建模块的基石,尤其是编译器。一个结果就是产生了GNU / Linux(即具有GNU实用程序的Linux)。有一段时间,它居然被叫做Lignux。噫。

由于现在没有Linux的GNU并不是很有用,它基本上被同化为核心Linux,而且几乎所有Linux的发行版都包括GNU实用程序或GNU版本的从UNIX那儿传承而来的工具。如果你很好奇的话,可以查查你的操作系统上的find,cc和grep,看看你是否有GNU版本。


寻找个锤子的Wumpus


我吗?好吧,寻找 Wumpus是很有趣,但是大家对把我的Elm邮件系统安装到他们的UNIX / Linux版本中更有兴趣,我记得在USENIX会议上参加一些最早的FSF会议。我们基本上只是争论知识产权和GNU通用公共许可证(Copyleft)的细节。我不同意它适用于我的软件,因为如果其他人打算出售或从我的软件中获利,我觉得我从中分一杯羹是很公平的。这就是为什么Elm没有GNU版本,如果你感兴趣的话。

还有,哦,那些USENIX会议。 USENIX是面向UNIX程序员和用户的专业组织(它比Linux要早),而且我很确定当时我们都不清楚自己正在创建什么。我记得当时我和Larry Wall,Eric Allman,Bill Joy以及其他大多数开发人员一起玩。我们那时候就是一堆书呆子——有点像“书呆子的复仇”而没有复仇的部分,至少,那个时候还没有!

我们这些用UNIX的人一直不断听说关于Linux的事情,老实说,大家的态度一般是否定的。 UNIX体量庞大,难以复制,一群孩子在地下室里鼓捣也无法在贝尔实验室和加州大学伯克利分校CSRG非凡工作的基础上做出好的成果。哦,我们那时简直错的离谱。

一条不太相关的历史背景:Linus当时实际上想把他的UNIX版本叫做“Freax”,作为“Free”和UNIX的文字游戏。幸运的是,几个月后,它变成了我们今天使用的名字——当然了,现在这个名字好多了。

与此同时,随着Linux的发展壮大,UNIX正在逐步在失去用户。一个免费的操作系统,甚至能将旧PC变成不错的服务器?它必然很受欢迎。随着X Window系统和图形应用程序中不同窗口管理器的出现,Linux突然就能与Windows和Mac OS抗衡了。

还记得在惠普公司,我们讨论了我们带正版UNIX系统的昂贵的HP工作站(叫做HP-UX)与客户想要运行飞速发展的Linux之间的矛盾。像许多大型私有软件公司一样,惠普在Linux世界起步很晚,但惠普后来肯定已经恶补过了——这很幸运,因为许多专有的UNIX操作系统公司已经失败并销声匿迹了。

今天有各种令人眼花缭乱的不同Linux发行版,所有这些版本其核心仍然是UNIX。哎呀,现在Windows和MacOS X都有一些UNIX核心,甚至还有完整的命令行。你使用的那些Bash命令行?那些带有加密“flags”的指令?你可以感谢AT&T贝尔实验室,加州大学伯克利分校的计算机科学研究组,麻省理工学院的媒体实验室以及我们很多爱好者,他们都致力于创建你所熟悉和喜爱的系统。

警告:我确信在这个回忆中有一些地方记错了。我为此事先道歉,但是,嘿,历史不再像过去那样了。

原文:https://www.linuxjournal.com/content/back-day-unix-minix-and-linux

作者简介:Dave Taylor,长期在UNIX 和Linux上写脚本语言,是Learning Unix for Mac OS X and Wicked Cool Shell Scripts一书的作者。

本文为 CSDN 翻译,转载请注明来源出处。

【END】

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

 热 文 推 荐 

☞华为员工年薪 200 万!真相让人心酸!

☞TIOBE 5 月编程语言排行榜:Python、C++ 竞争白热化,Objective-C 已沦为小众语言

☞从初级程序员逆袭为技术大牛,你需要懂这 10 项技术!

☞天才程序员:25 岁进贝尔实验室,32 岁创建信息论

☞华为员工年薪 200 万!真相让人心酸!

☞太形象了!什么是边缘计算?最有趣的解释没有之一!

☞安全顾问反水成黑客, 靠瞎猜盗得5000万美元的以太币, 一个区块链大盗的另类传奇

☞人造器官新突破!美国科学家3D打印出会“呼吸”的肺 | Science

☞她说:为啥程序员都特想要机械键盘?这答案我服!

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存