슈퍼 사용자라면 반드시 알아야 할,

리눅스 작동법

 

저자 브라이언 워드

역자 유하영, 전우영

출간 20151029 ()

정가 28,000

페이지 464

판형 188*245

ISBN 979-11-86697-05-4

원서정보 HOW LINUX WORKS, 2e

 

 

 

책 소개

 

슈퍼 사용자를 위한 리눅스

 

일부 운영체제들과 달리 리눅스는 중요한 부분을 감추려고 하지 않는다. 컴퓨터에 대한 완전한 통제권을 여러분들에게 넘겨준다. 하지만 리눅스에 제대로 통달하려면 시스템이 부팅하는 방법과 네트워크가 동작하는 원리와 커널이 실제로 하는 작업 등 그 내부 구조를 파악해야 한다.

 

이 책은 수년간 베스트셀러의 영광을 고수한 브라이언 워드의 『HOW LINUX WORKS』를 전면적으로 개정한 2판으로, 운영체제의 내부 동작에 대해 알고 싶어하는 사람들에게 리눅스 내부 이면에 존재하는 개념들에 좀 더 접근하기 쉽게 도와주고 있다. 이 책을 통해 여러분은 실제로 수년에 걸쳐서 어렵게 체득해야만 얻을 수 있는 값진 정보들을 보다 쉽게 발견할 수 있을 것이다. 또한 다음과 같은 내용을 배우게 될 것이다.

 

- 리눅스가 부팅하는 방법, 부트 로더를 시작으로 init 구현(systemd, Upstart, System V)에 이르는 부팅 관련 정보

- 커널이 장치, 프로세스, 장치 드라이버를 관리하는 방법

- 네트워킹, 인터페이스, 방화벽과 서버가 동작하는 방법

- 개발 툴들의 동작 원리와 공유 라이브러리와의 연관성

- 효과적인 셸 스크립트 작성 방법

 

그 외에도 시스템 콜, 입력과 출력, 파일 시스템 등을 포함하여 사용자 공간 내부의 주요 시스템 작업들에 대해 검토하고, 커널에 대해 탐구할 것이다. 배경 지식, 이론, 현실적인 예제, 상세한 설명과 더불어 『리눅스 작동법』은 복잡한 여러 가지 문제들을 해결하고, 운영체제를 통제하는 데 필요한 모든 것을 가르쳐 줄 것이다.

 

독자대상

 

초중급

 

 

저자 소개

 

브라이언 워드

 

브라이언 워드는 1993년부터 리눅스에 대해 연구해왔다. 그의 저서로는 『Linux Kernel-HOWTO, The Book of VMware와 『The Linux Problem Solver가 있다.

 

 

역자 소개

 

유하영

 

전남대학교 영어영문학과를 졸업하고, 성균관대학교 번역/테솔 대학원을 졸업했다. 웹 콘텐츠 관리자로 경력을 쌓다가 현재 전문 번역가로 활동하고 있으며, 특히 기술 번역에 역량을 발휘하고 있다. 주요 번역서로 『라이프 코칭 가이드』, 『아버지의 러브레터』, 『홈스쿨 이렇게 시작하세요』, 『탁월한 여성의 11가지 브랜드』 등이 있으며 공동 번역서로 『거침없이 배우는 라즈베리 파이』, 『아두이노 로봇 보난자』, 『전문가를 위한 CSS3』 등이 있다.

 

전우영

 

데이터베이스 프로그래머로 출발하여 국내 많은 기업체들의 CRM DW(Customer Relationship Management Data Warehouse)를 구축했다. 이후 현재까지 외국계 기업 IT 분야에서 15년 넘게 경력을 쌓고 있다. 빅데이터 시스템의 CRM 적용 및 Embedding System에 관한 연구에 관심을 갖게 되면서 관련 분야 저서의 번역 활동에도 활발하게 기여하고 있다. 공동 번역서로 『거침없이 배우는 라즈베리 파이』, 『아두이노 로봇 보난자』, 『전문가를 위한 CSS3』 등이 있다.

 

 

목차

 

들어가며

- 누구를 위한 책인가?

- 선행 요건

- 이 책을 읽는 방법

- 실습

- 이 책의 구성

- 2판에 새로 추가된 내용

- 용어에 대하여

 

1. 조감도

1.1리눅스 시스템의 추상화 레벨과 레이어

1.2 하드웨어: 주기억 장치에 대한 이해

1.3 커널

1.4 사용자 공간

1.5 사용자

1.6 다음을 기대하며

 

2. 기본 명령어와 디렉터리 계층 구조

2.1 (Bourne Shell): /bin/sh

2.2 셸 활용

2.3 기본 명령어

2.4 디렉터리 탐색

2.5 중급 명령

2.6 비멀번호와 셸 변경하기

2.7 Dot Files

2.8 환경 변수와 셸 변수

2.9 명령어 path

2.10 특수 문자

2.11 명령줄 편집

2.12 텍스트 편집 프로그램

2.13 온라인 도움말

2.14 셸 입력과 출력

2.15 오류 메시지 이해

2.16 프로세스의 목록화 및 조작

2.17 파일 모드와 접근 권한

2.18 파일 보관과 압축

2.19 리눅스 디렉터리 계층 구조에 대한 필수 사항들

2.20 슈퍼 사용자의 명령 실행

2.21 다음을 기대하며

 

3. 디바이스

3.1 장치 파일

3.2 sysfs 장치 경로

3.3 dd와 장치들

3.4 장치 이름 요약

3.5 udev

3.6 SCSI와 리눅스 커널에 대한 상세 분석

 

4. 디스크와 파일 시스템

4.1 디스크 장치 파티셔닝

4.2 파일 시스템

4.3 스왑 공간

4.4 전망: 디스크와 사용자 공간

4.5 전통적인 파일 시스템의 내부

 

5. 리눅스 커널 부팅 방법

5.1 스타트업 메시지

5.2커널 초기화와 부팅 옵션

5.3 커널 매개변수

5.4 부트 로더

5.5 GRUB 소개

5.6 UEFI 보안 부트 문제

5.7 다른 운영체제 체인 로딩

5.8 부트 로더에 대한 세부 사항

 

6. 사용자 공간 시동 방법

6.1 init 소개

6.2 System V 런레벨

6.3 init 확인

6.4 systemd

6.5 Upstart

6.6 시스템 V init

6.7 시스템 정지

6.8 초기 RAM 파일 시스템

6.9 비상 부팅과 단일 사용자 모드

 

7. 시스템 설정: 로깅, 시스템 시간, 일괄 작업과 사용자

7.1 /etc의 구조

7.2 시스템 로깅

7.3 사용자 관리 파일

7.4 getty와 로그인

7.5 시간 설정

7.6 크론으로 반복 잡업에 대한 일정 관리하기

7.7 at 1회용 작업 일정 관리

7.8 사용자 ID와 사용자 전환에 대한 이해

7.9 사용자 식별과 인증

7.10 PAM

7.11 다음을 기대하며

 

8. 프로세스와 리소스 활용

8.1 프로세스 추적

8.2 lsof로 열려 있는 파일 찾기

8.3 프로그램 실행 추적 및 시스템 콜에 대한 추적

8.4 스레드

8.5 리소스 모니터링

8.6 CPU 시간 측정

8.7 프로세스 우선순위 조정

8.8 부하 평균

8.9 메모리

8.10 vmstat CPU와 메모리 성능 검토하기

8.11 I/O 모니터링

8.12 프포세스별 모니터링: pidstat

8.13 추가 논제

 

9. 네트워크와 그 설정에 대한 이해

9.1 네트워크 기본 개념

9.2 네트워크 계층

9.3 인터넷 계층

9.4 라우트와 커널 라우팅 테이블

9.5 기본 ICMP DNS

9.6 물리적 계층과 이더넷

9.7 커널 네트워크 인터페이스에 대한 이해

9.8 네트워크 인터페이스 설정

9.9 부트 활성화 네트워크 설정

9.10 수동 네트워크 설정과 부트 활성화 네트워크 설정의 문제

9.11 네트워크 설정 매니저

9.12 호스트명 변환

9.13 로컬 호스트

9.14 전송 계층: TCP, UDP, 그리고 서비스

9.15 단순 로컬 네트워크 재탐색

9.16 DHCP에 대한 이해

9.17 라우터로 리눅스 설정하기

9.18 사설 네트워크

9.19 IP 매스쿼레이딩

9.20 라우터와 리눅스

9.21 방화벽

9.22 이더넷, IP, 그리고 ARP

9.23 무선 이더넷

9.24 요약

 

10. 네트워크 응용프로그램과 서비스

10.1 서비스에 대한 기본 개요

10.2 네트워크 서버

10.3 시큐어 셸(SSH)

10.4 inetd xinetd 데몬

10.5 진단 툴

10.6 RPC

10.7 네트워크 보안

10.8 미래를 기대하며

10.9 소켓: 프로세스가 네트워크와 소통하는 방법

10.10 유닉스 도메인 소켓

 

11. 셸 스크립트 소개

11.1 셸 스크립트 기초

11.2 인용 처리와 리터럴

11.3 특별 변수

11.4 종료 코드

11.5 조건

11.6 루프

11.7 명령 치환

11.8 임시 파일 관리

11.9 Here 문서

11.10 유용한 셸 스크립트 유틸리티들

11.11 서브셸

11.12 스크립트에 다른 파일 포함하기

11.13 사용자 입력 읽기

11.14 셸 스크립트를 사용할 때와 사용하지 않을 때

 

12. 네트워크를 거쳐 파일 옮기기

12.1 빠른 복사

12.2 rsync

12.3 파일 공유

12.4 삼바로 파일 공유하기

12.5 NFS 클라이언트

12.6 그 외 네트워크 파일 서브스 옵션들과 그 한계점들

 

13. 사용자 환경

13.1 스타트업 파일 생성 시에 고려해야 할 지침

13.2 스타트업 파일을 변경할 때

13.3 셸 스타트업 파일 요소

13.4 스타트업 파일 순서와 예제

13.5 디폴트 사용자 설정

13.6 스타트업 파일의 함정

13.7 기타 스타트업에 관한 논제

 

14. 리눅스 데스크톱에 대한 조망

14.1 데스트톱 요소

14.2 X 윈도우 시스템에 대한 세부 설명

14.3 X 클라이언트 둘러보기

14.4 X의 미래

14.5 D-Bus

14.6 인쇄

14.7 그 외 데스크톱에 관한 논제

 

15. 개발 툴

15.1 C 컴파일러

15.2 make

15.3 디버거

15.4 Lex Yacc

15.5 스트립트 언어

15.6 자바

15.7 패키지 컴파일

 

16. C 소스 코드로 소프트웨어 컴파일하는 기본적인 방법

16.1 소프트웨어 구축 시스템

16.2 C 소스 패키지 압축 풀기

16.3 GNU Autoconf

16.4 설치 실습

16.5 패치 적용

16.6 컴파일과 설치에 관한 문제 해결

16.7 다음을 기대하며

 

17. 기초를 바탕으로 길제 구축하기

17.1 웹 서버와 응용프로그램

17.2 데이터베이스

17.3 가상화

17.4 분산 컴퓨팅과 온-디멘드 컴퓨팅

17.5 임베디드 시스템

17.6 남기는 말

 

참고 문헌

 

 

출판사 리뷰

 

리눅스는 학습하기 아주 좋은 플랫폼이다. 아무것도 감추려 하지 않기 때문이다. 특히 대부분의 시스템 구성에 대한 내용이 쉽게 읽을 수 있는 일반적인 텍스트 파일들로 되어 있다. 단지 어느 부분이 무엇을 책임지고 있으며, 어떻게 맞물려 있는지를 알아내는 것이 좀 까다로울 뿐이다.

 

리눅스는 많은 프로그래머들의 사랑을 받고 있지만, 이 책을 읽을 때 프로그래머 수준에 이를 필요는 없다. 기본적인 컴퓨터 사용자 수준의 지식만 갖추면 된다. GUI에서 헤매지 않을 정도면 되는데, 특히 리눅스 배포판들을 위한 인스톨러와 설정 인터페이스를 사용할 줄 알아야 하고, 파일과 디렉터리들(폴더들)이 무엇인지 아는 정도는 되어야 할 것이다. 또 시스템과 웹을 통해서 참고 자료들을 확인할 수 있어야 할 것이다. 앞에서도 언급했다시피, 가장 중요한 것은 기꺼이 컴퓨터를 가지고 놀 수 있는 마음가짐이다.

 

이 책의 구성

 

이 책은 크게 세 부분으로 분류된다. 1부는 도입부로써 시스템에 대한 전체적인 조감도를 제공하고, 리눅스를 운영할 때 알아둬야 하는 몇 가지 툴들에 대해 실질적으로 경험해볼 수 있도록 구성되어 있다. 2부에서는 장치의 관리부터 네트워크 구성에 이르기까지 시스템이 시작되는 일반적인 순서에 따라서 시스템의 각 부분에 대하여 좀 더 상세한 탐구가 이어진다. 마지막으로 3부에서는 실행 중인 시스템을 둘러보고 필수적인 몇 가지 기술들에 대해서 학습하도록 되어 있다. 또한 프로그래머들이 사용하는 몇 가지 툴들에 대해서도 검토한다.

 

신고
Trackback 0 | Comment 0

퍼블릭's Blog is powered by Daum & tistory

 

티스토리 툴바