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

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

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

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

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

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

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

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

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

Похожие вопросы