
리눅스 문제 분석과 해결 [아무도 가르쳐주지 않았던 리눅스 실전 노하우]
- 원서명Self-Service Linux: Mastering the Art of Problem Determination (ISBN 9780131477513)
- 지은이Mark Wilding, Dan Behman
- 옮긴이박재호, 이해영
- ISBN : 8989975999
- 28,000원
- 2006년 09월 28일 펴냄 (절판)
- 페이퍼백 | 472쪽 | 190*250mm
- 시리즈 : 오픈소스 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
모든 리눅스 관리자, 개발자, 지원 부서, 고급 사용자를 괴롭혀왔던 불가결의 문제 해결 길잡이가 드디어 출간되었다. 오류, 비정상 종료, 정지, 성능 저하, 기대하지 않은 행동 양식, 기대하지 않은 결과를 시스템적으로 파헤치며, strace, gdb, kdb, SysRq, /proc 등 핵심적인 리눅스 문제 해결 도구에 통달하는 방법을 알려준다.
[ 이 책의 특징 ]
드디어 모든 고급 사용자, 관리자, 개발자를 위한 구조적이며 실질적인 리눅스 문제 해결사가 등장했다. IBM의 선도 리눅스 전문가 두 명은 이 책에서 오류, 비정상 종료, 정지, 성능 저하, 기대하지 않은 행동 양식, 기대하지 않은 결과와 같은 모든 유형의 리눅스 관련 시스템이나 응용프로그램 문제를 찾아서 해결하기 위한 네 단계 방법론을 소개한다. 리눅스의 핵심 문제해결 도구를 사용해서 정확하게 문제를 손수 해결하며 리눅스 공동체에 퍼져있는 지식을 효과적으로 활용하는 방법을 배워보자.
리눅스를 업무에서 활용하는 사람이라면, 이 책은 효율성, 생산성, 시장성을 놀랄 만큼 높여줄 수 있다. 회사에서 리눅스를 배포하거나 관리하는 업무를 맡고 있다면, 이 책은 운영 비용을 절감하고, 중단 시간을 줄이고, ROI를 높이는 과정에서 도움을 준다.
▒ 리눅스 환경에서 문제를 파악하는 증명된 우수 기법을 찾는다
▒ 다른 플랫폼에서 습득한 문제 해결 지식을 지렛대로 삼는다
▒ 리눅스 문제 해결 도구 중에서 가장 널리 사용하는 strace로 문제를 찾는 방법을 배운다
▒ /proc을 활용해서 하드웨어, 커널, 프로세스에 얽힌 중요한 정보를 찾아낸다
▒ 오픈 소스 응용 프로그램에 디버그 정보를 붙여서 새로 컴파일한다
▒ C++와 스레드 응용 프로그램을 포함하여 gdb로 응용 프로그램을 디버그한다
▒ 커널 비정상 종료와 정지를 한번에 한 단계씩 디버깅한다
▒ ELF를 이해하고 더 효율적인 디버깅 과정에 이 지식을 활용한다
▒ 중요한 임무에 투입한 리눅스 시스템을 디버깅하는 과정에서 몇 시간이나 며칠을 절약하도록 상용 환경에 바로 투입 가능한 자료 수집 스크립트를 제공한다
[ 이 책의 구성 ]
이 책은 리눅스 환경에서 발생하는 문제를 효과적이면서도 효율적으로 진단하는 방법을 다룬다. 인터넷 상에 있는 정보와 자원을 활용하는 방법 등 우수한 조사 기법을 소개하고, 리눅스가 제공하는 가장 중요한 문제 진단 분석과 해결 도구의 사용법을 상세히 다룬다.
1장은 효과적인 문제 진단 분석과 해결 기법을 다루는 집중 강좌이다. 이 장을 익히고 나면 전문가처럼 문제를 진단할 수 있다. 흔히 발생하는 문제 유형을 조사하는 방법과 더불어, 인터넷 어디에서 어떻게 정보를 찾아야 하는지를 설명한다.
2장은 리눅스에서 문제 진단 분석과 해결 과정에 가장 흔히 사용하는 도구인 strace를 다룬다. 2장에서는 strace가 동작하는 방식을 상세히 소개할 뿐만 아니라 실용적인 사용법 정보도 다룬다. 또한 간단한 strace 도구의 소스코드를 소개하며, 기반 기능인 ptrace 인터페이스를 통해 커널과 동작하는 방식을 상세히 설명한다.
3장은 현재 시스템에서 실행 중인 하드웨어, 커널, 프로세스에 관련하여 방대한 정보를 포함하는 /proc 파일 시스템에 관한 내용이다. 주로 문제 진단 분석과 해결을 비롯하여 시스템 진단에 관련한 고급 기능과 기교를 소개하고 살펴본다. 예를 들어, /proc/sys/kernel/sysrq로 SysRq 커널 마법 키를 사용하는 방법을 다룬다.
4장은 컴파일을 다룬다. 디버깅 정보를 포함하도록 오픈 소스 응용 프로그램을 다시 컴파일해야 할지(대개는 다시 컴파일해야 한다), 어려운 문제일 경우 어셈블리 코드 목록을 생성해야 할지(이 방법으로 트랩이 걸린 코드 행을 찾는다), 리눅스 커널 자체를 다시 컴파일하는 과정에서 어떤 문제가 발생하는지 등에 관해 긴요한 정보를 제공한다.
5장은 컴퓨터 시스템에서 가장 중요하고도 기본적인 개념 중 하나인 스택을 속속들이 살펴본다. (리눅스 전문가라면 반드시 알아야 할) 스택 구조체를 상세히 설명하며, 또한 독자가 자신의 도구와 응용 프로그램에서 스택 추적을 생성하기 위해 사용할 수 있는 소스 코드를 소개하고 설명한다.
6장은 GNU 디버거인 GDB로 응용 프로그램을 디버깅하는 방법을 상세하고도 심도 있게 살펴본다. 또한 그래픽 유저 인터페이스인 DDD(Data Display Debugger)도 간략하게 소개한다. 또한 C++ 응용 프로그램 디버깅, 스레드 응용 프로그램 디버깅, 다양한 최고 디버깅 기법 등 흔히 접하기 어려운 정보를 상세히 다룬다.
7장은 시스템 충돌과 중단을 상세히 살펴본다. ‘직렬 콘솔을 연결하는 방법’부터 ‘커널 트랩(“웁스 Oops”)을 사용하여 코드 행을 찾는 방법’까지 필요한 내용을 다룬다.
8장은 커널 디버깅, 즉 커널 디버거 kdb를 사용한 디버깅을 좀더 상세히 다룬다. 시스템에서 kdb를 환경 설정하고 활성화하는 방법을 설명하며, 커널 전문가가 되지 않고도 대다수 리눅스 사용자가 활용할 수 있는 실용적인 명령을 소개한다.
9장은 ELF(Executable and Linking Format)를 상세하게 파헤친다. 기본적인 ELF 파일 형식에 관해 자세하고도 실용적인 정보를 제공하며, 극소수 개발자만이 알고 있는 비결과 기교를 소개한다. 심지어 LD_PRELOAD(으)로 함수를 재정의하는 법, GOT(global offset table)와 GDB 디버거로 함수를 직접 가로채서 디버그 버전으로 보내는 법 등을 예제 코드와 더불어 단계별로 설명한다.
부록 A는 리눅스에서 가장 유용한 도구, 기능, 파일을 개괄적으로 소개하는 디버깅 도구 상자이다. 각 도구마다 언제 사용하면 좋은지 그리고 어디서 최신 버전을 얻을 수 있는지를 설명하고 있다.
부록 B는 곧바로 사용할 수 있는 자료 수집 스크립트를 제공한다. 주요 핵심 업무를 다루는 시스템이나 리눅스 상에서 원격으로 고객을 지원하는 사용자에게 특히 유용하다. 자료 수집 스크립트만 있어도, 원격에서 발생한 문제를 디버깅하는 데 드는 시간을 크게 줄일 수 있다.
[ 이 책의 대상 ]
이 책은 모든 리눅스 사용자에게 유용한 정보를 제공하지만, 특히 리눅스 전문가를 염두에 두고 있다. 여기에는 리눅스 고급 사용자, 리눅스 관리자, 리눅스용 소프트웨어 개발자, 리눅스 제품 지원 인력 등이 포함된다. 가정에서 재미삼아 리눅스를 사용하는 독자에게도 도움이 된다. 물론 리눅스에 대한 기본적인 이해가 있거나 적어도 배우려는 의지가 있어야 한다. 여기서 후자가 더 중요하다.
[ 이 책의 특징 ]
드디어 모든 고급 사용자, 관리자, 개발자를 위한 구조적이며 실질적인 리눅스 문제 해결사가 등장했다. IBM의 선도 리눅스 전문가 두 명은 이 책에서 오류, 비정상 종료, 정지, 성능 저하, 기대하지 않은 행동 양식, 기대하지 않은 결과와 같은 모든 유형의 리눅스 관련 시스템이나 응용프로그램 문제를 찾아서 해결하기 위한 네 단계 방법론을 소개한다. 리눅스의 핵심 문제해결 도구를 사용해서 정확하게 문제를 손수 해결하며 리눅스 공동체에 퍼져있는 지식을 효과적으로 활용하는 방법을 배워보자.
리눅스를 업무에서 활용하는 사람이라면, 이 책은 효율성, 생산성, 시장성을 놀랄 만큼 높여줄 수 있다. 회사에서 리눅스를 배포하거나 관리하는 업무를 맡고 있다면, 이 책은 운영 비용을 절감하고, 중단 시간을 줄이고, ROI를 높이는 과정에서 도움을 준다.
▒ 리눅스 환경에서 문제를 파악하는 증명된 우수 기법을 찾는다
▒ 다른 플랫폼에서 습득한 문제 해결 지식을 지렛대로 삼는다
▒ 리눅스 문제 해결 도구 중에서 가장 널리 사용하는 strace로 문제를 찾는 방법을 배운다
▒ /proc을 활용해서 하드웨어, 커널, 프로세스에 얽힌 중요한 정보를 찾아낸다
▒ 오픈 소스 응용 프로그램에 디버그 정보를 붙여서 새로 컴파일한다
▒ C++와 스레드 응용 프로그램을 포함하여 gdb로 응용 프로그램을 디버그한다
▒ 커널 비정상 종료와 정지를 한번에 한 단계씩 디버깅한다
▒ ELF를 이해하고 더 효율적인 디버깅 과정에 이 지식을 활용한다
▒ 중요한 임무에 투입한 리눅스 시스템을 디버깅하는 과정에서 몇 시간이나 며칠을 절약하도록 상용 환경에 바로 투입 가능한 자료 수집 스크립트를 제공한다
[ 이 책의 구성 ]
이 책은 리눅스 환경에서 발생하는 문제를 효과적이면서도 효율적으로 진단하는 방법을 다룬다. 인터넷 상에 있는 정보와 자원을 활용하는 방법 등 우수한 조사 기법을 소개하고, 리눅스가 제공하는 가장 중요한 문제 진단 분석과 해결 도구의 사용법을 상세히 다룬다.
1장은 효과적인 문제 진단 분석과 해결 기법을 다루는 집중 강좌이다. 이 장을 익히고 나면 전문가처럼 문제를 진단할 수 있다. 흔히 발생하는 문제 유형을 조사하는 방법과 더불어, 인터넷 어디에서 어떻게 정보를 찾아야 하는지를 설명한다.
2장은 리눅스에서 문제 진단 분석과 해결 과정에 가장 흔히 사용하는 도구인 strace를 다룬다. 2장에서는 strace가 동작하는 방식을 상세히 소개할 뿐만 아니라 실용적인 사용법 정보도 다룬다. 또한 간단한 strace 도구의 소스코드를 소개하며, 기반 기능인 ptrace 인터페이스를 통해 커널과 동작하는 방식을 상세히 설명한다.
3장은 현재 시스템에서 실행 중인 하드웨어, 커널, 프로세스에 관련하여 방대한 정보를 포함하는 /proc 파일 시스템에 관한 내용이다. 주로 문제 진단 분석과 해결을 비롯하여 시스템 진단에 관련한 고급 기능과 기교를 소개하고 살펴본다. 예를 들어, /proc/sys/kernel/sysrq로 SysRq 커널 마법 키를 사용하는 방법을 다룬다.
4장은 컴파일을 다룬다. 디버깅 정보를 포함하도록 오픈 소스 응용 프로그램을 다시 컴파일해야 할지(대개는 다시 컴파일해야 한다), 어려운 문제일 경우 어셈블리 코드 목록을 생성해야 할지(이 방법으로 트랩이 걸린 코드 행을 찾는다), 리눅스 커널 자체를 다시 컴파일하는 과정에서 어떤 문제가 발생하는지 등에 관해 긴요한 정보를 제공한다.
5장은 컴퓨터 시스템에서 가장 중요하고도 기본적인 개념 중 하나인 스택을 속속들이 살펴본다. (리눅스 전문가라면 반드시 알아야 할) 스택 구조체를 상세히 설명하며, 또한 독자가 자신의 도구와 응용 프로그램에서 스택 추적을 생성하기 위해 사용할 수 있는 소스 코드를 소개하고 설명한다.
6장은 GNU 디버거인 GDB로 응용 프로그램을 디버깅하는 방법을 상세하고도 심도 있게 살펴본다. 또한 그래픽 유저 인터페이스인 DDD(Data Display Debugger)도 간략하게 소개한다. 또한 C++ 응용 프로그램 디버깅, 스레드 응용 프로그램 디버깅, 다양한 최고 디버깅 기법 등 흔히 접하기 어려운 정보를 상세히 다룬다.
7장은 시스템 충돌과 중단을 상세히 살펴본다. ‘직렬 콘솔을 연결하는 방법’부터 ‘커널 트랩(“웁스 Oops”)을 사용하여 코드 행을 찾는 방법’까지 필요한 내용을 다룬다.
8장은 커널 디버깅, 즉 커널 디버거 kdb를 사용한 디버깅을 좀더 상세히 다룬다. 시스템에서 kdb를 환경 설정하고 활성화하는 방법을 설명하며, 커널 전문가가 되지 않고도 대다수 리눅스 사용자가 활용할 수 있는 실용적인 명령을 소개한다.
9장은 ELF(Executable and Linking Format)를 상세하게 파헤친다. 기본적인 ELF 파일 형식에 관해 자세하고도 실용적인 정보를 제공하며, 극소수 개발자만이 알고 있는 비결과 기교를 소개한다. 심지어 LD_PRELOAD(으)로 함수를 재정의하는 법, GOT(global offset table)와 GDB 디버거로 함수를 직접 가로채서 디버그 버전으로 보내는 법 등을 예제 코드와 더불어 단계별로 설명한다.
부록 A는 리눅스에서 가장 유용한 도구, 기능, 파일을 개괄적으로 소개하는 디버깅 도구 상자이다. 각 도구마다 언제 사용하면 좋은지 그리고 어디서 최신 버전을 얻을 수 있는지를 설명하고 있다.
부록 B는 곧바로 사용할 수 있는 자료 수집 스크립트를 제공한다. 주요 핵심 업무를 다루는 시스템이나 리눅스 상에서 원격으로 고객을 지원하는 사용자에게 특히 유용하다. 자료 수집 스크립트만 있어도, 원격에서 발생한 문제를 디버깅하는 데 드는 시간을 크게 줄일 수 있다.
[ 이 책의 대상 ]
이 책은 모든 리눅스 사용자에게 유용한 정보를 제공하지만, 특히 리눅스 전문가를 염두에 두고 있다. 여기에는 리눅스 고급 사용자, 리눅스 관리자, 리눅스용 소프트웨어 개발자, 리눅스 제품 지원 인력 등이 포함된다. 가정에서 재미삼아 리눅스를 사용하는 독자에게도 도움이 된다. 물론 리눅스에 대한 기본적인 이해가 있거나 적어도 배우려는 의지가 있어야 한다. 여기서 후자가 더 중요하다.