UNIX 고급 프로그래밍 제3판

- 가격 검색 - 원서 페이지

관련 블로그 글: OccamsBlog:286, OccamsBlog:287

제2판과 달라진 점

(서문 p.xii~xiii에서 인용)

[인용]

POSIX.1-2008의 단일 UNIX 규격에 가해진 가장 큰 변화 중 하나는 STREAMS 관련 인터페이스들이 퇴화 상태(obsolescent status)로 강등되었다는 점이다. 퇴화 상태는 인터페이스가 표준의 이후 버전에서 완전히 사라지는 수순의 첫 단계이다. 이 때문에 어쩔 수 없이 이번 판에서 STREAMS 관련 내용을 빼 버려야 했다. STREAMS 인터페이스는 소켓 인터페이스와 잘 대비될 뿐만 아니라 여러 모로 더 유연하다는 점에서, 이는 다소 안타까운 변화이다. 솔직히 나는 STREAMS 메커니즘의 편을 들 수밖에 없는 처지이지만, 그래도 요즘 시스템들에서 이 메커니즘의 역할이 줄어들었다는 점에 대해서는 이론의 여지가 없다.

  • Linux의 기반 시스템에는 STREAMS가 포함되어 있지 않다. 개별 패키지들(LiS와 OpenSS7)을 통해서 이 기능성을 추가하는 것은 가능하다.
  • Solaris 10에는 STREAMS가 포함되었지만, Solaris 11의 소켓 메커니즘은 STREAMS를 기반으로 구현되지 않았다.
  • Mac OS X는 STREAMS를 지원하지 않는다.
  • FreeBSD는 예나 지금이나 STREAMS를 지원하지 않는다.

그래서 STREAMS 관련 내용을 빼는 대신 POSIX 비동기 입출력 같은 새로운 주제들을 추가하기로 했다.

제2판에서 다룬 Linux는 2.4 버전 소스 코드에 기초한 것이었다. 이번 판에서는 Linux 버전을 3.2로 갱신했다. 그 두 버전의 가장 큰 차이 중 하나는 스레드 하위 시스템이다. Linux 2.4에서 2.6으로 넘어오면서 스레드 구현이 NPTL(Native POSIX Thread Library)로 바뀌었다. NPTL 덕분에 Linux의 스레드가 다른 시스템들의 스레드와 좀 더 비슷한 방식으로 작동하게 되었다.

전체적으로 이번 판에는 비동기 입출력, 회전 자물쇠, 동기화 장벽, POSIX 세마포를 처리하는 인터페이스들을 비롯해서 70개가 넘는 새로운 인터페이스들이 추가되었다. 퇴화된 인터페이스들은 아직 널리 쓰이는 몇 개를 제외한 대부분이 제거되었다.

정오표

p.10 "표준 입력, 표준 출력, 표준 오류" 절에서(2014-10-30)

대부분의 세 서술자 중 하나 또는 전부를

=>

대부분의 셸은 세 서술자 중 하나 또는 전부를

p.122 "보통의 경우 유효 사용자..." 문장에서 (2014-12-29)

유효 그룹 ID는 실제 사용자 ID와 같다.

=>

유효 그룹 ID는 실제 그룹 ID와 같다.


comments powered by Disqus