Я бы хотел бы написать свою ОС на С#. Понятно что это будет, самая простая консольная ОС, которая будет иметь пару команд, пару игр и тому подобное. Я слышал что есть такая штука, как cosmos, но не хочу ее использовать так как это все таки псевдоОС, я хочу сделать так что бы был прям iso файл и всё было полноценно. Как это сделать?
Drno, грубо говоря, просто по приколу, ради интереса. А что не так с драйверами? По сути обычная клавиатура будет поддерживаться, больше и не надо, это же консольная ОС.
Сможешь дать определение, чем псевдоОС отличается от обычной?
я хочу сделать так что бы был прям iso файл
У космоса нет своего инсталлятора, по тому и iso файл не нужен - оно сразу записывается на диск, с которого будет запускаться. (в демонстрационных целях - создаётся образ для vmware, тк поддержать разное оборудование - это много делов)
flexpc, а почему ты тогда уверен, что твоя ОС будет настоящая, или что инструментов из cosmos тебе не хватит?
Покажи хоть где ты услышал такое.
Подозреваю, что её там называют ненастоящей из-за того что её хрен запустишь на реальном железе (да и не нужно это)
flexpc, в теории - никаких препятсвий нет. Можешь попробовать запустить, если не боишься.
Если будешь реализовывать с нуля, то тебе придётся ещё драйвера реализовать.
Например в cosmos всё ещё не реализованы драйвера для usb - значит, тебе придётся использовать клавиатуру с честным PS/2, чтобы хотябы текст вводить в терминале.
flexpc, почитай подробнее документацию к космосу - он создаёт файл для загрузки vmware.
Ты точно также можешь записать эти же данные на диск и загружаться с диска на железе.
Ты можешь взять IL2CPU и Xsharp из cosmos.
С iso файлом в процессе разберёшься - тут ничего специфичного конкретно для C# нет - тебе нужно будет "просто" сделать две ОС:
1. Основная
2. Урезанная, которая будет записана на флешку, которая будет загружаться только для того, чтобы записать основную за загрузочный диск.
flexpc, iso файл - это образ диска. Никак ты ассемблер в iso не скомпилируешь :)
Для записи чего-то на диск не обязательно иметь iso - можно просто иметь сырые данные, которые можно записать на диск при помощи dd
Ну и компилируется не в ассемблер, а сразу в машинный код. Зачем промежуточное звено в виде ассемблера?