Скажу сразу, я не программист. Пожалуйста, не надо сыпать сложными специфическими терминами. Но любопытство никто не отменял. Мне интересно. Да и другие могут заинтересоваться вопросом и обнаружат эту тему в Кью. Так что, польза будет.
Скажите, какие языки пригодны для написания ядра операционной системы и её графической оболочки? Помимо используемых - Ассемблер, C, C++, C#. Если кто-то захочет создать альтернативу и Виндовс, и Линукс, но не на языках семейства С. Этот не вопрос "зачем это нужно, если есть Виндовс и Линукс". Это вопрос - возможно ли и как?
Какие языки у меня на слуху? К примеру, развивающийся Питон. Можно ли на нем создать ядро и графическую оболочку? Или Java, позволяющий создавать и приложения, и графику. Или, к примеру, JavaScript. Для программирования графики и ВЭБ приложений. Говорят, на нем работает операционная система космических кораблей Dragon SpaceX. Или, к примеру - HTML 5. На HTML 5 пишут приложения, воспроизводят графику, фильмы и т.д.
Пожалуйста, продолжите список. Будет интересно узнать.
Вот мне любопытно. Представим, что кто-то реально захочет создать ОС на этих языках, или ещё на каких альтернативных, на уровне последних Виндовс. Как это можно реализовать?
Какие языки подойдут ядру? А какие для графической оболочки? Взять к примеру, тот же HTML 5. Предполагаю, что на нем можно создать и графическую среду, привычных ОС. Да и сами приложения для этой ОС. Ведь он же вполне может управлять портами, дисками, видеокартами, и тд. Ведь можно же сделать ядро, воспринимающее ВЭБ язык?
Было бы интересно узнать ваше мнение. Возможно ли это? Можно ли написать полностью функциональную ОС на одном из чистых языков, без примесей остальных. Или в комбинации нескольких.
А также, какие бы ещё языки вы видели как альтернативу семейству языков C. Если мой вопрос немного странный для специалистов программирования, прошу не злиться. Ведь интересуется человек "не в теме".
Для создания операционных систем пригодны любые языки программирования, компиляторы которых способны создавать выполняемые файлы требуемого формата.
Но это зависит только от компилятора, а никак не от языка программирования.
То есть интерпретаторы Бейсика, Луа или Джаваскрипта точно не годятся.
Ассемблер используется исключительно ради увеличения быстродействия, но написать код на нём максимально долго и неудобно.
С и С++ раза в 1,5-2 медленнее Ассемблера, но дают огромный выигрыш по времени разработки. Тем более с самого начала С и С++ создавался именно для системных задач. Компиляторы других языков ещё более тормозные.
Но учитывая быстродействие современных компов, наверно можно использовать любой язык программирования. Главное - чтобы в компиляторе была возможность подключения функций ввода-вывода из системных классов. Думается, можно использовать неплохой кроссплатформенный фреймворк Qt. Вообще-то он первоначально создавался под С++, но в последнее время появились варианты с Python, Ruby, и даже Java, PHP и другие.
)
Владимир Козлов, вам понадобилось 2,5 месяца, чтобы написать комментарий без аргументов, с переходом на личности, рассуждениями о фантомных заказчиках и попыткой переобуться в попытке переиграть условия вопроса и ответа. Не вижу смысла продолжать такой диалог, когда к критике относятся не как к инструменту для роста, а как к попытке сделать себя белым и пушистым. Хотя вижу мое возражение повлияло на ваш ответ, и теперь он не совсем из области фантастики, так что буду считать, что всё не зря. Но остальное своё внимание предоставлю более содержательным, конструктивным и оперативным комментариям, уж простите.
Безосновательные утверждения относительно быстродействия кода, написанного на C, С++.
Михаил Горюнов, ну раз уж Вы возражаете, попробуйте привести хоть какие-то доводы в пользу своего возражения. Например, факты, наблюдения, данные проведённых экспериментов. Или хотя бы бенчмарки. Например, я своё утверждение о быстродействии софта, скомпилированного компиляторами разных языков, могу подтвердить ну хотя бы вот этим исследованием: greenlab.di.uminho.pt/wp-content/uploads/2017/09/paperSLE.pdf, хотя подобная информация ищется в любом поисковике на раз.
)
И как всегда, я просто рассказал об очевидном, элементарном и известном специалистам факте. Почему это для Вас вдруг оказалось неожиданностью? Вы понимаете вообще, что я написал?
))
Кстати, я фактически написал то же, что и Nikita Shishatsky, но Вы ему поставили подтверждение, а мне возражение. Почему Вы противоречите самому себе? У Вас раздвоение личности? Разлад с окружающей реальностью? Так по Вашему мнению компиляторы С/С++ всё-таки создают более быстрый код или нет?
)))
Вопрос был не о том, какой инструмент самый оптимальный для написания ОС, а о том, какие языки в принципе применимы. Не уверена насчет С и С++ в качестве медленных вариантов - их скорость исполнения может быть очень высокой. Но в целом ответ считаю достоверным.
Арина Левадная, "медленность" языка C для разработки ОС опровергает kernel.org
Мне ещё интересна формулировка
компиляторы которых способны создавать выполняемые файлы требуемого формата.
Может, автор пояснит, какой там формат требуется, кем требуется, и главное ссылку на его спецификации, если уж его требуют...
Главное - чтобы в компиляторе была возможность подключения функций ввода-вывода из системных классов.
Может автор пояснит, что такое системные классы?
Именно в такой формулировке.