Cosmos (operační systém)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 18. července 2019; kontroly vyžadují 7 úprav .
Kosmos

Screenshot shellu Cosmos z QEMU
Vývojář Projekt Kosmos
Nejnovější verze 20220209 ( 9. února 2022 )
Typ jádra mikrokernel
Licence BSD
Stát Beta testování
Úložiště zdrojového kódu https://github.com/CosmosOS/Cosmos…
Webová stránka gocosmos.org
 Mediální soubory na Wikimedia Commons

Cosmos  je open source vývojová sada operačního systému napsaná v programovacím jazyce C# . Kromě toho obsahuje kompilátor Microsoft Intermediate Language ( IL2CPU ), který umožňuje vytvářet kompletní programové moduly, které zahrnují knihovny .NET Framework a samotný operační systém Cosmos, což umožňuje vytvářet spouštěcí moduly, které nevyžadují externí OS pro jejich práce. Lze zavést z diskety , USB flash disku , CD-ROM nebo z virtuálního počítače . V současné době je podporována pouze architektura x86, i když je systém zaměřen na C#, lze jej použít s většinou kompatibilních jazyků .NET, jako jsou: Visual Basic a X# (vyžaduje „čistou“ kompilaci CIL bez použití P/Invoke ). Cosmos je primárně určen pro použití pouze s Microsoft .NET Framework , ale lze jej zkompilovat pomocí Mono spoléháním se na blok System.Threading, třídu ReaderWriterLockSlim.

Podle webu Cosmos je Cosmos backronymem pro C # Open Source Managed Operating System . Cosmos je nyní sada nástrojů, která usnadňuje ostatním vývojářům vytvářet jejich vlastní operační systémy, nebo, jak řekl jeden z vedoucích projektu, fungovat jako „ operační systém typu Lego “. Funguje také jako abstraktní vrstva, která skrývá velkou část vnitřní hardwarové práce.

Aktuální vydání Cosmos je Milestone 5 , ale práce na budoucích vydáních jsou v plném proudu. Většina práce na Cosmosu je v současné době zaměřena na vývoj síťového rozhraní, nicméně systém již podporuje některé síťové karty a některé funkce TCP/IP . V současné době existují dvě verze Cosmos, (pozdější) zdrojová verze a uvolněná verze (známá jako vlastní sada). Zdrojová verze je pro ty, kteří chtějí pomoci s vývojem jádra , zatímco vlastní sada je pro ty, kteří chtějí používat Cosmos k vývoji vlastního operačního systému. Nějakou dobu před vydáním Milestone 3 bylo doporučeno, aby si všichni uživatelé stáhli zdrojový kód, protože předchozí bundle z Milestone 2 je zastaralý.

V nejnovější verzi se vývojáři vrátili ke GRUB jako bootloader , nicméně Syslinux a výše zmíněný GRUB byly také používány dříve.

Psaní kódu

Operační systém postavený na Cosmos začíná život jako projekt .NET (zejména konzolové aplikace ). V nových verzích bylo psaní kódu zjednodušeno. Hlavní soubor Kernel.cs je rozdělen do dvou metod: BeforeRun() a Run(). První popisuje akce, které se provádějí po načtení operačního systému. Ve druhém se kód provádí v nekonečné smyčce, ale obvykle vývojáři metodu doplní funkcí pro vypnutí PC.

V Cosmos existují třídy jako System, které se zabývají souborovým systémem počítače , sítí a výkonem; HAL, pro práci s grafikou a ovladači ; Core pro správu RAM , ACPI a zobrazení dat CPU ; Debug pro ladění a Common.

Nastavení sestavení se nachází ve vlastnostech projektu, sestavení se provádí prostřednictvím karty „Sestavit“ na horním panelu okna sady Visual Studio.

Vlastní sada a Visual Studio

Vlastní sada je součástí Cosmos zaměřená na usnadnění používání Cosmos pro vývojáře používající Microsoft Visual Studio . Instalace balíčku přidá do sady Visual Studio nový typ projektu s názvem Cosmos Project. Jedná se o upravenou verzi konzolové aplikace s již přidaným kompilátorem Cosmos a neúplným načítáním kódu.

Kompilace projektu

Po dokončení kódu může uživatel zkompilovat projekt pomocí svého preferovaného kompilátoru .NET. To změní aplikace z jejich původního zdrojového kódu ( C# nebo jinak) do Microsoft Intermediate Language , nativního jazyka .NET Framework. Dále spusťte aplikaci a ukažte na okno Cosmos Builder, které vývojáři nabídne možnosti, které určují, jak sestavit projekt. Tyto možnosti zahrnují načtení projektu prostřednictvím emulátorů, jako je QEMU , Virtual PC a VMWare , zápis do obrazu disku (soubor ISO), který lze později vypálit na CD-ROM nebo zavést přes síť PXE , a možnost ladění Cosmos pomocí vestavěný debugger a další možnosti.

Když uživatel vybere požadované možnosti, klikne na tlačítko "Vytvořit". Výsledkem je volání kompilátoru IL2CPU , který systematicky prochází všemi aplikacemi kódu CIL (s výjimkou kódu kompilátoru Cosmos) a převádí jej do assembleru pro vybranou architekturu procesoru. Dále Cosmos zavolá vybraný assembler, aby převedl tento kód z jazyka assembleru na nativní operační kód procesoru . Nakonec jsou povoleny požadované výsledky, ať už jde o spuštění emulátoru, spuštění enginu PXE nebo čtení ze souboru ISO.

Funkce ladění

Cosmos nabízí několik možností pro ladění výstupu.

Virtualizace

Cosmos umožňuje uživateli zavést svůj operační systém pomocí virtuálního stroje . To umožňuje vývojářům otestovat systém na svém vlastním počítači bez nutnosti restartu, což přináší výhody, které spočívají v tom, že nevyžadují další hardware nebo že vývojář nemusí opustit své vývojové prostředí . K vyřešení tohoto problému umožňuje Cosmos použít jeden ze tří emulátorů. QEMU , výchozí možnost spouštění, je bezplatný emulátor dodávaný s Cosmos. VMWare  je emulátor, který lze stáhnout z webu VMware s bezplatnou a placenou verzí. Virtual PC je bezplatný emulátor, který lze stáhnout z webu společnosti Microsoft [1] . Tyto emulátory mají také funkci kompilace obrazu disku, která umožňuje načíst projekt Cosmos v libovolném emulátoru, který umožňuje načíst obraz disku.

Další funkcí dostupnou s QEMU je debugger , který umožňuje uživateli prohlížet zdrojový kód jako ve Visual Studiu , zatímco běží jejich OS v QEMU. Funguje tak, že do operačního systému přidá kód, který komunikuje s debuggerem prostřednictvím virtuální sítě .

Obrazy disků

Tato možnost vypálí operační systém na obraz disku (soubor ISO), který lze načíst v některých emulátorech (jako je Virtual PC ) nebo zapsat na disk CD-ROM a spustit na skutečném hardwaru.

Spouštění sítě PXE

Tato možnost umožňuje nastavit operační systém tak, aby se spouštěl na skutečném hardwaru. Data jsou přenášena přes LAN do klientského počítače. To vyžaduje dva počítače, jeden jako klientský počítač (na kterém je zaveden operační systém) a jeden jako server (obvykle počítač vývojáře). Vyžaduje také síť spojující dva počítače a klientský počítač musí mít síťovou kartu a BIOS , které podporují spouštění PXE.

Assembler

Hlavním assemblerem systémů Cosmos měl být speciálně navržený assembler . Kvůli své neefektivitě a pomalosti se však používá assembler NASM .

Poznámky

  1. http://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402-3199-48A3-AFA2-2DC0B40A73B6&displaylang=cs  _

Viz také

Odkazy