목차
1장 역사와 표준
___1.1 유닉스와 C의 간략한 역사
___1.2 리눅스의 간략한 역사
___1.3 표준화
___1.4 정리
2장 기본 개념
___2.1 핵심 운영체제: 커널
___2.2 셸
___2.3 사용자와 그룹
___2.4 단일 디렉토리 계층구조, 디렉토리, 링크, 파일
___2.5 파일 I/O 모델
___2.6 프로그램
___2.7 프로세스
___2.8 메모리 매핑
___2.9 정적 라이브러리와 공유 라이브러리
___2.10 프로세스 간 통신과 동기화
___2.11 시그널
___2.12 스레드
___2.13 프로세스 그룹과 셸 작업 제어
___2.14 세션, 제어 터미널, 제어 프로세스
___2.15 가상 터미널
___2.16 날짜와 시간
___2.17 클라이언트/서버 아키텍처
___2.18 실시간
___2.19 /proc 파일 시스템
___2.20 정리
3장 시스템 프로그래밍 개념
___3.1 시스템 호출
___3.2 라이브러리 함수
___3.3 표준 C 라이브러리: GNU C 라이브러리(glib)
___3.4 시스템 호출과 라이브러리 함수의 에러 처리
___3.5 이 책의 예제 프로그램
___3.6 이식성 이슈
___3.7 정리
___3.8 연습문제
4장 파일 I/O: 범용 I/O 모델
___4.1 개요
___4.2 I/O의 범용성
___4.3 파일 열기: open()
___4.4 파일 읽기: read()
___4.5 파일에 쓰기: write()
___4.6 파일 닫기: close()
___4.7 파일 오프셋 변경: lseek()
___4.8 범용 I/O 모델 외의 오퍼레이션: ioctl()
___4.9 정리
___4.10 연습문제
5장 파일 I/O: 더 자세히
___5.1 원자성과 경쟁 상태
___5.2 파일 제어 오퍼레이션: fcntl()
___5.3 파일 상태 플래그 열기
___5.4 파일 디스크립터와 열려 있는 파일의 관계
___5.5 파일 디스크립터 복사하기
___5.6 지정된 오프셋에서의 파일 I/O: pread()와 pwrite()
___5.7 스캐터-개더 I/O: readv()와 writev()
___5.8 파일 잘라내기: truncate()와 ftruncate()
___5.9 비블로킹 I/O
___5.10 큰 파일에 대한 I/O
___5.11 /dev/fd 디렉토리
___5.12 임시 파일 만들기
___5.13 정리
___5.14 연습문제
6장 프로세스
___6.1 프로세스와 프로그램
___6.2 프로세스 ID와 부모 프로세스 ID
___6.3 프로세스의 메모리 레이아웃
___6.4 가상 메모리 관리
___6.5 스택과 스택 프레임
___6.6 명령행 인자(argc, argv)
___6.7 환경 변수 목록
___6.8 비지역 goto 수행: setjmp()와 longjmp()
___6.9 정리
___6.10 연습문제
7장 메모리 할당
___7.1 힙에 메모리 할당하기
___7.2 스택에 메모리 할당하기: alloca()
___7.3 정리
___7.4 연습문제
8장 사용자와 그룹
___8.1 패스워드 파일: /etc/passwd
___8.2 섀도 패스워드 파일: /etc/shadow
___8.3 그룹 파일: /etc/group
___8.4 사용자와 그룹 정보 읽기
___8.5 패스워드 암호화와 사용자 인증
___8.6 정리
___8.7 연습문제
9장 프로세스 자격증명
___9.1 실제 사용자 ID와 실제 그룹 ID
___9.2 유효 사용자 ID와 유효 그룹 ID
___9.3 set-user-ID와 set-group-ID 프로그램
___9.4 저장된 Set-User-ID와 저장된 Set-Group-ID
___9.5 파일 시스템 사용자 ID와 파일 시스템 그룹 ID
___9.6 추가 그룹 ID
___9.7 프로세스 자격증명 읽고 수정하기
___9.8 정리
___9.9 연습문제
10장 시간
___10.1 달력 시간
___10.2 시간 변환 함수
___10.3 시간대
___10.4 로케일
___10.5 시스템 클록 갱신하기
___10.6 소프트웨어 클록
___10.7 프로세스 시간
___10.8 정리
___10.9 연습문제
11장 시스템 한도와 옵션
___11.1 시스템 한도
___11.2 실행 시에 시스템 한도(그리고 옵션) 구하기
___11.3 실행 시에 파일 관련 한도(그리고 옵션) 읽기
___11.4 결정되지 않은 한도
___11.5 시스템 옵션
___11.6 정리
___11.7 연습문제
12장 시스템과 프로세스 정보
___12.1 /proc 파일 시스템
___12.2 시스템 식별: uname()
___12.3 정리
___12.4 연습문제
13장 파일 I/O 버퍼링
___13.1 파일 I/O의 커널 버퍼링: 버퍼 캐시
___13.2 stdio 라이브러리 내의 버퍼링
___13.3 파일 I/O의 커널 버퍼링 제어
___13.4 I/O 버퍼링 요약
___13.5 I/O 패턴에 대한 커널 조언
___13.6 버퍼 캐시 우회: 직접 I/O
___13.7 파일 I/O를 위한 라이브러리 함수와 시