OSDev http://osdev.su/ |
|
OS Runtime http://osdev.su/viewtopic.php?f=5&t=1609 |
Страница 1 из 1 |
Автор: | uselec [ 02 дек 2017, 16:59 ] |
Заголовок сообщения: | OS Runtime |
Давно мучает вопрос, почему не разрабатывают ОС (я говорю о тех, для кого разработка операционок это хобби, разумеется) которые концептуально были бы что-то вроде рантайма, который предоставляют например различные ЯП. Сборка мусора, AOT\JIT компиляция кода. Работа в нулевом кольце (безопасность обеспечивалась бы ннепосредственным контролем этого рантайма того, кода который он загружает). Вместо памяти процессов, как таковой - структуры\объекты, управляемые GC. ну и все в таком духе (расписывать подробно все это нет смысла, достаточно взять любой современныя дианамический ЯП работающий поверх VM или jit-engine'а). Я слышал про исследовательские проекты типа Сингулярити у Майкрософта и все такое. Но мне больше любопытно, почему подобные концепты не пробуют реализовывать те, кто просто увлекается разработкой ОС. А повсеместно идут по одному и тому же пути, начиная с колец защиты. Я предполагаю, что вопрос в производительности. С другой стороны, такие вещи как JVM, v8, luajit, etc, достачтоно шустро работают и при том, в юзерспейсе. При этом у них большой оверхед ввиду переключений контекста при обращениях к ОС низлежащей. Неужели, если бы ядро этих рантаймов работало непосредственно в нулевом кольце, и само из себя представляло "операционную систему", где роли компонентов\драйверов\етк выполняли бы объекты этого рантайма, все было бы так печально? Может я неправ конечно, и такие концепты кто-то и пилит. Но сколько я не читаю этот форум (а в режиме ридонли я уж много лет) ни разу не встречал чего-то, что было бы концептуально интересно и "ново". Даже обсуждений этих тем не видел (может ткнете пальцем? было бы интересно почитать\послушать мнения). |
Автор: | SII [ 02 дек 2017, 19:07 ] |
Заголовок сообщения: | Re: OS Runtime |
Ну, вообще-то полноценная ОС -- это целая куча всего и вся, но её первейшая задача, без решения которой всё остальное попросту невозможно -- это управление аппаратурой и обеспечение "общения" прикладных программ с этой самой аппаратурой. И каким боком к этому может относиться сборка мусора и JIT? Не говоря о том, что эти вещи, скажем так, не страдают высокой эффективностью, ну а если у тебя неэффективна самая основа ОС, всё остальное автоматически будет неэффективным, как ты его ни делай. Ну а все эти JVM отнюдь не шустро работают. Они работают крайне медленно и неэффективно, если сравнивать объём работы, проделываемой прикладной программой (т.е. тем, ради чего, собственно, все эти вещи и существуют -- для решения задач пользователя, а не для самих себя), с производительностью процессоров. Грубо говоря, то, что в 70-х годах решалось парой десятков килобайт кода и процессором, делающим полмиллиона операций в секунду, сейчас требует гигабайтов ОЗУ, а процессоры суммарно выдают десятки миллиардов оп/с. Т.е., попросту говоря, ресурсы выбрасываются на ветер (а вместе с ними и энергия, потребляемая всем этим делом). |
Автор: | pavia [ 03 дек 2017, 19:33 ] |
Заголовок сообщения: | Re: OS Runtime |
Это очень трудная тема. О ней каждый задумывается. Но помимо ОС тут ещё и компилятор нужен. Взять UNIX он же работает без 0 ядра. И как раз таки основная вещь это моделирование виртуализация аппаратных ресурсов. И ОС эта сильно продвинулась. Только вот почему-то никто не стал её развивать. Хотя трудного ничего нет. Виртуальные машины они тормознутые. Мне больше нравится идея QT сигналы и слоты. По сути проблема вытесняющей многозадачности в сохранение контекста. А при вызове сигналов мы можем не беспокоится о контексте. Хотя состояние объекта всё ещё не определено. Решение функциональный подход. Хотя у меня есть ещё и своё секретное решение. Сборка мусора неэффективна, лучше подсчёт ссылок. |
Автор: | D-S [ 04 дек 2017, 09:54 ] |
Заголовок сообщения: | Re: OS Runtime |
Большинство до этого не доходят. Всё что Вы перечислили - высокоуровневые сервисы на ядре, но полноценное ядро для этого надо ещё создать. В описаниях сингулярити деликатно умолчали, что было уже что-то готовое, на что они накручивали сервисы. |
Автор: | Himik [ 23 дек 2017, 12:03 ] |
Заголовок сообщения: | Re: OS Runtime |
uselec писал(а): Давно мучает вопрос, почему Потому, что так нельзя. Для рантайма виртуальной машины (ВМ) нужно низкоуровневое ядро, драйверная система, и собственно драйвера аппаратуры. Рантайм ВМ не может собой заменить ядро. Но смысл запуска ВМ на уровне ядра есть - меньше переходов между кольцами защиты. Но опять же, надо посчитать выигрыш эффективности. Речь идёт в лучшем случае об 1 - 5% ускорения, виртуальщики этого и не заметят. |
Автор: | Лихомант [ 04 апр 2018, 04:57 ] |
Заголовок сообщения: | Re: OS Runtime |
uselec писал(а): Давно мучает вопрос, почему не разрабатывают ОС (я говорю о тех, для кого разработка операционок это хобби, разумеется) которые концептуально были бы что-то вроде рантайма, который предоставляют например различные ЯП Данный финт лишь признак еще одного слоя абстракции - интерпретирование. Это задача программной оболочки, а не ОС, задача которой собрать помойку "лоскутно" порванной памяти, пережитков в запуске различных режимов процессора, быть готовой к мириадам критических и критенических прерываний, жадно пережевывать программный тухляк 20-летней давности, и во всем демонстрировать надежность и производительность(эти понятия нелинейно взаимосвязаны в функциях абстракции). |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |