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

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

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

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

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

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

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

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

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

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

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

ПрограммированиеОперационные системы+3
Анонимный вопрос
  · 6,7 K
Шаманю в сфере IT, СМИ, мультимедиа. В основном по теме минеральных ресурсов. По...  · 23 янв 2021  · altside.ru

На самом деле единственный язык, понимаемый компьютерным железом - язык машинных команд.

Исходный код програмы на любом языке программирования - это по сути просто текст. Для его выполнения требуется инструментарий (по факту - ранее созданный машинный код), переводящий этот текст в машинные команды.

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

И вот тут мы приходим к реальности: большинство языков программирования создавались под конкретные направления, с которыми по разным причинам не слишком хорошо справлялся существовавший в то время инструментарий.

При этом создание нового вовсе не означает отказ от старого.

Например: C/C++ позволяет писать программы в достаточной мере абстрагируясь от конкретной архитектуры компьютера, но при этом всегда есть возможность какой-то кусок написать прямо на ассемблере в рамках того же проекта.

Аналогично, но на следующем уровне: вы можете создавать библиотеки требующие высокой скорости работы на C/C++ и включать в их свой проект допустим на питоне.

Ну и матрешка: питон может использоваться в качестве скриптового языка внутри проекта на том же C++.

Что еще немаловажно понимать - каждый язык имеет собственную экосистему: набор встроенных особенностей, стандартных модулей, библиотек, различных готовых инструментов, а также сообществ разработчиков и созданных ими дополнений и расширений в каких-то конкретных прикладных областях. И часто именно экосистема вцелом (а не просто синтаксис языка) определяет, насколько просто и быстро можно создать практически работающее приложение.

Теперь собственно по ядру ОС и графической оболочке.

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

С/С++ здесь по прежнему первые кандидаты, просто потому что это их "поляна".

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

Ну а любой интерпретатор проигрывает по скорости.

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

Ну и по поводу HTML. В ряд языков программирования его ставить не следует. Это язык разметки текста. Для программирования внутри HTML используется какой-либо интерпретатор. Чуть реже чем всегда для HTML это конкретно интерпретатор Javascript. Так вот, для создания пользовательских интерфейсов это вполне рабочий вариант, и разные HTML/XML-подобные диалекты для этого активно используются.

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