用.NET X64 Native AOT编写的操作系统

news/2025/1/8 14:00:05/文章来源:https://www.cnblogs.com/chinasoft/p/18653261

https://blog.csdn.net/sd7o95o/article/details/133191160

 

1.前言
很多人想学习下.Net前沿技术和核心技术,这里推荐一个适合大家学习的案例,用.NET X64 Native AOT编写一个操作系统。

2.概述
MOOS(To Make My Own Operating System Project)是一个采用
.NET x64 Native AOT技术编写的一个操作系统。

系统界面:
47a8370b067cadae1e468fb5dc0b3b90.png

3.特性(实现的功能)
Applications .mue.系统的可执行文件
Error Throwing/Catching异常处理
GC垃圾回收
USB键盘
USB鼠标
IPV4
IPV6
DHCP
TCP
IDE编译器
DNS等等

4.编译要求
一:VMware Workstation Player 

https://www.vmware.com/products/workstation-player.html

二:Visual Studio 2022 

 https://visualstudio.microsoft.com/
三:QEMU - https://www.qemu.org/download 或 VMWare(注意-USB不适用于VMWare,如果要运行VMware,则需要x64,不支持32位)
windows 10-11 x64 或 x86
四:至少 2012 年或更高版本的 CPU,或者基本意义上的Ivy Bridge CPU或更高版本
五:4GB 内存,但建议使用 8GB 内存

5.构建和编译MOOS

步骤 1

50e5844c2418e967c87d07492255403b.png

为了编译MOOS,您需要运行Windows 10或更高版本。您还需要Visual Studio,您可以在此处下载:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false

步骤 2

e2a126204c9d5acf2e962f91dc809ea5.png

安装程序安装完成后,您将看到此窗口,您将需要使用C++进行桌面开发,很可能还需要.NET桌面开发,您将需要这些工具,以便我们可以编译MOOS

步骤 3

a08ee7c72e44ba66d34abc4e26564cf8.png单击安装,完成后它将开始安装重新启动您的PC

步骤 4

9b23a2ea78004522391b8f94bc7c6655.png

启动VS 2022并打开.sln文件,然后在加载所有内容后单击“构建>构建解决方案”选项

步骤 

7b12b32571d3df33fdefddf5674e8d69.png
在构建下拉菜单中选择 MOOS,然后单击 QEMU 或 VMware,完成后,您可以更改代码并继续构建 MOOS,享受!

6.项目地址:

https://github.com/nifanfa/MOOS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/864368.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win32汇编学习笔记05

定位关键点3种方法: 过程函数 api 字符串 但是不确定用要哪一种方法,可以3种方法都用一下,因为在不同的程序,实用的方法是不一样的 窗口程序看控件信息 1.通过OD去看还可以用 spy ++ 查看还可以用vs2019 ,打开软件,找到对应控件直接看属性一般拿句柄没用,因为按钮是响应 WM_COM…

2025年,勇敢探索,才能突破困境

新年第一篇文章,不聊技术,聊聊今年的计划,以及未来的发展趋势。 在24年的第一篇文章中,我用“苟住求活”这个词形容了我当时的判断,如今回过头再看2024年,大家都过的很挣扎。经济环境进一步恶化,就业机会越发的稀少,降本增效降薪裁员,是去年很多人的真实经历。 今年的…

Java集合 —— LinkedList详解(源码)

在学习LinkedList之前先来了解一下链表链表 概念链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序通过链表中的指针链接次序实现的图中的1、2、3、4、5都是结构体,称为结点;结构体包含所存的数据和下一结点的地址。顺序表中的地址是连续的,而链表中的…

菜单

扫雷菜单准备写一个基于C的扫雷游戏,这是第一篇,内容:扫雷的主菜单 思路 显示菜单->用户选择->判断用户选项 实现 显示菜单 首先在main函数内显示菜单,菜单显示部分实现在 MainMenu 函数内 int main(void) {while (true){int iChoose = -1;MainMenu();//加载菜单} } …

如何解决数据库扩容后宝塔面板显示旧容量的问题?

当您完成数据库扩容后,发现宝塔面板仍然显示旧的容量,这可能是由于系统未能及时刷新磁盘信息或配置文件未更新所致。为了确保宝塔面板正确显示新的磁盘容量,请参考以下详细步骤进行处理:确认磁盘扩容成功:首先,确保磁盘扩容操作已经成功完成。可以通过命令行工具如lsblk或…

20241312《计算机基础与程序设计》课程总结

20241312《计算机基础与程序设计》课程总结 第一周作业: 简要内容:①课程概论②工业革命与浪潮之巅③信息与信息安全④计算机系统概论⑤计算机安全⑥计算的限制⑦计算思维 二维码: 第三周作业: 简要内容:①数字分类与计数法 ②位置计数法③进制转换④模拟数据与数字数据⑤…

云服务器根目录扩容后磁盘空间未增加

问题描述: 我已经升级了云服务器的配置,但根目录的空间大小并未增加。请帮我检查并解决这个问题。 详情回答: 您好!感谢您使用我们的云服务器服务。根据您的描述,您已经升级了云服务器的配置,但根目录的空间大小并未增加。这种情况通常是由于磁盘挂载或分区设置不当引起的…

如何解决BT面板无法登录的问题?

当您遇到无法登录BT面板的情况时,可能是由多种原因引起的。以下是一些常见的排查步骤和解决方案,帮助您快速解决问题:检查用户名和密码:首先,确认您使用的用户名和密码是否正确。默认情况下,BT面板的登录用户名通常是 admin 或 cp,密码则是您在安装时设置的初始密码。如…

响应式设计进阶 - 修改网站手机版模板的实用方法与技巧

随着移动设备使用的增加,确保网站在小屏幕设备上有良好的用户体验变得至关重要。以下是关于如何修改网站手机版模板的一些基本指导和高级技巧:理解响应式设计理念响应式设计是一种使网页能够在不同设备上自适应的技术。它通过使用流式网格布局、弹性图片和媒体查询等手段,确…

Mingw64下载及各版本区别

地址:https://github.com/niXman/mingw-builds-binaries/releases 一般来说下这个就行

2025.1.5

Buy One, Get One Free 题解Buy One, Get One Free 题解One Last Kiss & Beautiful World 初めてのルーブルは なんてことはなかったわ 私だけのモナリザ もうとっくに出会ってたから 初めてあなたを見た あの日動き出した歯車 止められない喪失の予感 もういっぱいあるけれ…

如何删除不必要的DNS记录?

用户在管理域名解析时,遇到了一些不再需要的DNS记录,如TXT记录或CNAME记录,不确定是否可以删除这些记录。用户希望了解如何安全地删除这些记录,以及删除后是否会影响现有服务。 解决方案:问题 解决方案删除不必要的DNS记录 在确认不再需要特定DNS记录后,可以直接在域名解…