 | Уровень сложности: средний Брэд Кобб, ведущий консультант по техническим вопросам, Центр сотрудничества AIX, IBM Стефан Пекем, старший инженер-программист, IBM
26.03.2009 В статье объясняется, почему нужно изменить приложения и среды разработки, которые поддерживают только 32‑битные расширения ядра, чтобы приспособить их для IBM AIX® Version 6. В системе AIX Version 6 присутствует только 64‑битное ядро. Ранее операционная система AIX предлагала и 32‑битное, и 64‑битное ядра, что требовало и 32‑битных и 64‑битных расширений. В данной статье предлагаются два лёгких решения, которые помогут произвести эти изменения и начать пожинать плоды упрощённого окружения ядра.
Общее положение
Операционная система IBM AIX® исторически поддерживала и 32‑битное, и 64‑битное ядра, требуя от разработчиков расширений ядра предоставлять 32‑ и 64‑битные расширения. Чтобы помочь разработчикам управлять множественными расширениями ядра, система AIX предоставляла dual‑mode архивацию, которая позволяла поместить как 32‑, так и 64‑битные расширения в один архив, чтобы во время загрузки системный загрузчик мог подключить соответствующее расширение.
Начиная с шестой версии операционная система AIX упрощает окружение ядра, реализуя только 64‑битное ядро. AIX Version 6 поддерживает бинарную совместимость с предыдущими версиями AIX, как установлено правилами AIX для бинарной совместимости (см. Resources).
Упрощённое окружение расширений ядра
С удалением 32‑битного ядра из шестой версии AIX усилия по разработке расширений ядра значительно сократились. У разработчиков расширений теперь не будет возможности собирать или даже тестировать 32‑битные расширения в AIX Version 6. Уменьшение количества окружений ядра означает лучшую отдачу от вложений, требование меньших ресурсов для разработки, сборки, тестирования, упаковки и поддержки расширений ядра.
Для лучшей поддержки 64‑битных расширений ядра в шестой версии AIX исключена поддержка 32‑битных расширений из библиотек и файлов импорта ядра. Заголовочный файл
<sys/types.h> изменён таким образом, что если _KERNEL определен, а – 64BIT– – нет, то последует ошибка компиляции. Вместе с возможностью собирать только 64‑битные расширения ядра некоторые среды сборки расширений могут потребовать изменений для того чтобы избежать ошибок сборки.
Результаты перехода только на 64‑битное ядро
Упрощённое окружение ядра означает следующее:
- Будут затронуты приложения, поддерживающие только 32‑битные расширения ядра.
- Переход скажется на средах сборки приложений, предоставляющих 32‑ и 64‑битные расширения ядра, во время сборки расширений.
Приложения, требующие только 32‑битных расширений ядра, напрямую или косвенно через сторонний код, не смогут загрузить расширение ядра. В зависимости от логики приложения, невозможность загрузить расширение ядра может вызвать полную либо частичную неработоспособность приложения на AIX Version 6. Это не нарушение правил бинарной совместимости AIX, но фактически 32‑битные расширения ядра не поддерживаются.
Приложения, предоставляющие и 32‑, и 64‑битные расширения, требуют незначительных изменений в среде их сборки для AIX Version 6. С исключением 32‑битного ядра и среды сборки 32‑битных расширений ядра автоматизированные среды сборки, собирающие как 32‑битные, так и 64‑битные расширения, требуют модификации для приспособления к единственной 64‑битной среде сборки расширений ядра.
Поддержка расширений с двумя режимами (dual‑mode) не удаляется из AIX Version 6, а удаление 32‑битного ядра не влияет на бинарную совместимость. Собранные на AIX Версии 5 расширения dual‑mode ядра продолжают работать на AIX Version 6, но только в 64‑битном режиме.
В следующих разделах предлагаются два решения для перехода на AIX Version 6.
Решение I
Перед сборкой 32‑битного расширения ядра автоматизированные среды, собирающие и 32‑, и 64‑битные расширения, теперь должны проверять операционную систему. Достаточно провести такую простую проверку:
#!/bin/ksh
Version='uname –v'
if [ $Version –gt "5" ]
then
# Build 64-bit kernel extension only
else
# Build both 32-bit and 64-bit kernel extensions
fi |
Приведённый алгоритм будет собирать 32‑ и 64‑битные расширения на AIX версии 5 и только 64‑битное расширение ядра для AIX Version 6.
Решение II
Make-файлы, поддерживающие сборку и 32‑, и 64‑битных расширений, можно модифицировать. Типичный Makefile для сборки двойного (dual-mode) расширения может иметь такие строки:
kext: kext32 kext64:
ar –X32_64 –crf kext kext32 kext64
kext32: …
ld –b32 –o $@ …
kext64: …
ld –b64 –o $@ …
остальные строки
|
Это можно превратить в Makefile, собирающий расширение только для 64-битного ядра путём такого изменения:
kext: …
ld –b64 –o $@ …
остальные строки |
С этим решением имя расширения ядра остаётся неизменным, так что существующий метод конфигурации продолжает работать без внесения изменений.
Итоги
Уменьшение числа ядер, поддерживаемых AIX Version 6, ведет к сокращению затрат на разработки как для IBM, так и для поставщиков расширений ядра. Снижение затрат и быстрый возврат вложений достигаются за счет сокращения необходимых ресурсов для разработки, сборки, тестирования, упаковки и поддержки множества ядер и их расширений.
Ресурсы Научиться
- Оригинал статьи
Simplified kernel extensions with AIX Version 6 (EN).
-
AIX binary compatibility:
Объясняются вопросы совместимости AIX на уровне исходных кодов (EN).
-
Popular content:
популярные материалы по AIX и UNIX.® .(EN)
- Другие статьи и руководства, написанные Бредом Коббом:(EN)
- Другие статьи и руководства, написанные Стефаном Пекемом:(EN)
-
AIX и
UNIX:
раздел по AIX и UNIX от developerWorks предоставляет огромное количество информации по всем аспектам администрирования систем AIX и по расширению ваших навыков в UNIX.
-
Новичок в AIX и UNIX?: страница "AIX и UNIX для новичков".
-
AIX Wiki:
среда сотрудничества для обмена технической информацией по AIX (EN)
-
AIX Wiki:
посетите AIX Wiki и ознакомьтесь со статьёй Найгела Гриффица (Nigel Griffith) (EN).
- Материалы по темам:(EN)
-
Safari bookstore:
библиотека электронных ресурсов.(EN)
-
developerWorks technical events and webcasts:
Мероприятия и он-лайн конференции developerWorks (EN)
-
Podcasts: настройтесь и идите в ногу с техническими экспертами IBM. (EN)
Получить продукты и технологии
-
IBM trial software:
ознакомительные версии ПО для разработчиков, которые можно загрузить с сайта developerWorks.(EN)
-
Quick links
for AIX fixes:
обновления AIX.(EN)
- IBM
Fix Central:
этот сайт предоставляет исправления и обновления для программного обеспечения, оборудования и операционной системы конкретного компьютера. (EN)
Обсудить
Об авторах  | |  | Больше чем 10 лет Брэд Кобб (Brad Cobb) помогал поставщикам решений портировать, настраивать, отлаживать и улучшать их приложения в средах разработки IBM AIX. Кроме помощи поставщикам решений, Брэд регистрировал патенты, публиковал статьи и выступал на конференциях разработчиков. Вы можете написать ему на адрес bcobb@us.ibm.com. |
 | |  | Стефан Пекем (Stephen Peckham), IBM Corporation, 11400 Burnet Road, Austin, TX 78758. Доктор Пекем – старший инженер-программист в IBM Server Group, где он является членом команды разработчиков ядра AIX в течение последних 10 лет. Он работал над link editor, system loader и runtime linker, а сейчас улучшает производительность системы виртуальной памяти AIX. Пекем защитил докторскую диссертацию по информатике в Университете Cornell University. |
Выскажите мнение об этой странице
|  |