[Linux] TLPI 책 정리 1 - Preface (서문)

시온·2023년 6월 8일
0

Linux

목록 보기
1/7
post-thumbnail

오늘부터 주기적으로 The Linux Programming Interface (이하 TLPI) 책을 읽고, 정리하여 남기려 한다.

이 책은 리눅스 man 페이지를 작성한 Michael Kerrisk의 책으로, 리눅스 프로그래밍에 있어서 바이블이라 할 수 있는 책이다.

내용이 1500 페이지에 육박하는 방대한 양이라 굉장히 걱정이 되지만, 그래도 꾸준하게 읽어보자.


Preface

This book could have been purely about standard UNIX (that is, POSIX) system programming because most features found on other UNIX implementations are also present on Linux and vice versa.
이 책은 온전히 표준 UNIX (POSIX라고 함) 시스템 프로그래밍에 관한 책이다. 왜나하면 다른 UNIX 구현에서 볼 수 있는 대부분의 기능이 Linux에도 있고 그 반대도 있기 때문에.

리눅스라고 해서 UNIX와 구별해서 보는 것이 아니라, 표준 UNIX인 POSIX를 다루는 시스템 프로그래밍 전체에 대한 책이다.
간단하게 POSIX를 정리하고 가자면, 이렇다.

POSIX는 이식 가능 운영 체제 인터페이스 (portable operating system interface)의 약자로, 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격이다.
출처 : https://ko.wikipedia.org/wiki/POSIX

POSIX는 운영체제 자체가 아니라 응용 프로그램과 운영체제 간의 ‘인터페이스’를 정의하는 개념이기 때문에 프로그래머는 인터페이스가 존중되는 한 운영체제와 응용 프로그램을 자유롭게 작성할 수 있습니다. 또한 하드웨어, 운영체제, 공급업체에 독립적이기 때문에 응용프로그램의 이식성을 더 쉽게 얻을 수 있습니다.
1991년, 이러한 POSIX 표준을 만족하는 Linux가 탄생했고 아직까지도 오픈소스 소프트웨어로 스마트폰, 임베디드 기기 등 다양한 분야에서 널리 사용되고 있습니다.
출처 : https://medium.com/naver-cloud-platform/posix-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-1-linux-%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%8C%8C%EC%9D%BC-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%98-%EC%A2%85%EB%A5%98%EC%99%80-%ED%8A%B9%EC%A7%95-96a2e93e33b3

저자는 책의 챕터를 이렇게 나누었다.

  1. Background and concepts
    UNIX와 C, Linux의 역사
    표준 UNIX의 overview
    Linux와 UNIX 프로그래밍의 기본 개념

  2. Fundamental features of the system programming interface
    파일 I/O
    프로세스
    메모리 할당
    유저와 그룹
    프로세스 자격 증명 (process credentials)
    시간 (time)
    시스템 제한과 옵션 (system limits and options)
    시스템 및 프로세스 정보 검색 (retrieving system and process information)

  3. More advanced features of the system programming interface
    파일 I/O 버퍼링
    파일 시스템
    파일 속성 (file attributes)
    확장 속성 (extended attributes)
    액세스 제어 목록 (access control list)
    디렉토리와 링크 (directories and links)
    타이머 (timers)

  4. Process, programs, and threads
    프로세스 생성, 종료, 자식 프로세스 모니터링, 프로그램 실행
    POSIX 쓰레드

  5. Advanced process and program topics
    프로세스 우선순위와 스케쥴링 (process priorities and scheduling)
    프로세스 자원
    데몬 (daemons)

  6. Interprocess communication (IPC)
    IPC overview
    파이프와 FIFO (pipes and FIFOs)
    System V IPC-message queues, semaphores, and shared memory
    메모리 매핑 (memory mappings)
    가상 메모리 작동 (virtual memory operations)

  7. Sockets and network programming
    IPC and network programming with sockets

  8. Advanced I/O topics
    alternative I/O models


첫 서문을 다 읽었다. 이제부터 하나하나 차근차근 배워나가자!

profile
끊임없이 성장중

0개의 댓글