zoukankan      html  css  js  c++  java
  • 用.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


    博客地址:Zealot Yin

    欢迎转载,转载请注明出处[http://creator.cnblogs.com/]

  • 相关阅读:
    Python Scrapy 爬虫入门
    Python Requests 高级用法
    Python Requests库快速入门
    linux 高并发事件触发处理 — epoll
    初识Python爬妹子图片
    android 使用gradle实现资源自动拷贝
    Android Studio Cmake使用 (附带demo)
    JNI 学习笔记
    Cmake 常见命令说明
    mybatis逆向工程生成代码
  • 原文地址:https://www.cnblogs.com/Creator/p/2076315.html
Copyright © 2011-2022 走看看