Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Какие языки программирования пригодны для создания операционной системы?

Скажу сразу, я не программист. Пожалуйста, не надо сыпать сложными специфическими терминами. Но любопытство никто не отменял. Мне интересно. Да и другие могут заинтересоваться вопросом и обнаружат эту тему в Кью. Так что, польза будет.

Скажите, какие языки пригодны для написания ядра операционной системы и её графической оболочки? Помимо используемых - Ассемблер, C, C++, C#. Если кто-то захочет создать альтернативу и Виндовс, и Линукс, но не на языках семейства С. Этот не вопрос "зачем это нужно, если есть Виндовс и Линукс". Это вопрос - возможно ли и как?

Какие языки у меня на слуху? К примеру, развивающийся Питон. Можно ли на нем создать ядро и графическую оболочку? Или Java, позволяющий создавать и приложения, и графику. Или, к примеру, JavaScript. Для программирования графики и ВЭБ приложений. Говорят, на нем работает операционная система космических кораблей Dragon SpaceX. Или, к примеру - HTML 5. На HTML 5 пишут приложения, воспроизводят графику, фильмы и т.д.

Пожалуйста, продолжите список. Будет интересно узнать.

Вот мне любопытно. Представим, что кто-то реально захочет создать ОС на этих языках, или ещё на каких альтернативных, на уровне последних Виндовс. Как это можно реализовать?

Какие языки подойдут ядру? А какие для графической оболочки? Взять к примеру, тот же HTML 5. Предполагаю, что на нем можно создать и графическую среду, привычных ОС. Да и сами приложения для этой ОС. Ведь он же вполне может управлять портами, дисками, видеокартами, и тд. Ведь можно же сделать ядро, воспринимающее ВЭБ язык?

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

А также, какие бы ещё языки вы видели как альтернативу семейству языков C. Если мой вопрос немного странный для специалистов программирования, прошу не злиться. Ведь интересуется человек "не в теме".

ПрограммированиеОперационные системы+3
Анонимный вопрос
  · 6,7 K
Разработчик встроенных систем, немного радиолюбитель.   · 23 янв 2021  · vladimir-coslow.narod.ru/index.html

Для создания операционных систем пригодны любые языки программирования, компиляторы которых способны создавать выполняемые файлы требуемого формата.

Но это зависит только от компилятора, а никак не от языка программирования.

То есть интерпретаторы Бейсика, Луа или Джаваскрипта точно не годятся.

Ассемблер используется исключительно ради увеличения быстродействия, но написать код на нём максимально долго и неудобно.

С и С++ раза в 1,5-2 медленнее Ассемблера, но дают огромный выигрыш по времени разработки. Тем более с самого начала С и С++ создавался именно для системных задач. Компиляторы других языков ещё более тормозные.

Но учитывая быстродействие современных компов, наверно можно использовать любой язык программирования. Главное - чтобы в компиляторе была возможность подключения функций ввода-вывода из системных классов. Думается, можно использовать неплохой кроссплатформенный фреймворк Qt. Вообще-то он первоначально создавался под С++, но в последнее время появились варианты с Python, Ruby, и даже Java, PHP и другие.

)

Чтобы ни дня в жизни не работать, на практике совмещаю работу с хобби.Перейти на vladimir-coslow.narod.ru/index.html
1 эксперт согласени2 эксперта не согласны
Серьёзно? Вы представляете как работает Qt? Qt позволяет комплирировать программы для каждой конкретной... Читать дальше

Владимир Козлов, вам понадобилось 2,5 месяца, чтобы написать комментарий без аргументов, с переходом на личности, рассуждениями о фантомных заказчиках и попыткой переобуться в попытке переиграть условия вопроса и ответа. Не вижу смысла продолжать такой диалог, когда к критике относятся не как к инструменту для роста, а как к попытке сделать себя белым и пушистым. Хотя вижу мое возражение повлияло на ваш ответ, и теперь он не совсем из области фантастики, так что буду считать, что всё не зря. Но остальное своё внимание предоставлю более содержательным, конструктивным и оперативным комментариям, уж простите.

Безосновательные утверждения относительно быстродействия кода, написанного на C, С++.

Михаил Горюнов, ну раз уж Вы возражаете, попробуйте привести хоть какие-то доводы в пользу своего возражения. Например, факты, наблюдения, данные проведённых экспериментов. Или хотя бы бенчмарки. Например, я своё утверждение о быстродействии софта, скомпилированного компиляторами разных языков, могу подтвердить ну хотя бы вот этим исследованием: greenlab.di.uminho.pt/wp-content/uploads/2017/09/paperSLE.pdf, хотя подобная информация ищется в любом поисковике на раз.

)

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

))

Кстати, я фактически написал то же, что и Nikita Shishatsky, но Вы ему поставили подтверждение, а мне возражение. Почему Вы противоречите самому себе? У Вас раздвоение личности? Разлад с окружающей реальностью? Так по Вашему мнению компиляторы С/С++ всё-таки создают более быстрый код или нет?

)))

Вопрос был не о том, какой инструмент самый оптимальный для написания ОС, а о том, какие языки в принципе применимы. Не уверена насчет С и С++ в качестве медленных вариантов - их скорость исполнения может быть очень высокой. Но в целом ответ считаю достоверным.

Арина Левадная, "медленность" языка C для разработки ОС опровергает kernel.org

Мне ещё интересна формулировка

компиляторы которых способны создавать выполняемые файлы требуемого формата.

Может, автор пояснит, какой там формат требуется, кем требуется, и главное ссылку на его спецификации, если уж его требуют...

Главное - чтобы в компиляторе была возможность подключения функций ввода-вывода из системных классов.

Может автор пояснит, что такое системные классы?

Именно в такой формулировке.

Лучший
Разработчик в Яндексе, Аспирант  · 27 апр 2021
> возможно ли и как? Возможно. Операционная система состоит из нескольких важных частей (или слоёв абстракций): - Загрузчик - Взаимодействие с «железом» (драйвера) - Набор абстракций, упрощающий и унифицирующий работу с ресурсами ОС (среда выполнения) Теоретически, написать операционную систему можно практически на любом языке (не беря во внимание время, которое... Читать далее
2 эксперта согласны
Комментарий был удалён за нарушение правил
Программист, математик, инженер.  · 26 апр 2021
Операционная система - очень многоуровневая штука. В ней есть элементы ядра, работающие напрямую на железке и с железкой. В ней есть сервисы-службы-демоны, системы интерфейсов (включая пользовательский) и куча системных и не только приложений, которые могут быть написаны на чём угодно, используя API ядра. И в целом, любая современная операционная система - это огромный... Читать далее
> разве что в асме несколько бОльший контроль и простор для оптимизаций Довольно часто компилятор генерирует более... Читать дальше
Шаманю в сфере IT, СМИ, мультимедиа. В основном по теме минеральных ресурсов. По...  · 23 янв 2021  · altside.ru
На самом деле единственный язык, понимаемый компьютерным железом - язык машинных команд. Исходный код програмы на любом языке программирования - это по сути просто текст. Для его выполнения требуется инструментарий (по факту - ранее созданный машинный код), переводящий этот текст в машинные команды. В этом смысле теоретически для написания любых программ, в том числе... Читать далее
Информация — кислород современного мира.Перейти на altside.ru
3 эксперта согласны