AIX 5L™, версия операционной системы UNIX® от IBM, уже известна в области бизнеса On Demand и Web-приложений благодаря своей масштабируемости, надежности, универсальности. Выпущенная в прошлом году AIX 5L версия 5.3 продолжает эту славную традицию. Новая версия этой ОС гарантированно совместима на уровне двоичных кодов с предыдущими версиями AIX. Кроме того, в нее добавлены такие функции как NFS Version 4, виртуальный SCSI, виртуальный Ethernet, Simultaneous Multi-Threading (Симметричная многопоточность, SMT) и технология микроразделов Micro-Partitioning™. Пользователи выиграют от применения новых возможностей, постоянно добавляемых в эту флагманскую ОС.
Эта статья посвящена некоторым новым функциям, представленным в AIX 5L версии 5.3, которые могут пригодиться при разработке программного обеспечения.
В ходе дальнейших рассуждений мы будем использовать термины AIX 5L 5.3 и версия 5.3.
-
Функции, совместимые с POSIX Realtime
AIX 5L 5.3 содержит расширяющий стандарт POSIX REALTIME. В это расширение входит ряд системных интерфейсов, предоставляемых AIX 5L 5.3 для следующих опций:
- Memlock (блокировка памяти);
- Spin lock (спин-блокировка);
- Clocks (часы);
- Thread options (опции потоков);
- Barriers (барьеры);
- Priority scheduling (планирование приоритетов);
- Message passing (передача сообщений);
- Semaphores (семафоры);
- Timers (таймеры);
- Advisory information (вспомогательная информация).
-
Perl 5.8.2
Perl 5.8.2, последняя версия Perl, включена в AIX 5L версии 5.3. Новая версия Perl содержит исправления ошибок Perl 5.8.0, который впервые появился в AIX 5.2.0. Версию установленного Perl можно узнать с помощью следующей команды:
# perl -v This is perl, v5.8.2 built for aix-thread-multi Copyright 1987-2003, Larry Wall
Для сравнения двух версий Perl необходимо выполнить команду
perldoc. Первая командная строка в примере, приведенном ниже, покажет разницу между Perl 5.8.0 и 5.8.1, вторая командная строка сделает то же самое, но для Perl Version 5.8.1 и 5.8.2:$ perldoc perl581delta $ perldoc perldelta
Среда Perl упакована и поставляется в двух наборах файлов: perl.rte и perl.man.en_US. Набор файлов perl.rte находится на первом диске AIX CD и устанавливается автоматически в ходе установки AIX 5L версии 5.3 или при миграции с другой версии AIX.
Набор файлов со страницами руководства man (perl.man.en_US) находится на втором CD и автоматически не устанавливается.
64-битные и 32-битные версии упакованы вместе; 32-битная версия используется по умолчанию. Обе версии находятся в каталоге /usr/opt/perl5 и поддерживают Perl-потоки, собраны с использованием современных потоков (ithread, потоки-интерпретаторы) и имеют встроенную поддержку PerlIO.
Чтобы использовать 64-битную версию, необходимо перенаправить символьные ссылки Perl в /usr/bin, чтобы они указывали на 64-битные версии тех же команд из каталога /usr/opt/perl5/bin.
Каталог /usr/opt/perl5 содержит сценарии, которые можно использовать для изменения символьных ссылок.
Чтобы перейти с 32-битного на 64-битный Perl, под учетной записью root необходимо ввести следующие команды:
/usr/opt/perl5/link_perl_64
Чтобы перейти с 64-битного на 32-битный Perl, под учетной записью root необходимо ввести следующие команды:
/usr/opt/perl5/link_perl_32
-
Увеличенные пределы межпроцессного взаимодействия (IPC)
В AIX верхние пределы для IPC-механизмов установлены, но не настраиваемы. Отдельные структуры данных IPC выделяются и удаляются по мере необходимости, поэтому количество необходимой памяти зависит от текущей загруженности системы. Предыдущие версии AIX определяли максимальное число идентификаторов семафоров, идентификаторов сегментов совместно используемой памяти и идентификаторов запросов сообщений равным 131072 (128 K) для 64-битного ядра. Чтобы справляться с ожидаемыми в будущем запросами по части масштабирования, в AIX 5L 5.3 максимальное число структур данных для каждого типа IPC идентификаторов было увеличено до 1048576 (1024 K).
-
Криптографическая команда
sum
Пользователи часто используют команду
sumчтобы сгенерировать контрольную сумму для проверки целостности файла. Однако возможна ситуация, когда для двух различных файлов будет сгенерирована одинаковая контрольная сумма. В AIX 5L версии 5.3 была добавлена криптографическая командаsum,csum; данная команда является более надежным инструментом для проверки целостности файла. Эта команда позволяет пользователю генерировать подпись сообщения с использованием AIX Cryptographic Library (Криптографической библиотеки). Криптографическая контрольная сумма считается защищенной, поскольку практически невозможно вычислить данные, которым соответствовала бы известная контрольная сумма, и наоборот.Команда
csumможет принимать параметр, который определяет предпочтительный алгоритм шифрования, включая MD5 и SHA-1, которые достаточно безопасны. Опытным путем было установлено, что для того чтобы создать два различных файла с одинаковыми MD5-суммами, потребуется выполнить 264 операций, а чтобы создать файл с заранее известной MD5-суммой, потребуется выполнить 2128 операций.
Командаcsumпомогает пользователям при обновлении AIX, предоставляя механизм для проверки того, что файл при загрузке не был подменен или испорчен.csumнаходится в наборе файлов bos.rte.commands. - Java 1.4.2
С AIX 5L 5.3 поставляются как 32-битная, так и 64-битная версии Java 1.4.2. Новые пакеты AIX 5L Version 5.3 содержат 5300-02 Recommended Maintenance Package (пакет с рекомендованным сервис-паком). - Поддержка потоков в gmon.out
Если приложения выполняются в несколько этапов, на которых последовательно вызываются различные исполняемые файлы (с установленными флагами-pили-pgдля генерации профилирующей информации), то каждый исполняемый файл вызывает перезапись файла gmon.out. Поэтому возникают дополнительные трудности, связанные с изменением сценариев или исходного кода, чтобы добавить команды или вызовы функций для переименования файла gmon.out во избежание его перезаписывания. В AIX 5L версии 5.3 файл gmon.out был реализован с поддержкой потоков, чтобы в нем мог хранить данные каждый поток многопоточного приложения.Текущий алгоритм работы
gprofинтерпретирует gmon.out только на уровне процессов. Если gmon.out поддерживает уровень потоков,gprofпозволяет пользователю анализировать сложные многопоточные приложения, а также сохранять профили для большого количества программ, выполняющихся внутри одного и того же каталога. - Поддержка потоков в
grof
ОС AIX 5L версии 5.3 добавлена новая возможностьgprof; теперь эта утилита может интерпретировать дополнительную информацию, доступную для программ, профилированных на уровне потока. Дополнительная информация может содержать число вызовов функций для каждого потока, число дуг выполнения для потока и количество времени, потраченное на выполнение функции для каждого потока. Новый режим работы контролируется при помощи новой переменной окруженияGPROF. - Улучшенная библиотека libc.a
В AIX 5L 5.3 реализованы некоторые новые API-интерфейсы для библиотеки libc.a. Обновление многих существующих функций в этой библиотеке обеспечивает повышение производительности системы, надежность и доступность служб идентификации и аутентификации, предоставляемых библиотекой. Модифицированные функции отмечены буквой "x" в конце названия функции; например, функцияauthenticatex()является модифицированной версией ранее доступной функцииauthenticate(). - Новый алгоритм
malloc()
AIX 5L версии 5.3 была реализована новая подсистема, которая получила название Watson Malloc. Watson Malloc имеет ряд усовершенствований по сравнению с реализацией по умолчанию (Yorktown) в области фрагментации памяти и производительности многопоточных приложений. Модуль Watson Allocator быстро и с относительно малыми потерями памяти обрабатывает небольшие запросы.Чтобы узнать, какой из сегментов программного кода приносит максимальные выгоды, Watson Allocator можно сконфигурировать тремя различными способами:
- Watson Allocator может быть активизирован с механизмами кэширования и с новым распределителем сегментов памяти.
- Watson Allocator может быть активизирован без механизмов кэширования и с новым распределителем сегментов памяти.
- Watson Allocator может быть активизирован без механизмов кэширования и без нового распределителя сегментов памяти.
Любую из упомянутых выше конфигураций можно отключить, если они не выгодны с точки зрения скорости или использования памяти.
- Усовершенствования в подсистеме
malloc
Число переменных, связанных с окружением функции malloc и поддерживаемых в AIX 5L версии 5.3, было уменьшено до трех, при этом были переопределены их атрибуты. Вот эти переменные окружения:MALLOCTYPE,MALLOCOPTIONSиMALLOCDEBUG.MALLOCOPTIONS- это новая переменная окружения, которая определяет все текущие и будущие параметры модулей распределенияMALLOCTYPE. Она заменила переменныеMALLOCBUCKETS,MALLOCMULTIHEAPиMALLOCDISCLAIM, от которых в новой версии было решено отказаться.В таблице представлены три переменные окружения с описаниями и некоторыми параметрами, которые они могут принимать:
MALLOCTYPEИспользуется для определения типа распределителя (аллокатора). Принимает параметры: 3.1,default allocator,watsonиuser.MALLOCOPTIONSИспользуется для задания параметров распределителя памяти. Принимает параметры: buckets,disclaim,threadcache, иmultiheap.MALLOCDEBUGИспользуется для заданий параметров отладки. Принимает параметры: catch_overflow,report_allocations,Malloc Log,Malloc Traceиvalidate_ptrs.
Также были добавлены следующие улучшения:
- Параметр
Threadcache, который уменьшает конкуренцию за блокировку "кучи", теперь доступен для приложений, использующих как распределитель памяти по умолчанию (Yorktown), так и Watson Allocator. - Были улучшены функции
Malloc LogиMalloc Trace.Malloc Logпредлагает расширенный журнал и обеспечивает средства для автоматической регистрации размещений и метаданных.Malloc Traceтеперь записывает больше данных, включая информацию о динамической памяти ("куча") и идентификаторы потоков. - Параметр отладки
output
На данный момент все отладочные параметрыmalloc, которые генерируют выходную информацию, отсылают ее в stderr. Как показано в приведенном ниже примере, параметрoutputпредоставляет механизм уведомления подсистемы о необходимости направлять выходную информацию в произвольный файловый поток:$ MALLOCDEBUG=output:/dev/null $ MALLOCDEBUG=output:stdout
- Параметр отладки
continue
Многие параметры отладкиmallocпри возникновении ошибки вызывают процедуруabort(). Однако нередки случаи, когда разработчик хотел бы сначала выполнить отладку других классов ошибок и поэтому предпочительно, чтобы менее серьезные ошибки не вызывали фатальных сбоев. При применении параметраcontinueвозникновение синхронных ошибок не приводит к вызову функцииabort(). Сообщения об ошибках записываются в соответствующие каналы.$ MALLOCDEBUG=continue
- Watson Allocator поддерживает следующие возможности отладки:
catch_overflowЭтот параметр отладки пытается зафиксировать процедуры записи и чтения, которые выполняются за пределами буфера. Это делается путем выделения дополнительной глобальной страницы (guard page) и распределение выполняется следующим образом: последние распределяемые данные сбрасываются в глобальную страницу. Глобальная страницы защищена так, чтобы любая попытка доступа вызывала ошибку segfault.Malloc LogЭтот параметр отладки создает динамическую базу данных активных malloc-распределений, к которой можно обратиться через отладчик. - Команда DBX
malloc
Функциональные возможности malloc-отладки добавлены в DBX. Это позволяет разработчику запрашивать текущее состояние подсистемы malloc без необходимости создания сложных, громоздких сценариев, требующих знаний механизмов работы подсистемыmalloc. Теперь разработчик может получить информацию по таким вопросам как определенные malloc-распределения, организация "кучи" и дерево свободного пространства. Эти возможности поддерживаются и в "живых процессах", и в dbx-сеансах для core-файлов. Команда DBXmallocработает в тандеме сMalloc Logи позволяет выполнять поиск по ключевым значениям: куча, адрес, размер, PID (идентификатор процесса). Ниже представлены два примера:(dbx) mallocВывод параметров, статистики "кучи" и статистики brk (dbx) malloc freespaceВывод всех свободных узлов в "куче" процесса
- Параметр
Усовершенствования в DBX
Значимые улучшения были внесены в DBX в версии 5.3. Ниже представлены некоторые из улучшений:- Теперь пользователи могут дополнительно контролировать способ, используемый DBX для обработки событий отладки. События отладки - это установленные пользователем точки останова, точки трассировки, и точки наблюдения, которые контролируют выполнение отлаживаемого процесса. Если пользователю нужно отключить результаты срабатывания события отладки, то до сих пор DBX требовала, чтобы событие было полностью удалено. Если событие нужно попеременно удалять и добавлять, то пользователю приходилось вручную вводить событие каждый раз, когда это было необходимо. Этот недостаток был устранен благодаря добавлению двух новых подкоманд DBX:
disableиenable. Эти подкоманды позволяют пользователю в DBX временно отключать события отладки, не удаляя их совсем.
- Сейчас, если любой зависимый модуль, на который ссылается файл ядра corefile, недоступен в момент отладки, то DBX выводит сообщение об ошибке "
cannot open <dependent module path>" (невозможно открыть <путь к зависимому модулю>) и завершает работу. Такое поведение не позволяет выполнить отладку файла corefile, пока не будут найдены все зависимые модули. Теперь DBX позволяет продолжить сеанс отладки даже в том случае, если несколько зависимых модулей, на которые ссылается файл corefile, являются нечитаемыми или отсутствуют. Для каждого недостающего зависимого модуля DBX выводит уведомление в процессе инициализации; это уведомление содержит имя отсутствующего модуля. DBX также передает уведомление, если будет обнаружено, что любой модуль, на который ссылается файл corefile, отличается от версии, указанной на момент создания corefile. - В DBX было добавлено несколько новых подкоманд. Среди них
proc,kthreadиfd. Назначение этих подкоманд - отображение данных, содержащихся в структурах, используемых ядром для отслеживания процессов и потоков. Данное нововведение является преимуществом, поскольку делает доступным информацию об отладке, которую до этого было очень сложно получить. Доступ к большей части данных, находящихся в пользовательских процессах или файловых дескрипторах, можно было получить при помощи различных вспомогательных команд DBX, но теперь все данные доступны через один интерфейс. - Чтобы уменьшить сложность отлаживаемого pthread-кода, набор функций был усовершенствован добавлением нескольких новых подкоманд, которые получают информацию об pthread-объектах и отображают эту информацию в удобном для чтения, дружественном к пользователю формате. Среди этих подкоманд -
handler,onceblockиresource. - Функциональность и удобство использования DBX были улучшены за счет добавления подкоманды
corefile, которая отображает информацию об отлаживаемом файлe <corefile>. Без аргумента подкомандаcorefileраспечатывает основную информацию о <сorefile>. Использование аргумента позволяет запросить более подробную информацию. Некоторые возможности могут быть ограничены в случае, если переменная окруженияFULLCOREне была активирована во время дампа (dump-time). В этих случаях будут выведены подходящие предупреждающие сообщения.Подкоманда
corefileвыведет информацию из заголовка corefile, включающую:- имя исполняемого файла;
- информацию о версии corefile;
- флаги, указывающие на то, какие данные доступны;
- сигнал, который вызвал аварийное прерывание выполнения;
- режим выполнения процесса, который выполнял дамп ядра.
- Теперь пользователи могут дополнительно контролировать способ, используемый DBX для обработки событий отладки. События отладки - это установленные пользователем точки останова, точки трассировки, и точки наблюдения, которые контролируют выполнение отлаживаемого процесса. Если пользователю нужно отключить результаты срабатывания события отладки, то до сих пор DBX требовала, чтобы событие было полностью удалено. Если событие нужно попеременно удалять и добавлять, то пользователю приходилось вручную вводить событие каждый раз, когда это было необходимо. Этот недостаток был устранен благодаря добавлению двух новых подкоманд DBX:
- Среда выполнения Eclipse
Среда выполнения Eclipse поставляется с AIX 5L версии 5.3. Данная среда представляет собой платформу, на которой будут выполняться Eclipse-инструменты, включая новый инструмент для мониторинга производительностиprocmon.Примечание: AIX 5L не поддерживает Eclipse в качестве платформы для разработки.
- Обновление команды
tcpdumpдо последней версии
Командаtcpdumpобновилась до версии 3.8. Кроме того, командыiptraceиipreportтакже изменились, и теперь могут использовать обновленную библиотеку libcap (версия 0.8) для захвата пакетов и чтения дампа. Команда AIXtcpdumpдо AIX 5L версии 5.3 отображала временные метки пакета до 1 нс (10-9 с). Командаtcpdumpс открытым исходным кодом отображает временные метки 10-6 с. Новая команда AIXtcpdumpимеет разрешение временных меток 10-6 с.В
tcpdumpбыло добавлено несколько новых флагов. Кроме того, были включены 87 протоколов принтеров, чтобы обеспечить возможность печати при использованииtcpdump. - Предоставление man-страниц
AIX 5L Version 5.3 включает следующие улучшения, касающиеся способа предоставления командойmanстраниц справки, находящихся на основном CD AIX и CD с документацией.- Разделы теперь выделяются отступом. Например, текст раздела Purpose (Цель) отделен отступом от заголовка раздела Purpose, который находится в первой колонке (аналогичным образом выделяются и другие разделы).
- Для выделения описания флагов также делают отступы. Поэтому теперь ясно, где начинается и где кончается описание флага.
- Теперь между названиями команд, параметров, имен файлов и текстом описания есть визуальные различия. Это делает описание удобочитаемым.
- Многоколоночные таблицы теперь аккуратно отформатированы.
- Маркирование разделов для чтения и записи исполняемого файла
В AIX 5L версии 5.3 введен новый бит с именемF_NONEXEC. Когда этот бит установлен, разделы чтения и записи (.data, .bss) исполняемого файла, библиотеки коллективного доступа или объектного файла не являются исполняемыми. Если бит не установлен, то все разделы чтения и записи являются исполняемыми. Данный бит можно установить в полеf_flagsзаголовкаXCOFF, как показано далее:#define F_NONEXEC 0x8000
Данный бит также можно установить при помощи команд
ldилиldedit, которые специально для этого были обновлены.- Обновленные флаги команды
ld:-b rwexecМаркирует разделы файла для чтения и записи как исполняемые. Данная опция не устанавливает в заголовочном файле XCOFFбитF_NONEXEC. Действие по умолчанию.-b norwexecЭта опция противоположна -b rwexec. Она маркирует все разделы файла для чтения и записи как неисполняемые и указывает загрузчику сделать стек неисполняемым. Эта опция устанавливает битF_NONEXECв заголовочном файлеXCOFF.
- Обновленные флаги команды
ldedit
Можно использовать командуldeditдля очистки флагаF_NONEXEC(как показано ниже):ldedit -b rwexec
Для установки флагаF_NONEXECможно использовать командуldedit:ldedit -b norwexec
- Обновленные флаги команды
- Привязка блочного устройства
Предыдущие версии AIX не имели возможности привязать блочное устройство. AIX 5L Version 5.3 расширяет функциональность методаmmapдля привязки блочных устройств.Блочное устройство - это специальный файл, обеспечивающий доступ к драйверу устройства, который предоставляет блочный интерфейс. Для блочного интерфейса к драйверу устройства необходим доступ к данным в блоках фиксированного размера. Интерфейс обычно используется для устройств хранения данных.
AIX 5L Version 5.3 использует привязку блочных устройств для повышения производительности команд обслуживания файловой системы. Применительно к JFS2 из AIX 5.3 команда
fsckиспользует эту новую возможность для уменьшения времени доступа к метаданным системы. Кроме того, управление памятью, которое используется для буферизации, было значительно упрощено за счет привязки дискового устройства с файловой системой.Новая возможность привязки блочного устройства оказывает следующее влияние на системные вызовы и процедуры:
open()Программа, которая хочет выполнить привязку устройства, открывает обычным образом специальный файл. Никаких особых флагов и параметров не требуется. Все уже существующие интерфейсы и взаимодействия с файловым дескриптором, возвращаемым при вызове open, продолжают выполняться так же, как и до вызова этого метода. mmap()Для активизации функции привязки следует выполнить вызов функции mmap, передав ей файловый дескриптор для устройства. Для привязки обычных файлов функцияmmapвызывается точно так же. Выполненная привязка подчиняется семантике привязки обычных файлов. Если файловый дескриптор ссылается на устройство, которое уже было привязано, вызовmmapпроходит с ошибкой;errnoустанавливается вEAGAIN.msync() Данные, которые записываются на сегмент привязанного устройства, могут быть выгружены на диск с помощью вызова функции msync. Флаги и параметры, используемые для обычных файлов, также применимы и к устройствам.disclaim() Процедура disclaimможет использоваться для освобождения страниц в привязанном сегменте.
- Информация об идентификации, основанная на потоке
Для поддержки информации об идентификации, основанной на потоках (информация, связанная с безопасностью системы, в дальнейшем credential-информация), GRID-приложения нуждаются в операционной системе. AIX 5L версии 5.3 предоставляет новый API-интерфейс на основе pthread. Данный API-интерфейс позволяет устанавливать и уничтожать credential-информацию, основанную на потоках, такую как UID и GID.У каждого потока есть свойство credential, благодаря чему различные потоки в процессе имеют различную credential-информацию (например, пару логин/пароль) и различные права доступа к ресурсам; и вся эта информация безопасности проверяется на уровне потока, а не на уровне процесса. Это очень полезная концепция, поскольку позволяет одному процессу обрабатывать запросы, требующие различной информации credential, путем создания потоков, которые будут содержать необходимую credential-информацию для отдельных запросов.
- Улучшения в расширяемости
AIX 5L Version 5.3 предоставила следующие функциональные возможности, которые помогут достичь лучшей масштабируемости.- Блокировки ядра при политике round robin.
Блокировки ядра при политике round robin (krlock) были представлены в AIX 5L. В версии 5.3 добавлены улучшения для производительности для этих блокировок, которые позволяют системе оперировать более чем 48 центральными процессорами.
Когда во время вызова функцииsimple_lock()отсутствует блокировка, обрабатываетсяkrlock. Функцияsimple_lock()не изменилась, и приложения, использующиеsimple_lock()в версии 5.2, совместимы с версией 5.3. - Увеличенные пределы использования ресурсов в файле /etc/security/limits.
Как видно из файла /etc/security/limits, верхние пределы использования ресурсов были увеличены. Для процессоров и открытых файлов эти величины представляются целочисленным 32-битным числом и могут иметь максимальное значение 2,147,483,647 (или 231-1). Для остальных ресурсов максимальный предел имеет значение 2,147,483,647 (или 231-1) блоков по 512 байтов. - Пределы процессорного времени.
В предыдущих релизах AIX программа, использующаяulimit, могла обойти cputime-предел блокируя, игнорируя или обрабатывая сигналSIGXCPU. Данный сигнал говорит процессу, превысившему предел, что пора заканчивать работу. В AIX 5.3 можно обойти программный предел времени использования CPU (SOFT), но нельзя обойти аппаратный (HARD).
- Блокировки ядра при политике round robin.
AIX 5L 5.3 имеет гораздо больше возможностей, помогающих при разработке ПО, чем было рассмотрено в этой статье. Я надеюсь, что эта статья даст общее представление об основных усовершенствованиях AIX версии 5.3. Публикации, приведенные в разделе "Ресурсы", предоставят дальнейшую информацию по вопросам, рассмотренным в этой статье.
- Примите участие в обсуждении материала на форуме.
- Enhancements in AIX 5L Version 5.3 for application development оригинал статьи (EN).
- AIX 5L Differences Guide Version 5.3 Edition (IBM Redbook, декабрь 2004). (EN)
- IBM pSeries® and AIX Information Center: Web-сайт с исчерпывающей информацией о pSeries, RS/6000®, and AIX 5L. (EN)
- Enhancements in AIX 5L Version 5.3 for application development (EN) (developerWorks, июнь 2005): статья о том, какие выгоды можно извлечь из возможностей AIX 5L 5.3. (EN)
- What has AIX 5L Version 5.3 done to strengthen RAS? (EN) (developerWorks, февраль 2005): статья с дополнительной информацией о RAS.
- Раздел developerWorks AIX and UNIX содержит сотни информативных статей для читателей начальной, средней и высокой квалификации.
- Новичок в AIX и UNIX?: страница AIX и UNIX для новичков.
- В разделе eServer™ сайта developerWorks представлены сотни статей и учебных материалов различного уровня по продуктам eServer. (EN)
- AIX 5L Wiki: совместная разработка документации AIX. (EN)
- Разделы библиотеки информации по темам AIX и UNIX: (EN)
- Системное администрирование
- Разработка приложений
- Производительность
- Переносимость
- Безопасность
- Подсказки
- Инструментальные средства и утилиты
- Java™-технологии
- Linux®
- Open source
- IBM trial software: ознакомительные версии программного обеспечения для разработчиков, которые можно загрузить прямо со страницы сообщества developerWorks. (EN)
- Safari bookstore: сайт магазина книг по ИТ. (EN)
- developerWorks blogs: участвуйте в жизни сообщества developerWorks. (EN)
- Примите участие в форумах AIX и UNIX: (EN)
- Управление кластерными системами
- Поддержка IBM
- Инструменты управления производительностью - технический форум
- Виртуализация - технический форум
- Команда IBM developerWorks проводит по всему миру сотни бесплатных технических консультаций. (EN)
- Podcasts: аудиозаписи презентаций экспертов IBM. (EN)
Шив Дутта (Shiv Dutta) - старший инженер-программист в группе IBM System And Technology Group; он оказывает помощь независимым производителям программного обеспечения в адаптации их программ на платформе System p. Шив был одним из соавторов справочника Красная книга (redbook) AIX 5L Differences Guide Version 5.3 Edition (Новое в AIX 5L версии 5.3). Вы можете связаться с ним по электронной почте sdutta@us.ibm.com.