【转载?共享】打破传统,C#也能开发操作系统!
/****************************************************************************************
前言:
我刚看了一遍文章——用C#或VB.NET开发你自己的操作系统,我觉得挺有意思的,现将文章翻译一下转载过来,
由于本人英语能力有限,部分有可能不准确,各位可以查看原文,只想与各位分享一下,顺便探讨一下可能性。
原来国外早就有了用C#开发操作系统的探索,还开发出了原型机,我更有信心坚定学习C#的信心了!
****************************************************************************************/
原文地址:
http://www.codeproject.com/KB/cs/CosmosMS5.aspx
用C#或VB.NET开发你自己的操作系统
Cosmos介绍:
(注:Cosmos谷哥译为“宇宙”,个人觉得不好听,就采用原文名称)
Cosmos(C#开源管理操作系统)是用于Visual Studio及其开发环境的一个操作系统开发工具包。尽管使用C#作为名称,但可以使用基于.NET的任何语言包括VB.NET, Fortran, Delphi Prism, IronPython, F# 等等。Cosmos本身和内核程序主要是用C#编写的,就像它的名字。除此以外,NOSMOS (.NET Open Source Managed Operating System)的发音听起来很讨厌。
Cosmos并不是一个传统意义上的操作系统,恰好相反,它是一个“操作系统工具包”,或者像我喜欢说的“操作系统积木”。(注:积木,有些人喜欢将写程序称为搭积木)Cosmos让你创建操作系统就像Visual Studio和C#通常创建应用程序一样。全部使用Visual Studio(编写),大部分用户在短短几分钟之内就可以编写和启动他们的系统。里程碑5包括的新功能如Visual Studio里的集成项目类型,和集成调试。你可以在Visual Studio使用断点直接调试你的操作系统。
Cosmos 分为两个部分,一个是开发工具包(开发套件),另一个是用户套件。开发套件是为要想开发Cosmos本身而设计。用户套件是为那些对建立他们自己的操作系统感兴趣并做着和Cosmos相同的工作而设计的。开发套件可以被认为是一个Cosmos SDK。大多数用户应该从用户套件开始,因为它并不像开发套件一样反应热烈。本文侧重于用户套件。
编写你的第一个操作系统:
就像你创建其它C#项目一样创建一个新的项目,不过要选择Cosmos项目类型。
将创建一个启动项目,它看起来非常像一个标准的C#控制台应用程序。
Program.cs中包含了启动和执行的代码。但在Windows控制台窗口中,你将看到如下:
这是你的操作系统在VMWare Player中运行!Cosmos当然也可以由虚拟工作站、Hyper-V,、Virtual PC或者真实计算机启动,但默认的,Cosmos 使用VMWare Player,因为它免费,可靠。Cosmos甚至可以在其它机器运行的时候在Visual Studio中调试。
集成调试:
调试是一个操作系统发展的主要问题。Cosmos团队并不满足于简单的建立和部署,我们希望做到开发操作系统像开发Windows应用程序一样简单。调试Cosmos的操作系统对你来说应该感到很熟悉。让我们一点点修改项目并显示其效果,并设置一个断点。
现在重新运行一次项目:
注意为什么在"One"那里停止执行?因为在Visual Studio中,我们的项目已在断点处停止。只需按F5继续,就像你在一个平常的应用程序!
除了断点,Cosmos还支持单步(F11)。但跟踪(F10)还不支持。
调试器通信:
调试器使用串行端口进行通信。正因为如此,调试只支持串行端口如VMWare的虚拟化环境。 QEMU也支持串行端口,但它的串行端口在Windows上执行时被严重破坏并且无法使用QEMU调试。要在真实的计算机中调试,你必须使用一个物理串行电缆。在未来,Cosmos也将支持通过以太网调试。
附加调试:
Cosmos将提供一些详细的方法用于与调试器通信作为附加功能。它是访问Cosmos.Kernel程序集中Cosmos.Debug命名空间下的Debugger类。此程序集适用于所有的Cosmos项目。
基于断点的代码:
由于Cosmos还不支持在IDE中的有条件的断点。有断点的代码在实施中非常有用。例如:
有什么收获?
确实没有收获。我这里运行的一切只是作个演示。没有使用实体模型。但是我们还有很多工作去做。我们当前的任务包括接口(foreach必备),文件系统(部分支持硬件)(注:partial support exists估计不太准确),线程,网络,和图形。我们拥有所有的原型和实验,但还没有一个被纳入Cosmos开发的主流程。
当我看到启动时Syslinux在做什么事情?
Cosmos没有在Linux上运行。被称为Syslinux的启动加载程序用以启动Cosmos。开机后, SYSLINUX不再使用。 SYSLINUX是一个引导加载程序,而不是一个Linux发行版。
获取Cosmos:
?Cosmos 网站:http://www.GoCosmos.org
?源码 开发套件和用户套件:http://Cosmos.CodePlex.com
许可证:
本文,连同任何相关的源代码和文件是在BSD许可证下授权。
关于作者:Chad Z. Hower aka Kudzu
翻译:ohkuy
/*-----------------------
注:本文系原创翻译过来,版权所有,如果转载,请标明出处!
(特别是抓包的,不要忘了!)
-------------------------*/
[解决办法]
。。。我想起了那个悲剧的vista。。。
当初貌似就是用.net写的,后来。。。写不下去了~~
[解决办法]
脚本语言开发系统,还是感觉不靠谱
[解决办法]
牛人啊
[解决办法]
对于os 运行速度是关键的,C#速度能行吗?
[解决办法]期待。
[解决办法]可行吗?
[解决办法]
[解决办法]
大致想一想,即使开发出来,也是windows的“孩子”,一个用C#写的可运行的程序,这里除了自己写的东西外,还包括了windows系统的成分
[解决办法]
微软出了个c++的变种,语法有点像c#
[解决办法]
同意楼上的!!!
[解决办法]
你真2.
[解决办法]
概念炒作,对于操作系统,不能忘了前提条件。
[解决办法]
我觉得还是算了吧
[解决办法]
希望能成功
[解决办法]
C#真的很好用。
[解决办法]
顶新鲜的
[解决办法]
好几年前的东西了
就是for fun
[解决办法]
对于os 运行速度是关键的,C#速度能行吗?
[解决办法]
我是翻译工
[解决办法]
好几年前的?刚看着,学习一下。貌似vs2010不支持Cosmos的项目了。
[解决办法]
工本费的年凤冈县
[解决办法]
真的不支持了吗?
[解决办法]
大学骨化风成个 国防大学
[解决办法]
刚发的刚发的香港大学
[解决办法]
我觉得会是个悲剧。。。
[解决办法]
学习了,学习了,学习了,学习了,学习了,学习了,学习了,学习了,学习了,学习了,
[解决办法]
在应用的角度上看,操作系统做出来以后,一定要好用,性能要好,兼容要强。。。
[解决办法]
学习并支持
[解决办法]
非常有用!
[解决办法]
同意,这根本就不是操作系统
[解决办法]
开发出来的是玩具操作系统,不具备实用性。
[解决办法]
牛人很多。 肯定能开发出来的。
[解决办法]

[解决办法]
菜鸟啊,要积分
[解决办法]
怎么看上去象是只是把c#的VM搬到了裸机上而已??
[解决办法]
我们公司就有个项目,是关于苹果手机的系统。
项目难度相当大,老总都没敢接...

[解决办法]
哇,看看。。
[解决办法]
想法蛮不错
[解决办法]
这么强啊 。
[解决办法]
想法不错啊
[解决办法]
xp系统的一部分是用C#编写的,但要是全部用C#编写一个系统,这还有待努力啊
[解决办法]
最好用汇编来开发,现在的操作系统,都是老牛
--reply by CSDN Study V1.0.0.3 (starts_2000)
[解决办法]
真是这样吗
[解决办法]
看看。。
[解决办法]
必须顶一下(就冲着名字.哇哈哈哈)
曾经关注过,后来关注着关注着......就淡忘了
[解决办法]
hehe
[解决办法]
这个貌似不太靠谱啊!那得死一批人!
[解决办法]
本来可以坐车到达目的地,偏偏要走路去有什么办法~~
[解决办法]
扯jb蛋,能写操作系统。
[解决办法]
什么时候用用
[解决办法]
学习 中
[解决办法]
Bullshit
[解决办法]
感觉不太可能啊
[解决办法]
其实我想知道,运行速度如何?
[解决办法]
该回复于2011-09-26 10:41:41被版主删除
[解决办法]
能行吗?
------解决方案--------------------
没错。Windows 98是BASIC写的。所以不如XP稳定。Windows 8已经使用C##编写了。
[解决办法]
都人才
[解决办法]
看看,学习!
[解决办法]
确实是人才。
[解决办法]
牛人怎么这么多呢!
[解决办法]
人才人才,膜拜
[解决办法]
膜拜~
[解决办法]
非常感谢楼主推荐