4장. 컴파일러 및 도구

tail --follow는 VXFS (Veritas Clustered file system) 상의 파일에서 올바르게 작동함

VXFS (Veritas Clustered file system)는 원격 파일 시스템입니다. 원격 파일 시스템의 경우 tail은 '--follow' 모드에 대해 'inotify' 기능을 사용할 수 없습니다. VXFS (Veritas Clustered file system)는 원격 파일 시스템 목록에 추가되어 'inotify' 대신 폴링 모드를 사용합니다. tail --follow는 VXFS 상의 파일에서 사용하는 경우에도 정상적으로 작동할 수 있습니다.

전송 진행 상태를 표시할 수 있는 dd 명령

바이트로 파일을 복사하는데 사용되는 dd 명령은 전송 진행 상태를 표시할 수 있는 'status=progress' 옵션을 제공합니다. 이는 사용자가 남을 시간을 추정하여 전송 관련 잠재적 문제를 감지할 수 있게 하므로 대용량 파일의 전송에 특히 유용합니다.

libcurl에서 대기 시간 개선

libcurl 라이브러리는 간단한 작업임에도 불구하고 활성 파일 기술자 없이 작업에 대해 불필요하게 긴 차단 지연을 사용했습니다. 이는 /etc/hosts를 사용하여 호스트 이름을 확인하는 것과 같은 일부 작업의 경우 완료하는데 오랜 시간이 소모되었음을 의미합니다. libcurl 에서 차단 코드가 수정되어 초기 지연 시간이 단축되고 이벤트가 발생할 때 까지 점차적으로 증가하도록 되어 있습니다. 빠른 libcurl 작업의 경우 더욱 신속하게 완료할 수 있습니다.

libcurl 라이브러리는 비블로킹 SSL 핸드쉐이크를 구현

이전에는 libcurl 라이브러리는 비블로킹 SSL 핸드쉐이크를 구현하지 않아 libcurl 멀티 API를 기반으로 하는 응용 프로그램의 성능에 부정적인 영향을 미쳤습니다. 이 문제를 해결하기 위해 비블로킹 SSL 핸드쉐이크가 libcurl에서 구현되어 libcurl 멀티 API는 기본 네트워크 소켓에서 데이터를 읽거나 쓰기를 실행할 때 마다 바로 응용 프로그램으로 제어를 반환합니다.

기호 테이블에 액세스할 때 IBM Power Systems 상의 GDB는 더 이상 실패하지 않음

이전에는 64 비트 IBM Power Systems 상의 GDB는 디버깅된 바이너리의 기호 테이블이 있는 중요한 변수를 잘못 할당 해제하여 GDB가 기호 테이블에 액세스하려할 때 세그먼트 오류가 발생했었습니다. 이러한 문제를 해결하기 위해 이는 특정 변수를 영구화하여 GDB는 잘못된 메모리 영역을 읽지 않고 디버깅 세션 동안 나중에 필요한 정보에 액세스할 수 있게 되었습니다.

nscd는 설정 데이터를 자동으로 다시 불러오기 위해 업데이트됨

nscd (Name Server Caching Daemon) 업데이트에는 inotify 기반 모니터링 및 nscd 설정 파일의 상태 기반 백업모니터링 시스템이 추가되어 nscd는 설정 파일의 변경 사항을 제대로 감지하고 데이터를 다시 불러올 수 있습니다. 이는 nscd가 부실한 데이터를 반환하지 않도록 합니다.

dlopen 라이브러리 함수는 더이상 재귀 호출에 충돌하지 않음

이전에는 라이브러리 함수 dlopen에서의 결함은 라이브러리 어설션으로 이러한 함수에 충돌 또는 중단시키는 재귀 호출을 발생시킬 수 있었습니다. 사용자가 제공한 malloc 구현이 dlopen을 호출할 경우 재귀 호출이 가능합니다.
구현이 재진입되어 어설션으로 재귀 호출이 더이상 충돌 또는 중단되지 않습니다.

operf 도구는 정적 페이지 (huge page) 식별자를 인식함

이전에는 정적 페이지 (huge page)가 활성화된 JIT (Java just-in-time) 컴파일된 코드의 성능을 프로파일링할 때 OProfile의 operf 명령은 올바른 Java 메서드가 아닌 익명 메모리 (anon_hugepage에서)에 대량의 이벤트 샘플을 기록했습니다. 이번 업데이트에서operf는 정적 페이지 (huge page) 식별자를 인식하고 정적으로 할당된 huge 페이지 사용 시 Java 메서드에 샘플을 제대로 매핑할 수 있습니다.

rsync -X 명령이 올바르게 작동함

이전에는 rsync 도구는 보안 속성 설정 후 파일의 소유권을 변경했습니다. 결과적으로 대상에서의 보안 속성이 누락되어 rsync -X 명령을 실행하면 특정 상황에서 제대로 작동하지 않았습니다. 이번 업데이트에서는 동작의 순서가 변경되어 rsync는 보안 속성을 설정하기 전 소유권을 변경합니다. 그 결과 보안 속성이 특정 상황에서 예상대로 표시됩니다.

Subversion 실행 파일을 전체 RELRO 데이터로 구축

subversion 패키지로 제공되는 실행 파일은 완전한 RELRO (read-only relocation) 데이터로 구축되어 일부 메모리 손상 공격 유형에 대해 보안 역할을 합니다. 결과적으로 차후 취약점이 발견되는 경우 Subversion을 성공적으로 악용하기가 어려워지게 됩니다.

TCL에서 스레드 확장이 올바르게 작동함

이전에는 TCL (Tool Command Language)에서 스레딩 지원은 최적으로 구현되지 않았습니다. fork() 호출이 TCL 변환기가 활성화된 스레드 확장과 함께 사용될 경우 프로세스가 응답하지 않았습니다. 이로 인해 이전에는 TCL 변환기 및 TK 애플리케이션은 스레드 확장을 비활성화하여 탑재했었습니다. 결과적으로 스레드 TCL 또는 TK에 의존하는 타사 애플리케이션이 제대로 작동하지 않았습니다. 이러한 버그를 수정하기 위해 패치가 구현되어 TCL 및 TK는 기본값으로 스레드 확장이 활성화되어 있습니다.