Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Глава 4. Компилятор и инструменты
tail --follow
в файловой системе VXFS
В силу того, что VXFS (Veritas Clustered File System) относится к удаленным файловым системам, в стандартных условиях команда
tail --follow
не сможет использовать функциональность inotify
. Но так как VXFS была добавлена в список удаленных файловых систем, для которых вместо inotify
используется режим опроса, теперь tail --follow
работает так, как ожидается.
Индикатор выполнения команды dd
Новый параметр
status=progress
команды dd
, выполняющей побайтовое копирование файлов, добавляет индикатор выполнения операции. При передаче больших файлов это поможет оценить оставшееся время и выявить потенциальные проблемы.
Оптимизация времени ожидания в libcurl
Раньше библиотека
libcurl
демонстрировала излишне долгую задержку блокирования для операций без активных файловых дескрипторов, в результате чего некоторые операции, такие как определение имени узла из /etc/hosts
, занимали слишком много времени. С целью оптимизации функциональности libcurl
код блокирования был модифицирован так, что изначально устанавливается минимальная задержка, которая постепенно возрастает до тех пор, пока не наступит событие. Вследствие подобных преобразований операции libcurl
выполняются быстрее.
libcurl реализует неблокирующее подтверждение SSL
Отсутствие поддержки неблокирующих подтверждений SSL в libcurl отрицательно сказывалось на производительности приложений, построенных на основе
libcurl
multi API. Теперь libcurl
multi API незамедлительно возвращает управление приложению, если не удается прочитать или записать данные в сетевой сокет.
Оптимизация GDB на IBM Power Systems при доступе к таблице символов
Раньше на 64-битных платформах IBM Power Systems освобождение переменной, содержащей таблицу символов для отлаживаемого кода, осуществлялось некорректно, что приводило к ошибке сегментации при попытке доступа GDB к таблице. Эту проблему удалось решить, сделав переменную постоянной, вследствие чего GDB сможет обращаться к таблице символов позднее на этапе отладки, избежав необходимости чтения неверной области памяти.
nscd автоматически перезагружает данные конфигурации
Демон nscd (Name Server Caching Daemon) поддерживает функциональность inotify и отслеживание изменений статистики в файлах конфигурации nscd, что позволяет своевременно обнаружить изменения в конфигурации и перезагрузить ее.
Устранена ошибка рекурсивного вызова к функции dlopen
Раньше конфликт в библиотечной функции
dlopen
вызывал ошибки при выполнении рекурсивного вызова к этой функции. Теперь рекурсивные вызовы к dlopen
из malloc
обрабатываются без ошибок.
Эта функция является реентрабельной, и рекурсивные вызовы больше не приводят к сбою или выходу с ошибкой.
operf распознает идентификаторы статических больших страниц
Раньше при профилировании производительности JIT-компилированного кода (Java just-in-time) с включенными статическими большими страницами, команда operf регистрировала большое количество обращений к анонимной памяти (в anon_hugepage) вместо обращения к соответствующему методу Java. Теперь operf распознает идентификаторы больших страниц и корректно сопоставляет полученные образцы с методами Java.
rsync -X
Раньше rsync изменял владельца файла не до, а после установки его атрибутов безопасности, что аннулировало установленные атрибуты. В некоторых случаях это могло нарушить функциональность
rsync -X
. В этом обновлении порядок операций изменился и rsync обновляет информацию о владельце файла до установки атрибутов безопасности, в результате чего состояние указанных атрибутов не сбрасывается.
Интеграция RELRO в сборку subversion
Исполняемые файлы, входящие в состав пакета subversion, теперь содержат встроенные данные RELRO (read-only relocation data). Это обеспечивает защиту Subversion от некоторых атак, направленных на повреждение памяти.
Оптимизация работы расширения Thread в TCL
Раньше поточная обработка в TCL (Tool Command Language) была реализована так, что использование вызова fork() с расширением Thread могло привести к тому, что процесс переставал отвечать. Именно это послужило основанием для отключения Thread в исходной поставке интерпретатора TLC и приложения TK, что, с другой стороны, нарушало работоспособность сторонних приложений. Эта ошибка была исправлена, и теперь расширение Thread включено по умолчанию.