OSDev
http://osdev.su/

Проще, чем Lego
http://osdev.su/viewtopic.php?f=25&t=620
Страница 1 из 2

Автор:  DJ PhoeniX [ 24 авг 2012, 05:52 ]
Заголовок сообщения:  Проще, чем Lego

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

PhoeniX OS будет сопровождаться конструктором, который в несколько кликов позволит интегрировать необходимые драйвера (с автоматическим определением, что есть на вашем компьютере), добавить программы прямо в ядро (если вы часто пользуетесь калькулятором, текстовым редактором, или любой другой программой - она будет запускаться мгновенно), или, наоборот, сократить размер загружаемого файла до считанных килобайт, оставив только самое необходимое, и ускорив загрузку ОС до состояния "готова к выполнению команд" до долей секунды.

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

Автор:  D-S [ 24 авг 2012, 11:51 ]
Заголовок сообщения:  Re: Проще, чем Lego

Вам в первую очередь нужно подумать как эти компоненты будут между собой взаимодействовать (разработать компонентную модель). COM, CORBA, D-Bus, своё на основе. Иначе потом много придётся переделывать.

Автор:  DJ PhoeniX [ 24 авг 2012, 12:28 ]
Заголовок сообщения:  Re: Проще, чем Lego

D-S писал(а):
как эти компоненты будут между собой взаимодействовать

Упрощённая модель DLL Windows - таблица релоков, entrypoint и stdcall.

Автор:  Yoda [ 24 авг 2012, 13:41 ]
Заголовок сообщения:  Re: Проще, чем Lego

Каким образом планируется решение проблемы DLL hell?

Автор:  DJ PhoeniX [ 24 авг 2012, 14:43 ]
Заголовок сообщения:  Re: Проще, чем Lego

Yoda писал(а):
Каким образом планируется решение проблемы DLL hell?

Я же сказал - упрощённая модель :) Такой проблемы не возникнет.

Автор:  SII [ 24 авг 2012, 14:56 ]
Заголовок сообщения:  Re: Проще, чем Lego

DJ PhoeniX писал(а):
Такой проблемы не возникнет.


Блажен, кто верует...

На самом деле, единственный способ избежать этой проблемы -- обеспечение: 1) полного соответствия между описанием библиотеки и поведением её реализации; 2) применением в программах, пользующихся данными библиотеками, только явно документированных возможностей без "закладывания" на недокументированные особенности поведения; 3) гарантированной стопроцентной совместимости "снизу вверх" между старыми и новыми версиями библиотек.

Технически это достижимо, хотя и довольно геморройно.

Автор:  D-S [ 24 авг 2012, 14:59 ]
Заголовок сообщения:  Re: Проще, чем Lego

SII писал(а):
На самом деле, единственный способ избежать этой проблемы -- обеспечение: 1) полного соответствия между описанием библиотеки и поведением её реализации; 2) применением в программах, пользующихся данными библиотеками, только явно документированных возможностей без "закладывания" на недокументированные особенности поведения; 3) гарантированной стопроцентной совместимости "снизу вверх" между старыми и новыми версиями библиотек.


Обеспечивается версионностью интерфейсов. Однажды определенный интерфейс имеет версию и не меняется. А сама ОС - набор интерфейсов.

То что самое простое - не всегда самое лучшее и уж конечно не универсальное. Так что - разрабатывайте компонентную модель...

Автор:  SII [ 24 авг 2012, 15:06 ]
Заголовок сообщения:  Re: Проще, чем Lego

D-S писал(а):
Обеспечивается версионностью интерфейсов. Однажды определенный интерфейс имеет версию и не меняется. А сама ОС - набор интерфейсов.


Тоже вариант. Однако автор хочет использовать DLL, так что я отвечал в рамках его задумки.

Кстати, строго говоря, метод решения проблемы "хелла" остаётся в любом случае одинаковым. В случае простых DLL -- строгое соответствие любой версии реализации описанию функций, находящихся в DLL, с поддержанием совместимости и т.п. (о чём я написал). В случае с интерфейсами -- опять-таки, строгое соответствие поведения интерфейса его описанию, использование клиентами только явно описанных возможностей и особенностей поведения, строгое соблюдение совместимости "снизу вверх" между разными версиями интерфейса. Т.е., по сути, проблема остаётся той же самой, меняются лишь технические детали.

Автор:  grindars [ 24 авг 2012, 21:22 ]
Заголовок сообщения:  Re: Проще, чем Lego

Т.е. получается все тот же SxS, только в профиль.

Автор:  DJ PhoeniX [ 25 авг 2012, 10:52 ]
Заголовок сообщения:  Re: Проще, чем Lego

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

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/