我寻思了解了解这些对自己研究 kernel 也很有帮助
1
billtsui 2020-04-22 13:01:14 +08:00
大学四年,只要老师不水自己不水,写个雏形操作系统还是可以的。MIT6.828 这个课学完,就能写一个实验性质的操作系统 xv6 。
|
2
hst001 2020-04-22 13:03:57 +08:00
我寻思着 Linus 大神也是边写边学边改进,个人目标万事要先开头才能走下去
|
3
wanguorui123 2020-04-22 13:05:25 +08:00 via iPhone
推荐《 30 天自制操作系统》
|
4
wanguorui123 2020-04-22 13:09:49 +08:00 via iPhone
推荐《 现代操作系统》
|
5
wanguorui123 2020-04-22 13:11:22 +08:00 via iPhone
推荐《深入理解 UNIX 系统内核》
|
6
crella 2020-04-22 13:24:30 +08:00 via Android
linux 从 minix 得到启发,得到 GNU 团队的帮助。
那个时候 GNU 黑客文化很火啊,因为没有一个 Free 的系统作基础,gnu 开发的工具也算是不 free 的。 谈 linux 不能不谈 gnu 啊 |
8
mooyo 2020-04-22 14:05:26 +08:00
可以看一下 xv6
|
9
wangyzj OP @wanguorui123 《 30 天自制操作系统》这个有点意思,可以先看看,谢谢
|
10
abcbuzhiming 2020-04-22 15:03:11 +08:00
B 站有教程,告诉你怎么从 0 写一个操作系统。其实写一个玩具并不难,难的是写一个能工业化使用的产品。
其实 linux 能走到今天,不光是 linus 一个人的功劳,linux 背后站着一大票巨人,IBM,红帽,intel,没有这些组织贡献代码 Linux 也走不到今天 |
11
wr410 2020-04-22 15:13:11 +08:00
造系统更像单片机编程,直接调用硬件接口和 CPU 指令,而不是在操作系统上去调各种 API……
|
12
hantsy 2020-04-22 15:18:01 +08:00 3
最初的 Linux 是改造 Minix 系统(一个学术派教授的作品,作为教学用的 Unix 实现,国外这种教学方式不知道国内有哪个大学用???反正我一个野生的计算机自学者,当时学完操作系统这门课除了一些书上的概念啥也不知道),Linus 为了以示差别,命名为 Linux (加入自己名子的成分)。
最初代码只有一万来行吧。现在好像有书去讲解 Linux 0.12 的最初的代码,和 Minix 代码一样,是不可多得的操作系统实战系统。 @billtsui 如果中国有大学教学都达到这种水平,中国实现自主操作系统早就不成问题了,也不至于这么多不要脸的人到处剽窃,还好意思对外说自主研发。 |
13
libook 2020-04-22 15:21:53 +08:00
对 Linus 和他的 Linux 感兴趣可以看 Linus 的自传《 Just for fun 》。
早先 Linus 的学校里是使用 Minix 作为教学用的操作系统的,Linus 学习了之后感觉 Minix 不好用,而且不支持新的硬件特性,于是就想自己修改 Minix,但后来发现这是个大坑,不光有实现上的问题还有授权的问题,还不如从头写一个,于是就写了 Linux 。 Linux v0.01 据说才 1 万行,你可以去网上找源码看看。后续版本都是社区成千上万人的贡献逐步完善的,现在 Kernel 源代码能达到几百兆了。 写个操作系统可以很简单,也可以很复杂,取决于你想实现多少功能,只实现最小可用的文件系统和进程管理不需要太多的代码。 |
14
hantsy 2020-04-22 15:22:20 +08:00
@abcbuzhiming Redhat 的商业化后,有了专职 Contribute Linux 的人,可以说是 Linux 发展的基本保障吧。IBM,Oracle 这些商业公司站队,同时也改进很多内核方面的东西,为 Linux 进入商用打下了基础,以保证它不再是一些 Geek 的玩具。
|
15
hantsy 2020-04-22 15:27:48 +08:00
@libook 源代码中驱动程序太多了。其实真正的内核应该不是太大,我是没能力研究这个了。
之前开始用 Linux 的时侯,2.4 的内核,自己编译过威盛的网卡驱动, 选择性的编译下来,整个内核加上自己所需要的驱动才 2M 。不过现在 Linux 发行版本,好像打包驱动也都分开了。 |
16
hantsy 2020-04-22 15:34:47 +08:00
@crella GNU 有自己的内核系统,只是一直强调微内核,计划得的太完美,饼画得太大,实现上难度可想而知,一直也没流行起来。Debian 好像以前还有 GNU 内核的打包。
|
17
libook 2020-04-22 15:34:51 +08:00
@hantsy 现在版本源码很庞大,现在应该没有人能对所有源码完全了解,我有朋友在某大厂搞自用的 Kernel 定制,基本上是一周写一两行代码,其余大量时间都是在读现有的代码,看怎么改比较合适。
|
18
hugedata 2020-04-22 16:09:35 +08:00
现在的 linux 内核,看源码找宏定义都很麻烦。
|
19
billtsui 2020-04-22 16:49:21 +08:00
@wangyzj 我大学也是打游戏过来的,浪费掉的时间早晚要补回来对不对。工作以后 MIT6.828 我看了的,蛮好的课程,xv6 入手操作系统真的挺好的。
|
20
billtsui 2020-04-22 16:50:29 +08:00
@hantsy 老师不教可以自己学啊,现在公开课很方便,国外教授上课讲的真是特别好,稍微认真点听就能懂,完全不是照本宣科。
|
21
noogler67 2020-04-22 16:53:43 +08:00
intel 80386 programmer's guide
linus 参考了 minix 操作系统 oldlinux.org 对操作系统感兴趣可以看看学堂在线-操作系统,那个可以劝退论坛大多人。 有一个 eudyptula challenge 是作为 linux 内核 contributor 指导的。 |
22
wangyzj OP |
24
necomancer 2020-04-22 17:04:24 +08:00
#!original/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ
Fellow 这个帖子 google group |
25
billtsui 2020-04-22 17:21:18 +08:00 1
|