{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

Linus大学时期写出了linux内核,那个最初的版本仅就技术而言,有多厉害?

CaizhenhaoCaizhenhao 回答0 收藏1
收藏问题

10条回答

edgardeng

edgardeng

回答于2022-06-28 11:26

Linux诞生之初是林纳斯花了两月时间写的勉强可以运行且漏洞百出的Linux0.01版本,他写Linux的初衷很简单,只想看看电脑硬件是如何协同运行的,也就是说他想通过程序来玩硬件。文雅一点就是他想学习。

后来玩腻了,也觉得自己写的东西没多大卵用,所以就本着极客精神放到互联网上给大家一起玩,还引入了开源协议。随着玩这个小系统的人越来越多,大量高手都把自己的业余时间与构思添加如Linux中,当Linux颇具规模的时候被各方盯上想收入囊中,但此时的Linux已经深陷开源泥潭,当初的开源协议让Linux根本无法为林纳斯获利。

当Linux1.0版本出来时它的光芒足吸引了大量想得到系统最终控制权且不想交授权费的商人。

加上Linux有全世界顶尖高手的日夜维护,其生态圈已经颇具规模,同时Linux被大量极客玩家塞进各式各样机器里玩,故而到了今天,Linux只是一个内核,允许全世界每一个玩家下载下来自己修改,想怎么玩就怎么玩 永远没人问你要授权费 连特朗普也不行,由于当初的开源协议,林纳斯虽说贵为生父,可他在开源协议面前也无法说是自己的,他除了获得名声之外自己没从Linux里获得一分钱盈利。

说那个0.01版本有多厉害?其实它只是一个漏洞百出的单片机版本,勉强可以运行而已,并不是现在的支持多CPU,多线程,多任务,多用户。稍有脑洞的程序猿都可以为单片机写一个运行程序,真正厉害的是开源之后的那些极客为Linux写的补丁,已经完全把0.01版本的框架拆得面目全非,林纳斯只是做了一个开头,今天的Linux是全世界极客智慧的结晶。

评论0 赞同0
  •  加载中...
fengxiuping

fengxiuping

回答于2022-06-28 11:26

linus大学时期写的linux内核,应该是0.11版本。2008年的大三寒假,有幸拜读了赵炯的这本《linux内核完全剖析》,这本书剖析的内核版本就是linux 0.11版本的源码,也就是linus大学时期所写的那个版本。跟现在最新的5.x的内核相比,那可真是秀珍极了。然而,你要知道现在linux的高楼大厦都起于那抔黄土,所以linux0.11内核技术上多厉害倒不是最主要的,没有linux0.11内核就没有现在的5.x的linux内核,这才是它的历史意义。类似没有毛主席就没有新中国,道理是一样的,这是其一。


第二个,我们来说说linux 0.11的技术功能。linux0.11内核作为linux内核的创始版本,功能不算全面,但是核心功能都有了!比如:

  1. 硬件驱动,比如时钟,这是linux系统的起搏器
  2. 简单的中断管理能力
  3. 内存管理(支持页表映射)
  4. 进程管理和简单的调度算法
  5. 支持磁盘驱动
  6. 一个简单的文件系统MINIX(本人对这一段印象深刻,看完以后基本对文件系统的原理掌握的差不多了)

所以,你看,这已经是现代操作系统的技术架构的雏形了。基于这个雏形,才有了后续linux内核的不断发展和进化。所以它的技术引导意义是很大的。


第三个,我想从学习的角度来谈一下linux0.11内核的意义。最新的linux内核已经太冗余了,里面加入了各种各样的需求和特性,已经把linux内核的核心功能深埋在层层的业务代码下面了,如果从最新的linux内核源码入手,你可能像进入一个迷宫一样不得要领,空耗耐心,最终放弃。而其实linux0.11内核代码已经代表了linux内核的核心功能和开发理念。所以,如果从学习的角度来看,linux0.11内核以其精简的代码量、浓缩的功能模块和相对没那么多的业务代码,所以能更纯粹的满足我们学习的需求。


本人是linux内核爱好者,有十年linux内核和驱动开发经验,持续在头条分享通俗易懂的linux内核开发视频。免费的《linux内核开发100讲》系列视频持续更新,有需要的小伙伴可以来学习噢。


评论0 赞同0
  •  加载中...
TZLLOG

TZLLOG

回答于2022-06-28 11:26

Linus本人是个牛人,但是最初的Linux谈不上有多厉害,因为最初他写的程序是为了完成作业,他也仅仅只是模仿UNIX写了一段内核,而且不是完整内容的内核,就是一个内存分配和任务调度模块,连当时流行的软驱这种硬件的驱动程序都没有,这种大学生作业其实有很多,要是说这种内核多厉害也是UNIX厉害,因为都是山寨UNIX内核,几个月以后Linus又写了一个软驱的驱动程序,形成了最初的0.01版本的Linux,到这里为止Linux还说不上有多厉害或者有什么影响,但Linus做了一个影响巨大的决定,把自己的这个作业交给开源组织公开给大家一起来玩,从这里开始Linux才真正牛逼起来,内核版本也不断进化,逐渐形成了自己独立内核,但即使这样Linux几乎所有概念和思想都来自UNIX,比如把硬件设备也当做文件处理,管道概念文件命名规则等,所以学过Linux的能很快熟悉UNIX,反过来也一样。

我不是否定Linus的牛逼和伟大,只是想告诉大家当一个人对科学技术有兴趣的时候,自己动手实践有多重要,即使是模仿前辈自己动手也是难能可贵,其实另外一个例子是比尔盖茨大叔,盖茨大叔读中学的时候对电子学发生了浓厚兴趣,天天和自己的好友在车库里摆弄电子小玩意钻研BASIC,高中没毕业就自己注册了一家公司,即后来的微软,盖茨大叔又极有商业头脑,听说IBM在找PC机的操作系统,盖茨大叔立马从别人哪儿买了一个DOS改头换面,从IBM哪拿到了订单,这才有了后来的微软这个巨人。所以敢于实践敢于行动有多么重要,是一切成功的基础和起点。

评论0 赞同0
  •  加载中...
miguel.jiang

miguel.jiang

回答于2022-06-28 11:26

先说结论:即使在现在的目光来看,Linus也是非常非常牛皮。正如linus本人所言:“talk is cheap,show me your code”,东西都是说起来容易,做起来难。1991年linux发布第一版本内核,那个年代没有谷歌,没有雅虎,计算机手册可能都不全。那是一个没有复制粘贴的年代,所以到底有多牛不言而喻。


初代版本(麻雀虽小,五脏俱全)

在Kernel.org上可以找到最为古老的Linux内核0.0.1版(有兴趣的朋友可以去看看):

一共88个文件,代码行数如下:


当然最开始版本,肯定不是一部封神,不过在当时那个环境能够通过参考Minix就凭自己一个人写出能boot的系统,已经是相当相当厉害了。在Linus的带领下,以及无数开源爱好者的共同努力,linux才有了现在的规模。



站在巨人的肩膀上(但同样伟大)

linus通过学习MINIX后,发现MINIX的版权协议只能用于教育学习上面,所以他基于MINIX的基础上开发了Linux。而MINIX的开发是基于Unix的基础而成。 而Unix也不是凭空出来的,也是两位大牛在参考Multics的基础上开发而来。尽管这些大牛都是在巨人的肩膀上进行开发才得来今天的linux系统,但这并不影响他们的伟大啊,全球这么多人,这么多血计算机的前辈,Linus站了出来,分享了自己做的系统,并通过开源网站带领着大家一起开发维护linux操作系统,这么多年来,无数操作系统提出与退场,Linux一路走来越加辉煌。要知道这是一款开源操作系统,背后没有微软,google,这样的巨头做爸爸。但是它杀出来了,我想这与linus独特的个人魅力也是有很大关系的。


30年前,那个少年有着勇气写出一个操作系统,并有勇气把它放在网络上给大家参考建议,同样这30年来Linus一直在社区带领着大家开发维护linux操作系统,难道这还不够厉害吗?

可能现在有很多计算机开发者同样能编写一个操作系统简单内核,首先那是30年前,计算机手册都不一定能找全,另外能带领linux走到现在才是linus更厉害的地方。

评论0 赞同0
  •  加载中...
wayneli

wayneli

回答于2022-06-28 11:26

咳咳,就这么说吧。

作为一个三流程序员,多少次下定决心看一遍这个初始版本,也没看完过。

现在那么多程序员,我猜哈,能看过甚至参透这个初始版本的,不足百分之一,甚至更低。

所以,你就知道有多厉害了。

Linus是一个天才程序员

Read The Fucking Source Code,应该就是Linus的至理名言。

Linux内核是操作系统的根本,能搞出操作系统,这不是一般人能做到的。在当时有两大操作系统Windows和Unix,不过他们都是有版权的。

Linux可能是参考了一些Unix的知识,不过肯定是原创的。

基本上是以一人之力,搅得操作系统江湖天翻地覆。

Linus就软件技术而言,是顶级的,本人一生吹。

Linux操作系统有多强,现在应用最广泛的移动操作系统安卓就是建立在Linux系统之上的。

最关键的一点,就是Linux操作系统免费,这一点Linus就该被刻在荣誉殿堂。

你以为Linus只搞了一个操作系统就完事了?

听说过Git吗?

版本管理工具

他写的。

Git的价值和作用真的不弱于Linux操作系统,给所有的IT技术公司带来了便利。

所以,Linus是一个大佬,软件领域的大佬。

即使是Linux最初的版本,就技术而言,也是大佬级别的。

最后我的建议是,如果你真的喜欢软件,就把这个最初的Linux版本、Git,二者的源码读一遍,受益会是终身的。

喜欢的朋友点个赞哦,也可以点个关注支持下。



评论0 赞同0
  •  加载中...
thursday

thursday

回答于2022-06-28 11:26

承认别人优秀,一直都很困难

--键盘侠

首先当时的计算机算力很低,可能相当于现在的单片机,但是当时环境和资料不如现在,打个比方,现在做一个企业站,只需要几百块,但是90年代,一个页面5000,很可能找不到人。

现在为啥就那么便宜呢?网络上到处可以搜索到学习资料,开源系统,简单处理就可以用。但是90年代不行,很多东西没有资料的时候,主要靠自己看硬件资料,结合软件理论,自己去尝试,这个过程可能1次,可能100次,可能更多。

单片机对于现在很多人来说太简单了,但是看问题要有代入感,如果是你,在当时的环境,你能做出来什么。

有人说,现在很多程序员都是面向百度编程,离了网络什么都不会了。那么如果你在linus那个年代,你还可以编程吗?

有些人可能技术很厉害,但是缺乏毅力,和耐心。世界上比linus厉害的人多很多,但是坚持下来做事的又有多少。

linus 牛

评论0 赞同0
  •  加载中...
simon_chen

simon_chen

回答于2022-06-28 11:26

可能不算厉害,但是能把自己的代码贡献出来,并发动社区,就很了不起

评论0 赞同0
  •  加载中...
FrancisSoung

FrancisSoung

回答于2022-06-28 11:26

可以这么说,学习过操作系统的学生,一般过的去的,都可以完成。

没有贬低的意思。

换个说法吧,其实当时的操作系统,比如DOS,UNIX,LINUX,早期版本,一个人在两可接受的时间内都能完成。

评论0 赞同0
  •  加载中...
邹立鹏

邹立鹏

回答于2022-06-28 11:26

这里面存在一个历史机遇,就是unix走向封闭,教学用的东西极度稀缺,minux做的松垮,linux一下填补了一个重要的需求,社区很快就形成了

评论0 赞同0
  •  加载中...
zhangfaliang

zhangfaliang

回答于2022-06-28 11:26

最初linus的编程水平多优秀不敢说,但是能在大学就写出内核,至少说明他对CPU及其周边设备搞的很明白,所有设备的编程都搞通了,这是难得的牛B。

要知道硬件的驱动编程比一般的商务流程编程要难的多,一会中断、一会DMA,因为基本没有debug可用,看不到寄存器状态,只能信赖技术手册,一个bit的错误的结果就是死机,没人告诉你如何解决,因为那时也没有互联网可以搜索解决办法,一切靠自己。

另外,linus的编程除了大部分的C语言,还有大量的汇编代码,虽然那时的x86指令不多,但是汇编系统也不智能,一切靠大脑,不是靠网络。

现在Linus一会喷Java、一会喷C++,其实所有系统底层的开发,必须搞清楚代码的一切细节,即便不是每一个指令,但代码的结构、数据结构是必须清清楚楚的,否则无法保证程序的可靠运行,java甚至C++是有很多盲区的,根本不知道到底用了多少代码空间,多少栈空间深度,多少堆空间,不知道这些,系统的资源就会失控,也就别说系统的可靠运行了。系统运行在实存(物理内存),栈、堆溢出的结构就是死机。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<