Cosmos (операционная система) (Cosmos (khyjgenkuugx vnvmybg))
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Cosmos | |
---|---|
| |
Разработчик | Cosmos Project |
Последняя версия | 20221121 (21 ноября 2022) |
Тип ядра | микроядро |
Лицензия | BSD |
Состояние | Бета-тестирование |
Репозиторий исходного кода | github.com/CosmosOS/Cosm… |
Веб-сайт | gocosmos.org |
Медиафайлы на Викискладе |
Cosmos — комплект для разработки операционных систем с открытым кодом, написанный на языке программирования C#. Cosmos содержит компилятор языка 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 на данный момент является бэкронимом от 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 (англ.)
В статье есть список источников, но не хватает сносок. |