Усовершенствования в AIX 5L 5.3 для разработки приложений

Статья знакомит с некоторыми усовершенствованиями в AIX 5L™ Version 5.3, которые помогут разработчикам прикладного программного обеспечения. Усовершенствования, описанные в этой статье: совместимые с POSIX (Portable Operating System Interface) Realtime функции, увеличенные пределы межпроцессного взаимодействия (Inter-Process Communication, IPC), поддержка многопоточности в gmon.out и gprof, улучшения в malloc и dbx, маркировка областей чтения и записей исполняемых файлов и улучшение масштабируемости.

Шив Дутта, старший инженер-программист, IBM

Шив Дутта (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.



25.08.2009

Введение

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 можно сконфигурировать тремя различными способами:

    1. Watson Allocator может быть активизирован с механизмами кэширования и с новым распределителем сегментов памяти.
    2. Watson Allocator может быть активизирован без механизмов кэширования и с новым распределителем сегментов памяти.
    3. 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-файлов. Команда DBX malloc работает в тандеме с 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;
      • флаги, указывающие на то, какие данные доступны;
      • сигнал, который вызвал аварийное прерывание выполнения;
      • режим выполнения процесса, который выполнял дамп ядра.
  • Среда выполнения Eclipse
    Среда выполнения Eclipse поставляется с AIX 5L версии 5.3. Данная среда представляет собой платформу, на которой будут выполняться Eclipse-инструменты, включая новый инструмент для мониторинга производительности procmon.

    Примечание: AIX 5L не поддерживает Eclipse в качестве платформы для разработки.

  • Обновление команды tcpdump до последней версии
    Команда tcpdump обновилась до версии 3.8. Кроме того, команды iptrace и ipreport также изменились, и теперь могут использовать обновленную библиотеку libcap (версия 0.8) для захвата пакетов и чтения дампа. Команда AIX tcpdump до AIX 5L версии 5.3 отображала временные метки пакета до 1 нс (10-9 с). Команда tcpdump с открытым исходным кодом отображает временные метки 10-6 с. Новая команда AIX tcpdump имеет разрешение временных меток 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).

Заключение

AIX 5L 5.3 имеет гораздо больше возможностей, помогающих при разработке ПО, чем было рассмотрено в этой статье. Я надеюсь, что эта статья даст общее представление об основных усовершенствованиях AIX версии 5.3. Публикации, приведенные в разделе "Ресурсы", предоставят дальнейшую информацию по вопросам, рассмотренным в этой статье.

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=422867
ArticleTitle=Усовершенствования в AIX 5L 5.3 для разработки приложений
publish-date=08252009