【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
我一直想做的一件事是开发我自己的操作系统(不一定像Linux或Windows那样花哨,但比我已经完成的简单的引导加载程序更好)。
我很难找到资源/指南,让你过去编写一个简单的“Hello World”操作系统。
我知道很多人可能会建议我看看Linux或BSD; 但是像这样的系统的代码库(大概)是如此之大,以至于我不知道从哪里开始。
有什么建议?
更新:为了让通过Google登陆此帖子的人们更容易,这里有一些操作系统开发资源:
编写自己的操作系统 (感谢Adam)
Linux From Scratch (感谢John)
SharpOS(C#操作系统) (谢谢lomaxx)
OS Dev Wiki和论坛 (感谢Steve)
BonaFide (谢谢史蒂夫)
布兰 (谢谢史蒂夫)
滚动你自己的玩具UNIX克隆操作系统 (谢谢史蒂夫)
其他资源:
我找到了一个名为MikeOS的好资源,“MikeOS是一个学习工具,用于演示操作系统的简单操作。它使用16位实模式进行BIOS访问,因此不需要复杂的驱动程序”
版权所有11/14/08
我在Freebyte的指南中找到了一些资源...免费和非免费的操作系统链接到OSKit和ExOS库等工具包。 这些在开始OS开发时似乎非常有用。
2009年2月23日更新
Ric Tokyo在这个问题上推荐了nanoos 。 Nanoos是一个用C ++编写的操作系统。
更新于3/9/09
Dinah为有抱负的操作系统开发人员提供了一些有用的Stack Overflow讨论: 创建自定义操作系统的障碍讨论了在开发操作系统和操作系统开发时可能遇到的陷阱是一个更为一般性的讨论。
2009年7月9日更新
LB提供了Pintos项目的链接, Pintos项目是为学生学习OS开发而设计的教育操作系统。
2009年7月27日更新(仍然很强劲!)
我偶然发现了伯克利的在线操作系统课程 ,有23个讲座。
TomOS是MikeOS的一个分支,包括一些内存管理器和鼠标支持。 作为MikeOS,它旨在成为一个教育项目。 它是用NASM汇编程序编写的。
2009年8月4日更新
我发现幻灯片和其他材料与上面列出的在线伯克利讲座一致。
2009年8月23日更新
OS / 161是一个用c语言编写的学术操作系统,可在模拟硬件上运行。 该操作系统在Nachos中类似。 感谢Novelocrat!
tangurena推荐http://en.wikipedia.org/wiki/MicroC/OS-II ,这是一款专为嵌入式系统设计的操作系统。 还有一本配套书 。
安德斯建议Robert Love 开发Linux内核 。 这是“广受好评的内部人员对Linux内核的看法”。
2009年9月18日更新
感谢Tim S. Van Haren向我们讲述了Cosmos ,一个完全用c#编写的操作系统。
tgiphil向我们介绍了托管操作系统联盟(MOSA)框架 ,“一套工具,规范和源代码,用于促进基于通用中间语言的托管操作系统的开发。”
2009年9月24日更新
Steve使用Visual Studio在Windows上找到了一些开发资源,请查看BrokenThorn的VS 2005或OSDev VS部分 的指南设置 。
2012年9月5日更新
kerneltrap.org不再可用。 linux内核v0.01可从kernel.org获得
12/21/2012更新了一个基本的OS开发教程,旨在成为一个学期的项目。 它将指导您构建具有基本组件的操作系统。 初学者非常好的开始。 相关论文 。 谢谢Srujan!
更新于2013年11月15日
从头开始编写简单的操作系统 。 谢谢James Moore!
更新于2013年12月8日
如何制作电脑操作系统谢谢ddtoni!
更新于3/18/2014
2016年9月12日更新
2016年12月10日更新
编写一个简单的操作系统 - 来自Scratch (谢谢@Tyler C)
#1楼
刚来自另一个问题。 我想提一下Pintos ......我记得我的操作系统课程与Nachos和Pintos似乎是可以在x86上运行的那种东西。
#2楼
我希望有一个地方可以获得有关开发自己的操作系统的所有信息。 最接近的是OS Dev Wiki和论坛 。 它们提供了大量有关设置,开发和设备硬件信息的良好信息。
还有一些很棒的教程在BoneFide ,我已经使用了Bran的入门教程,现在我正在看一个基于他的名为Roll你自己的玩具UNIX克隆操作系统的更新版本 。
我再次检查:“操作系统:设计和实现”
如果你想在Windows上开发,请查看jolson的博客文章
。
编辑:要使用Visual Studio在Windows上进行开发,请查看BrokenThorn的指南或OSDev的wiki 。
#3楼
我在本科的操作系统课程让我们为OS / 161构建了许多子系统,这是一个简单的,类似BSD的内核,它提供了一些基础知识,同时可以自由地探索实现更高级别服务的各种设计空间决策。
#4楼
一个相当简单的OS研究将是μC/ OS。 这本书有一张软盘,上面有源代码。
http://en.wikipedia.org/wiki/MicroC/OS-II
#5楼
我发现Robert Love的Linux内核开发非常有趣。 它告诉您Linux内核中的不同子系统如何以非常实际的方式工作。 由于源代码可用,Linux是攻击的主要候选者。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3153500