C# 宇宙问题

C# 宇宙问题,c#,cosmos,C#,Cosmos,我刚刚开始使用cosmos for visual studio(c#)开发一个操作系统 很多人说如何关闭它,我尝试了各种方法,但这一个给出了一些奇怪的错误,我简直无法理解 这是我用来关闭操作系统的代码: this.stop() Cosmos.Core.Bootstrap.CPU.halt(); 但这是我在构建时收到的错误: Error occurred while invoking IL2CPU Exception: System.Exception: Assembly 'CosmosKern

我刚刚开始使用cosmos for visual studio(c#)开发一个操作系统

很多人说如何关闭它,我尝试了各种方法,但这一个给出了一些奇怪的错误,我简直无法理解

这是我用来关闭操作系统的代码:

this.stop()
Cosmos.Core.Bootstrap.CPU.halt();
但这是我在构建时收到的错误:

Error occurred while invoking IL2CPU
Exception: System.Exception: Assembly 'CosmosKernel7' is in ring User(3). It references assembly 'Cosmos.Core' which is in ring Core(0), but this is not allowed!
我不知道那是什么意思

有人能帮我修一下吗


谢谢大家!

我想这个错误已经纠正了。尝试从GitHub下载最新版本的Cosmos。

为了未来的用户,我将把这个留在这里。宇宙使用环系统。有四个。除您旁边的戒指外,您无法访问任何戒指。你的内核在第三环,最高的一环。因此,制作几个类库,参考cosmos的内容,包括
cosmos.common
,进入
AssemblyInfo.cs
并添加
[assembly:Ring(Ring.where)]
:

戒指是COSMOS的基本“安全”功能。它们限制代码的行为,以减少出错。特定环中的代码只能引用并使用相邻环中的代码。例如,操作系统的内核(在环3中)只能与系统环(环2)通信。宇宙中有4个环:

  • 核心(0)
  • 硬件(1)
  • 系统(2)
  • 用户(3)

因此,您需要为您的操作系统MyAwesomeOS(包含内核,因此在环3(用户))创建一个类库,例如,环2(系统)中的MyAwesomeOS.System和环1(硬件)中的MyAwesomeOS.Hardware,然后您将从主项目中引用这些类库。

Cosmos最新用户工具包中的关机代码是- Cosmos.System.Power.ShutDown(); 而重新启动是- Cosmos.System.Power.Reboot()

我在浏览时间和日期函数时发现了这段代码