如何从零开始写一个自己的操作系统?

2018-03-11 00:35:30 +08:00
 yiran7324

最近实在是想做一点别人不能做的事情,除了装逼还想倒逼自己多学习些基础的计算机组成原理。

  1. 现阶段有无详细的教程?

  2. 从学习到完成需要经历多少时间?

  3. MAC 环境下的操作

21070 次点击
所在节点    程序员
63 条回复
matsuz
2018-03-11 00:44:17 +08:00
《 30 天自制操作系统》了解一下
matsuz
2018-03-11 00:48:12 +08:00
自己照着教程写操作系统并不能倒逼你学会计算机组成原理

更多的是能给你一种虚无的成就感,因为这个东西做出来其实并没有什么鸟用
hourann
2018-03-11 00:56:06 +08:00
问题应改为“如何从零开始抄一个别人的操作系统?”
Mirana
2018-03-11 01:01:49 +08:00
yiran7324
2018-03-11 01:04:04 +08:00
@hourann 就是想从零开始抄,但是抄的高效一点。。。
akira
2018-03-11 01:05:38 +08:00
<<30 天自制操作系统>> https://book.douban.com/subject/11530329/
<<Orange'S:一个操作系统的实现>> https://book.douban.com/subject/3735649/
一个专门给类似你这样的人群搭建的 wiki https://wiki.osdev.org/Main_Page

恭祝楼主早日成功
cszhiyue
2018-03-11 01:06:39 +08:00
echoZero
2018-03-11 01:11:36 +08:00
大学有门课程好像就是讲的这个 最后就会有个教程让自己做一个操作系统
Remember
2018-03-11 01:15:09 +08:00
xenix 了解一下
yiran7324
2018-03-11 01:15:25 +08:00
@echoZero 大学应到不了这个程度吧现在的大学
feather12315
2018-03-11 01:15:42 +08:00
建议站在巨人的肩膀上,超前看。学习下理论就行了,有兴趣读读 Linux subsystem 相关的文档啥的。
gtalk
2018-03-11 01:28:25 +08:00
你需要一部固话座机,然后
010101...
yhzwy
2018-03-11 01:30:02 +08:00
mit 的 6.828
youxiachai
2018-03-11 01:31:21 +08:00
@yiran7324 国外的计算机本科课程了解一下。。。。

国内引进的黑书系列就是老外常春藤用的教科书
kingcos
2018-03-11 01:38:55 +08:00
先从简单的开始呗,何必画个太大的饼(当然这个也不是很大的饼,但起码从楼主的问题感觉问的挺幼稚)。

一步一步按步骤来的教程,走下来除了卡壳的地方可能自己会去搜索,其他收获也并没有多少。
shutongxinq
2018-03-11 01:51:33 +08:00
fghjghf
2018-03-11 02:12:01 +08:00
《 30 天自制操作系统》是本劣质书籍,只适合没啥基础,猎奇的读者。不建议看。
想做操作系统,商业的就不说了,你 100%做不到。就说做个试验品,也不是一件容易的事。
有心想做的话建议从基础学起,掌握一定高数基础后,从模电数电开始、到微机接口、组成原理、汇编、编译原理、再到上层的数据结构和算法、设计模式,当然,还有很多衍生学科要你遇到再补的。这些书你去参考豆瓣评分吧。学好了,再看 Intel 的手册,自己实现编译器,自己实现一门编译型语言,然后再以学习为目的做个操作系统。全日制的天天学,全年无休,估计全套下来,没个 5 年左右真不行。
vegito2002
2018-03-11 02:16:08 +08:00
找个 Pintos 或者 xv6 的 OS 课程作业做做看再说, 认真做其实已经能学到很多东西了;
就算是这种高难度 OS 作业, 最后实际上你的内容也只是填空, 实现一些功能增强的代码而已, 基本 OS 的底层框架其实大部分是牛人提供的代码就已经帮你写好了;
如果想要自己从 0 开始做, 而且不是简单复制别人的, 先确定自己能看懂这些人的底层代码再说. 我作业做完之后看过作者提供的基础代码, 真的是这些人的水平不服不行.
icekingcy
2018-03-11 03:20:57 +08:00
@akira 初中时买了 orange's 这本书 哈哈哈哈好久了啊
20015jjw
2018-03-11 03:36:42 +08:00
pintos 可以先做一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/436880

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX