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


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

> > Если все "перелопатить", то в результате мы, скорее всего, получим "сферического коня в вакууме",
> Это как перелопачивать.

Понятно, что "перелопачивать" можно по разному. Но в данном случае то, что предлагается -- черти что и сбоку бантик. Это если к L4 еще сбоку приделать сегментацию -- не очень логично вписывается в идеологию. Хотя если мы окажемся умнее J. Liedtke (разработчик L4), то флаг нам в руки...

> > который будет совместим только с нашим проектом ОС, не сможет запускать других ОС и будет притянут к архитектуре IA32. А хочется еще и поддержки других платформ, приложений других ОС.
> Даже MS, с её деньгами перестала тащить "чужие" архитектуры.

Потому что поддержка каждой архитектуры требует от MS отдельных денег. А надо сделать ОС 1) по настоящему переносимой 2) открытой. (посмотрите на Linux. он конечно, многим не нравится, но поддержка Linux на куче архитектур не требует вливания кучи денег, в отличие от windows -- да его само собой добровольно переносят на кучу платформ (были бы желающие))

M$ тут как раз нам не указ. 1) У M$ ОС не микроядерная (или по крайней мере, не совсем микроядерная). Поэтому не так тривиально ее перенести на другую платформу. несмотря на то что теоретически, HAL.DLL вроде бы абстрагирует оборудование 2) 32-разрядный API архитектурно зависим (вроде бы, сильно отличается от того же win64) API Поэтому надо поддерживать каждую архитектуру отдельно.

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

Причем микроядро позволяет простой перекомпиляцией не только прикладных программ, но и самой системы переносить ее на другие платформы. Это в отличие от линукса, который надо портировать. А у нас система еще более переносимая (при условии, что API сделаем переносимым) -- достаточно просто заменить микроядро и перекомпилировать систему.

> > оно сделано достаточно универсально. Да, оно скрывает "левые" особенности архитектуры x86. И это даже хорошо, так как эти особенности (сегментация), дают больше геморроя, чем преимуществ (об этом уже правильно высказался Лайтэльф).
> Это мнение можно и нужно оспорить.
> Сегментация, которая так, не нравится позволит сделать например такое:
> VirtualAddressLimit=1024 и получаем гиг адресного пространства, доступного в "классической" плоской модели. Единственное отличие: пределы всех RING3 сегментов должны быть гиг, а не четыре как обычно.
> Получаем (в RING3) 512Мб "старой" OS/2 памяти, полгига для программ, желающих HMA и access violation для любого приложения, которое попытается своими грязными ручонками лезть за эти границы.
> Память за пределами третьего гигабайта "накрываем" (глобальными) большими страницами (железо).
> Остаётся ещё два гигабайта адресного пространства, которое можно использовать так, как сочтём нужным.
> Если использовать 64-разрядность в совместимом режиме - можно будет задействовать и более четырёх гигабайт физической памяти. Хотя не очень понятно, насколько это актуально.

Да, это все хорошо. возможности конечно, действительно открываются потрясающие. Но, уже говорили 1) как быть с компилятором, такое умеет по-моему только Watcom, а завязываться на специфические фичи одного компилятора не хочется 2) проблемы при портировании существующих opensource исходников. -- Не окажемся ли мы в изоляции без софта? 3) это непереносимо на другие платформы. Если даже оставить экзотические, типа APM, то даже на AMD64 не совсем переносимо (что-то Лайтэльф говорил, что там для совместимости оставили только регистр SS, а остальные выкинули, если я правильно понял)

Железо меняется. Даже платформа PC не вечна. Можно конечно, смеяться, и говорить, что PC вечны (и конечно, инерция использования PC велика), но 1) возможен рост популярности AMD64 2) производители могут придумать что-нибудь поудобнее IA64 и AMD64. Оно может приобрести популярность, и если не вытеснить традиционные PC, то сосуществовать. Хочется, чтобы ядро и там работало, причем без особых телодвижений -- здесь микроядерный подход рулит.

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

В общем, мое мнение остается прежним, и время покажет, кто прав...

Fri 15 Jun 2007 05:07 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.