서브메뉴

본문

리눅스 시스템 프로그래밍 (커널과 C 라이브러리로 풀어가는,리눅스 커널 3.0)
리눅스 시스템 프로그래밍 (커널과 C 라이브러리로 풀어가는,리눅스 커널 3.0)
저자 : 로버트 러브
출판사 : 한빛미디어
출판년 : 2015
ISBN : 9788968481482

책소개

리눅스 시스템 프로그래밍에 대한 이해가 부족한 독자를 위해 리눅스 시스템 프로그래밍의 기초부터 고급 인터페이스와 최적화 기법까지 다루고 있다. 또한, 시스템 프로그래머뿐만 아니라 호기심 많은 해커와 시스템 수준의 이해를 필요로 하는 애플리케이션 개발자에게도 유용한 내용을 담고 있다. 리눅스 3.x 최신 커널을 기반으로 작성되었다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

[책 소개]
리눅스 시스템 프로그래밍에 대한 이해가 부족한 독자를 위해 리눅스 시스템 프로그래밍의 기초부터 고급 인터페이스와 최적화 기법까지 다루고 있다. 또한, 시스템 프로그래머뿐만 아니라 호기심 많은 해커와 시스템 수준의 이해를 필요로 하는 애플리케이션 개발자에게도 유용한 내용을 담고 있다. 리눅스 3.x 최신 커널을 기반으로 작성되었다.

[출판사 리뷰]
리눅스 커널과 코어 시스템 라이브러리를 직접 사용하는 소프트웨어를 작성해보자.
리눅스 커널 개발자인 로버트 러브는 이 책을 통해 리눅스 시스템 프로그래밍 튜토리얼, 리눅스 시스템 콜에 대한 레퍼런스 메뉴얼, 그리고 더 깔끔하면서도 빠르게 동작하는 코드를 작성하는 가이드를 제공한다. 또한, POSIX 표준 함수와 리눅스에서만 제공하는 특별한 서비스를 명확하게 구분하고 있다. 2판에서는 이론과 실무 두 가지 관점에서 리눅스를 이해할 수 있도록 다음과 같은 다양한 프로그래밍 주제를 다루고 있다.
- 리눅스 커널, C 라이브러리, C 컴파일러 개요
- 파일을 읽고 쓰는 입출력의 기초
- 메모리 맵핑, 최적화 기법 등 고급 입출력 인터페이스
- 기본적인 프로세스 관리를 위한 시스템 콜 패밀리
- 실시간 프로세스를 포함한 고급 프로세스 관리
- 스레드의 개념. 멀티스레드 프로그래밍, Pthread
- 파일 및 디렉터리 관리
- 메모리 할당 인터페이스와 메모리 접근 최적화
- 시그널 인터페이스와 시스템상에서의 용도
- POSIX 시계와 타이머를 포함한 시간 관리
[교보문고에서 제공한 정보입니다.]

목차정보

__CHAPTER 1 핵심 개념 소개
____1.1 시스템 프로그래밍
____1.2 API와 ABI
____1.3 표준
____1.4 리눅스 프로그래밍의 개념
____1.5 시스템 프로그래밍 시작하기

__CHAPTER 2 파일 입출력
____2.1 파일 열기
____2.2 read()로 읽기
____2.3 write()로 쓰기
____2.4 동기식 입출력
____2.5 직접 입출력
____2.6 파일 닫기
____2.7 lseek()로 탐색하기
____2.8 지정한 위치 읽고 쓰기
____2.9 파일 잘라내기
____2.10 다중 입출력
____2.11 커널 들여다보기
____2.12 맺음말

__CHAPTER 3 버퍼 입출력
____3.1 사용자 버퍼 입출력
____3.2 표준 입출력
____3.3 파일 열기
____3.4 파일 디스크립터로 스트림 열기
____3.5 스트림 닫기
____3.6 스트림에서 읽기
____3.7 스트림에 쓰기
____3.8 사용자 버퍼 입출력 예제 프로그램
____3.9 스트림 탐색하기
____3.10 스트림 비우기
____3.11 에러와 EOF
____3.12 파일 디스크립터 얻어오기
____3.13 버퍼링 제어하기
____3.14 스레드 세이프
____3.15 표준 입출력 비평
____3.16 맺음말

__CHAPTER 4 고급 파일 입출력
____4.1 벡터 입출력
____4.2 epoll
____4.3 메모리에 파일 맵핑하기
____4.4 일반 파일 입출력에 대한 힌트
____4.5 동기화, 동기식, 비동기식 연산
____4.6 입출력 스케줄러와 성능
____4.7 맺음말

__CHAPTER 5 프로세스 관리
____5.1 프로그램, 프로세스, 스레드
____5.2 프로세스 ID
____5.3 새로운 프로세스 실행하기
____5.4 프로세스 종료하기
____5.5 자식 프로세스 종료 기다리기
____5.6 사용자와 그룹
____5.7 세션과 프로세스 그룹
____5.8 데몬
____5.9 맺음말

__CHAPTER 6 고급 프로세스 관리
____6.1 프로세스 스케줄링
____6.2 CFS 스케줄러
____6.3 프로세서 양보하기
____6.4 프로세스 우선순위
____6.5 프로세서 친화
____6.6 실시간 시스템
____6.7 리소스 제한

__CHAPTER 7 스레딩
____7.1 바이너리, 프로세스, 스레드
____7.2 멀티스레딩
____7.3 스레딩 모델
____7.4 스레딩 패턴
____7.5 동시성, 병렬성, 경쟁 상태
____7.6 동기화
____7.7 Pthread
____7.8 더 알아보기

__CHAPTER 8 파일과 디렉터리 관리
____8.1 파일과 메타데이터
____8.2 디렉터리
____8.3 링크
____8.4 파일 복사와 이동
____8.5 디바이스 노드
____8.6 대역 외 통신
____8.7 파일 이벤트 모니터링

__CHAPTER 9 메모리 관리
____9.1 프로세스 주소 공간
____9.2 동적 메모리 할당하기
____9.3 데이터 세그먼트 관리하기
____9.4 익명 메모리 맵핑
____9.5 고급 메모리 할당
____9.6 메모리 할당 디버깅
____9.7 스택 기반 할당
____9.8 메모리 할당 메커니즘 선택하기
____9.9 메모리 조작하기
____9.10 메모리 락 걸기
____9.11 게으른 할당

__CHAPTER 10 시그널
____10.1 시그널 개념
____10.2 시그널 관리 기초
____10.3 시그널 보내기
____10.4 재진입성
____10.5 시그널 모음
____10.6 시그널 블록
____10.7 고급 시그널 관리
____10.8 페이로드와 함께 시그널 보내기
____10.9 시그널은 미운 오리 새끼?

__CHAPTER 11 시간
____11.1 시간에 대한 자료구조
____11.2 POSIX 시계
____11.3 현재 시간 얻기
____11.4 현재 날짜와 시각 설정하기
____11.5 시간 다루기
____11.6 시스템 시계 조율
____11.7 잠들기와 대기
____11.8 타이머

__APPENDIX A C 언어의 GCC 확장 기능

__APPENDIX B 참고 서적

____찾아보기
[교보문고에서 제공한 정보입니다.]