用.net自己动手开发【操作系统】

 

疑问:基于.net平台能开发操作系统吗?那.net framework怎么办?别急,慢慢讲解…

      不知道园子里面有多少人对开发操作系统比较感兴趣,我本人对开发操作系统是非常感兴趣的,记得以前在学校里面用汇编写代码来引导计算机启动等等,现在编写一个属于自己的操作系统,你不需要在写繁杂的汇编,甚至于都不用写C,C++,不要碰复杂的指针操作和内存分配等等问题,所有的这些事情,现在已经都被Cosmos做好了.

       那么,究竟什么是Cosmos的呢?Cosmos简称自 C# Open Source Managed Operating System,是一个使用Visual Studio来开发操作系统开发工具集,没有错,他就是一个工具集。它本身是用C#开发出来的,但是我们进行定制开发的时候,可以使用.net平台的任何一门语言。可能您会疑问,既然这样,为什么叫C# Open Source Managed Operating System而不叫.NET Open Source Managed Operating System呢? BinGo! 原因仅仅是因为Nosmos听起来很愚蠢.可爱的ITer…

        Cosmos的开源地址在这里,它分为两个版本,一个叫developer kit一个叫user kit,我们可以通过下载developer kit了解到Cosmos内核的一切,怎么去制作自启动,怎么去呈现屏幕显示以及获取屏幕显示等等一系列细节.源代码是全部开放的.如果你仅仅是想开发自己的操作系统,那么使用user kit就足够了.目前只支持X86的CPU,不过 ARM processors, Apple's iPhone, and the Nintendo Wii平台的移植也正在开发计划中, 如果你想尝尝鲜的话user kit是你最好的选择.好了,要进入正题了.

 

 

理论铺垫:

Cosmos在运行时不需要.net framework的任何版本

很多人都会问到,基于.net平台编写自己的操作系统,这不是痴人说梦吗?.net framework怎么办,等等一系列问题.下面我来解释一下Cosmos的编译原理.

Cosmos的源代码使用C#来编写,先把源代码编译成IL中间语言,然后再由专门针对该项目编写的编译器IL2CPU来把编译好的IL源代码转换成本地机器码,目前处于里程碑5的阶段,只支持x86体系的CPU。目前对ARM、MIPS等其他CPU的支持已经列入到了计划中,相信Cosmos将会给大家耳目一新的感觉.

 

 

环境搭建:

1.Visual studio 2008以上

2.下载 User kit

3.安装 User kit

4.安装 VMWare,Virtual PC,  Hyper-V等等,任选其一,跑在虚拟机里面,这可是真的操作系统

 

 

定制系统:

  • 使用Visual studio新建项目,如果User kit安装成功的话,就会有Cosmos Project这个项目
SNAG-0000

 

  • 新建完项目后,我们可以看看我们的代码结构
SNAG-0001

 

        在visual studio 2010里面会有些不同,如下图所示

11111

 

 

 

       下面我们看看代码Kernel.cs内部的代码

View Code
    public class Kernel : Sys.Kernel
    {
        
protected override void BeforeRun()
        {
            Console.WriteLine(
"Cosmos booted successfully. Type a line of text to get it echoed back.");
        }

        
protected override void Run()
        {
            Console.Write(
"Input: ");
            var input 
= Console.ReadLine();
            Console.Write(
"Text typed: ");
            Console.WriteLine(input);
        }
    }

       我们可以对其进行相应的修改以运行我们自己的逻辑,这里就是我们定制自己的操作系统的入口

  • 直接编译运行这个项目,如果你按照上面的安装环境搭建了的话,你可以看到如下效果
    SNAG-0003

    大家需要区分的是,这里不是控制台程序,我们的程序直接在Vmvare里的虚拟机运行了。如果你是用的是不是Vmare而是Virtual PC,  Hyper-V会得到同样的效果。 

 

调试系统:

大家都知道visual studio的调试是举世无双的,同样,我们在基于Cosmos开发基于自己的操作系统的时候,同样可以使用我们强大的调试功能,Cosmos的强大再一次令人们折服…在开发自己的操作系统的时候,能使用这么优秀的调试工具,我们还惧怕什么呢?赶快加入到我们的行列中来吧…

下面展示一下断点调试功能:

SNAG-0005

 

下面请看调试界面:

SNAG-0007

 

如图所见,我们直接在Vmvare里面实现了我们想要的调试功能

 

好了,各位看官,有没有兴趣加入到开发属于自己的操作系统的行列中呢?Don’t Look,Do it!

开源地址:http://cosmos.codeplex.com/

官方网站:http://www.gocosmos.org/

取材: Develop your owen OS in C# or VB.NET

posted @ 2011-06-09 13:46  大熊先生|互联网后端技术  阅读(12362)  评论(96编辑  收藏  举报