Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
1

C# как язык для создания ОС

21.04.2017, 16:06. Показов 758. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сообщения перенесены из темы Как компилить программу .exe в другое разрешение?


Цитата Сообщение от Crypt0r Посмотреть сообщение
думею что делать
не страдать ерундой.
.net является платформой, которая требует хостовой системы. Она по определению не подходит для создания собственной ОС, максимум -- виртуализации.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2017, 16:06
Ответы с готовыми решениями:

Оптимальный язык для создания интернет-магазина
Всем привет. Дайте плз совет, коллеги. Я пока умею программировать только на C++, но хочу научиться...

Подходит ли язык Си для создания чатбота?
Подскажите, пожалуйста, подойдёт ли язык Си для создания чат бота? Есть некоторая идея и хотелось...

Какой язык выбрать, для создания программы
Доброго времени суток. У меня возникла потребность, для своих нужд написать программу. Язык...

Какой язык программирования лучше для создания игры???
Какой язык программирования лучше для создания игры, С++ или С#???

12
Эксперт .NETАвтор FAQ
10410 / 5140 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
22.04.2017, 10:08 2
Цитата Сообщение от Wolfdp Посмотреть сообщение
Она по определению не подходит для создания собственной ОС
Ну .NET может и не подходит, но на C# оси пишут: CosmosOS.

Crypt0r, А вы не теряйте зря времени. Ось вы не напишите. Поиграйтесь с песочницей (ссылка выше), хоть какой-то толк может будет. Для начала сделайте хотябы свою файловую систему. Ну а про компиляцию exe в vut - забудьте.
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
22.04.2017, 11:50  [ТС] 3
Цитата Сообщение от Storm23 Посмотреть сообщение
Ну .NET может и не подходит, но на C# оси пишут: CosmosOS.
ммм... читнул описание, вроде это просто управляемая ОСь, которая постороена на IL2CPU и
позволяет создавать загрузочные модули, не требующие для своей работы внешней ОС
Т.е. по сути некий конструктор на базе, мол взял шаблон, допилил что нужно, и получил кастумную ОСь.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
11.05.2017, 17:54 4
Wolfdp, Singularity был на шарпе полностью написан (не считая 5k sloc ядра на плюсах).
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
11.05.2017, 21:39  [ТС] 5
Psilon, в вики чуть иная инфа. Писали на Sing# (специально доработанном для данного проекта диалекте C#) с использованием небезопасного режима(!), а низкоуровневый код на ассемблере и С. Т.е. не в дефолтной сутдии с использование дотнета. Вообще, если так прикинуть, то можно хоть в блокноте писать, главное получить на выходе терубемый нябор байтов...
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
11.05.2017, 22:38 6
Wolfdp, ну да, там не чистый шарп, ансейф все еще остается managed-языком, а про низкоуровневый код я вроде написал, там на нем фактически был только загрузчик. Надо ведь как-то загрузить JIT и все остальное, иначе как шарп заработает?

Почему ОС должна быть написана в дефолтной студии и таргетить дефолтовый дотнет мне непонятно. Главное - пример. Причем, он живет в винде, собственно linux2windows subsystem это дальний потомок этой самой Singularity. Так что все работает на практике. Что вполне доказывает жизнеспособность подхода.
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
12.05.2017, 00:41  [ТС] 7
Цитата Сообщение от Psilon Посмотреть сообщение
Почему ОС должна быть написана в дефолтной студии и таргетить дефолтовый дотнет мне непонятно.
я протупил, скорее нужно указать что класические студийньіе проектьі под .net не заточеньі для написания ОС. Студия же по сути навороченьій блокнот для лучшей нафигации кода и подключения нужньіх вещей в проект для работьі.

Я бьі сказал, что писать на .net ОС, єто как делать сайт не на asp.net, а тупо в консоли создавать Socket для прослушки, парсить входящие данньіе и отдавать в поток ответ. Т.е. технически єто можно. Наверное.... И даже удобней, чем Паскале. Но как-то не то...

Возможно есть какой-то проект, что написан для VS и использует синтаксис C#, но если не ошибаюсь, машиный код работает с памятью напрямую, а значит привет адресация и прочие прелести небезопасного кода, что немного противоречит изначальной идеи шарпа.
0
Diamante
12.05.2017, 00:52
  #8

Не по теме:

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

0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.05.2017, 00:53 9
Wolfdp, ансейфа там совсем немного, потому что в наше время неизвестно случаев написания системных вещей без валидации. Собственно, сама математика основывается на аксиомах, которые не доказываются, а принимаются. Ансейф на нижнем уровне - это и есть аксиомы программирования, на которых уже строятся безопасные вещи. Но нижний уровень - ансейф и избежать этого нельзя, даже в Rust - самый безопасный и низкоуровневый язык из существующих - в служебных библиотеках полагается на unsafe. Это раз.
Два - у того же С++ нет никакого преимущества по сравнению с шарпом в плане написания ОС. Просто когда писали основные из существующих ОС - ничего другого не было. В тех же мобилках (возьмем например андроид), системный код написан на джаве, плюс небольшой загрузчик на С++, который загружает JVM. Никаких проблем с тем, что система работает в managed-среде нет.
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
12.05.2017, 01:44  [ТС] 10
Цитата Сообщение от Diamante Посмотреть сообщение
ни разу не понятен и захламляет эфир...
нядоже чем-то разабвлять постояные темы аля "как няйти символ в строке?"

Цитата Сообщение от Psilon Посмотреть сообщение
Ансейф на нижнем уровне - это и есть аксиомы программирования
Я понимаю что без него никак, просто идеология JAVA и C# -- писать конечный продукт быстро и не запариваясь, как правило бизнес-приложений. Ради этого вводились различные фичи (тот же Linq для лучшей работы с перечислениями, или асинхроность с локерами ради паралелизации действий, ну или лямда для мапинга и простотьі/читаемости).

Цитата Сообщение от Psilon Посмотреть сообщение
Два - у того же С++ нет никакого преимущества по сравнению с шарпом в плане написания ОС.
Я плохо выражаюсь. Я не говорю что сам шарп не подходит для написание ОСей. Вообще C# это синтаксис, кто его реализует -- немного другая тема. Если вспоминать теорию вычислительной техники, всю (!) логику можно постоить на одной единственной булевской функции обратное-AND. Т.е. вопрос не в возможностях инструмента, а насколько он подходит для решения задачи.

Цитата Сообщение от Psilon Посмотреть сообщение
В тех же мобилках (возьмем например андроид), системный код написан на джаве, плюс небольшой загрузчик на С++, который загружает JVM.
Т.е. у нас есть ОСь, которая способна только запустить JVM, а уже дальше пляшем от нее? =) Можно сказать, что мы написали клон винды, который на старте запускает виртуал бокс, а уже дальше пляшем от него. Утрирую конешно, но я просто не понимаю, как мы обойдемся одним шарпом и платформой .net, если она не особо расчитана на работу с железом. =\

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

p.s. я понимаю, что сейчас похож на истеричку, вопящую "на шарпе написать винду нельзя" XD , а если вспоминать изначальную задачу темы и ответ автора, то изначала стояла задача конфертировать exe в vut, потом всплыло что ребята пишут ОСь, но не говорили прямо что на шарпе или плюсах. Если говорить просто -- какому-то даєву сейчас прилетит RO... =(

p.p.s. пить вредно... серьезно, зачем я вообще думаю про все это, я что знаю ассемблер или собираюсь учится писать операционки?! >.<
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.05.2017, 04:07 11
Цитата Сообщение от Wolfdp Посмотреть сообщение
Я понимаю что без него никак, просто идеология JAVA и C# -- писать конечный продукт быстро и не запариваясь, как правило бизнес-приложений. Ради этого вводились различные фичи (тот же Linq для лучшей работы с перечислениями, или асинхроность с локерами ради паралелизации действий, ну или лямда для мапинга и простотьі/читаемости).
Ложная дихотомия. Почему писать производительный код должно быть болью? Мы уже имеем факт, что писать на С и быстрее, и легче, чем на ассемблере. Чем дальше в лес - тем лучше будет справляться компьютер с кодогенерацией. На примере SQL мы это и видим. Мало кто способен написать такой эффективный код, который генерирует оптимизатор SQL. А все потому, что там всё декларативно. ФП это тоже декларативно. "вот есть редьюсер, который так-то преобразует входные данные" против "а мы вот тут в цикле пройдемся и помножим все на два". В первом случае у оптимизатора развязаны руки, во втором случае - сорян.
Цитата Сообщение от Wolfdp Посмотреть сообщение
Я плохо выражаюсь. Я не говорю что сам шарп не подходит для написание ОСей. Вообще C# это синтаксис, кто его реализует -- немного другая тема. Если вспоминать теорию вычислительной техники, всю (!) логику можно постоить на одной единственной булевской функции обратное-AND. Т.е. вопрос не в возможностях инструмента, а насколько он подходит для решения задачи.
судя по примеру сингулярити - если слегка допилить напильником (добавить пайпы, тот же async/await был более серьезным изменением, чем это), то весьма ок.
Цитата Сообщение от Wolfdp Посмотреть сообщение
Т.е. у нас есть ОСь, которая способна только запустить JVM, а уже дальше пляшем от нее? =) Можно сказать, что мы написали клон винды, который на старте запускает виртуал бокс, а уже дальше пляшем от него.
звучит как реактос
Утрирую конешно, но я просто не понимаю, как мы обойдемся одним шарпом и платформой .net, если она не особо расчитана на работу с железом. =\
Не вижу в ней ничего такого, что не дает работать с железом. Отсутствие реального времени из-за GC - да, пожалуй. Но все остальное - увольте.
Цитата Сообщение от Wolfdp Посмотреть сообщение
К чему я? Т.е. стоит задача создать ОСь со своим расширение исполняемого файла. Нам нужнен инструмент, который будет эмулировать железо, будет иметь блок часто используемых решений, инструмент отладки, и возможность все это собрать в готовый продукт.
Исполняемый файл это фактически способ объяснить винде, как его запускать, используя дефолтный лаунчер. Используя кастомный можно вообще что угодно делать. Заголовки и т.п. - это просто стандарт а-ля JSON или XML. Соблюдаешь - имеешь фишки поддержки со стороны других инструментов. Нет - никто не заставляет, но для работы придется писать свои загрузчики/парсеры/...
Цитата Сообщение от Wolfdp Посмотреть сообщение
p.s. я понимаю, что сейчас похож на истеричку, вопящую "на шарпе написать винду нельзя" XD , а если вспоминать изначальную задачу темы и ответ автора, то изначала стояла задача конфертировать exe в vut, потом всплыло что ребята пишут ОСь, но не говорили прямо что на шарпе или плюсах. Если говорить просто -- какому-то даєву сейчас прилетит RO... =(
Звучит как однострочник на powershell:
PowerShell
1
Rename-Item -NewName { $_.Name -replace '\.exe','.vut' }
Цитата Сообщение от Wolfdp Посмотреть сообщение
p.p.s. пить вредно... серьезно, зачем я вообще думаю про все это, я что знаю ассемблер или собираюсь учится писать операционки?! >.<
Действительно. Думать вообще вредно Заводятся эти, как их... Мысли, во!
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
12.05.2017, 05:15  [ТС] 12
Цитата Сообщение от Psilon Посмотреть сообщение
Почему писать производительный код должно быть болью?
Я к тому и веду, что из шарпа эта писанина будет болезнена. Написать прослойку легче на асемблере. А вот дальнейший софт для конечного пользователя можно делать из более высокоуровнего кода.

Цитата Сообщение от Psilon Посмотреть сообщение
Не вижу в ней ничего такого, что не дает работать с железом.
Если я правильно помню курс универа, то асемблер позволяет использовать командьі CPU. В шарпе такого не помню. =\

Цитата Сообщение от Psilon Посмотреть сообщение
Звучит как однострочник на powershell:
я так понял ТС подразумевал что оно будет запускаться на самописной ОСь. Учитьівая что писанина на шарпе требует платформьі, ее пришлось бьі внедрядь в операционку (с заменой вьізьіваемого расширения, хз насколько єто сложно сделать). Либо декомпилить, преобразововать код в нужньій и билдить под новую ОСь.

Я так понимаю, реально накатать библиотеку, которая под вьібраньіе параметрьі будет генерит определеное ядро. Возможно будет некая прослойка для "опускания" кода до машиного. Пока для меня єто звучит как "чтобьі начать писать на .net ОСь, нам придется обучить сам .net всей работе с железом напрямую, все єто обернуть и красибо оформить". Хотя неееет... єто звучит, как будтно мьі на фреймверке напишем инструмент для создания осей. Вот єто более вероятньій сценарий, как по мне.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.05.2017, 05:31 13
Цитата Сообщение от Wolfdp Посмотреть сообщение
Я к тому и веду, что из шарпа эта писанина будет болезнена.
Почему это?
Цитата Сообщение от Wolfdp Посмотреть сообщение
Если я правильно помню курс универа, то асемблер позволяет использовать командьі CPU. В шарпе такого не помню. =\
Ассемблер это и есть команды CPU. Шарп, очевидно, позволяет это делать, т.к. это ЯП. Конечно, делать инлайн-инстринки на ассемблере на шарпе трудно (хоть и не невозможно, см. например мой пример CPUID на форуме), но это и не нужно.
Цитата Сообщение от Wolfdp Посмотреть сообщение
я так понял ТС подразумевал что оно будет запускаться на самописной ОСь. Учитьівая что писанина на шарпе требует платформьі, ее пришлось бьі внедрядь в операционку (с заменой вьізьіваемого расширения, хз насколько єто сложно сделать). Либо декомпилить, преобразововать код в нужньій и билдить под новую ОСь.
А на эту новую ось портирован .Net? Хотя бы Core? Потому что иначе вопрос чисто философский.
Цитата Сообщение от Wolfdp Посмотреть сообщение
Я так понимаю, реально накатать библиотеку, которая под вьібраньіе параметрьі будет генерит определеное ядро. Возможно будет некая прослойка для "опускания" кода до машиного. Пока для меня єто звучит как "чтобьі начать писать на .net ОСь, нам придется обучить сам .net всей работе с железом напрямую, все єто обернуть и красибо оформить". Хотя неееет... єто звучит, как будтно мьі на фреймверке напишем инструмент для создания осей. Вот єто более вероятньій сценарий, как по мне.
.Net и так умеет работать напрямую, когда ему это нужно. Просто где-то было удобнее переиспользовать существующие апи.
0
12.05.2017, 05:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2017, 05:31
Помогаю со студенческими работами здесь

Какой язык программирования выбрать для создания игр?
Какой язык программирования выбрать для создания игр? Си или Си++. Собираюсь писать, как сложные,...

Какой язык выбрать для создания такой программы?
Доброго времени суток! Возникла идея создать словесную игру на механике &quot;городов&quot;. И вот возник...

Какой выбрать язык для создания простых программ?
Мне нужно написать небольшие программы! Учет зарплаты, Расчет зарплаты, программу для ведения...

Какой язык програмирования используется для создания аддонов к играм?
А ещё вопрос. Мне вот просто интересно какой язык програмирования используется для создания аддонов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru