OSDev

для всех
Текущее время: 16 апр 2024, 16:38

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: OS Runtime
СообщениеДобавлено: 02 дек 2017, 16:59 

Зарегистрирован: 02 дек 2017, 16:46
Сообщения: 2
Давно мучает вопрос, почему не разрабатывают ОС (я говорю о тех, для кого разработка операционок это хобби, разумеется) которые концептуально были бы что-то вроде рантайма, который предоставляют например различные ЯП. Сборка мусора, AOT\JIT компиляция кода. Работа в нулевом кольце (безопасность обеспечивалась бы ннепосредственным контролем этого рантайма того, кода который он загружает). Вместо памяти процессов, как таковой - структуры\объекты, управляемые GC. ну и все в таком духе (расписывать подробно все это нет смысла, достаточно взять любой современныя дианамический ЯП работающий поверх VM или jit-engine'а).

Я слышал про исследовательские проекты типа Сингулярити у Майкрософта и все такое. Но мне больше любопытно, почему подобные концепты не пробуют реализовывать те, кто просто увлекается разработкой ОС. А повсеместно идут по одному и тому же пути, начиная с колец защиты.

Я предполагаю, что вопрос в производительности. С другой стороны, такие вещи как JVM, v8, luajit, etc, достачтоно шустро работают и при том, в юзерспейсе. При этом у них большой оверхед ввиду переключений контекста при обращениях к ОС низлежащей. Неужели, если бы ядро этих рантаймов работало непосредственно в нулевом кольце, и само из себя представляло "операционную систему", где роли компонентов\драйверов\етк выполняли бы объекты этого рантайма, все было бы так печально?

Может я неправ конечно, и такие концепты кто-то и пилит. Но сколько я не читаю этот форум (а в режиме ридонли я уж много лет) ни разу не встречал чего-то, что было бы концептуально интересно и "ново". Даже обсуждений этих тем не видел (может ткнете пальцем? было бы интересно почитать\послушать мнения).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Runtime
СообщениеДобавлено: 02 дек 2017, 19:07 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Ну, вообще-то полноценная ОС -- это целая куча всего и вся, но её первейшая задача, без решения которой всё остальное попросту невозможно -- это управление аппаратурой и обеспечение "общения" прикладных программ с этой самой аппаратурой. И каким боком к этому может относиться сборка мусора и JIT? Не говоря о том, что эти вещи, скажем так, не страдают высокой эффективностью, ну а если у тебя неэффективна самая основа ОС, всё остальное автоматически будет неэффективным, как ты его ни делай.

Ну а все эти JVM отнюдь не шустро работают. Они работают крайне медленно и неэффективно, если сравнивать объём работы, проделываемой прикладной программой (т.е. тем, ради чего, собственно, все эти вещи и существуют -- для решения задач пользователя, а не для самих себя), с производительностью процессоров. Грубо говоря, то, что в 70-х годах решалось парой десятков килобайт кода и процессором, делающим полмиллиона операций в секунду, сейчас требует гигабайтов ОЗУ, а процессоры суммарно выдают десятки миллиардов оп/с. Т.е., попросту говоря, ресурсы выбрасываются на ветер (а вместе с ними и энергия, потребляемая всем этим делом).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Runtime
СообщениеДобавлено: 03 дек 2017, 19:33 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Это очень трудная тема. О ней каждый задумывается. Но помимо ОС тут ещё и компилятор нужен.
Взять UNIX он же работает без 0 ядра. И как раз таки основная вещь это моделирование виртуализация аппаратных ресурсов. И ОС эта сильно продвинулась. Только вот почему-то никто не стал её развивать. Хотя трудного ничего нет.

Виртуальные машины они тормознутые.
Мне больше нравится идея QT сигналы и слоты. По сути проблема вытесняющей многозадачности в сохранение контекста. А при вызове сигналов мы можем не беспокоится о контексте. Хотя состояние объекта всё ещё не определено. Решение функциональный подход. Хотя у меня есть ещё и своё секретное решение.

Сборка мусора неэффективна, лучше подсчёт ссылок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Runtime
СообщениеДобавлено: 04 дек 2017, 09:54 
Аватара пользователя

Зарегистрирован: 14 май 2012, 22:17
Сообщения: 101
Большинство до этого не доходят. Всё что Вы перечислили - высокоуровневые сервисы на ядре, но полноценное ядро для этого надо ещё создать. В описаниях сингулярити деликатно умолчали, что было уже что-то готовое, на что они накручивали сервисы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Runtime
СообщениеДобавлено: 23 дек 2017, 12:03 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
uselec писал(а):
Давно мучает вопрос, почему

Потому, что так нельзя. Для рантайма виртуальной машины (ВМ) нужно низкоуровневое ядро, драйверная система, и собственно драйвера аппаратуры. Рантайм ВМ не может собой заменить ядро. Но смысл запуска ВМ на уровне ядра есть - меньше переходов между кольцами защиты. Но опять же, надо посчитать выигрыш эффективности. Речь идёт в лучшем случае об 1 - 5% ускорения, виртуальщики этого и не заметят.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Runtime
СообщениеДобавлено: 04 апр 2018, 04:57 

Зарегистрирован: 04 апр 2018, 04:40
Сообщения: 1
uselec писал(а):
Давно мучает вопрос, почему не разрабатывают ОС (я говорю о тех, для кого разработка операционок это хобби, разумеется) которые концептуально были бы что-то вроде рантайма, который предоставляют например различные ЯП

;)
Данный финт лишь признак еще одного слоя абстракции - интерпретирование. Это задача программной оболочки, а не ОС, задача которой собрать помойку "лоскутно" порванной памяти, пережитков в запуске различных режимов процессора, быть готовой к мириадам критических и критенических прерываний, жадно пережевывать программный тухляк 20-летней давности, и во всем демонстрировать надежность и производительность(эти понятия нелинейно взаимосвязаны в функциях абстракции).
;)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB