RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Вот и бизнес подтянулся.


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : valerius
To : Igor Vaskov
Subj : Вот и бизнес подтянулся.

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

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

И еще, не лучше ли все-таки, поддержать идею Opensource и оказать помощь проекту www.osFree.org? Ядро проект уже выбрал, оно готовое -- микроядро L4::Pistachio. То есть, ядро писать не надо, надо написать API в виде системы userlevel-серверов и библиотек. То есть, то что "в обиходе" называется ядром, на самом деле -- мультисерверная обвязка вокруг микроядра. На самом деле микроядро -- это не ОС, а минимальная база для построения ОСи. То есть, фактически, это не будет реализацией подсистемы ОС/2 поверх какой-то ОС, а построением новой, независимой ОС поверх микроядра. Будет неверны упреки в "миграции" куда-либо.

Использование микроядра повышает надежность -- в ring0 исполняется все, кроме самогО микроядра, даже драйверы. То есть, ничто не может уронить систему в трап, разве что самО микроядро. Но оно очень маленькое, в нем легче найти ошибки, и поэтому очень отлажено. То есть, надежность будет очень высока. Потом, производительность микроядер 2-го поколения очень высока, она всего на несколько процентов ниже, чем у монолитных ядер, это практически неощутимо. Немножко медленнее, зато более надежно, и можно запускать одновременно несколько OS Personalities. Можно реализовать собственную подсистему драйверов, а можно "импортировать" драйвера из Linux. L4Linux давно уже готова и работает. Она бинарно совместима с обычным линуксом, то есть достаточно взять обычный дистрибутив Linux и заменить ядро на "депривилегированное". Можно получить и windows-подсистему, использовав код ReactOS. Проблема с драйверами тоже решаема -- есть целых два проекта по использованию линуксовых драйверов в другой personality. Также можно аналогично прикрутить виндовые драйвера (и аппсы).

Далее, OS/2 ядро знаменито своим шедулером процессов. И необходимо в новом ядре сделать также очень качественный шедулер. У многих ядер шедулер намного хуже. Если же в качестве ядра взять L4, то там шедулеры сделаны в userlevel и вынесены из ядра. Причем каждый тред может иметь свой отдельный шедулер. Так что зависит только от нас, как мы реализуем шедулер в юзерлевеле. Он может быть с произвольным алгоритмом, L4 настолько абстрагированно от подобных вещей, и не накладывает практически никаких ограничений.

Оно вообще все что возможно, выносит в userlevel. То есть, управление памятью тоже вынесено в юзерлевел, и можно его организовать произвольно. Также, семантика тредов может быть произвольной, и можно сделать свой трединг поверх L4'овского. (L4 произносится "эльфир", это так его название произносится по-немецки -- "El vier" ;-)).

На данный момент в проекте osFree (OS/3) занято несколько человек, но реально в данный момент работаю только я. Один человек студент, защищает диплом, у него щас нет времени, другой преподает в вузе и тоже очень занят, третий подключается к проекту и экспериментирует с загрузкой LX-файлов. Четвертый пропал в неизвестном направлении и не отвечает на письма. Я в данный момент пишу загрузчик и вникаю в процесс разработки программ для L4. Это "в процессе", а уже имеющиеся знания использую в работе над загрузчиком. (для этого надо знать ассемблер и уметь программировать под DOS).

Вообще для загрузки L4 традиционно используется GRUB. Но "марафон" с загрузчиком был затеян потому, что GRUB не очень соответствует идеологии загрузки OS/2 с mini- и micro-fsd. К тому же, мне это интересно. На данный момент загрузчик уже грузит микроядро и запускается root server. Но есть небольшие проблемы, которые надо устранить (ядро запускается, но при попытке ввести номер теста в pingpong (это рутсервер) возникает трап в ядре L4 -- что-то пока неправильно задается из параметров ядра -- в процессе устранения).

Загрузчик грузит ядро по стандарту multiboot (это нужно для L4), подпрограммы для этого взяты в исходниках GRUB. Для работы с диском загрузчик (как и в OS/2) использует microfsd, это уже работает.
Также идея blackbox'а (использованная в microfsd) будет распространена на поддержку форматов исполняемых файлов. То есть, для формата LX будет свой микродрайвер, для ELF -- другой и для лоадера это будет совершенно прозрачно. Предполагаем, кроме поддержки multiboot-ядер сделать загрузку os2krnl, на первом этапе загрузчик будет просто стартовать os2ldr, который и загрузит ядро, потом планирую реализовать функции os2ldr внутри загрузчика. Также, будет такая идея: загрузчик будет совмещать функции загрузчика и бутменеджера (аналогично GRUB'у).

На www.osfree.org в wiki есть некоторая информация про загрузчик. Там собраны некоторые идеи на будущее, это просто набросок, который будет в будущем сильно меняться. Так что, если там найдете некоторые спорные идеи, не удивляйтесь, возможно, скоро будет предложено лучшее решение ;-)

Замечание. www.osfree.org (так же как и www.os2world.com, на котором он хостится) сейчас в дауне. Там недавно поменяли комп под сервер, так что, возможно, при заходе на сервер будет пустая страница.

WBR,
Валерий

PS:
Присоединяйтесь к проекту, нам очень нужны разработчики. До сих пор все только вяло интересуются, не видно конца и края ;(


Sat 02 Jun 2007 19:48 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.7.10) Gecko/2005




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.