메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

그림으로 배우는 리눅스 구조

실습하며 배우는 운영체제, 가상 머신 그리고 컨테이너 기본 지식까지 | 파이썬, Go 언어편

한빛미디어

번역서

판매중

4.7점 (7명)
좋아요 : 4

선배가 옆에서 하나하나 알려주듯 친절히 설명해주는

실습과 그림으로 배우는 리눅스 지식의 모든 것

 

* Go 언어와 Python, Bash 스크립트 실습 코드 제공

* 이 도서는 『실습과 그림으로 배우는 리눅스 구조』의 개정판입니다.

 

리눅스 커널 책의 두께와 깊이에 질려 중간에 포기했던 경험이 있는 엔지니어라면,  『그림으로 배우는 리눅스 구조』로 다시 한번 도전해 보길 추천합니다. 

이 책은 컴퓨터 시스템을 구성하는 OS나 하드웨어를 직접 동작해 보며 리눅스 개념을 종합적으로 이해할 수 있도록 다양한 실습을 제공합니다. 또한 리눅스가 무엇인지, 리눅스에 포함된 다양한 프로그램에는 어떠한 것이 있는지, 리눅스 프로그램의 필요성 등을 그림으로 친절하게 설명합니다.

 

Go, Python으로 작성된 실습 코드와 그 실행 결과를 그래프로 나타내어 리눅스의 흐름을 쉽게 파악할 수 있도록 도와줍니다. 프로세스 관리, 메모리 관리뿐만 아니라 디바이스 드라이버를 포함한 장치 접근 방법, 현대 소프트웨어 시스템을 다루는 데 빠질 수 없는 가상화, 컨테이너, cgroup 등의 내용까지 다룹니다. 이 한 권으로 리눅스 지식의 전반적인 내용과 기본 개념부터 파고들어야 비로소 배울 수 있는 심화 내용까지 배울 수 있습니다. 다양한 그림과 실습으로 리눅스 OS의 핵심 개념과 기술을 깊이 있게 배워봅니다. 

 

책을 통해 OS와 하드웨어에 대한 이해도를 높이고 나면 다음과 같은 일이 가능합니다.

● 시스템 운용에 활용

● 보다 나은 프로그래밍에 활용 

● 본격적인 커널 개발 시작

 

그림으로 배우는 리눅스 구조_상세이미지(700).jpg

다케우치 사토루 저자

다케우치 사토루

2005년부터 2017년까지 후지쯔 주식회사에서 엔터 프라이즈 리눅스, 특히 커널 개발과 지원을 담당하였다. 2017년 사이보우즈 주식회사 기술 고문에 취임해서 2018년부터 cybozu.com의 새로운 인프라 저장소 개발을 담당하고 있다.

 

서수환 역자

서수환

일본에서 IT 시스템을 설계, 개발하는 엔지니어다. 귀찮은 일이 생기면 대신해 줄 무언가를 찾다가 없으면 만드는 게 취미. 또 뭐하며 놀까 늘 고민한다.

 

CHAPTER 0 시작하면서

 

CHAPTER 1 리눅스 개요

1.1 프로그램 및 프로세스

1.2 커널

1.3 시스템 콜

_시스템 콜 호출 확인해 보기

_시스템 콜을 처리하는 시간 비율

Column 모니터링, 경고 알림 및 대시 보드

_시스템 콜 소요 시간 

1.4 라이브러리

_표준 C 라이브러리

_시스템 콜 래퍼 함수

_정적 라이브러리와 공유 라이브러리

Column 정적 링크가 돌아왔다

 

CHAPTER 2 프로세스 관리(기초편)

2.1 프로세스 생성

_같은 프로세스를 두 개로 분열시키는 fork() 함수

_다른 프로그램을 기동하는 execve() 함수

_ASLR로 보안 강화

2.2 프로세스의 부모 자식 관계

Column fork() 함수와 execve() 함수 이외의 프로세스 생성 방법

2.3 프로세스 상태

2.4 프로세스 종료

2.5 좀비 프로세스와 고아 프로세스

2.6 시그널

Column 반드시 죽이는 SIGKILL 시그널과 절대로 죽지 않는 프로세스 

2.7 셸 작업 관리 구현

_세션

_프로세스 그룹

2.8 데몬

 

CHAPTER 3 프로세스 스케줄러

3.1 기본 지식: 경과 시간과 사용 시간

3.2 논리 CPU 하나만 사용하는 경우

3.3 논리 CPU 여러 개를 사용하는 경우

3.4 real보다 user+sys가 커지는 경우

3.5 타임 슬라이스

Column 타임 슬라이스 구조 

3.6 컨텍스트 스위치

3.7 처리 성능

3.8 프로그램 병렬 실행의 중요성

 

CHAPTER 4 메모리 관리 시스템

4.1 메모리 관련 정보 수집하기

_used

_buff/cache

_sar 명령어를 사용해서 메모리 관련 정보를 수집하기

4.2 메모리 재활용 처리

_프로세스 삭제와 메모리 강제 해제

4.3 가상 메모리

_가상 메모리가 없을 때 생기는 문제점

_가상 메모리 기능

_가상 메모리로 문제 해결하기 

4.4 프로세스에 새로운 메모리 할당

_메모리 영역 할당: mmap () 시스템 콜

Column Meltdown 취약점의 공포

_메모리 할당: Demand paging

Column 프로그래밍 언어 번역기와 메모리 관리

4.5 페이지 테이블 계층화

_Huge Page

_Transparent Huge Page(THP)

 

CHAPTER 5 프로세스 관리(응용편)

5.1 빠른 프로세스 작성 처리

_fork() 함수 고속화: 카피 온 라이트

_execve() 함수의 고속화: Demand paging

5.2 프로세스 통신

_공유 메모리

_시그널

_파이프

_소켓

5.3 배타적 제어

5.4 돌고 도는 배타적 제어 

5.5 멀티 프로세스 및 멀티 스레드

Column 커널 스레드와 사용자 스레드

 

CHAPTER 6 장치 접근

6.1 디바이스 파일

_캐릭터 장치

_블록 장치

Column 루프 장치

6.2 디바이스 드라이버 

_메모리 맵 입출력(MMIO)

_폴링

_인터럽트

Column 일부러 폴링을 사용하는 경우

6.3 디바이스 파일명은 바뀌기 마련

 

CHAPTER 7 파일 시스템 

7.1 파일 접근 방법

7.2 메모리 맵 파일

7.3 일반적인 파일 시스템

7.4 쿼터(용량 제한) 

7.5 파일 시스템 정합성 유지

_저널링을 사용한 오류 방지

_카피 온 라이트로 오류 방지

_뭐니 뭐니 해도 백업

7.6 Btrfs에서 제공하는 파일 시스템의 고급 기능

_스냅샷

_멀티 볼륨

Column 어떤 파일 시스템을 사용하면 좋은가?

7.7 데이터 손상 감지와 복구

7.8 기타 파일 시스템

_메모리 기반의 파일 시스템

_네트워크 파일 시스템

_procfs

_sysfs

 

CHAPTER 8 메모리 계층

8.1 캐시 메모리

_참조의 지역성

_계층형 캐시 메모리

_캐시 메모리 접근 속도 측정

Simultaneous Multi Threading (SMT)

Column 변환 색인 버퍼(Translation Lookaside Buffer)

8.2 페이지 캐시

_페이지 캐시 효과

8.3 버퍼 캐시

8.4 쓰기 타이밍

8.5 직접 입출력

8.6 스왑

8.7 통계 정보

 

CHAPTER 9 블록 계층

9.1 하드 디스크의 특징

9.2 블록 계층의 기본 기능

9.3 블록 장치의 성능 지표 및 측정 방법

_하나의 프로세스만 입출력을 호출하는 경우

_여러 프로세스가 병렬로 입출력을 호출하는 경우 

Column 추측하지 말고, 측정해라

_성능 측정 도구: fio

9.4 블록 계층이 하드 디스크 성능에 주는 영향

_패턴 A 측정 결과

_패턴 B 측정 결과

Column 무엇을 위한 성능 측정인가

_기술 혁신과 관련된 블록 계층의 변화

9.5 블록 계층이 NVMe SSD의 성능에 미치는 영향

_패턴 A 측정 결과

_패턴 B 측정 결과

Column 실제 성능 측정

 

CHAPTER 10 가상화 기능

10.1 가상화 기능이란 무엇인가

10.2 가상화 소프트웨어

10.3 이 장에서 사용하는 가상화 소프트웨어

Column 중첩 가상화

10.4 가상화를 지원하는 CPU 기능

_QEMU+KVM 조합

Column CPU 가상화 기능이 없는 경우의 가상화 

10.5 가상 머신은 호스트 OS에서 어떻게 보이는가?

_호스트 OS에서 본 게스트 OS

_여러 머신을 실행하는 경우

Column IaaS의 오토스케일 메커니즘

10.6 가상화 환경의 프로세스 스케줄링

_물리 기기에서 프로세스가 동작하는 경우

_통계 정보

10.7 가상 머신 및 메모리 관리

_가상 머신이 사용하는 메모리

10.8 가상 머신과 저장 장치

_가상 머신과 저장소 입출력

_저장 장치 쓰기와 페이지 캐시

_반가상화 장치와 virtio_blk

Column 호스트 OS와 게스트 OS의 저장소 입출력 성능 역전 현상

10.9 virtio_blk 구조

Column PCI 패스스루

 

CHAPTER 11 컨테이너 

11.1 가상 머신과 차이점

11.2 컨테이너 종류

11.3 네임스페이스

_프로세스ID 네임스페이스

_컨테이너 정체

11.4 보안 위험성

 

CHAPTER 12 cgroup

12.1 cgroup으로 제어 가능한 자원

12.2 사용 예: CPU 사용 시간 제어

Column cgroup 기능이 리눅스 커널에 포함된 과정

12.3 응용 예

Column cgroup v2

 

CHAPTER 13 이 책에서 배우는 내용과 활용법

클라우드, 빅데이터, 인공지능 등 빠르게 발전하는 기술의 근간에는 튼튼한 기본기가 필수적입니다. 

기술 발전의 토대인 리눅스의 깊은 이해는 최신 기술 트렌드를 익히는 데도 필수적인 밑바탕을 제공합니다. 

 

리눅스는 백엔드 개발자와 데이터 분석가에게 꼭 필요한 OS입니다. 리눅스의 핵심인 커널에 대한 이해는 무시할 수 없는 중요한 부분입니다. 커널은 리눅스 시스템의 모든 기능과 동작의 핵심이며, 이에 대한 지식은 매우 중요합니다.  

 

『그림으로 배우는 리눅스 구조』는 『실습과 그림으로 배우는 리눅스 구조』의 최신 개정판으로, 

컴퓨터 시스템을 구성하는 OS나 하드웨어를 직접 실습해 보며 동작 원리를 익힐 수 있는 책입니다.  다양한 그림을 제공해 리눅스와 커널, 하드웨어가 상위 계층과 직접 연결된 부분을 이해할 수 있도록 구성했습니다. 또한, Go, Python으로 작성된 실습 코드와 친절한 주석 설명을 담고 있으며, 가상화, 컨테이너, cgroup과 같은 내용도 다룹니다. 이외에도 깊이 있는 내용을 Column으로 제공하여 리눅스 기본 지식뿐만 아니라 다양한 인사이트를 얻을 수 있도록 구성하였습니다.

 

<완독 후 느낀점>

 

리눅스는 많은 엔지니어들이라면 빠질 수 없는 주제 중 하나입니다. 그러나 이에 대한 지식을 쌓는 과정은 어렵고 지루할 때가 많습니다. 그러나 이번에 읽은 책, "그림으로 배우는 리눅스 구조"는 이러한 어려움을 크게 줄여준 책이었습니다.

 

이 책은 리눅스의 구조와 동작 원리를 그림과 실습을 통해 복잡한 개념을 이해하기 쉽게 만들어주며, 또한, 실습 코드를 이용해서 눈으로 확인하며 리눅스에 대해 좀 더 이해하기 쉽게 해줍니다. 그리고 리눅스에 대해서 프로세스 관리부터 메모리 관리, 디바이스 드라이버, 가상화와 컨테이너에 이르기까지 폭 넓게 리눅스에 대한 전반적인 모든 내용을 다루고 있어 너무 좋았습니다.

 

저는 IT를 전공하지 않았지만, 이 책을 통해 리눅스에 대한 겉핥기식 지식을 넘어 실질적인 이해를 할 수 있었습니다. 특히, 그림과 실습 코드를 통해 복잡해 보이는 주제가 쉽게 다가왔고, 실제로 코드를 실행해보면서 배운 것을 직접 확인할 수 있어서 좋았습니다.

 

리눅스는 단순히 명령어를 외우는 것을 넘어, 시스템 전체의 구조와 원리를 이해하는 것이 중요합니다. 이를 위해 이 책은 기본부터 심화 주제까지 체계적으로 다뤄서 리눅스 전반을 이해하는데 큰 도움을 줍니다.

이 책을 통해서 리눅스를 잘 이해하면 시스템 운용은 물론, 프로그래밍에도 큰 도움이 되기 때문에 이 책을 통해 얻은 지식을 활용해 향후 제가 진행하게 될 IT 관련 업무에서 더욱 능숙하게 대처할 수 있을 것이라고 생각합니다. 그리고, 이 책을 읽으면서 느낀 것은 리눅스나 어떤 기술이라도 깊게 이해하려면 너무나 당연하지만, 지속적인 학습과 실습이 필요하다는 것입니다. 이점을 다시 한번 깨닫게 되는 책이였습니다.

 

저와 같은 비전공자의 시각에서 봤을 때 이 책을 통해 다른 많은 분들도 리눅스를 이해하는 데 매우 도움을 얻을 수 있으리라 생각합니다. 리눅스나 기타 IT 기술에 관심이 있다면 이 책은 꼭 읽어보길 추천드립니다.

 


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다."

 

이 책을 완독한 후에는 어딜 가도 리눅스 주제의 대화를 할 수 있습니다!

마니악한 분들을 위한 추가 추천도 꿀맛(헬맛)

리눅스 뉴비를 위한 책들 중 단연 최고

 

 

 

 이 책은 리눅스의 커널 부분을 집중적으로 다루어서 내부 프로세스와 자원이 어떻게 흘러가는지를 자세히 설명하는 책입니다.

생생한 실습을 통해 느끼기 어려웠던 개념들을 설명하는 부분이 좋았고 이론만 설명하던 기존 교재와는 많이 다르다는 생각이 들었습니다. 글로는 이해하기 어려운 개념들을 다양한 그림들로 잘 설명을 하였고 많은 도움이 되는 책입니다. 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

나오자 마자 구입했습니다. (알라딘에서...)

아직 읽지는 않았습니다만, 

곧 읽을 예정입니다. 

1판을 읽은 다음에 아끼는 회사 후배에게 읽으라고 건네줬습니다.

 

2판도 나왔으니, 읽은 다음에 다시 그 후배에서 읽으라고 건네줄 예정입니다. 



운영체제에 대해 좀 더 자세하게 들어갈 수 있는 책이다. 책 제목을 보면 되게 쉬운 책인가? 싶은데 막상 그렇진 않다. 많은 그림을 통한 설명이 들어있긴 하다. 리눅스는 많이 써보질 못했고 그것도 그냥 wsl로 맛만 본 정도인데 리눅스에 대해 약간 알고 읽었다면 더 괜찮았을 내용인듯 하다. 혼공컴운에서는 어떤 개념에 대해 설명해주고 넘어간다면 이 책은 리눅스라는 운영체제로 실제로 어떻게 짜여져있는지 볼 수 있어서 좋았다.

 

리눅스를 처음부터 분석하려면 쉽지 않을 듯 한데 징검다리 역할을 해 줄 수 있다고 본다. 나같은 초보자도 이해하기 크게 어렵지 않은 난이도의 책이다.

 

운영체제...사실 회사 일을 하면서 운영체제에 대한 이해가 필요하다고 느끼긴 했는데 물론 리눅스는 못 쓰는 환경이지만...

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



안녕하세요 "그림으로 배우는 리눅스 구조" 리뷰를 해보도록 하겠습니다.

#리눅스 #Linux 를 처음 접할때 다소 어렵다고 느껴지고 잘 이해하고 활용하기란 매우 어렵다고 생각했었습니다.

이전에 IT 엔지니어, 시스템 Admin으로 활동하면서 직접 명령어를 입력해서 결과를 확인하고 에러로그를 확인하여 배우던 시절이 있었는데요

그 원리와 구조를 누가 알려 주지 않기때문에 전공 수업을 듣지 않았다면 이해하는데 많은 시간이 필요했던 시절입니다.

이 책을 통해 개발자등 다양한 직무의 엔지니어에게 필요한 리눅스 구조를 이해하여 업무에 많은 도움이 될것입니다.

전면 풀컬러의 친근한 이미지와 상세한 실습 가이드를 통해 직접 명령어를 입력하며 따라하면고 반복하면 초보자도 이해할수 있게 구성되어 있습니다.

리눅스 구조를 잘 아는 사람이 OS에서 실행되는 사용자 프로그램을 더 잘 이해할수 있을것입니다.

  • 책 내용을 이해하는 순서(사진)

            1) 도표를 통해 개요 이해

            2) 실습을 통한 직접 실행

            3) 결과에 대한 데이터 수집

            4) 가시화 데이터에 기반한 깊은 이해

 

  • 이 책의 목적

            1) 시스템을 구성하는 Operating System(OS)와 Hardware(HW)를 실습을 통해 직접 동작을 확인하며 이해

            2) 리눅스와 커널, 하드웨어가 상위 계측과 직접 연결된 부분을 배우고 이해하며 아래와 같은 일을 해낼수 있음

                : 커널, 하드웨어 등 저수준 계층이 원인인 문제 상황을 해석

                : 성능을 의식한 코딩

                : 시스템의 각종 통계 정보, 튜닝 파라미터 의미를 이해

  • 이 책의 활용법

            1) 하드웨어 시스템의 연관 구조 이해

            2) 리눅스 커널의 서브 시스템의 이해

            3) 커널을 잘아는 사람과의 원만한 의사소통

               - 시스템 운용에 활용

               - 보다 나은 프로그래밍에 활용

               - 본격적인 커널 개발 시작

제가 찾던 책이에요~

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
그림으로 배우는 리눅스 구조
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
그림으로 배우는 리눅스 구조
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
그림으로 배우는 리눅스 구조
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실