Interested Article - Cosmos (операционная система)

Cosmos — это комплект для разработки операционных систем с открытым кодом , написанный на языке программирования C# . Cosmos содержит компилятор языка Microsoft Intermediate Language ( IL2CPU ), позволяющий формировать законченные программные модули, включающие в себя библиотеки .NET Framework и саму операционную систему Сosmos, что позволяет создавать загрузочные модули, не требующие для своей работы внешнюю ОС. Может загружаться с дискеты , USB флеш-накопителя , CD-ROM или в виртуальной машине . В настоящее время поддерживается архитектура только x86, хотя система направлена на C#, она может быть использована с большинством совместимых языков .NET, таких как: Visual Basic и X# (требуется «чистая» компиляция CIL без использования ). 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 позволяет пользователю загрузить свою операционную систему с помощью виртуальной машины . Это позволяет разработчикам тестировать систему на своём компьютере без необходимости перезагрузки, давая преимущества, не требующие дополнительных аппаратных средств и не требующих от разработчика покинуть свою среду разработки . Чтобы разрешить это, Cosmos делает возможным использовать один из трёх эмуляторов. QEMU , параметр загрузки по умолчанию, является свободным эмулятором, который поставляется вместе с Cosmos. VMWare — эмулятор, который может быть загружен с сайта компании VMware, со свободными и платными версиями. Virtual PC — бесплатный эмулятор, который может быть загружен с веб-сайта Майкрософт . А также эти эмуляторы имеют функцию компиляции образа диска, которая позволяет проекту Cosmos быть загруженным в любом эмуляторе, который позволяет загружать образ диска.

Ещё одна особенность, доступная с QEMU, — отладчик , который позволяет пользователю просмотреть исходный код как в Visual Studio во время работы своих ОС в QEMU. Это работает путём добавления кода в операционную систему, который общается с отладчиком через .

Образы дисков

Этот параметр записывает операционную систему на образ диска (ISO-файл), который может быть загружен в некоторых эмуляторах (например, Virtual PC ) или записать на CD-ROM и загрузиться на реальном оборудовании.

Сетевая загрузка PXE

Этот параметр позволяет устанавливать операционную систему для загрузки на реальном оборудовании. Данные передаются через сеть LAN на клиентскую машину. Это требует наличия двух компьютеров: одного в качестве клиентской машины (на которой загружается операционная система) и одного в качестве сервера (как правило, машина разработчика). Также требуется сеть, соединяющая два компьютера, и клиентская машина должна иметь сетевую карту и BIOS , которые поддерживают загрузку PXE.

Ассемблер

Основным сборщиком систем Cosmos должен был стать специально разработанный ассемблер . Однако из-за его неэффективности и медлительности используется ассемблер NASM .

Примечания

  1. (англ.)

См. также

Ссылки

Источник —

Same as Cosmos (операционная система)