Здравствуй сообщество Хабрахабра, наверное многие слышали про проект COSMOS? Вот о нем и пойдет речь сегодня.
COSMOS это одна из немногих операционных систем написанных на C#, это даже не операционная система, а скорее фреймворк для программистов. Операционная система полностью открыта, и для создания ядра нам потребуется Visual Studio 2010 Express или Professional, конечно, желательней Professional.
Заходим на сайт проекта, если у Вас хорошо с английским можете прочитать документацию. Скачиваем последний билд (при написании этой статьи последним был 92560), затем загружаем Visual Studio 2010 с официального сайта Microsoft. Затем необходимо загрузить VMware Player (или Workstation) отсюда, а так же VIX API необходимый для тестирования нашей ОС.
Необходимо загрузить Microsoft Visual Studio 2010 Shell .
И так давайте создадим проект, при создании проекта в конце списка должно появится Cosmos C# Library, он то нам и нужен. При создании мы видим класс Kernel в котором две функции BeforeRun и Run, данные функции защищены поэтому вызвать их из другого класса не получиться. BeforeRun это нечто напоминающее приветствие, функция Run — само ядро. Хотя Run можно использовать в качестве простой передачи управления незащищенному классу для легкого доступа к нему из другого класса. Ну и в конце-концов, давайте напишем «Hello, World!»
В системе работают только системные namespace's System, System.Text и System.Collections.Generic. В операционной системе реализована так же поддержка VGA и SVGA. Простой терминал пишется очень легко, давайте напишем простую команду help.
Ну в принципе, вот и все, осталось только это все протестировать.
Конечно же не забываем построить проект в главном Visual Studio, а теперь открываем Visual Studio Shell. Ничего страшного в этом нету, так же создаем проект Cosmos Project. И видим что сбоку панель ссылок, нам она и понадобится. Добавляем ссылку (Project -> Add Reference) и выбираем получившийся dll в нашем проекте, который мы делали выше (C:\username\Documents\Visual Studio\Projects\project\bin\debug\). Запускаем. Проект собирается достаточно долго, но подождать можно. Вот перед нами и появилась наша новорожденная ОС.
Предисловие
COSMOS это одна из немногих операционных систем написанных на C#, это даже не операционная система, а скорее фреймворк для программистов. Операционная система полностью открыта, и для создания ядра нам потребуется Visual Studio 2010 Express или Professional, конечно, желательней Professional.
Установка
Заходим на сайт проекта, если у Вас хорошо с английским можете прочитать документацию. Скачиваем последний билд (при написании этой статьи последним был 92560), затем загружаем Visual Studio 2010 с официального сайта Microsoft. Затем необходимо загрузить VMware Player (или Workstation) отсюда, а так же VIX API необходимый для тестирования нашей ОС.
Если Вы используете Express
Необходимо загрузить Microsoft Visual Studio 2010 Shell .
Пишем код
И так давайте создадим проект, при создании проекта в конце списка должно появится Cosmos C# Library, он то нам и нужен. При создании мы видим класс Kernel в котором две функции BeforeRun и Run, данные функции защищены поэтому вызвать их из другого класса не получиться. BeforeRun это нечто напоминающее приветствие, функция Run — само ядро. Хотя Run можно использовать в качестве простой передачи управления незащищенному классу для легкого доступа к нему из другого класса. Ну и в конце-концов, давайте напишем «Hello, World!»
using System;
using System.Collections.Generic;
using System.Text;
using Sys = Cosmos.System;
namespace CSharpKernel1
{
public class Kernel : Sys.Kernel
{
protected override void BeforeRun()
{
Console.WriteLine("Hello, World! It's my OS!");
}
protected override void Run()
{
Console.Write("> ");
var In = Console.ReadLine();
}
}
}
В системе работают только системные namespace's System, System.Text и System.Collections.Generic. В операционной системе реализована так же поддержка VGA и SVGA. Простой терминал пишется очень легко, давайте напишем простую команду help.
using System;
using System.Collections.Generic;
using System.Text;
using Sys = Cosmos.System;
namespace CSharpKernel1
{
public class Kernel : Sys.Kernel
{
protected override void BeforeRun()
{
Console.WriteLine("Hello, World! It's my OS!");
}
protected override void Run()
{
Console.Write("> ");
var In = Console.ReadLine();
if (In == "help") {
Console.WriteLine("A basic terminal of my OS! Type 'help' again!");
}
}
}
Ну в принципе, вот и все, осталось только это все протестировать.
Тестирование
Конечно же не забываем построить проект в главном Visual Studio, а теперь открываем Visual Studio Shell. Ничего страшного в этом нету, так же создаем проект Cosmos Project. И видим что сбоку панель ссылок, нам она и понадобится. Добавляем ссылку (Project -> Add Reference) и выбираем получившийся dll в нашем проекте, который мы делали выше (C:\username\Documents\Visual Studio\Projects\project\bin\debug\). Запускаем. Проект собирается достаточно долго, но подождать можно. Вот перед нами и появилась наша новорожденная ОС.