版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用C#或VB.NET开发你自己的操作系统Cosmos介绍:(注:Cosmos谷哥译为“宇宙”,个人觉得不好听,就采用原文名称)Cosmos(C#开源管理操作系统)是用于VisualStudio及其开发环境的一个操作系统开发工具包。尽管使用C#作为名称,但可以使用基于.NET的任何语言包括VB.NET,Fortran,DelphiPrism,IronPython,F#等等。Cosmos本身和内核程序主要是用C#编写的,就像它的名字。除此以外,NOSMOS(.NETOpenSourceManagedOperatingSystem)的发音听起来很讨厌。Cosmos并不是一个传统意义上的操作系统,恰好相反,它是一个“操作系统工具包”,或者像我喜欢说的“操作系统积木”。(注:积木,有些人喜欢将写程序称为搭积木)Cosmos让你创建操作系统就像VisualStudio和C#通常创建应用程序一样。全部使用VisualStudio(编写),大部分用户在短短几分钟之内就可以编写和启动他们的系统。里程碑5包括的新功能如VisualStudio里的集成项目类型,和集成调试。你可以在VisualStudio使用断点直接调试你的操作系统。Cosmos分为两个部分,一个是开发工具包(开发套件),另一个是用户套件。开发套件是为要想开发Cosmos本身而设计。用户套件是为那些对建立他们自己的操作系统感兴趣并做着和Cosmos相同的工作而设计的。开发套件可以被认为是一个CosmosSDK。大多数用户应该从用户套件开始,因为它并不像开发套件一样反应热烈。本文侧重于用户套件。编写你的第一个操作系统:就像你创建其它C#项目一样创建一个新的项目,不过要选择Cosmos项目类型。将创建一个启动项目,它看起来非常像一个标准的C#控制台应用程序。Program.cs中包含了启动和执行的代码。但在Windows控制台窗口中,你将看到如下:这是你的操作系统在VMWarePlayer中运行!Cosmos当然也可以由虚拟工作站、Hyper-V、VirtualPC或者真实计算机启动,但默认的,Cosmos使用VMWarePlayer,因为它免费,可靠。Cosmos甚至可以在其它机器运行的时候在VisualStudio中调试。集成调试:调试是一个操作系统发展的主要问题。Cosmos团队并不满足于简单的建立和部署,我们希望做到开发操作系统像开发Windows应用程序一样简单。调试Cosmos的操作系统对你来说应该感到很熟悉。让我们一点点修改项目并显示其效果,并设置一个断点。2e17:2e17:ia1920212223242Z26站26'Elin4U-nusing3ysrerr;;^■si黑gSystein,CcrlXcction3-Gc^e^i-c:3Lusing -Texc;S匚1najtespic* 3.UseraK-esnelpublic3C4L1CVGLdiniT;[]Ha.m{);//3aatTh.eCosmo-JcemcL:Ca-ser.oa.5ya・3<i口txBcc-c■newCahim挥,S^s・Soo匸():xEL-ExecuCt4);:?tri=d1*-WriE.*Liss(nCa*iidst-Mt-dstLeeessf^lly-T^-pe白linioftexttogerleeehs-edback:");Ten3-ole,Wricelxne("One▼)『02力1芒uWriEeLlne£-T*ra"-re门dm1■,WriceLme("flirec:n*:*EtLrt^xaesulE■匚匚亢s一:.ReadLLa*(|;■■znaoL*,Wriicc1^Tck^c^qptdl^■卜:Cir;jj1-uWtie-eLine(xRefulrkj现在重新运行一次项目:注意为什么在"One"那里停止执行?因为在VisualStudio中,我们的项目已在断点处停止。只需按F5继续,就像你在一个平常的应用程序!除了断点,Cosmos还支持单步(F11)。但跟踪(F10)还不支持。调试器通信:调试器使用串行端口进行通信。正因为如此,调试只支持串行端口如VMWare的虚拟化环境。QEMU也支持串行端口,但它的串行端口在Windows上执行时被严重破坏并且无法使用QEMU调试。要在真实的计算机中调试,你必须使用一个物理串行电缆。在未来,Cosmos也将支持通过以太网调试。附加调试:Cosmos将提供一些详细的方法用于与调试器通信作为附加功能。它是访问Cosmos.Kernel程序集中Cosmos.Debug命名空间下的Debugger类。此程序集适用于所有的Cosmos项目。基于断点的代码:C#codeDebugger.Break();Break可用于发布代码的中断,VisualStudio执行这条语句后就中断了。询Ccnscle.WriteLine("Testf');DeLjgger.Send(11 fromCosmosn};1炳Ccnscle.WriteLine("3Cosmosboot已dsuccess18Debugger.3reak()■;19Ccnscle.WriteLine(nTe3tTI);2gwhile(true)21\f22\Ccnscle.Write("Znpjt: 11};23^stringxRes\ilt.=Conscle.ReadLine(>;pdFdTiTT卜aPftTTdy卜■hi aT・由于Cosmos还不支持在IDE中的有条件的断点。有断点的代码在实施中非常有用。例如:C#codeif(x==5){Debugger.Break();}或者,你可以调用NET类库中断。C#codeSystem.Diagnostics.Debugger.Break();这两个方法会产生相同的结果。调试输出:调试字符串输出到主机的调试窗口。由于Cosmos还不支持watches(注:这个watches我有点不明白),但这个功能对监视变量值和执行无断点跟踪是非常有用的。C#codeDebugger.Send("HellofromCosmos!");当执行这句时,它会通过调试通道发送一条信息并显示在VisualStudio输出窗体上。有什么收获?确实没有收获。我这里运行的一切只是作个演示。没有使用实体模型。但是我们还有很多工作去做。我们当前的任务包括接口(foreach必备),文件系统(部分支持硬件)(注:partialsupportexists估计不太准确),线程,网络,和图形。我们拥有所有的原型和实验,但还没有一个被纳入Cosmos开发的主流程。当我看到启动时Syslinux在做什么事情?Cosmos没有在Linux上运行。被称为Syslinux的启动加载程序用以启动Cosmos。开机后,SYSLINUX不再使用。SYSLIN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脱口秀演员返场表演与加梗手册
- 超市商品陈列与销售管理手册
- 白银产品标识与标准执行手册
- 客房偷盗与突发事件处理工作手册
- 石油化工交接班管理制度手册
- 《化工行业节能技术应用实操手册》
- 2024年渤海理工职业学院单招职业技能考试题库附答案详解(模拟题)
- 2027年云南省楚雄州高职单招职业技能考试模拟试卷(有一套)附答案详解
- 2025年广东省珠海市单招综合素质考试题库含完整答案详解(典优)
- 2026年四川天府新区职业学院高职单招职业技能考试模拟试卷及完整答案详解(有一套)
- 人事行政部门工作流程
- 光伏运维合同模板(3篇)
- 《老年社会工作》全套教学课件
- 浙江省宁波市海曙区2024-2025学年八年级下学期语文期末考试试卷
- 2025吉林长春国资委直属单位公开招聘试题含答案
- 浇花阅读理解答案
- CJ/T 340-2016绿化种植土壤
- 售电公司业务管理制度
- 液氮安全协议书
- 三体系基础知识培训课件
- 建设工程施工合同GF-2024-0201住建部
评论
0/150
提交评论