LINUX.ORG.RU

Ядро на ООП

 ,


2

4

А как вам идея написать ядро ОС, по сложности и возможностям сопоставимой с Linux, с применением ООП (например, на C++) Каждый драйвер, сервис и др. сделать классом (ну группой классов).

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

Минус - необходимость поддержки ООП в ядре влечёт за собой некоторый overhead (вот насколько он будет заметен - тоже интересный вопрос).

Высказывайтесь.

★★★★★

Не знаю насчет ядра, но АПИ ООПшное есть у haiku, например.

son_of_a_gun
()

Ядро на ООП

Чем бы дитя не маялось, лишь бы своего не заводило…

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Kindly_Cat

Человек пытается хоть как-то оправдать ООП ☺

Eddy_Em ☆☆☆☆☆
()

Сама идея неплохая, только сразу вылезают типичные болячки принципиально новых ядер:
1. Без наличия драйверов для обширного списка железа такое ядро будет мало кому интересно
2. Без наличия софта ОС на таком ядре также будет мало кому интересна

По второому пункту можно использовать существующую базу софта для *nix, а вот с драйверами все более мрачно.

m0rph ★★★★★
()

Ядро Linux и так написано с применением ООП. И, подозреваю, всех остальных современных операционных систем.

Legioner ★★★★★
()

Linux, с применением ООП

Оно уже ООП

Reset ★★★★★
()

Вопрос, а для чего делать еще одно ООП ядро, если уже есть Linux.
Вам крестики или ООП?

trex6 ★★★★★
()

Видел в инете инструкции по прикручиванию cpp-модулей к ядру.

Но зачем ограничивать нововведения только ООП-ом? Было бы круто если бы изобрели современный компилируемый мультипарадигменный ЯП годный для написания и ядер и прикладного ПО. Впрочем, это фантастика.

ЗЫ «ленивое ядро» - звучит Ж)

true_admin ★★★★★
()

Так их уже полно. Гоголь кучу ссылок выдает на «object-oriented kernel». Большинство на C++.

Да и линукс тоже использует внутри некоторые фичи ООП, ЕМНИП.

schizoid ★★★
()

Почитай исходники ядра, особенно драйвера, там давно уже ООП используется в полный рост.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от true_admin

Но зачем ограничивать нововведения только ООП-ом? Было бы круто если бы изобрели современный компилируемый мультипарадигменный ЯП годный для написания и ядер и прикладного ПО. Впрочем, это фантастика.

Изобрели уже, называется Common Lisp. И прикинь, он реальный!!! 111

gensym ★★
()
Ответ на: комментарий от Legioner

Ядро Linux и так написано с применением ООП. И, подозреваю, всех остальных современных операционных систем.

У основной школоты ООП ассоцируется с Ц++.

gensym ★★
()

Если ты мыслишь классами в ООП, а не интерфейсами, как положено, то лучше не стоит этого делать. Говно будет.

anonymous
()
Ответ на: комментарий от gensym

Изобрели уже, называется Common Lisp. И прикинь, он реальный!!! 111

я знал что лиспосрач поднимется быстро. Впрочем, у вас уже есть своя ОС.

true_admin ★★★★★
()
Ответ на: комментарий от jtootf

зашел в тред чтобы дать эту же ссылку)

ymn ★★★★★
()

на C++

только не на этом убожестве

rimsleur
()

А чем тебе ядра линукса и винды не ООП?

unC0Rr ★★★★★
()

Вообще, ОП немного сумбурный. ООП в ОС - это и есть микроядро по определению: всё основано на обмене сообщениями. Скажем, у L4 есть и сишный интерфейс, и всё равно он ОО. А если линукс переписать на C++ - ОО не появится.

Если же ООП понимать по Бучу - то всё уже есть в линукс: каждый драйвер - это и так отдельный класс, реализующий некоторые интерфейсы и, возможно, наследующий какое-то поведение. Только это класс не на уровне языка, а на уровне логики. Да, с C++ было бы немного удобнее, но принципиально бы ничего не поменялось.

В первом случае оверхед значительный, во втором - никакого. Но это определяется логикой, а не языком.

unsigned ★★★★
()
Ответ на: комментарий от true_admin

Было бы круто если бы изобрели современный компилируемый мультипарадигменный ЯП годный для написания и ядер и прикладного ПО.

А разве на обероне не писали ядро? http://ru.wikipedia.org/wiki/Оберон_(операционная_система)

Karapuz ★★★★★
()
Ответ на: комментарий от korvin_

Может быть Вы и правы. К сожалению не знаком. Что есть лимбо? Сколько по умолчанию процессов позволяет создать? Эрланг из коробки около 32 тысяч. Встроенные UDP, TCP сервера и много разных вкусных плюшек. Можно эмулировать ООП в классическом понимании в виде тех-же процессов. Если такое запилить будет единица кластера из коробки.

swwwfactory ★★
()
Ответ на: комментарий от gensym

Изобрели уже, называется Common Lisp. И прикинь, он реальный!!! 111

Но тогда почему на нём не пишут операционные системы, системы управления базами данных, сервера приложений, почтовые сервера, веб-сервера, сервера обмена мгновенными сообщениями, игры, браузеры, почтовые клиенты, клиенты обмена мгновенными сообщениями, CAD'ы, CASE'ы, CAM'ы, компиляторы, среды разработки, системы обработки аудио, системы обработки графики, системы обработки видео, системы 3D-моделирования и так далее?

anonymous
()
Ответ на: комментарий от anonymous

Но тогда почему на нём не пишут операционные системы, системы управления базами данных, сервера приложений, почтовые сервера, веб-сервера, сервера обмена мгновенными сообщениями, игры, браузеры, почтовые клиенты, клиенты обмена мгновенными сообщениями, CAD'ы, CASE'ы, CAM'ы, компиляторы, среды разработки, системы обработки аудио, системы обработки графики, системы обработки видео, системы 3D-моделирования и так далее?

Потому что за лисп не платят, платят за рнр, с++, java, 1c ...

jamy
()
Ответ на: комментарий от anonymous

Да пишут, пишут. Надоела уже эта копипаста.

dave ★★★★★
()
Ответ на: комментарий от AptGet

Ну да, вернее говорить о Fiasco или Pistachio, если важен C++. Но важно то, что все они объектные, независимо от языка.

Впрочем, я так и не понял, чего хочет ТС - классы или ОО-дизайн.

unsigned ★★★★
()

Да что там ядро, посмотри на Singularity OS

hzk
()
Ответ на: комментарий от Karapuz

в ней окошки практически как в линуксе

этот мелкий нечитабельный скриншот я видел на вики. Видимо, больше ничего не сохранилось :).

А если серьёзно я вот пока не понимаю какими должны быть «идеальный язык» и «идеальная ОС». Могу только сказать что мне не нравится в C :).

true_admin ★★★★★
()
Ответ на: комментарий от korvin_

занятный язычок. Спасибо. Сначала показалось что это на базе JVM. Интересен механизм каналов. Пример с инфраредом не впечатлил. Если он подходит для взаимодействия на низком уровне с железом, то довольно занятно. Но мне показалось, что сейчас язык больше не развивается и был брошен на какой-то стадии развития.

swwwfactory ★★
()

уже есть SqueakNOS/PharoNOS.

yoghurt ★★★★★
()
Ответ на: комментарий от true_admin

что такое «идеальный язык» и «идеальная ОС»? всё равно найдётся задача не решаемая без костылей с помощью онных. Языки и ОСи разные нужны. А если не нравится С, то просто не пиши на нём.

proofit404
()

Darwin XNU? не?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.