@SvobodaGaming
Начинающий программист

Какие ЯП (Язык программирования) лучше для написания ядра операционной cистемы?

Всех приветствую! Интересуюсь для общего развития.
Недавно я узнал что ядро Linux сделано на C. Darwin (Apple) на основе Linux => тоже C.
А можно ли использовать для создания ядра например Java, Go, Scala или прочие языки?
Казалось-бы C сложный и довольно старый, у него должна быть подмена или все-таки он умеет что-то такое что не умеют другие языки или на нем проще всего или что-то еще?
Спасибо за ваш ответ!
  • Вопрос задан
  • 2301 просмотр
Решения вопроса 1
erniesto77
@erniesto77
oop, rb, py, php, js
Пока только СИ. Ну если только вы не придумаете новую альтернативу

C:
----Java
----Go
----Scala

Не надо бояться того что СИ старый. Иногда старое это проверенное временем и лучшее!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 8
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Java машина - это и есть OS на Java. Существовали также Lisp-машины и Fort-машины. Есть OS написанная полностью на assemler menuetos.net/. Сейчас активно развивается OS на Rust https://www.redox-os.org/
Ответ написан
C, D, Rust, Modula-2, Oberon, Ada и другие. Можно также использовать C как целевой язык.
На C, исторически сложилось, больше кода и примеров, но это не означает, что на других нельзя писать ядро ОС и драйвера.
А системные утилиты и прочее в пользовательском пространстве проще писать уже на более высокоуровневых языках чем C.
Ответ написан
Комментировать
GavriKos
@GavriKos
Можете использовать хоть питон, хоть пхп. Если сможете обеспечить необходимый функционал и интерпретатор сделать чтобы в нужной среде работал. Или можно транслировать в Си и компильнуть
Ответ написан
mrjbom
@mrjbom
Лично пишу ОС, скажу так, надо быть готовым к трудностям, никаких удобств там нет, там нельзя банально выделить память(пока сам не реализуешь менеджер памяти), банальная реализация печати текста на экран займёт минимум неделю, необходимо реализовывать всё самостоятельно. Удобств которые дают современные языки типа Java там просто не существуют. По этому C и ассемблер это лучшие инструменты. Конечно, можно писать на каком нибудь другом языке, но это создаст больше проблем чем преимуществ.
Ответ написан
Комментировать
@pfg21
ex-турист
операционка самый низкий слой в HAL :)
чем ближе язык к системе команд процессора, тем эффективнее можно проработать операционку, и быстрее будут исполняться все выше "лежащие" програмки.
Ответ написан
@majstar_Zubr
C++, C#, gamedev
Недавно узнал об интересной альтернативе - forth. Интересным моментом является такой факт, что в принципе язык можно сразу использовать вместо командой оболочки для ОС. Но это просто для поиграться и повелосипедить, если что-то практическое, то это C, C++ и ... всё остальное, что компилируется (в довесок ко всему смотрите LLVM frontend list)

В принципе, почему Си хватает - да потому что железо в отношении к ОС выступает часто в виде конечных автоматов, что как бы жёстко связывает руки писать в рамках стуктурно-ориентированного кода. ООП просто не нужно, и если язык был спроектирован под разработку прикладных программ, то там слишком много бесполезного с точки решения задачи написания ОС. Учитывая простую модель памяти Си, очень легко контролировать состояние кэшей всех уровней, а учитывая десятки тысяч часов, вложенных в gcc, писать что-то практическое, кроме как на assembler, толку нет (см. KolibriOS).

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

Хотя, если исходить из совсем практических соображений, то лучше не писать ОС, а написать несколько модулей ядра для Linux.
Ответ написан
stepvolt
@stepvolt
Я просто программист
На асамблере или Си. Но это огромный геморой!!!! Сложностей будет туча.Управление памятью, взаимодействие с устройствами ввода-вывода- сделай сам. Так что пару лет из жизни придётся выделить как ни крути.
Ответ написан
Комментировать
@TwoSpikes
rust или c
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы