Kosmos | |
---|---|
Skärmdump av Cosmos-skalet från under QEMU | |
Utvecklaren | Kosmos projekt |
senaste versionen | 20220209 ( 9 februari 2022 ) |
Typ av kärna | mikrokärna |
Licens | BSD |
stat | Betatestning |
Källkodsförråd | https://github.com/CosmosOS/Cosmos… |
Hemsida | gocosmos.org |
Mediafiler på Wikimedia Commons |
Cosmos är ett utvecklingssats för operativsystem med öppen källkod skrivet i programmeringsspråket C# . Dessutom innehåller den en Microsoft Intermediate Language ( IL2CPU ) kompilator som låter dig skapa kompletta programmoduler som inkluderar .NET Framework- biblioteken och själva operativsystemet Cosmos, vilket gör att du kan skapa startmoduler som inte kräver ett externt OS för deras arbete. Kan startas från en diskett , USB-flashenhet , CD-ROM eller i en virtuell maskin . För närvarande stöds endast x86-arkitektur, även om systemet är C#-riktat, kan det användas med de flesta kompatibla .NET-språk som: Visual Basic och X# (kräver "ren" CIL -kompilering utan att använda P/Invoke ). Cosmos är i första hand avsedd att endast användas med Microsoft .NET Framework , men kan kompileras med Mono genom att förlita sig på System.Threading-blocket, klassen ReaderWriterLockSlim.
Enligt Cosmos webbplats är Cosmos en bakronym för C # Open Source Managed Operating System . Cosmos är nu en verktygslåda som gör det enkelt för andra utvecklare att skapa sina egna operativsystem, eller, som en av projektledarna uttryckte det, fungera som ett " Lego -operativsystem ". Det fungerar också som ett abstraktionslager, som döljer mycket av det interna hårdvaruarbetet.
Den nuvarande utgåvan av Cosmos är Milestone 5 , men arbetet med framtida utgåvor är i full gång. Det mesta av arbetet med Cosmos är för närvarande fokuserat på utvecklingen av ett nätverksgränssnitt, men systemet stöder redan vissa nätverkskort och vissa funktioner i TCP/IP . Det finns för närvarande två versioner av Cosmos, en (senare) källversion och en releaseversion (känd som ett anpassat kit). Källversionen är för de som vill hjälpa till att utveckla kärnan , medan det anpassade kitet är för dem som bara vill använda Cosmos för att utveckla sitt eget operativsystem. En tid innan släppet av Milestone 3 rekommenderades att alla användare laddade ner källkoden, eftersom det tidigare paketet från Milestone 2 är inaktuellt.
I den senaste versionen återvände utvecklarna till GRUB som en bootloader , men Syslinux och ovan nämnda GRUB användes också tidigare.
Ett operativsystem byggt på Cosmos börjar livet som ett .NET- projekt (i synnerhet konsolapplikationer ). I nya versioner har skrivning av kod förenklats. Huvudfilen Kernel.cs är uppdelad i två metoder: BeforeRun() och Run(). Den första beskriver de åtgärder som utförs efter att operativsystemet har laddats. I den andra exekveras koden i en oändlig loop, men vanligtvis slutför utvecklare metoden med en funktion för att stänga av PC:n.
Klasser finns i Cosmos såsom System för att hantera datorns filsystem , nätverk och kraft; HAL, för arbete med grafik och drivrutiner ; Core för att hantera RAM , ACPI och visa CPU- data ; Debug för felsökning och Common.
Bygginställningarna finns i projektegenskaperna, byggandet görs via fliken "Bygg" på den övre panelen i Visual Studio-fönstret.
Det anpassade kitet är en del av Cosmos som syftar till att göra Cosmos enklare att använda för utvecklare som använder Microsoft Visual Studio . Genom att installera paketet läggs en ny projekttyp till i Visual Studio som heter Cosmos Project. Det är en modifierad version av konsolapplikationen, där Cosmos-kompilatorn redan har lagts till och laddningskoden är ofullständig.
När koden är klar kan användaren kompilera projektet med sin föredragna .NET-kompilator. Detta förvandlar applikationer från sin ursprungliga källkod ( C# eller annat) till Microsoft Intermediate Language , modersmålet i .NET Framework. Starta sedan applikationen och peka på Cosmos Builder-fönstret, som ger utvecklaren alternativ som avgör hur projektet ska kompileras. Dessa alternativ inkluderar att ladda projektet genom emulatorer som QEMU , Virtual PC och VMWare , skriva till en diskavbildning (ISO-fil) som senare kan brännas till en CD-ROM eller startas upp över ett PXE -nätverk och ett Cosmos-felsökningsalternativ med inbyggd debugger och andra alternativ.
När användaren har valt de önskade alternativen klickar han på knappen "Bygg". Detta resulterar i ett anrop till IL2CPU-kompilatorn , som systematiskt går igenom alla applikationer av CIL-koden (med undantag för Cosmos-kompilatorkoden), vilket gör den till assemblerspråk för den valda processorarkitekturen. Därefter anropar Cosmos den valda assemblern för att konvertera denna kod från assemblerspråk till processorns infödda opkod . Slutligen aktiveras de önskade resultaten, oavsett om det är att starta en emulator, starta en PXE-motor eller läsa från en ISO-fil.
Cosmos erbjuder flera alternativ för att felsöka utdata.
VirtualiseringCosmos låter användaren starta sitt operativsystem med hjälp av en virtuell maskin . Detta gör att utvecklare kan testa systemet på sin egen maskin utan att behöva starta om, vilket ger fördelarna med att inte kräva ytterligare hårdvara eller kräva att utvecklaren lämnar sin utvecklingsmiljö . För att lösa detta gör Cosmos det möjligt att använda en av tre emulatorer. QEMU , standardstartalternativet, är en gratis emulator som kommer med Cosmos. VMWare är en emulator som kan laddas ner från VMwares webbplats, med gratis och betalda versioner. Virtual PC är en gratis emulator som kan laddas ner från Microsofts webbplats [1] . Dessa emulatorer har också en diskavbildningskompileringsfunktion som gör att Cosmos-projektet kan laddas i vilken emulator som helst som låter dig ladda en diskavbildning.
En annan funktion som är tillgänglig med QEMU är debuggern , som låter användaren se källkoden som i Visual Studio medan han kör sitt operativsystem i QEMU. Det fungerar genom att lägga till kod till operativsystemet som kommunicerar med felsökaren via ett virtuellt nätverk .
DiskbilderDet här alternativet bränner operativsystemet till en diskavbildning (ISO-fil) som kan laddas i vissa emulatorer (som Virtual PC ) eller skrivas till en CD-ROM och startas på riktig hårdvara.
PXE-nätverksstartDet här alternativet låter dig ställa in operativsystemet så att det startar på riktig hårdvara. Data överförs över LAN till klientmaskinen. Detta kräver två datorer, en som klientdator (på vilken operativsystemet laddas) och en som server (vanligtvis utvecklarens maskin). Det kräver också ett nätverk som ansluter de två datorerna, och klientdatorn måste ha ett nätverkskort och BIOS som stöder PXE-start.
Huvudmontören av Cosmos system skulle vara en specialdesignad montör . Men på grund av dess ineffektivitet och långsamhet används NASM assembler .