본문 바로가기

도서 소개

전문가를 위한 10년 활용 리눅스 시스템

 


이 책은 현재 절판입니다. 그간 읽어주신 독자들께 감사드립니다.

“리눅스를 완전 분석한다 - 리눅스 정복의 왕도”
쉘 스크립트를 쓰고, 소스 코드를 읽고, 시스템을 직접 만들자!
오픈 소스의 핵심, 리눅스! 이젠 선택이 아닌 필수다!


출판사  제이펍
원출판사  技術評論社
원서명  プロのための Linuxシステム・10年効く技術(원서 ISBN 9784774151434)
저자명  나카이 에츠지
역자명  강별
출판일  2013년 4월 24일
페이지  424쪽
판  형  크라운판 변형(170*225), 반양장(Soft Cover)
정  가  27,000원
ISBN  978-89-94506-52-4  부가기호: 93560
키워드  리눅스 / 디스크 / 프로세스 / 메모리 / 쉘 스크립트 / 리눅스 커널
분야  운영체제 / 리눅스

관련 사이트
원출판사 도서소개 페이지
아마존 재팬 도서소개 페이지
독자 Q&A

관련 포스트

2013/04/15 - [출간전 책소식] - 리눅스 좀 하시나요?


관련 시리즈
■ (없음)


소스 코드 다운로드

LinuxKuradashi_20120517.tgz
다운로드



강의 자료
■ 교재로 채택하신 분들에게는 강의교안을 제작할 수 있는 자료를 보내드리도록 하겠습니다(출판사로 메일이나 전화로 연락주세요).

관련 도서
김태용의 리눅스 쉘 스크립트 프로그래밍

코드로 알아보는 ARM 리눅스 커널

샘플 챕터
(앞부속물, 1장 1.1절~1.3절)

10년활용리눅스시스템_sample.pdf
다운로드



정오표 페이지
■ http://jpub.tistory.com/305

도서구매 사이트(가나다순)

[강컴]   [교보문고]   [도서11번가]   [반디앤루니스]   [알라딘]   [예스이십사]   [인터파크]
 

도서 소개

“리눅스를 완전 분석한다 - 리눅스 정복의 왕도”
쉘 스크립트를 쓰고, 소스 코드를 읽고, 시스템을 직접 만들자!

디스크/프로세스/메모리의 비밀을 파헤친다.
실전형 쉘 스크립트 예제 10회 제공!
커널, 소스 코드 리딩의 비법 전수, 그리고 가상화까지 RHEL6 완전정복!

이 책은 업무 시스템으로서의 리눅스 서버 구축/운용에 관한 책이다. 리눅스에 관한 기술적 이해를 한 번 더 하고 싶다거나 더욱 자신 있게 일하고 싶은 엔지니어를 대상으로 하고 있다.

리눅스의 내부 구조부터 스크립트 작성 기술, 커널 소스 읽는 방법 등 일반 리눅스 서적에서 얻을 수 없는 '근본적인 부분을 다루는 기술'을 전하려고 한다. 이 책의 기술을 디딤돌 삼아 엔지니어로서의 새로운 도약을 할 수 있기를 바란다.

이 책의 주요 내용
제1장 모르면 손해 본다! 꼭 알아두면 좋은 리눅스 내부 구조
리눅스 서버의 적절한 운용과 문제 해결에 기초가 되는 '디스크 관리', '프로세스 관리', '메모리 관리'에 대해 설명한다. 리눅스의 내부 구조에서부터 실전에 도움이 되는 정보를 제공하고 있다.

제2장 장치가 없다고 변명하지 말자! 가상화를 이용한 인프라 환경 구축
IT 인프라를 다루는 데 기초가 되는 '시스템 전체 구조의 이해'를 위해서는 전체 시스템을 스스로 구축해 볼 필요가 있다. 메일 서버와 HA 클러스터 환경 구축을 위해 Linux KVM 가상 머신 환경을 이용하여 ‘셀프 개발환경’ 만드는 법을 소개한다.


제3장 열 번 승부! 스스로 만든 스크립트를 이용한 커맨드의 활용
서버 관리 작업의 효율을 높이기 위한 쉘 스크립트와 Perl 스크립트의 작성법에 대해 설명한다. 쉘 스크립트에 대해서는 단순히 기본 룰이나 샘플 소개가 아니라 현장에서 바로 활용할 수 있는 실제 코드를 소개한다. 그리고 텍스트 분석이나 fork의 이용 등 Perl 특유의 기능과 데이터 구조를 설명함으로써 Perl 스크립트에 대해서도 더욱 잘 알 수 있도록 하였다.

제4장 최후의 보루, 커널 소스를 읽자!
리눅스 내부 구조를 더욱 깊이 알기 위해서는 리눅스 커널의 소스 코드를 분석할 필요가 있다. 실제로 동작하는 커널의 빌드 순서를 소개한 후 그 소스 코드를 읽어가는 순서로 진행한다. 소스 코드를 변경하여 자신만의 커널을 만드는 간단한 예도 소개한다.

제5장 한 걸음 더 나아가자! RHEL6 신기능 총집합
리눅스 서버 관리자로서 알고 있어야 할 Red Hat Enterprise Linux 6(RHEL6)의 달라진 점과 새로운 기능인 Upstart, Control Groups LXC(Linux 컨테이너)에 대해 자세히 설명한다. 앞으로 리눅스의 기초 지식이 될 신기술을 먼저 익히자.


책속으로
파이프라인 처리의 기초는 표준 입출력이다. 먼저, 프로그램의 출력처가 되는 표준 출력(stdout)과 표준 에러 출력(stderr)을 소개하겠다. 한편으로, 프로그램에 대한 데이터 입력의 대상이 되는 것은 표준 입력(stdin)이라고 한다. 표준 입력은 터미널에서 키보드로 입력하는 것이 기본이다. 예를 들어, cat 커맨드는 보통 파일명을 지정하여 그 내용을 화면에 출력하지만, 파일명을 지정하지 않은 경우는 표준 입력에서 전달받은 내용을 그대로 표준 출력에 1행씩 출력한다(그림 1.19의 상단).
_43쪽

그러면 실제로 가상 네트워크를 구성해 보자. 여기서는 RHEL6.2로 KVM이 디폴트로 설정되어 있다고 가정한다. 이후의 가상 네트워크 설정 순서는 RHEL6.2의 KVM 환경을 전제로 하고 있지만, RHEL5의 KVM 환경도 같은 방법으로 준비하면 된다.
_87쪽

쉘 스크립트의 실제 예를 들기 전에 먼저 쉘 스크립트의 기본 룰을 설명하겠다. 쉘 스크립트에는 다른 프로그램 언어와 미묘하게 다른 독자적인 기법이 많기 때문에 시간이 가면 잊어버리기 쉬운 문법이 많다. 그러므로 이번 장은 쉘 스크립트를 작성할 때 쉽게 참조할 수 있는 레퍼런스로 활용하길 바란다.
_166쪽

이번 장에서는 Linux 커널의 주요 기능을 소스 코드를 읽어가며 배워 보도록 하자. 물론, 막무가내로 진행할 수는 없으므로 ‘프로세스 관리 서브시스템’과 ‘메모리 관리 서브시스템’으로 나누어서 알아보도록 하자. 그리고 주요 데이터를 저장하는 구조체에 대해 더 알아보도록 한다.
_276쪽

저자 소개
나카이 에츠지(中井悦司)

1971년 4월 오사카에서 태어났다. 노벨 물리학상을 타고 싶어서 이론물리학 연구에 몰두하며 학창시절을 보냈다. 그리고 대학 입시학원 강사 등 여러 가지 직업을 거쳐 외국계 기업의 리눅스 엔지니어로서 유닉스/리눅스 서버와 인생을 함께하게 되었다. 최근에는 리눅스 디스트리뷰터로서 기업 시스템의 리눅스/OSS 도입에 정열을 쏟는 동시에 잡지 기고와 책 집필에 몰두하고 있다.

휴일에는 러시아 문학과 철학서를 읽으며 피아노 재즈를 듣고 싶지만, 어쩐지 세 살배기 딸아이와 공원에서 놀고 있는 자신을 발견하게 된다. 덕분에 이웃들에게 ‘좋은 아저씨’라는 별명을 얻었다. ‘세계평화’를 위해 자주 가던 선술집도 들르지 않고 일찍 귀가하는 하루하루를 보내고 있다.

리눅스/OSS를 이용한 업무 애플리케이션의 개발부터 10,000대 이상의 리눅스 서버 운용 지원, 프라이빗 클라우드의 설계 및 구축 등 각종 프로젝트에 참가하였다. ‘프로의 마음가짐’을 젊은 엔지니어들에게 심어주려고 고심 중이기도 하다.

OSS를 이용한 클라우드 구축에 매력을 느낀 엔지니어들의 모임인 ‘오픈 클라우드•캠퍼스’의 멤버이다. 클라우드 지향 분산 파일 시스템 ‘GlusterFS’의 홍보활동에도 참가하고 있다.

역자 소개
강별

일본 소재 SAP ERP 솔루션 컨설팅 업체와 스마트폰 애플리케이션 개발사 등에서 수년간 컨설턴트 겸 개발자로 근무하였다. 저서로는 《강행돌파! 아이폰 & 아이패드 앱 개발》(위키북스, 2011)이 있으며, 종종 해외 IT 서적의 번역 작업을 하기도 한다. 또한 각종 세미나와 교육기관에서 스마트폰 애플리케이션 개발프로젝트에 관한 강의를 진행하기도 하였다. 좋아하는 음식은 따뜻한 코코아!

차례
01장 모르면 손해 본다! 꼭 알아두면 좋은 Linux 내부 구조 1

1.1 Linux의 기초는 디스크, 프로세스, 메모리 2
1.2 디스크와 파일에 관련된 이것저것 4
    1.2.1 디스크의 기하학 4
    1.2.2 오래됐지만 새로운 파티션 테이블 8
    1.2.3 파일 시스템과 I/O 서브시스템을 생각하다 15
1.3 프로세스를 정복하는 자가 Linux를 정복하리라 28
    1.3.1 fork와 exec는 프로세스의 분신과 변신 28
    1.3.2 작업 제어의 이것저것 36
    1.3.3 파이프라인으로 하는 빠른 데이터 처리 42
1.4 메모리 관리의 세계로 한 발 더 나아가자 54
    1.4.1 물리 메모리의 분류 55
    1.4.2 메모리 할당과 릴리즈 68
    1.4.3 컨텍스트 스위치와 페이지 테이블 75

더보기

02장 장치가 없다고 변명하지 말자! 가상화를 이용한 인프라 환경 구축 81
2.1 인프라 엔지니어의 성장은 혼자 하는 연습에서부터 82

2.2 Linux KVM으로 가상 네트워크 삼매경 86
2.2.1 가상 네트워크 구성과 가상 머신의 구축 87
2.2.2 DNS 서버의 구축 101
2.2.3 메일 서버 구축 119
2.3 가상 머신으로 HA 클러스터도 혼자 연습해 보자! 128
2.3.1 HA 애드온의 이해 128
2.3.2 호스트 Linux 준비와 가상 머신의 구성 134
2.3.3 HA 애드온 도입과 구성 142
2.3.4 HA 애드온 도입과 구성 159

03장 열 번 승부! 스스로 만든 스크립트를 이용한 커맨드의 활용 163
3.1 간단하고 효과적인 쉘 스크립트 164
3.2 쉘 스크립트의 기본 룰 166
3.2.1 쉘 스크립트의 동작 확인 166
3.2.2 인용부의 사용법 167
3.2.3 조건 판단을 작성하는 법 170
3.2.4 배열과 위치 파라미터의 사용법 174
3.2.5 커맨드 치환과 수치 연산 176
3.3 쉘 스크립트로 승부! 179
3.3.1 [첫 번째 승부] 경유 서버로 배우는 핵심: 기본 파라미터 + 예외 처리 179
3.3.2 [두 번째 승부] 분산 쉘로 배우는 핵심: 기본 패턴과 파이프라인 184
3.3.3 [세 번째 승부] 프로세스 감시로 배우는 핵심: 상태 이동 다루기 192
3.3.4 [네 번째 승부] 핵심 번외편: 일괄 작업(batch)은 make에게 맡기자 197
3.3.5 [다섯 번째 승부] 스냅샷으로 배우는 핵심: 파이프라인으로 로그를 다루자 202
3.3.6 [여섯 번째 승부] 클라우드 백업으로 배우는 핵심: 사고 실험으로 처리의 흐름을 생각하자 207
3.4 Perl 스크립트로 승부! 218
3.4.1 [일곱 번째 승부] 자동 집필로 Perl을 즐기자 218
3.4.2 [여덟 번째 승부] 자동 트윗으로 Perl의 편리함을 체험 232
3.4.3 [아홉 번째 승부] 프로세스 감시로 fork를 마스터하자 236
3.4.4 [열 번째 승부] 마지막 필살기: Perl과 파이프라인의 연동 243

04장 최후의 보루, 커널 소스를 읽자! 251
4.1 소스 코드를 책을 읽듯이 읽자 252
4.2 커널 소스가 걷는 법 254
4.2.1 LIinux 커널의 빌드 순서 254
4.2.2 커널 소스 탐색 입문 259
4.2.3 구조체와 포인터 완전 분석 266
4.3 주요 서브시스템을 탐색하자 276
4.3.1 프로세스 관리 서브시스템 276
4.3.2 메모리 관리 서브시스템과 만나다 294
4.4 커널 소스 분석의 예 313
4.4.1 커널 내부의 시스템 시각 313
4.4.2 윤초 발생의 시간 317
4.4.3 더 깊은 탐구를 위한 가이드 331

05장 한 걸음 더 나아가자! RHEL6 신기능 총집합 333
5.1 코모디티화되는 하드웨어를 지탱하는 ‘진화하는 OS’ 334
5.1.1 ex4 파일 시스템의 채용 335
5.1.2 NetworkManager 서비스의 도입 337
5.1.3 dracut에 따른 초기 RAM 디스크의 작성 340
5.1.4 anacron에 따른 정기 작업 실행 345
5.2 서버 가동 처리를 바꾸는 Upstart 350
5.2.1 Upstart의 개요 350
5.2.2 Upstart 작업의 작성 예 356
5.3 Control Group으로 리소스 배분 컨트롤 360
5.3.1 Control Group의 개요 360
5.3.2 각 서브시스템의 주요 파라미터 362
5.3.3 cg 커맨드 그룹을 이용한 관리 371
5.3.4 가상 머신에 대한 cggroup의 조작 374
5.4 LXC로 컨테이너형 가상화 기술 체험 376
5.4.1 컨테이너형 가상화 기술의 개요 376
5.4.2 컨테이너에 따른 웹 서버의 가동 379
5.4.3 기타 컨테이너 설정 385

찾아보기 390