Конференція Highload fwdays'19 — Autoscale, MySQL 8.0, Neo4j, Kafka and AWS Lambda | 05.10 | Київ
×Закрыть

Операционная система на... C#

Сегодня занесло меня на форум одной небезизвестной киевской конторы (точнее обучающего центра), мимо одного из постов не смог пройти не поделившись его содержанием с общественностью: </p>

Создание собственных операционных систем становится проще с каждым днем.
Если кто то мечтает о создании своей операционной системы на C#, я бы советовал ему обратить внимание на SDK и эмулятор проекта Cosmos.
Этот проект позволяется установить SDK и мастер в Visual Studio для создания проекта операционной системы. От вас как разработчика требуется только реализовать логику работы операционной системы и все.
На этапе компиляции вы можете видеть как будет отображаться ваша операционная система в специальном эмуляторе. После компиляции в папке с SDK будет доступен файл *.iso с образом вашей операционной системы, его надо записать на диск как образ. Затем перезагрузить ваш компьютер и загрузить вашу ОС с диска.
Подробнее о проекте можно почитать тут: www.gocosmos.org/index.en.aspx

Также есть еще две операционные системы на платформе MS.NET Framework это SharpOS и Microsoft Singularity.
SharpOS — это open source проект.

Если же вы хотите понять как работает и устанавливается операционная система, я хотел посоветовать начинать разбираться именно с операционной MINIX 3 (www.minix3.org), она поставляется в исходниках.
Почему именно с нее? Потому что у нее меньше кода и различных наворотов, код комментирован, соответственно быстрее разберетесь. MINIX легко устанавливается и позволяет задавать свою разметку диска.
Если вы хотите написать ось на платформе MS.NET Framework, советую посмотреть в сторону open source проекта Mono для операционных систем *nix.
Подробнее об этом проекте можно узнать тут: www.mono-project.com/Main_Page.
Если вы ставите цель написать сетевую ОС, тогда желательно разобраться с реализацией стека протоколов TCP/IP.
Наиболее удачная реализация стека протоколов была во FreeBSD 4.4.

http://forum.cbsystematics.com/showthread.cbsx? t=302

После прочтения сего опуса много думал...

З.Ы. Вопрос к администрации форума: А почему до сих пор нет раздела юмор?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
мені перед продовженям холівару хотілось би почу тивід автора, що є ядром осі,

тобто визначитися зтерміноогією, а далі вже можна буде подиспутувати, як воно може бути реалізовано на на сшарп


Писать программное обеспечение стало реально легче.

Проблема только в том что: простота разработки программного обеспечения развивается линейно, а сложность разрабатываемых проектов растет по экспоненте, если разрабатывать с нуля, а не брать за основу уже существующий десятки лет проэкт. C таким же успехом можна было взять за основу сорцы какой нить Ubuntu дописать пару своих функций и сказать ОПА я сделал свою операционную систему.; -)

2 Vladimir

Ну согласитесь уважаемые программисты, эра программирования на голом ассемблере для ПК, уже давно умерла. Да и мало уже кто пишет на ассемблере какое либо прикладное программное обеспечение.

Потому что наука уже давно шагнула на 20 шагов вперед. Писать программное обеспечение стало реально легче. На производительность уже никто не обращает внимание, поскольку аппаратное обеспечение позволяет выполнять более сложные бизнес процессы чем раньше.

бытует мнение, что знание внутренностей ОС, устройстов процессора, и их взаимодействия вплоть до ассамблерного уровня позволяет эфективней, оптимательней, а иногда и правельней решить большой ряд прикладных задач.

Народ, шо за ругательства? Какой BubbleSort в обществе апологетов бизнес-логики?

Вы б еще какой-нибудь Linked List богопротивный вспомнили.

это был стеб

отлегло от сердца:)

Писать программное обеспечение стало реально легче.

вирус на питоне- реально?

2 notus: это был стеб. До тех пор пока бесконечный цикл не будет выполнятся за 1 ms, забыть о производительности не представляется возможным.

2 sort запость это на оракловые форумы:)


Писать программное обеспечение стало реально легче. На производительность уже никто не обращает внимание, поскольку аппаратное обеспечение позволяет выполнять более сложные бизнес процессы чем раньше.

Давно пора выкинуть все эти QuickSort-ы на свалку, так как бабл сорт все пережует c помощью аппаратного обеспечения в разы быстрее.; -)

сабж имеет 26 посещений и столько же постов,
«настоящему ковбою всегда есть что сказать, если он настоящий ковбой»:)

вот холивора на дешевую тему нам не хватало, эт-да.

2 Vladimir: лично я считаю, что вы людям морочите голову по нескольким причинам:
1. Еще раз говорю, когда я увижу реализованную вами полноценную ОС на.Net, тогда я вам поверю (это же так просто написать ее, да и для ваших студентов будет наглядное пособие).

2. Аддоны это все хорошо, но почему так мало аналогов того же офиса? Попробуйте сформировать файл формата BIFF8 или почитайте его спецификацию на сайте майкрософта.

Владимир,
Вы похоже не чувствуете реальность...
На производительность уже никто не обращает внимание, поскольку аппаратное обеспечение позволяет выполнять более сложные бизнес процессы чем раньше.
да ну...
Да и мало уже кто пишет на ассемблере какое либо прикладное программное обеспечение.
ну вон мышцых, к примеру, антивирусы пишет в McAfee.
Врятли кому то будет интересна новость, что кто то написал очередную операционную систему на ассемблере или С, поскольку это не принесет ни денег ни прогресса для мира ИТ.

Пользователю безразлично на чем написана OS. Вопрос в том что ОС написанная на.NET не будет работать в продакшине. Это вообще не ОС будет. А если вы на Assembler Windows7 перепишите ещё и так что он загружаться за 2 секунды будет, тогда вы станите миллиардером.
Несомненным лидером среди ОС, сейчас является ОС Windows
Лидером где? На десктопах? А на Интернет-серверах что ставят обычно?
На этом форуме оскорбление друг друга это обычное дело. Люди вместо того чтобы тратить время на собственное развитие и зарабатывать деньги, пишут всякие гадости друг на друга, да еще и анонимно.

Вы знаете, да, на этом форуме хамят много. Ну раз администрация это допускает — к ней все вопросы. Другое дело что если опустить хамство, люди не зря объясняют вам что вы не правильно ощущаете реальность.
Вывод из этого следующий, те кто пишет гадости, тот неудачник, который старается спустить других людей до своего уровня и получить моральное удовлетворение от этого.

Откуда такой вывод? Логика?

Да...
На одном интересном форуме для постов такого рода существует раздел «Кунсткамера».

Над созданием которого и предлагаю задуматься Максу и Сергею.

Гадость MODE ON
Vladimir, где вы покупаете эту замечательную травку?

Гадость MODE OFF


Сегодня занесло меня на форум одной небезизвестной киевской конторы (точнее обучающего центра), мимо одного из постов не смог пройти не поделившись его содержанием с общественностью:
Создание собственных операционных систем становится проще с каждым днем.
Если кто то мечтает о создании своей операционной системы на C#, я бы советовал ему обратить внимание на SDK и эмулятор проекта Cosmos.
Этот проект позволяется установить SDK и мастер в Visual Studio для создания проекта операционной системы. От вас как разработчика требуется только реализовать логику работы операционной системы и все.
На этапе компиляции вы можете видеть как будет отображаться ваша операционная система в специальном эмуляторе. После компиляции в папке с SDK будет доступен файл *.iso с образом вашей операционной системы, его надо записать на диск как образ. Затем перезагрузить ваш компьютер и загрузить вашу ОС с диска.
Подробнее о проекте можно почитать тут: www.gocosmos.org/index.en.aspx
Также есть еще две операционные системы на платформе MS.NET Framework это SharpOS и Microsoft Singularity.
SharpOS — это open source проект.
Если же вы хотите понять как работает и устанавливается операционная система, я хотел посоветовать начинать разбираться именно с операционной MINIX 3 (www.minix3.org), она поставляется в исходниках.
Почему именно с нее? Потому что у нее меньше кода и различных наворотов, код комментирован, соответственно быстрее разберетесь. MINIX легко устанавливается и позволяет задавать свою разметку диска.
Если вы хотите написать ось на платформе MS.NET Framework, советую посмотреть в сторону open source проекта Mono для операционных систем *nix.
Подробнее об этом проекте можно узнать тут: www.mono-project.com/Main_Page
Если вы ставите цель написать сетевую ОС, тогда желательно разобраться с реализацией стека протоколов TCP/IP.
Наиболее удачная реализация стека протоколов была во FreeBSD 4.4.
forum.cbsystematics.com/...showthread.cbsx t=302
После прочтения сего опуса много думал...

З.Ы. Вопрос к администрации форума: А почему до сих пор нет раздела юмор?

Потому что раздел юмор, был создан один для всех, это bash.org.ru (просто наиболее известный:)) Сам частенько туда заглядываю, чтобы поднять настроение)
Честно, я даже не думал, что мой пост поднимет такую шумиху среди гуру низкоуровневых программистов))
В своем посте, я просто хотел донести до людей, саму мысль, того что прогресс не стоит на месте.
Я прекрасно понимаю, что шумиха вокруг этого поста была поднята из-за того, что операционная система может быть написана на языке C# и SDK Cosmos.
Ну согласитесь уважаемые программисты, эра программирования на голом ассемблере для ПК, уже давно умерла. Да и мало уже кто пишет на ассемблере какое либо прикладное программное обеспечение.
Потому что наука уже давно шагнула на 20 шагов вперед. Писать программное обеспечение стало реально легче. На производительность уже никто не обращает внимание, поскольку аппаратное обеспечение позволяет выполнять более сложные бизнес процессы чем раньше.
И это вполне нормально, ведь согласитесь, кто сейчас захочет платить большие деньги за программное обеспечение с проблемным сопровождением, из-за того, что оно написано на старых технологиях, которые уже почти не поддерживаются.
Надо стараться жить в настоящем времени, поскольку это несомненный путь к успеху.
Врятли кому то будет интересна новость, что кто то написал очередную операционную систему на ассемблере или С, поскольку это не принесет ни денег ни прогресса для мира ИТ.
А также по аналогии, зачем писать свой Word, если есть уже готовый Microsoft Office Word, над которым трудилась большая команда разработчиков. Ведь вражеский Word никто не купит, поскольку люди привыкли к MS Office Word.
Вот если написать аддон для MS Office Word, который принесет предприятию пользу и заработок, это уже есть гуд))
Теперь приступим к теме, которую все кто не перешел на платформу.NET Framework ненавидят.
Для создания того же аддона для MS Office в короткие сроки, что лучше:
1. Написать ручками кучу кода на С++ или ассемблере, около 3000 строк.
2. Воспользоваться мастером в Visual Studio, который создаст за вас часть проекта и дописать свои 100 строчек кода на C# или VB.NET.
Надеюсь ощущаете разницу.
Вот именно это я и хотел донести в своем посте о создании своей операционной системы.
А именно, что вам вовсе не надо знать всех низкоуровневых приблуд, надо только знать язык C# и SDK Cosmos))
Само ядро оси, добрые дяди написали за нас, и дали это нам бесплатно, так почему бы не воспользоваться и не сказать им за это спасибо.
Несомненным лидером среди ОС, сейчас является ОС Windows, как ни крути, просто это удобно, а значит это можно использовать. Не каждый пользователь будет на седьмом небе от счастья, если ему скажут, что он должен будет что то писать в консоли или еще хуже в чем то разбираться))
В своем посте я вовсе не хотел сказать что я создаю свою операционную систему или что то в этом роде, я просто хотел поделиться своими впечатлениями после использования технологии Cosmos.
Писать свою ось не имеет ни малейшего смысла, разве что, для собственного самоутверждения. Денег эта ось не принесет, а значит время потраченное на ее написание, будет потеряно впустую, что не есть гуд))
На этом форуме оскорбление друг друга это обычное дело. Люди вместо того чтобы тратить время на собственное развитие и зарабатывать деньги, пишут всякие гадости друг на друга, да еще и анонимно.
Вывод из этого следующий, те кто пишет гадости, тот неудачник, который старается спустить других людей до своего уровня и получить моральное удовлетворение от этого.

Успешные люди не сидят на форумах и не пишут гадости, у них как правило нет на это времени, они зарабатывают деньги))

2 sashaeve
> Например, кто бы мог подумать, например, что C# станет динамическим языком или что появится F#?

мне тебя действительно жаль.

и зачем нам столько осей?

virus пущай напишут на диезе. для начала.

2 dimKo: ну если так все просто, хотелось бы увидеть реализацию полноценной ОС от человека, написавшего эту статью.

Ну не нужно быть таким категоричным — через какое-то время (какое — уже другой вопрос) будем иметь все перечисленное вами (если это будет актуально и востребовано).

Например, кто бы мог подумать, например, что C# станет динамическим языком или что появится F#?

google os

Ось можна было написать и на JavaScript при желании.; -)

Но если это намек на гугл хром ОС то он основан на ядре Линукса так что ни о каком написании ОС на JavaScript в этом случае не может быть и речи:)
sashaeve
Singularity говоришь? Так все равно же должен быть какой-то загрузчик ядра, компилятора IL и всего прочего, который стандартными средствами дотнета (у которого краеугольным камнем являеться компиляция в IL, а не в машинный код) сделать не представляется технически возможным ибо чтоб выполнялась программа на дотнете необходим компилятор IL который будет транслировать ее в машинный код.
Это если они все таки сделали свой компилятор из C# в машинный код тогда да — можно говорить что она написана на C#, но никак не на дотнете в классическом понимании этого слова.

dimKo

А в чем проблема то? Для обучения программированию — тема очень даже ок. Знаете ли, можно написать на всем — вся соль в том кто и как пишет. А сразу говорить что клиника, или ещё че хуже — Вы судите по себе.:)

Та писать то можно и на всем и как угодно, только вот иногда обидно что результат этой всей писанины равняется абсолютному нулю...

Основатель Microsoft Билл Гейтс в интервью изданию CNET News выразил мнение, что операционная система rus-os...

О. Началось.

А в чем проблема то? Для обучения программированию — тема очень даже ок. Знаете ли, можно написать на всем — вся соль в том кто и как пишет. А сразу говорить что клиника, или ещё че хуже — Вы судите по себе.:)

Что значит не практично? WMWare практично или нет?

ОС — это Unix, Linux, Windows, MsDOS

Все что не практично — это не ОС, а эмулятор.

Ось можна было написать и на JavaScript при желании.; -)

Singularity:
research.microsoft.com/...ts/singularity

ru.wikipedia.org/...oft_Singularity

Низкоуровневый код обработки прерываний x86 написан на языке ассемблера и C. Библиотеки времени исполнения (англ. runtime) и сборщик мусора написаны на Sing# (специально доработанном для данного проекта диалекте C#) с использованием небезопасного режима (англ. unsafe mode). Также присутствует код на C, использующийся в целях отладки. BIOS компьютера вызывается только на этапе загрузки в 16-разрядном реальном режиме работы процессора. После перехода в 32-разрядный режим, BIOS больше никогда не вызывается, вместо него используются драйверы, написанные на Sing#. При установке ядра, оп-коды CIL компилируются в инструкции x86 при помощи компилятора Bartok.

Bartok [1] — это исследовательский проект по созданию на языке C# оптимизирующего компилятора из CIL в x86.

формулировка у них неправильная.,

но обучение комп наукам через написание ос — помойму довольно неплохая идея.

Хоть и работаю с мелкомягковскими технологиями. Но, это уже даже не юмор, а клиника. Если на сайте обучающего центра появляются такие посты, то думаю можно делать вывод о качестве преподавания там.

Создание собственных операционных систем становится проще с каждым днем.

Ржунимагу, скоро каждая кухарка сможет написать свою ось.

Главная ошибка здесь в фразе — «Создание собственных операционных систем становится проще с каждым днем.»
Дело в том что то что будет написано на.NET уже нельзя будет назвать OS, а лишь эмулятор OS.

Вот и не состоялись мечты...

Серъезное у них там обучение, я смотрю...

Дайош Оську на КьюБейсЫку?!

А на похапэ там никто операционку не пишет?

не читал, но осуждаю. в раздел юмора бы определенно попали твои посты про хабр. как он прекрасен и т.п. gtfo

Подписаться на комментарии