Cosmos (операционная система)
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Cosmos — это комплект для разработки операционных систем с открытым кодом, написанный на языке программирования C#. Кроме того, он содержит компилятор языка Microsoft Intermediate Language (IL2CPU), позволяющий формировать законченные программные модули, включающие в себя библиотеки .NET Framework и саму операционную систему Сosmos, что позволяет создавать загрузочные модули, не требующие для своей работы внешнюю ОС. Может загружаться с дискеты, USB флеш-накопителя, CD-ROM или в виртуальной машине. В настоящее время поддерживается архитектура только x86, хотя система направлена на C#, она может быть использована с большинством совместимых языков .NET, таких как: Visual Basic и X# (требуется «чистая» компиляция CIL без использования P/Invoke). Cosmos в первую очередь предназначен для использования только с Microsoft .NET Framework, но может быть скомпилирована с использованием Mono с опорой на блок System.Threading, класса ReaderWriterLockSlim.
Cosmos | |
---|---|
Скриншот оболочки Cosmos из-под QEMU | |
Разработчик | Cosmos Project |
Последняя версия | 20220209 (9 февраля 2022) |
Тип ядра | микроядро |
Лицензия | BSD |
Состояние | Бета-тестирование |
Репозиторий исходного кода | github.com/CosmosOS/Cosm… |
Веб-сайт | gocosmos.org |
Медиафайлы на Викискладе |
По информации с веб-сайта Cosmos, Cosmos является бэкронимом от C# Open Source Managed Operating System (рус. «Управляемая операционная система с открытым кодом на C#»). В настоящее время Cosmos является набором инструментальных средств, позволяющих другим разработчикам легко и просто создавать свои собственные операционные системы, или, как сказал один из руководителей проекта, действовать в качестве «операционной системы типа Lego». Он также функционирует как абстракционный слой, скрывающий значительную часть работы внутренних аппаратных средств.
Текущий выпуск Cosmos — Milestone 5, однако работа над будущими релизами идёт полным ходом. Большинство работ над Cosmos в настоящее время направлены на развитие сетевого интерфейса, однако система уже поддерживает некоторые сетевые карты и некоторые черты TCP/IP. В настоящее время существуют две версии Cosmos: более поздняя версия с исходным кодом и релизная версия, известная как пользовательский комплект. Версия с исходным кодом предназначена для тех, кто хочет помочь разработать ядро, в то время как пользовательский комплект предназначен для тех, кто просто хочет использовать Cosmos для развития своей собственной операционной системы. За некоторое время до выхода Milestone 3 было рекомендовано, чтобы все пользователи скачали исходный код, так как предыдущий комплект от Milestone 2 устарел.
В последней версии разработчики вернулись к GRUB в качестве загрузчика, однако ранее использовался также Syslinux и выше упомянутый GRUB.
Написание кодаПравить
Операционная система, построенная на Cosmos, начинает жизнь как .NET проект (в частности, консольные приложения). В новых версиях написание кода было упрощено. Главный файл Kernel.cs делится на два метода: BeforeRun() и Run(). В первом прописываются действия, выполняющиеся после загрузки операционной системы. Во втором код выполняется в бесконечном цикле, но обычно разработчики завершают метод функцией выключения ПК.
В Cosmos существуют классы, такие как System для работы с файловой системой, сетью и питанием компьютера; HAL для работы с графикой и драйверами; Core для управления ОЗУ, ACPI и просмотра данных о процессоре; Debug для отладки и Common.
Настройки сборки находятся в свойствах проекта, построение происходит через вкладку «Сборка» на верхней панели окна Visual Studio.
Пользовательский комплект и Visual StudioПравить
Пользовательский комплект является частью Cosmos, направленной на упрощение использования Cosmos для разработчиков, использующих Microsoft Visual Studio. При установке комплекта добавляется новый тип проекта в Visual Studio под названием Cosmos Project. Представляет собой модифицированную версию консольного приложения с уже добавленным компилятором Cosmos и незавершённым кодом загрузки.
Компиляция проектаПравить
Как только код будет завершён, пользователь может скомпилировать проект, используя предпочтительный компилятор .NET. Это превращает приложения из оригинального исходного кода (C# или другого) в Microsoft Intermediate Language, на родной язык .NET Framework. Далее следует запустить приложение с указанием окна Cosmos Builder, которое представляет разработчику параметры, которые определяют, как именно компилировать проект. Эти параметры включают загрузку проекта через эмуляторы такие как QEMU, Virtual PC и VMWare, запись в образ диска (ISO-файл), который впоследствии может быть записан на CD-ROM или загружен через сеть PXE, а также параметр отладки Cosmos с использованием встроенного отладчика и другие параметры.
Когда пользователь выбрал желаемые параметры, он нажимает кнопку «Build». Это приводит к вызову компилятора IL2CPU, который систематически просматривает все приложения CIL-кода (за исключением кода компилятора Cosmos), превращая его в язык ассемблера для выбранной архитектуры процессора. Далее Cosmos вызывает выбранный ассемблер для преобразования этого кода с языка ассемблера на родной код операции процессора. Наконец активизируются желаемые результаты, будь то запуск эмулятора, запуск PXE движка или чтение с ISO-файла.
Функции отладкиПравить
Cosmos предлагает несколько вариантов отладки вывода.
ВиртуализацияПравить
Cosmos позволяет пользователю загрузить свою операционную систему с помощью виртуальной машины. Это позволяет разработчикам тестировать систему на своём компьютере без необходимости перезагрузки, давая преимущества, не требующие дополнительных аппаратных средств и не требующих от разработчика покинуть свою среду разработки. Чтобы разрешить это, Cosmos делает возможным использовать один из трёх эмуляторов. QEMU, параметр загрузки по умолчанию, является свободным эмулятором, который поставляется вместе с Cosmos. VMWare — эмулятор, который может быть загружен с сайта компании VMware, со свободными и платными версиями. Virtual PC — бесплатный эмулятор, который может быть загружен с веб-сайта Майкрософт[1]. А также эти эмуляторы имеют функцию компиляции образа диска, которая позволяет проекту Cosmos быть загруженным в любом эмуляторе, который позволяет загружать образ диска.
Ещё одна особенность, доступная с QEMU, — отладчик, который позволяет пользователю просмотреть исходный код как в Visual Studio во время работы своих ОС в QEMU. Это работает путём добавления кода в операционную систему, который общается с отладчиком через виртуальную сеть.
Образы дисковПравить
Этот параметр записывает операционную систему на образ диска (ISO-файл), который может быть загружен в некоторых эмуляторах (например, Virtual PC) или записать на CD-ROM и загрузиться на реальном оборудовании.
Сетевая загрузка PXEПравить
Этот параметр позволяет устанавливать операционную систему для загрузки на реальном оборудовании. Данные передаются через сеть LAN на клиентскую машину. Это требует наличия двух компьютеров: одного в качестве клиентской машины (на которой загружается операционная система) и одного в качестве сервера (как правило, машина разработчика). Также требуется сеть, соединяющая два компьютера, и клиентская машина должна иметь сетевую карту и BIOS, которые поддерживают загрузку PXE.
АссемблерПравить
Основным сборщиком систем Cosmos должен был стать специально разработанный ассемблер. Однако из-за его неэффективности и медлительности используется ассемблер NASM.
ПримечанияПравить
См. такжеПравить
СсылкиПравить
- Официальный сайт Архивная копия от 17 января 2022 на Wayback Machine (англ.)
- Страница проекта в Codeplex Архивная копия от 26 января 2010 на Wayback Machine (англ.)
- Группа разработчиков Cosmos на Yahoo Архивная копия от 8 января 2011 на Wayback Machine (англ.)
- Фан-страница Cosmos на Facebook Архивная копия от 23 марта 2021 на Wayback Machine (англ.)
В статье есть список источников, но не хватает сносок. |