Pull to refresh

Comments 30

У меня сильное чувство дежавю, буквально с год назад уже была статья про ОС на C# так же с использованием .NET или C#, уже точно не помню. Или Вы решили повторить славу предыдущего топика?:)


>> май 2012

Каждый год .NET сообщество собирает шабаш и пишет свою OS на Cosmos-е.
Моя реакция на твой комментарий.

И сколько такая ОС занимает места на диске и сколько ест оперативки?
В данном случае iso-образ весит 1,87 мегабайта, а оперативки ест очень мало — меньше мегабайта.
и при этом вообще ничего не умеет. Программисты встраиваемых железок смотрят как-то недоумённо.
Так это голяк, для обучения, к примеру. Только ядро.
раскрою страшную тайну — в 2 мегабайта флеша при очень большом желании можно утрамбовать линукс и минимальный userland.

Хотя я могу побыть в роли адвоката дьявола и описать примерные преимущества ОС написанной на управляемом языке, но мне неохота…
Одно дело с нуля писать загрузчик, ядро и так далее, и все это на ассемблере — ясное дело, что такая ОС будет весит очень мало. И для этого надо не один месяц провозиться с изучением ассемблера и прочего. А здесь от программиста требуется только знание си шарпа. Так что, думаю, плата в виде лишнего мегабайта достаточно окупается.
Я не вижу смысла в таком обучении. Я вижу смысл в использовании чего-то типа cosmos в качестве тонкого рантайма для развёртывании на AWS, например, чтобы сократить накладные расходы на работу инстанса.

Но возможность работать с C# вместо C, не отменяет необходимости понимания принципов низкоуровневой работы с железом. Даже хуже, C# скрывает в частности работу с памятью, а эта абстракция протекает очень быстро.

З.Ы. Программисты люди такие, они всегда придумают новый уровень абстракции, на который можно просрать появившиеся вычислительные мощности.
А толку то? Все равно без знания асма он ось не напишет.
Зачем? Еще раз повторю: она нужна для обучения, для спортивного интереса, вряд ли кому то захочется просто так копаться в ядре линукса, чтобы построить свой shell, да и на C#, объективно, писать проще, особенно новичкам.
Для обучения чему? выше я написал один из видимых мной вариантов полезного использования подобной заготовки под ОС. Так сказать заточка virtual instance под конкретную задачу с экономией на накладных расходах связанных с ОС общего назначения.
iso-образ весит 1,87 мегабайта, а оперативки ест очень мало — меньше мегабайта

В печь, РусОС — наше всё.
Его можно записать на диск или на флешку и грузить нашу ОС на реальном железе.

Ничего себе! Как это возможно? Я думал для исполнения C# (.Net) кода необходима хост ОС (Windows или Linux) и CLR-рантайм (.Net Framework или Mono).
Там всё «просто». Есть минимальное ядро, умеющее базовый ввод-вывод, управление памятью и IPC. На его основе разворачивается ограниченное подмножество CLR которое умеет выполнять байткод.
Да, это возможно, так как код С# переводится в ассемблерный код, с помощью NASM. К тому же иначе не было бы смысла создавать такой проект, легче было бы создать простое консольное приложение С#.
Тогда почему C# не используется для создания «нативных» приложений?
Wikipedia: C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR.
В Cosmos специально реализовано преобразование кода С# в ассемблерный код, причем реализовано не майкрософтом, а разработчиками Cosmos. Так что все вопросы к майкрософту.
Почему не используют? Используют, еще как, например Xamarin умеет создавать нативные приложения под Win/Mac/Android/iOS
Насколько мне известно, к сожалению нет.
Есть любительские ядра, можно также свободно дописывать нужный функционал на C\C++. Единственное нет подобной интеграции в среду.
Хабр, зачем ты следишь за мной??? В понедельник только вспомнил про проект Singularity и интереса ради скачал исходники, а тут это…
Жаль что проект загнулся :(
Sign up to leave a comment.

Articles