RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > Задача поставлена _на_данный_момент_ -- не переписать полностью систему, сделав для всех подсистем OpenSource-аналоги, а написать только ядро, чтобы на это ядро можно было заменить текущее ядро, и чтобы при этом все, что над ядром -- IBM-овские PM, WPS; приложения -- продолжало работать. Желательно также, чтобы продолжали работать и MMOS2, стек TCP/IP, LanServer и прочие подсистемы. Задача на мой взгляд, разумная. (Только пока непонятно, реализуемая ли на микроядре. Но подумать о возможности реализации этого все же стОит.) > > Хорошо, посмотрим на эту затею так: система паравиртуализации в еёё нынешнем виде предлагает возможность выполнения 16-разрядного кода? > > > Но большинство почему-то считает, что раз драйвера линуксовые и исполняются ядром линуха, а не непосредственно ядром OS/2, то это "ненативно", "идеологически чуждо" и прочее. > > Стоп, стоп. Вот, K42 пользуется линуксными драйверами непосредственно, не привлекая для этого ядро Линукса. (Обещается даже выполнение этих драйверов в user-level.) > Я в данном случае не K42 рекламирую, а просто обращаю внимание на принципиальную возможность такого фокуса. (Хотя, как говорил когда-то Райкин: "Возьмите, ребятки, воспользуйтесь." :-) > > > Это конечно, просто религиозный предрассудок, но... Если мы пишем ядро, то хочется, чтобы этим ядром пользовались. А не говорили -- "фу, линуксовая хрень". Поэтому следует подумать, как учесть требования трудящихся, если это конечно, возможно. > > Требования трудящихся, как мне кажется - чтобы их программы работали на их железе. А как это достигнуто - интересует только очень отдельных персон. > > > Да, похоже так -- для использования ядра OS/2 надо иметь лицензию на копию OS/2 и распространять бесплатно его будет нельзя. Но... Использовать ядро, полученное модификацией исходного IBM'овского ядра OS/2, предполагается именно в _переходный_ период, пока opensource-аналогов большинства подсистем нету. То есть, у нас будет новое ядро OS/2, а подсистемы будут продолжаться использоваться IBM'овские. То есть, копия OS/2 будет в данных условиях у каждого. Просто пользователь будет брать OS/2 или eCS и заменять ядро на наше. А ядро OS/2 (в том числе, паравиртуализованное) можно будет распространять вместе с копией eCS, > > Но тогда вопрос: заче вообще нужно паравиртуализировать нынешнее ядро? > На самом деле "переходный период" - он практически вечный, потому что для его завершения нужно, чтобы в системе не осталось вообще ничего IBM-овского (т.е., и PM с WPS тоже нужно самим реализовать). Первый шаг к этому - создание своего ядра. А модификация ядра нынешнего - она зачем? Что она даёт? Драйверы нынешние продолжать гонять можно будет? Так это и под непеределанным ядром продолжать делать можно. > > > оно будет позволять запускать eCS на гипервизорах или для поддержки 16 битных драйверов в виртуальной машине одновременно с нашим новым ядром -- то есть, пока новое ядро имеет мало своих собственных драйверов и находится в разработке, можно запускать старое ядро в другой вирт. машине и гонять на нем старые 16-бит драйверы. > > То есть, потратив несколько лет на одну только перекомпиляцию IBM-овского ядра, ты получишь, грубо говоря, "микроядерный линукс, в котором можно запускать (пара)виртуализированную OS/2". К созданию своего ядра это хоть на шаг приближает? > И остаётся главный вопрос (тобой же озвученный): если микроядро умеет создавать только 32-разрядные сегменты, то откуда возьмутся 16-разрядные? Ведь "паравиртуализатор", он, насколько я понимаю, тоже не в микроядре сидит, и он не может сказать ему: "А поправь-ка вот эти байтики в дескрипторе сегмента". > > >> ЭТОТ вариант заведомо можно не рассматривать. > > > > Подумать все же, имхо, стОит. Все-таки, важно чтобы в переходный период наше ядро использовалось как можно большим числом осевиков, тестировалось, исправлялись ошибки... > > Так не будет же никакого тестирования нового ядра. Потому что работать в такой схеме будут только IBM-овское ядро и виртуализатор. Никакие функции старого ядра перенаправляться в новое не будут. Разве что это перенаправление будет сделано в дизассемблированном исходнике - вместе с огромными шансами что-то в ядре при этом развалить. > > >> Какими драйверами? "Назовите поимённо!" > > > > Драйвера стека TCP/IP, MMOS/2 (dll-и из MMOS/2 можно будет сразу использовать, если будет бинарная совместимость с LX-форматом, а вот те несколько драйверов, от которых зависит MMOS/2 -- можно конечно, переписать под новую модель -- в качестве справочника можно использовать сорцы MMOS/2 из исходников мерлина -- там есть сорцы всех этих драйверов, кроме midi.sys), LanServer, поддержка NDIS-драйверов (IBMCOM) и протоколов, DANIS506... да много разных. DANIS506 и стек TCPIP-32 -- битные, а практически все остальные -- 16 бит. > > Хорошо, давай явно разделим драйверы устройств и абстрактные драйверы. Драйверов устройств, исходники которых недоступны, полезных уже практически не осталось. То, чем мы пользуемся - либо самописное, либо в DDK. > Драйверов абстрактных - их куда больше, и многие в DDK не встречаются. Но: они в основном мелкие и, по-моему, их совокупный размер меньше, чем размер ядра. Так что если уж что и дизассемблировать, то это их. > Оценим также и твой список: > - TCPIP. Драйверы в основном 32-битные. > - MMOS/2. 16-разрядных драйверов всего 3, и те "поддаются перевоспитанию". > - DANIS506. Самописный, я предполагаю ;-) > - Драйверы NDIS. Под современные карточки, за редким исключением - самописные. > - Peer (LS) и протоколы. Самая тяжёлая часть. Но TCP/IP, как отмечено выше - 32-разрядный, а актуальность LS и частого NETBIOS давно утрачена (заставить Windows XP работать по NETBIOS я так и не смог), а для NETBEUI лучше Самбу применять. > > В итоге складывается впечатление, что на дизассемблирование и перекомпилирование драйверов уйдёт меньше времени, чем на "впарвление мозгов" нынешнему ядру. > И вообще, если уж так биться за старые драйверы, проще реализовать своё ядро, сразу умеющее исполнять 16-разрядный код. Один хрен виртуализатор должен будет это уметь как-то это делать. > > > А стек TCPIP? Его вроде, в тулките нема. > > LX-файлы. > > > А USB-стек, PCMCIA-стек? -- возможно, в DDK они есть -- не проверял, но вот USB стек там очень старый > > Да, старый. Только вот и нынешний, судя по том обсуждениям, которые я вижу в Интернете и Фидо, работает куда хуже, чем Линуксный. (Насчёт флешек ты и сам знаешь; мышку мою нынешнюю (совершенно стандартную) удалось запустить только с самописным драйвером, потому что IBM-офский подерживает только подмножество стандарта.) > > > Потом, как быть с самописными -- многие аффторы уже мигрировали с OS/2 и им уже не до переписи драйверов под новую модель, и не факт что они отдадут исходники :( > > Те, которые пишут под актуальное ныне железо - все на месте и доступны.
__, _,_ __, _,_ _,
|_) | | | \ | / /_\
| \ | | |_/ |/ | |
~ ~ `~' ~ ~ ~ ~
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.