Ядро от ИБМ, но для какой ОС?

Подразделение ИБМ (состоящее сейчас всего лишь из двух человек) под названием "Группа K42" разрабатывает новое высокопроизводительное ядро с открытым исходным кодом. Оно предназначается для операционной системы общего назначения, работающей на процессорах с согласованным кэшем (cache-coherent). Как это часто бывает, объяснение одного термина потянет за собой справочный материал по нескольким другим, так что малюсенькая заметка грозит превратиться в
трудно перевариваемую статью о всех компьютерных технологиях современности. Поэтому скажу лишь, что именно Сache Сoherent является расшифровкой букв "cc" в аббревиатуре ccNUMA. NUMA - NonUnified Memory Access (раздельный доступ к памяти), соответственно UMA - Unified Memory Access (унифицированный доступ к памяти). Первая технология характерна для кластеров, вторая - для SMP (Symmetrical MultiProcessing). ccNUMA, называемая также S2MP, объединяет достоинства обеих архитектур: отдельные подсистемы узла (процессоры и некоторые другие устройства) имеют собственную память и систему ввода-вывода (NUMA), узлы связаны специальным высокоскоростным интерфейсом (кластер) и имеют доступ к оперативной памяти других узлов (UMA), а также используют согласование своих кэшей (а вот и он, тот самый CC).

Разработчики с самого начала ориентировались на многопроцессорные системы различных масштабов. Дизайн системы предполагает высокую степень пространственной и временнОй близости кода и данных. Проще говоря, в каждый конкретный момент времени система старается разместить данные в том же участке памяти, что и обрабатывающий их код. Это приводит к существенному увеличению производительности любых многопроцессорных систем, а для
высокомасштабированных, в которых массив памяти распределён между несколькими узлами, это особенно критично. Понятно, что доступ к "близкой" памяти (установленной на той же машине) гораздо быстрее, чем к "дальней" (на другом узле). К42 предназначен в первую очередь для систем с тысячами процессоров и готов обеспечить надёжность и устойчивость (не только в смысле недопущения сбоя как такового, но и в смысле нивелирования его последствий, если он всё-таки произойдёт), необходимые тяжёлым коммерческим приложениям.

К42 - микроядро, позволяющее оптимизировать и настраивать отдельные свои сервисы (или серверы, в терминологии микроядер). Как частные примеры полезности подобной конструкции можно привести приложение, самостоятельно увеличивающее свою производительность (!) за счёт подстройки необходимых системных сервисов или, что ещё нагляднее, возможность использования архитектурных особенностей любых процессоров, на которые К42 будет портироваться. Он предназначен для 64-битных машин, в настоящее время работает на PowerPC (как "родной" код, а также поверх эмулятора SimOS). K42 тесно связан с исследовательской операционной системой Tornado, разрабатываемой в Университете Торонто. Существует ещё несколько проектов, ориентированных на K42, например, перенос на него Linux API. K42/L4 (K42 API на ядре L4) заброшен давно и, судя по всему, надолго. Кстати, первоначально K42 назывался Kitchawan, но после перехода под лицензию GPL оставили только первую букву, а число взяли из юмористического произведения Дугласа Адамса "Hitchhiker's Guide to the Galaxy", где оно означало ответ на Главный Вопрос Жизни, Вселенной и Всего Прочего.

АБВГДейка, АБВГДейка...

Такая вот была на советском телевидении детская передача с неудобоваримым даже для взрослых названием. Эволюция графической оконной подсистемы большинства UNIX'ов и некоторых не-UNIX'ов напоминает эту считалочку: Дабл-Ю-Экс-Вай-ка! Сначала в Стэнфорде разработали операционную систему V, потом оконное окружение для неё - W. Потом они улучшили W настолько, что потребовалось переименование, чтобы отразить глубину проделанных изменений. Так мы получили X Window System. Возросший интерес юникс-компаний породил на свет 11 её версий. Потом был организован X Consortium, который и выпустил шесть релизов X11, доведя версию до X11R6. Когда-нибудь должна была появиться Y, что и произошло.

18 февраля было официально объявлено о старте проекта Y Window System (на самом деле он существует гораздо дольше), через 3 дня была выложена версия 0.2. Одна из основных его идей - отказ (пока что частичный) от клиент-серверной модели. Х создавался в эпоху мощных мэйнфреймов, к которым лепились десятки и даже сотни терминалов. Это похоже на современные локальные сети, в которых рабочие станции соединены с сервером, но только на первый взгляд. Терминалы занимались выводом графической информации (окошки рисовали) и вводом текстовой, всё что от них требовалось - способность поддерживать работу Х-сервера, а программы (Х-клиенты) запускались и работали на мэйнфрейме. Сейчас, когда люди окончательно потеряли счёт мегабайтам и мегагерцам, когда даже на рабочий стол секретарши ставится Пень4, ВинХР и Ворд2003 (хотя, по совести говоря, хватило бы 286 и ДОСовой версии Ворда или, что ещё лучше, ВордПерфекта), когда... Короче, Х-сервер и Х-клиенты в подавляющем большинстве случаев работают на одной и той же машине, так что задействовать сетевые интерфейсы (TCP/IP, например) для их общения совсем необязательно. Поэтому Марк Томас, автор Y-Windows, решил обеспечить возможность работы по сети в качестве дополнительной опции, а не включать её в архитектуру оконной системы. Этим будет заниматься специальный внешний модуль, благодаря которому Y-сервер будет выглядеть из сети как обычный X-сервер.

Другие свойства Y: модульность (видеодрайвера могут быть выгружены и загружены на лету), встроенные виджеты (основной набор объектов виджет-классов входит в состав Y-сервера), постоянство оформления (все Y-виджеты будут выдержаны в одном стиле, так что клиентские приложения будут выглядеть более-менее единообразно, соответственно выбранному стилю), аппаратная акселерация (32-битный альфа-блендинг, полупрозрачность, тени и так далее, вплоть до использования текстур и аппаратного рендеринга при прорисовке окон), а также интернационализация и локализация (изначально поддерживается юникод). К сожалению, пока что реализованы только самые основные компоненты системы, поэтому она ещё не готова для повседневного использования. Y работает, но заменить X пока что не в состоянии.

Необходимость замены Х назрела не только в технологическом, но и в психологическом плане. Уже в течение года Х-сообщество раздирают склоки, раздоры, междоусобицы и, конечно же, споры о лицензиях, без которых, по моим наблюдениям, не обходится ни один разговор с участием хотя бы пары юниксоидов. Не буду приводить подробный хронологический отчёт, тем более что все эти события многократно обсуждались на соответствующих форумах. Упомяну лишь ещё несколько проектов-отщепенцев, конкурирующих с Х и XFree86: Xouvert (клон XFree86, отколовшийся от него с целью реализовать более открытую модель разработки, а также модульность), Cygwin/X (клон XFree86, работающий на эмуляторе Cygwin, порвавший отношения с xfree86.org), FreeDesktop (новый X Server, основанный на KDesktop того же автора, которым, кстати, является Кит Паккард, со скандалом покинувший xfree86.org около года назад).

Сама XFree86.org погрязла в каких-то малопонятных интригах, объединила усилия с X.org, после чего изменила лицензию на XFree86. Большинство линуксовых дистрибутивостроителей вынуждены были вернуться к версии 4.3. Организации, связанные со свободными Юниксами, отклонили новые условия по причине их правовой неприемлемости. Другими словами, использовать XFree86 4.4 с юридической точки зрения просто невозможно. Будущее "иксов" туманно, хотя вариантов развития событий немного: либо XFree86 возвращается к прежней лицензии, либо происходит массовый переход на альтернативные графические системы. Многие юникс-сообщества вполне способны профинансировать разработку Y-Windows, Xouvert, FreeDesktop или какого-то другого существующего проекта.
Или же они создадут принципиально новую систему, который наверняка назовут Z Window
System.

Оставить мнение