Языки, необходимые для сборки ОС - PullRequest
0 голосов
/ 25 февраля 2012

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

Ответы [ 4 ]

2 голосов
/ 25 февраля 2012

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

Всё, кроме C, или другого языка низкого уровня, потребуется.Особенно это манипулирует указателями.C ++ возможен, но из-за особенностей языка вам может потребоваться проделать определенную работу, то есть исключения.Смотрите здесь для деталей.Большой ресурс для такого типа вопросов - osdev.org.Эта ссылка дает вам лучший ответ на мой взгляд.

2 голосов
/ 25 февраля 2012

Сборка практически необходима при работе с функциями, специфичными для ЦП, например, при переключении уровней привилегий или установке таблицы страниц.

Остальные могут быть написаны на любом достаточно низкоуровневом языке, способном манипулировать указателями. Само C достаточно, например. Linux написан на C, с небольшой сборкой (без C ++). Я думаю, что Паскаль тоже справится, хотя это может быть немного менее удобно, чем C.

1 голос
/ 25 февраля 2012

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

1 голос
/ 25 февраля 2012

Я думаю, что это действительно вопрос предпочтений.Вам, очевидно, нужна сборка, но помимо этого вам просто нужен язык низкого уровня, который компилируется в нативный код.C, вероятно, лучше для этого, но в зависимости от того, как вы структурируете свой код, C ++ может оказаться полезным.Что касается Паскаля, я уверен, что это технически возможно, но вы можете найти, что ваши варианты сильно ограничены, поскольку Паскаль не использовался в течение длительного времени (сравните 420 вопросов по SO, помеченному Паскалем, против более чем 50 000 для C).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...