13. Компиляторы и утилиты
13. Компиляторы и утилиты
13.1. SystemTap
SystemTap используется для наблюдения за работой операционной системы и ядра. Полученная статистика аналогична выводу утилит netstat, ps, top, iostat, но SystemTap дополнительно предоставляет инструменты для анализа результатов и создания фильтров.
В Red Hat Enterprise Linux 6 входит версия SystemTap 1.1. Новые возможности включают:
- улучшенную проверку программ пространства пользователя;
- проверку синтаксиса C++ в программах C++;
- более высокий уровень защиты сервера компиляции сценариев;
- новый непривилегированный режим, позволяющий обычным пользователям использовать SystemTap.
Важно
Непривилегированный режим является экспериментальным, поэтому следует соблюдать осторожность при его использовании в незащищенных сетях.
13.2. OProfile
OProfile предназначен для мониторинга производительности системы, работает в фоновом режиме и осуществляет сбор информации.
В Red Hat Enterprise Linux 6 входит обновленная версия OProfile 0.9.5, которая обеспечивает поддержку новых процессоров Intel и AMD.
13.3. GCC
Набор компиляторов GNU (GCC, GNU Compiler Collection) включает, среди прочих, компиляторы C, C++, Java и соответствующие библиотеки. В Red Hat Enterprise Linux 6 входит версия GCC 4.4, характеризуемая следующим:
Подробную информацию о GCC 4.4 можно найти на сайте GCC.
- совместимость с версией 3.0 API-интерфейса OpenMP (Open Multi-Processing);
- дополнительные библиотеки C++ для обработки потоков OpenMP;
- следующая реализация стандарта C++ — C++0x;
- новые функции отслеживания переменных для улучшения отладки с использованием GDB и SystemTap;
13.4. Библиотека glibc
Пакеты glibc содержат стандартные математические библиотеки и библиотеки C, используемые различными программами Red Hat Enterprise Linux, без которых Linux не сможет нормально работать.
В Red Hat Enterprise Linux 6 входит версия glibc 2.11. Основные особенности:
- Улучшено динамическое выделение памяти malloc за счет выделения потокам собственного пула памяти и обхода блокирования. Размер дополнительной памяти, используемой для организации пула, контролируется с помощью переменных MALLOC_ARENA_TEST (осуществляет проверку при достижении числа пулов памяти заданного значения) и MALLOC_ARENA_MAX (задает максимальное число пулов).
- Повышена эффективность использования условных переменных с операциями взаимоисключения (mutex) с наследованием приоритета (PI, Priority Inheritance) за счет поддержки наследования приоритета для семафоров пространства пользователя на уровне ядра.
- Оптимизированы операции со строками на x86_64.
- Функция
getaddrinfo()
теперь поддерживает протоколы DCCP (Datagram Congestion Control Protocol), UDP-Lite и может обрабатывать адреса IPv4 и IPv6 одновременно.
13.5. Отладчик GDB
GDB — отладчик проекта GNU для программ на языках C, C++ и пр. за счет их исполнения в контролируемом окружении и вывода статистики. В Red Hat Enterprise Linux 6 входит версия GDB 7.0.
Python
Обновленная версия GDB включает новый API Python, что позволяет автоматизировать работу GDB с помощью сценариев Python.
Одним из достоинств API Python является возможность форматирования вывода GDB вместо использования стандартных настроек вывода. Создание собственных сценариев обеспечивает тонкий контроль формата вывода. В состав этого выпуска Red Hat Enterprise Linux входит полный набор сценариев форматирования для библиотеки libstdc++.
Поддержка C++
Улучшена поддержка C++ в GDB. Главные усовершенствования включают:- многочисленные улучшения разбора выражений;
- улучшена обработка названий типов;
- во многих случаях исключена необходимость добавления излишних кавычек;
- работа «next» и других команд перехода не нарушается даже при генерации исключения в тестируемой программе;
- добавлена команда «catch syscall», которую можно использовать для остановки тестируемой программы, если она пытается выполнить системный вызов.