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

한빛출판네트워크

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

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

한빛미디어

번역서

판매중

4.9점 (28명)
좋아요 : 6

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

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

 

* 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으로 제공하여 리눅스 기본 지식뿐만 아니라 다양한 인사이트를 얻을 수 있도록 구성하였습니다.

안​녕하세요 원라이트 입니다. 오늘은 그림으로 배우는 리눅스 구조에 대해서 책을 보려고 합니다. 리눅스는 컴퓨터의 운영체제의 하나 입니다. 윈도우와 MAC과 같은 운영체제로서 단순하기 때문에 서버에서 많이 사용하는 운영체제 입니다. 윈도우처럼 UI/UX를 제공하지 않는 다는 단점이 있지만 그만큼 가볍고 많은곳에서 사용을 하고 있습니다.

 

저자 타케우치 사토루는 2005년부터 후지쯔 주식회사에서 근무하면서 엔터프라이즈 리눅스 커널개발을 한 전문가입니다. 후지쯔는 우리나라에도 들어와있는 회사로서 유명한 회사입니다. 현재는 사이보이즈 주식회사에서 고문을 하고 있습니다. 그림으로 배우는 리눅스는 그만큼 리눅스에 익숙하고 잘 활용한 사람이 지어기 때문에 더욱 이해가 쉽습니다.

 

리눅스는 실제로 ㅅ개발을 하면서 쓰이고 명령어를 통하여 안으로 들어가면서 폴더를 생성하고 만들고 또 구성요소를 만듭니다 보통은 CMD창에서 하기 때문에 익숙하지 않은 단점이 있습니다. 그런데 리눅스의 관련서적들을 보면 보통 명령어를 적혀져있고 사용법만 들어져 있습니다.

 

그림으로 배우는 리눅스 구조는 리눅스의 기본 개념부터 원리까지 자세히 설명을 하면서 들어갑니다. 이렇게 되면 장점이 바로 이해하면서 사용하기 때문에 보다 확실히 사용을 할 수가 있습니다. 리눅스의 개요를 시작으로 프로세스 관리, 스케줄러, 메모리 관리시스템을 처음에 배우게 됩니다.

 

그리고 나서 리눅스에서 배울수 있는 프로세스 관리와 파일시스템에 대해서 자세히 배울 수가 있습니다. 그후 메모리계층과 다양한 컨테이너를 배우면서 리눅스의 개념을 배울 수가 있습니다. 리눅스의 구조를 이해하는데 중점을 둔 책으로서 확실히 이책을 본다면 확실히 많은것을 깨닫고 알수가 있습니다. 

 

 

 

 

 

리눅스에서 자주 사용되는 용어의 뜻을 무엇일까라는 고민을 많이 해본적이 있다. 프로그램은 자체적을 영어이기때문에 영어가 기본적이고 이를 함축적으로 사용되는 경우가 많습니다. 커널부터 시작하여 프로세스와 우리가 아는 저장장치의 어떻게 구성이되고 만들어지는지 알 수 가 있습니다. 명령 A와 명령B를 통하여 어떻게 되는지 알수가 있습니다. 

 

라이브러리는 개발을 하면서 늘 나오는 용어 입니다. 라이브러리는 어떠한 프로그램을 정해진 라이브러리를 통하여 쉽게 구현할 수 있게 해주는것이라고 할 수가 있습니다. 라이브러리를 제공하다면 어렵지 않게 구현이 됩니다.

 

프로세스와 사용자모드 그리고 커널모드의 각각 할당된 객제치향을 이용하여 구현을 하면 손쉽게 배울 수가 있습니다. 그리고 리눅스를 하면서 메모리가 어떻게 줄어들고 사용하는지 알 수가 있습니다. 

 

그리고 마지막장에서는 지금까지 배우는 리눅스를 직접 실습을 할 수 있도록 되어 있습니다. 자세한 설명으로 앞장에서 배웠다면 이제 그러한 이론들이 실제로 어떻게 적용되는지를 알 수가 있습니다. 실제로 실습까지 화면서 이렇게 완벽히 구현을 할 수가 있습니다. 리눅스의 대하여 배우고 싶다면 그림으로 배우는 리눅스구조를 추천합니다.

 

#그림으로배우는리눅스구조 #타케우치사토리 #리눅스 

 

#우분투 #한빛미디어 #커널 #OS #컨테이너

 

 

 

이 책은 리눅스 운영체제에 대한 기본 개념과 구조를 시각적으로 설명합니다. 그림을 활용하여 복잡한 주제를 이해하기 쉽게 전달하고, 초보자부터 경험자까지 다양한 독자들을 위한 정보를 제공합니다. 예전에 정보처리산업기사 자격증 시험을 공부할 때 '운영체제는 공평한 자원 분배를 통해 하나의 프로세스가 시스템을 독점하는 것을 방지한다.'라고만 알 수 있었는데, 이 책에서는 그 과정을 시각적으로 보여주어 이해하기 쉬웠습니다. 그림이 있다면 설명이 부족할 수도 있다고 생각할 수 있지만, 충분한 글로 된 설명을 통해 부담감 없이 읽을 수 있었던 책이었습니다.

글과 그림을 통해, 리눅스의 기본 구성 요소와 핵심 개념을 체계적으로 알 수 있었습니다. 리눅스의 꽃이라고 할 수 있는 리눅스 커널, 파일 시스템, 프로세스 관리, 사용자 권한, 네트워크 구성, 가상화 기능 등 다채로운 내용에 비해 부담 없이 알아갈 수 있었던 책이었습니다.

컴퓨터를 공부하면서 놓치고 넘어갈 수 없는 부분이 바로 리눅스이다. 비록 겉으로 보면 너무 어려워서 최대한 회피하고 모르는 채로 살고 싶긴 하지만... 나 같은 서버 쪽 사람들은 반드시 다시 돌아오게 된다. 현존하는 대부분의 서버가 리눅스 구조를 사용하기 때문이다.

미루고 미루고 미루다가 결국 다다른 막다른 길, 이제는 리눅스를 배워야겠다 싶어 검색을 하면 다시 하기 싫어진다. 어렵거든. 그럴 때 이 책이 큰 도움을 줄 수 있을 것이다. 이 복잡하고 어려운 리눅스 구조를 아주 잘게 나누고 쉬운 언어로 녹여서 차례대로 알려준다.

이 책은 리눅스 개요부터 시작하여 프로세스 기초, 스케줄러, 메모리 관리, 프로세스 관리, 파일 시스템, 메모리 계층 등 리눅스 전반의 구조를 순서대로 가르쳐 준다. "써있다"가 아니라 "가르쳐준다". 매우 풍부한 그림과 도표, 그리고 실습에 필요한 코드가 친절하게 쓰여 있는 것을 보면 거의 옆에서 붙잡고 가르쳐 주는 것 같은 느낌을 준다.

물론 그래도 리눅스는 어렵더라. 그렇지만 이 책이 있어서 포기하지 않고 꽤 많은 리눅스 지식을 얻게 된 것 같다. 특히 마지막에 가상화 기능과 컨테이너를 공부하다 보면 현업에서 모르고 사용했던 구조와 명령어를 이해할 수 있었다. 서버 개발 입문자들이나 리눅스 공부를 미루던 현업 개발자에게 큰 도움이 되는 책이다.

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

리눅스에 대한 깊은 이해를 위한 가이드로서, '그림으로 배우는 리눅스 구조'의 복잡성과 도전성을 공유하고자 한다. IT 시스템과 소프트웨어의 기본 운영 체제로서 널리 사용되는 Linux에 대한 지식을 보다 심도 있게 제공하는 이 책은, Linux의 전반적인 구조와 그 작동 원리를 다룬다. 프로세스 관리부터 메모리 관리, 파일 시스템까지, Linux OS와 하드웨어의 복잡성을 풍부하고 직관적인 그림과 함께 설명한다.

이 책에서 가장 인상적인 것은 저자가 복잡한 내용을 직관적인 그림과 도표로 전달한다는 것이다. '그림으로 배우는 리눅스 구조'라는 제목처럼, 타케우치 사토루 저자는 학습자가 어려움 없이 내용을 파악할 수 있게 하는 데 주력하였다. 칼라 일러스트라서 더욱 눈길이 가며, 각 장마다 요약 부분이 있어서 전체적인 내용을 빠르게 복습하는 것도 가능하다.

 

하지만 이 책은 초심자에게 맞추어진 책은 아니다. 이미 어느 정도 경험이 있는 개발자나 엔지니어들에게 OS와 하드웨어의 작동 원리를 깊이 이해하는 것에 큰 도움을 줄 수 있다.

 

이 책은 C 언어에서 Go 언어와 Python으로 업데이트된 코드 예시를 통해 학습자가 실질적인 이해를 할 수 있게 돕고 있다. 코드 예시가 Shell Script, Python, Go 등 여러 언어로 작성되었다면 초기에 조금 혼란스러울 수 있지만, 각각의 코드를 실행하면서 그 결과를 확인함으로써 Linux의 동작 원리에 대한 깊은 이해를 얻을 수 있다.

그러나, '그림으로 배우는 리눅스 구조'라는 책이 초보자에게 완벽하게 맞지 않다. 일부 독자들은 Linux 시스템 전체에 대한 설명이 부족하다고 느껴질 수 있다. 특정 컴포넌트들의 설명이 기존 지식을 가정하는 것 같아서, 완전한 초보자나 이론적인 배경 지식 없이 이 책만으로 Linux를 완벽하게 이해하기는 어려울 수 있다.

 

또한 일부 독자들은 처음엔 '알 것 같더니 알지 못하는' 경험을 할 수도 있다. 한 문장 한 문장 세세하게 읽어 나가며, 분명하지 않은 부분은 따로 찾아보면서 공부해야 할 것이다. 그럼에도 불구하고, 그들은 모두 이 책을 통해서 OS와 하드웨어의 작동 원리에 대한 깊은 이해를 얻을 수 있을 것이다.

 

결국, '그림으로 배우는 리눅스 구조'라는 책은 OS의 기본 원리와 Linux의 작동 방식에 대해 깊이 있는 학습을 원하는 사람들에게 유용할 것임에 틀림 없다. 다른 자료와 함께 보거나 기초 지식을 갖춘 상태에서 읽으면 그 가치가 더욱 커질 것이다.

 

일본에서 받은 평점 역시 높으며, 많은 독자들이 '읽기 쉽고', '이해하기 쉽다'라며 긍정적인 평가를 내렸다. 일부 독자들 중에서는 복잡한 개념과 용어 때문에 초기 접근성이 다소 낮다고 느낀 사람들도 있었지만, 그럼에도 불구하고 이 책의 가치를 인정했다.

 

이 책은 기초적인 내용에만 집중되어 있으며, 리눅스의 고급적인 내용이나 실무적인 부분에 대한 설명은 부족하다. 또한, 리눅스의 최신 버전이나 최신 기술들에 대한 정보는 포함되어 있지 않다. 하지만 이 책은 리눅스의 기본적인 구조와 원리를 이해하는 데 큰 도움이 되며, 이런 기본적인 지식 없이 고급 주제를 학습하는 것은 어렵기 때문에, '그림으로 배우는 리눅스 구조'는 필수적인 학습 자료로서의 가치가 있다.

 

나의 개인적인 경험을 공유하자면, 나는 미약한 수준의 리눅스 지식만을 가지고 있었다. 그러나 이 책을 통해 내가 알고 있던 지식들이 체계화되었다. 특히 프로세스 관리와 메모리 관리에 대한 부분은 매우 유익했다. 또한, 실제 코드 예시를 통해 복잡한 개념을 실질적으로 이해할 수 있었다.

 

이 책을 읽으면서 내가 가장 좋아했던 점 중 하나는 저자가 '단순화'라는 방법을 사용하여 복잡한 주제를 소개한다는 것이다. 저자가 '단순화'라는 용어를 반복해서 사용하면서, 그것이 얼마나 중요한지 강조한다. 처음에는 조금 낯설게 느껴졌으나, 나중에 보니 그것이 내게 많은 도움을 줬다.

 

그럼에도 불구하고, 초보자들은 이 책에서 제시된 모든 개념과 설명을 완전히 이해하는 것이 어려울 수 있다. 일부 내용은 이미 약간의 배경 지식과 경험이 있는 사람들을 대상으로 작성되어 있다. 따라서 처음 리눅스를 배우려 하는 사람들은 다른 입문용 자료와 함께 이 책을 참고하면 좋다.

 

결론적으로, '그림으로 배우는 리눅스 구조'라는 책은 OS와 하드웨어의 기본 원리 및 Linux 작동 방식에 대해 깊게 파악하려 하는 사람들에게 추천한다. 이 책을 통해 Linux에 대한 복잡하고 깊은 이해를 도울 수 있을 것이다. 하지만 완전한 초보자나 이론적인 배경 지식 없이 이 책만으로 Linux를 완벽하게 이해하기 위해서는 추가적인 학습 자료와 함께 활용하는 것이 좋다.

 

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

리눅스 운영 체제의 기본 구조와 핵심 개념을 다룬 책.

다소 복잡한 개념까지도 상세한 그림과 함께 제공되는 설명 덕분에 이해가 쉽다.

이 책에는 많은 code와 command가 나온다.

저자의 의견과 내 의견은 같다. 직접 따라 쳐보는 것이 가장 도움이 된다.

물론 파일을 만들고, 명령어를 똑같이 따라 쳐도, 종종 안 되는 것도 있을 것이다. (적어도 나는 그랬다.)

그래도 직접 linux 환경에서 실행해 보는 것과 안 하는 것은 천지 차이라고 생각한다.

또한 전반적인 구성도를 한번 그려보고 책을 읽는 것도 좋은 방법이라고 느꼈다. 

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

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

   타케우치 사토루 지음

   서수환 옮김

 

리눅스 구조에 대해서 설명하는 책이긴 하지만 커널 자체에 대한 책은 아닙니다.

상세한 부분 보다는 리눅스 OS의 구조에 대해서 기본이 되고 가장 필요한 부분들에 대해 그림을 통하여 설명하는 책 입니다.

리눅스 OS에 대해서 알고 개발을 하느냐, 모르고 개발을 하느냐는 그 결과물에서 차이가 많이 납니다.

그리고, 디버깅 측면에서도 OS에 직접적인 개발을 하는 분들은 이미 시스템에 대해서 알고 접근을 하게 되지만 OS 기반에서 동작하는 소프트웨어 개발을 하는 분들은 보통은 OS 에 대해서 상관하지 않고 개발하시는 분들이 많습니다.

결국은 디버깅을 하고 개발 결과물을 테스트 하다보면 한계에 부딧히게 됩니다.

그렇기에 자신이 개발하고 있는 서비스나 응용프로그램이 동작하는 OS에 대해서 최소한의 구조를 알고 접근하게 되면 구현 측면에서도 OS에 대해 생각하고 최적화를 할수 있고 디버깅 측면에서도 단순히 소프트웨어 레벨에서의 디버깅을 넘어서서 OS에 맞지 않게 구현된 부분들을 찾을 수 있기 때문에 OS 구조를 학습하게 되면 많은 도움이 될 수 있습니다.

특히, 리눅스 OS의 경우에는 더욱 그 구조를 알고 나면 개발 자체에서도 많은 변화가 있을 수 있습니다.

리눅스 OS의 디바이스 드라이버 개발을 하거나 리눅스 OS 자체의 특정 부분을 장치에 맞게 구현한다면 커널의 자세한 부분까지 알아야 하지만, 그 상위에서 동작하는 소프트웨어를 개발한다면 기본적인 구조만 알아도 충분히 많은 도움이 됩니다.

하지만, 보통 시중에는 리눅스 하위 구조에 대해서의 책을 보면 대부분 커널에 대한 책들이 많아서 접근이 쉽지 않았었습니다.

그런 부분에서 "그림으로 배우는 리눅스 구조" 이 책의 경우 개발자의 실제 실무에서 필요한 부분들에 대해 바로 사용할 수 있을 정도로 잘 구성되어 있고 잘 설명하고 있는 책 입니다.

이전에 이미 C 언어 기반으로 "실습과 그림으로 배우는 리눅스 구조" 라는 책이 있었는데, 최신 리눅스 및 트랜드에 맞춰서 파이썬과 Go 언어로 새롭게 나온 책 입니다.

그리고, 많은 지면을 할애하여 상세하게 설명하고 있지는 않지만, 가상화 및 컨테이너 관련하여서도 소개 하고 있습니다.


개인적으로 개발 진행할 때 필요한 부분들을 구글 등의 웹에서 찾아봐야 했던 부분들이 이 책에 많이 포함되어 있어서 좋았습니다.

 

대상 독자

이 책은 리눅스 OS를 모르는 분들이 보더라도 어느 정도 이해할 수 있도록 그림과 함께 설명이 잘되어 있습니다.

하지만, 리눅스 OS의 기본 명령이나 사용 법을 먼저 학습하거나 병행해서 보면 더 좋을 것 같습니다.

초/중급 엔지니어 분들께 많은 도움이 될 것 같습니다.


구성

이 책은 총 13장으로 구성 되어 있습니다.

리눅스의 개요 부터 시작해서 프로세스 관련, 메모리 관련, 장치 관련, 파일 시스 등의 리눅스 OS에서 기본적으로 알아야 하는 부분에 대한 설명 부터, 가상화와 컨테이너 그리고 생소할 수 있는 cgroup 에 대해서 많은 지면을 할애하지는  않았지만 소개하고 기본적인 부분에 대해서 설명하고 있습니다.

 

많은 예제 들과 그 결과에 대해 보여 줌으로써 직접 시험 하며 학습할 수 있도록 구성되어 있습니다.

각 부분들에 대해서 그림으로 표현하고 그 그림에 대해 상세하게 설명 함으로써 좀 더 이해하기 쉽고 어려울 수 있는 부분들에 대해서  재미있게 표현하고 있어서 좀 더 친숙하게 접근 할 수 있도록 구성되어 있습니다.


 

 


개인적으로 이 책~ 적극 추천합니다.

재미있는 책 입니다. ^^

 

 

들어가며

세상의 많은 사람들이 일상에서 가장 흔히 마주치는 프로그램은 바로 운영 체제(OS)일 것이다. 수십억 명의 사람들이 매일 아침을 파란 창문과 검은 사과 아이콘과 함께 시작한다. OS는 다양한 프로그램을 실행하고 관리하는 핵심 역할을 한다.

그렇다면, 개발자들 사이에서는 어떤 OS가 가장 유명할까? 그 답은 리눅스(Linux)다. 이 안정적이며 무료인 OS는 수많은 서버와 모바일 기기에서 24시간 가동된다. 개발자라면 누구나 적어도 한 번은 검은 터미널 창을 통해 ls, mv, cp 등의 명령어를 실행해 볼 것이다. 그러나 이 명령어들의 뒷 배경에 있는 리눅스의 동작 원리를 정확히 아는 이는 많지 않다. 이런 지식을 얻기 위해선 어떻게 해야할까? 그리고 이 지식을 얻는다면 어떤 이점이 있을까?

 

이 책의 주요 내용

이 책은 리눅스 시스템의 기본부터 심화 내용까지 깊이 있게 다룬다. 기본적인 프로세스 관리에서부터 CPU 스케줄링, 메모리 관리, IO 처리, 파일시스템 등, 리눅스를 구성하는 핵심 기술들에 대해 설명한다.

이 책의 주목할 만한 특징 중 하나는 쉬운 그림과 도식을 활용한다는 것이다. 다양한 도표와 예시를 통해 복잡한 동작 원리를 쉽게 이해할 수 있도록 돕는다.

끝부분에서는 가상화와 컨테이너 기술에 대해서도 다루어, 도커 등의 기술을 사용하는 개발자들에게 리눅스 시스템이 어떻게 동작하는지에 대해 알려준다.

또한, 이 책은 다양한 예제 코드를 통해 개념을 명확히 이해할 수 있도록 도와준다. 특히, 파이썬 예제 코드를 통해 직관적으로 이해할 수 있어 매우 유용하다. 실제 상황에 어떻게 적용되는지 쉽게 확인하고 실험해볼 수 있도록 구성되어 있다.

 

이 책을 읽으면 좋을 사람

이 책은 어느 정도 리눅스 경험이 있는 사람들에게 추천한다. 완전 초보자보다는 기초 지식이 있는 사람들이 더욱 높은 이해도를 보일 것이다. 특히, SRE나 DevOps 분야의 개발자들에게 많은 도움이 될 것이다.

 

3년차 이상의 웹 개발자

회사 환경에 따라 다르겠지만, 경력이 쌓이며 서버 관리 업무를 할 가능성이 있다.

큰 규모의 회사에서는 별도의 DevOps나 SRE 팀이 있을 수 있으나, 운영 체제에 대한 기본 지식은 협업에 필요하다.

서버 환경을 직접 다루며 디버깅이나 최적화 작업이 필요한 경우도 있다.

OS 명령어의 사용법뿐만 아니라 그 배후의 동작 원리를 이해하면 문제 해결이나 성능 최적화에 큰 도움이 된다.

 

주니어 SRE 개발자

OS에 대한 깊은 이해는 이슈 분석에 필수적이다. 이 책을 통해 필요한 지식을 얻을 수 있다.

 

OS를 공부하는 대학생

이 책은 OS 전공서를 이해하는 데 도움이 되며, 필수적인 OS 지식을 습득하는 데 좋다.

 

나가며

운영 체제는 컴퓨터 분야에서 중요한 학문이다. 다양한 OS 관련 책들이 있지만, 복잡한 내용을 쉽게 풀어서 설명하는 책은 드물다. 오래된 언어와 수많은 텍스트로 이루어진 책들은 독자들에게 지겹게 만든다. 이런 책들에 지친 독자라면 책을 선택하길 권한다. 그림과 예시를 통해 필수적인 지식을 효과적으로 습득할 있을 것이다.

오늘 리뷰할 책은 [그림으로 배우는 리눅스 구조] 입니다.

https://www.hanbit.co.kr/store/books/look.php?p_code=B9151150768

이 책을 처음 훑어보고 너무 좋았습니다. 그리고 표지를 다시 봤는데 역시나 !!!

표지에도 [전면 풀컬러 4도 이미지] 라고 소개 하고 있군요.

 

1.표지IMG_20230924_233113.jpg

 

 

 

책의 모든 그림이 컬러로 인쇄되어 있고 그림이 아주 많아 이해가 쏙쏙 되는 것이었습니다.

역시 좋은 책은 적절하게 그림을 넣어줘야 한다고 강하게 믿고 있습니다.

목차를 보니 대부분의 내용은 학교에서 운영체제 수업때 들은 내용들과

직장 생활 하면서 배운 리눅스 내용들이 많이 있었습니다.

그런데 책의 내용은 예상처럼 쉬운 것은 아니었습니다. 책 소개 페이지에도 초중급으로 되어 있네요.

C 언어로 시스템 프로그램을 많이 해본 사람들이라면 익숙한 내용들이 많겠지만,

저처럼 자바 언어나 파이썬 등의 하이 레벨 언어를 많이 사용한 사람들이라면 시스템 콜 같은 내용은 낯설겠지요.

 

그래도 이책은 제목처럼 그림이 많이 있어서 그나마 이해가 좀 되는 편이네요.

 

2.그림 라이브러리IMG_20230924_233234.jpg

 

 

 

디스크나 스토리지 공부할때 나오던 저널링에 대해서는 아래처럼 모든 페이지를 할당해서 설명하고 있습니다.

 

글로 볼때는 전혀 감이 안오던게 그림을 보니 어느 정도 이해가 갑니다.

 

3.그림 저널링IMG_20230924_233341.jpg

 

 

 

그리고 클라우드 공부하면서 나오던 많이 나오던 용어 IOPS도 나와서 반갑네요.

 

이 것도 역시 그림이 있어서 좋습니다.

 

4. IOPS IMG_20230924_233423.jpg

 

저는 책의 후반부가 더 재미 있었는데 그 이유는 가상화에 대한 내용을 다루고 있어서 였습니다.

5. 가상화 목차 IMG_20230924_233659.jpg

 

그동안 공부했던 컨테이너가 그림으로는 이렇게 되는구나! 역시 그림이 촤고! 팍팍 이해가 됩니다.

 

 

6, 컨테이너 IMG_20230924_233716.jpg

 

 

 

정리하면, 이 책은 정말 제목처럼 그림에 진심입니다. 분량도 370여 페이지로 부담 없고,

클라우드를 사용하거나 리눅스를 사용한다면 꼭 보시라고 권하고 싶은 책입니다.

 

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

 

 

 

 

 

 

 

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

 

 

 

 

 

 

하드웨어와 소프트웨어를 이해하기 위해서 운영체제에 대한 지식은 필수적이다. 또한 운영체제에서 리눅스는 빠질 수 없는 운영체제이다. 리눅스를 배우고 싶은 사람들에게 그림으로 배우는 리눅스 구조는 필독서가 될 것 같다.

 

이 책은 운영체제에 대한 내용을 Python, Go, Bash 등으로 작성된 코드를 기반으로 실습을 진행하여 어렵지 않게 이해시켜주고 있다. 

 

흐름은 우선 리눅스 개요부터 시작하여, 프로세스 생성과 종료와 같은 프로세스 관리, 프로세스 스케줄러, 메모리 관리 시스템, 프로세스 통신 파일 시스템, 메모리 계층 뿐만 아니라 가상화 기능과 컨테이너에 대해 후루룩 훑는다.

 

이 책을 실습과 같이 진행한다면 완독하고 난 후에는 커널, 하드웨어 등 저수준 계층이 원인인 문제 상황을 해석하거나, 성능을 의식한 코딩 또는 시스템의 각종 통계 정보, 튜닝 파라미터 의미를 이해할 수 있게 될 것이다. 

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

 

리눅스 하면 두꺼운 책만 생각 났는데 이 책은 os의 하드웨어를 직접 동작 확인해보는 굉장히 방대한 분야인데 생각보다 책이 상당히 얇다. 그렇다고 쉽게 이해가 되진 않는데 워낙 리눅스 자체가 어렵기도 하고 거기에 파이썬 까지 더해지니 쉽진 않았다. 그래도 글씨만 빡빡한 책 보단 컬러풀 하니 보기 재미 있었다.

 

 

1장 - 프로그램과 프로 세스 , 커널, 시스템 콜 과 라이브러리에 대한 내용이 나온다.

 

2장 - 프로세스 생성 (같은 프로세스를 두 개로 분열 시키는 python fork() 함수, 다른 프로그램을 기동 하는 execve()함수, ASLR로 보안강화 하는 방법 등이 나온다.)

 

3장 - 프로세스의 스케줄러( 기본 지식과 논리 CPU를 하나만 사용하는 경우와 여러 개를 사용하는 경우, 처리 성능, 프로그램 병렬 실행의 중요성)

 

4장 - 메모리 관리 시스템 (메모리 관련 정보 수집, 메모리 재활용 처리, 가상 메모리, 프로세스에 새로운 메모리 할당, 페이지 테이블 계층화)

 

5장 - 프로세스 관리(fork() 함수 고속화 , execve() 함수의 고속화, 프로세스 통신, 멀티 프로세스와 멀티 스레드 등)

 

6장 - 장치 접근(캐릭터 장치, 블록 장치, 루프 장치, 디바이스 드라이버 등)

 

7장 - 파일 시스템( 파일 접근, 메모리 맵 파일, 쿼터, 파일 시스템 정합성 , Btrfs가 제공하는 파일 시스템의 고급기능 , 데이터 손상 감지와 복구 등)

 

8장 - 메모리 계층( 캐시 메모리, 페이지 캐시, 버퍼캐시, 통계 정보등)

 

9장 - 블록 계층(하드디스크 특징, 블록 계층의 기본, 블록 장치의 성능 지표와 측정 방법, 블록 계층이 NVMe SSD 성능에 미치는 영향 등)

 

10장 - 가상화 기능(가상화 소프트웨어, 중첩 가상화, 가상 머신은 호스트 OS에서 어떻게 보이는가, 가상화 환경과 프로세스 스케줄링 , 가상 머신과 메모리 관리 등)

 

11장 - 컨테이너 ( 가상 머신과 차이점, 컨테이너 종류 , 보안위험성 등)

 

12장 - cgroup (cgroup으로 제어 가능한 자원, 응용 예제 등)

 

13장 - 이 책에서 배운 내용과 활용법

 

총 13Part로 구성된 책은 한 장 한장이 예제코드 위주로 잘 구성 되어 있다

 

 

이번 도서를 읽으면서 리눅스에 대한 공부를 한다고 해도 많이 부족했다는 것을 느꼈다. 확실히 책의 매력은 내가 아는 것이 전부가 아니라는 것을 말해주는 듯한 느낌을 받는 다는 점이다. 이 책은 두고두고 공부를 해가기에도 좋고 리눅스와 커널, 하드웨어 가 상위 계층에 직접적으로 매핑 되는 것을 공부 하기에 좋다.

 

 

python과 ubuntu에 관심이 있다면 무조건 추천 한다.



대다수의 서버에는 리눅스 배포판이 구성되어 그 위에서 애플리케이션이 돌아갑니다.

그러나 올라가있는 어플리케이션이 아닌, 작동하는 서버의 하드웨어/OS에 대한 질문을 받으면 대답하기가 쉽지않습니다.

 

이 책은 그런점을 보완해주는 책입니다. 직접 의식할일이 자주없는 OS/하드웨어단에 대하여, 어떻게 작동하는지, 이를 어떻게 확인해볼 수 있는지를 자세한 그림과 실습코드를 통해 쉽게 설명해주며, 실습코드 제공을 통해 실제로 따라하면서 확인해보기 쉽게 구성되어있습니다.

 

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

 

책을 보면 그림으로 직관적으로 설명을 해주려는 느낌을 많이 받았고, 확실히 글을 보면서 내 머리에서 변환을 거치는 것보다, 그림으로 직관적으로 이해되는 것이 더 이해가 잘 되는 느낌을 받았다. 많은 프로그래밍 관련 서적을 보면 그림으로 설명을 해주려는 책들도 많지만 대부분은 작은 공간을 할애하거나 표의 형태등을 많이 쓰기도 하는데, 이 책에서는 책의 제목에도 그렇듯 그림으로 이해하는 것에 힘을 많이 줬구나 라는 생각이 들었다.

그런 점이 그림의 형태로 기억에 남기는 것에도 도움이 많이 되었다.

리눅스에 대한 깊은 이해가 없더라도, 한번 리눅스에 대해 공부해보고 싶다면 적극 추천해볼만한 책이었다.

최근 클라우드의 활용도가 넓어져서, OS에 대한 지식이 얕아도 그럭저럭 애플리케이션을 운용할 수 있는 세상이 된 것 같다. 사이드 프로젝트를 5가지의 클라우드에 분산 배포 했는데, 각종 서비스가 높은 수준의 추상화, 블랙박스화가 진행되어 있어서 간편하게 사용했었다. 

 그럼에도 불구하고 서비스를 제대로 다루거나 문제를 해결해야 할 때, 성능 튜닝을 추구하려면 서비스 기반에 대해 깊은 이해가 필요하다고 본다. '그림으로 배우는 리눅스 구조'가 그러한 이해를 돕는데 적합한 서적이 아닐까 한다. 

 '그림으로 배우는' 이라는 쉬워보이는 느낌과 얇은 책의 두께에서 오는 인상과는 다르게, 주제 전반이 꽤나 까다로운 내용이다. 프로세스, 메모리, 스토리지 등 OS나 하드웨어의 주제를 제공된 Python, Go 실험 프로그램으로 동작 원리를 학습해본다. 가상화 기능, 컨테이너, cgroup 등 현대적인 주제도 포함되어 있다. 다소 고전적이고 딱딱할 수 있는 OS, 컴퓨터 아키텍쳐라는 주제를 현대적으로 잘 풀어나간 느낌이다. 

 다소 아쉬운 점이 있다면, 앞서 언급했던 첫인상과는 달리 이 책은 초급자나 비전공자가 쉽게 읽을만한 책은 아닌 것 같다. 전반적인 용어에 대한 설명이 부족하고, 주제를 풀어나가는 방식이 제대로 된 하향식 구조가 아니다. 독자가 어느 정도 알고 있음을 전제로 설명한다. 배경지식이 모자란 독자는 필연적으로 외부의 정보에 도움을 받아야 온전한 이해를 할 수 있지 않을까 싶다.

 사실 OS라는 주제가 애초에 가볍게 다룰만한 주제가 아니다 보니 충분히 납득은 된다. 당장 OS 학습의 바이블인 공룡책, CS:APP 같은 걸 보더라도 읽기 전부터 서적의 체급에 압도당하기 일쑤다. 나름 짜임새 있는 내용에, 부담스럽지 않은 분량을 갖추고 있다는 점에서 충분히 매력있는 책이라 생각한다.

 

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

IMG_3103.JPG

 

이번에는 리눅스 관련 책을 받아봤다. 리눅스는 서버를 구축할때 거의 필수적으로 사용되는 OS인데, 이에 대한 지식이 거의 사실 없고, 꼭 필요할때 찾아서 보는 정도로 알고 있어서 이번에 기초 책을 한번 받아보게 되었다.

 

undefined

 

"그림으로 배우는" 이라는 말에 걸맞게, 그림이 아주 친절하게 잘 설명 되어 있다. 설명이 많기 보다는, 기초적인 개념을 소개하고, 이를 확인할 수 있는 파이썬, 고, 또는 쉘 코드를 알려준다. 그리고 이를 그림을 통해서 동작의 원리를 설명하는 방식을 채택하고 있다.

 

IMG_3102.JPG

 

프로세스, 메모리 관리, 파일 시스템, 가상화 까지 리눅스의 기초적인 컨셉을 이해하는데 아주 좋은 책인 것 같다. 실제적으로 터미널 명령어도 알려주고 확인하며 이해하게 해주는 코드도 제공하니까 실습하면서 그림을 보며 이해하기 정말 좋은 것 같다.

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

 

리눅스 구조를 그림으로 설명해 주고 있어서 내용을 이해하는데 어려움이 없었다. 리눅스 구조에 대해 빠르게 습득하고 싶다면 추천드리고 싶습니다


 

 

개발을 하다 보면 리눅스 커널에 관해 알아야 할 때가 옵니다.

 

저는 제 프로젝트를 배포하고 운용하면서 이런 필요성을 느꼈었습니다. 갑자기 시스템이 느려졌을 때 운영체제 배운 것으로 추측을 해보지만 확인할 수 없다면 답답할 수밖에 없습니다. 간단하게 검색한 명령어로 원인을 찾아 해결해 보지만 가끔은 찝찝하곤 합니다. 

 

이 책을 읽으면서 예전에 학교에서 공부한 운영체제 지식이랑 리눅스 커널에 관해 연결지으며 많은 부분을 알아갈 수 있었습니다. 이 책을 읽으며 프로그램을 운용하고 모니터링하며 배웠던 많은 부분을 정리해갈 수 있었습니다.

 

이 책에 가장 큰 장점은 실전에 도움될 수 있도록 책이 쓰인 것이라고 생각합니다.

 

풍부한 그림도 장점이지만 고/파이썬을 기반으로 된 코드로 실습을 해보며 수치를 확인하는 과정까지 들어있어서 매우 많은 도움이 됐습니다. 실제 시스템을 운영할 때 모니터링하는 여러 값이 왜 필요하고 실질적으로 어떤 역할을 하는지 머릿속으로 그려볼 수 있게 되었습니다.

 

학교에서 배웠든 독학이든 운영체제를 공부하고 리눅스 커널을 바로 파고들기에는 부담이 된다면 이 책이 그 징검다리 같은 역할을 해주는 책이 되어줄 수 있다고 합니다.

 

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

오래간만에 윈도우 PC를 사용하는 업무 환경에서 WSL을 함께 사용하게 되면서, 잠시 살펴보다 손 놓고 있던 Ubuntu 환경에서 이것저것 시도 해보는 중이다.
 
프론트엔드 개발자로서 현재 업무에서 직접 리눅스를 다룰 일은 사실 거의 없는 것으로 보여, 개인적으로 사용하는 것 외에 얼마나 활용하려나 싶지만, Container 환경에 대한 공부의 일환으로서 커널도 살펴보면 좋을 것 같다는 단순한 생각에 이 도서를 살펴보게 되었다.
 
단순한 호기심으로 도서를 집어들었으나, 생각지도 못 했던 많은 것을 얻었다. 무심코 작성하던 프로그래밍 코드가 실제로 실행되기까지 기본적으로 필요한 과정들, 어딘가에서 듣거나 보았지만 명확히 그것에 대해 설명할 수 없었던 것들에 대해 어렴풋이나마 알게 된 것이다. 'ㅅ')!
 
컴퓨터 전원을 켠 순간부터 펌웨어 기동, 하드웨어 초기화를 거쳐 부트 로더가 OS 커널을 기동시키고, 이 커널이 프로세스를 기동하고 이어서 프로세스 트리 구조가 만들어진다던가.. 좀비 프로세스, 고아 프로세스라는 것이 무엇인지 이들이 만들어지면 어떻게 시스템 자원이 회수되는 것인지라던가..
 
서버 개발시 필수로 알아야 하는 시그널, 프로세스 스케쥴러나 메모리 관리 시스템과 같은 CPU 동작, 메모리와 가상 메모리, 멀티 프로세스와 멀티 스레드, 심지어 장치 성능 측정에 대한 이야기까지.. 리눅스 커널을 직접적으로 다룰 일은 없더라도 OS와 하드웨어의 동작에 대한 이러한 지식들은 두고두고 도움이 될 것이다.
 
읽고 난 뒤에는 리눅스 커널이라는 미지의 세계에 대해 조금은 알게 된 느낌이 들었고, 이제까지 이거 모르고 뭐했나 싶은 자기 반성이 들기도 했다. 개인적으로 리눅스 커널에 대한 입문 서적으로 추천한다.
 
.
 
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

데이터 엔지니어 커리어를 밟아오면서 리눅스와 유닉스를 반드시 사용할 수 밖에 없는 생태계에 놓여있다고 생각한다.

왠만하면 모두 개발 툴들이 해당 OS에서 설치 환경을 제공하기 때문이다. (사람들이 윈도우가 아닌 맥북을 사용하는 이유와 같은 맥락으로 생각한다.)

이런 리눅스를 사용하는 와중에 깊게는 파보지는 못한 체, 항상 필요할 때마다 구글링을 통해 cron잡을 걸어놓거나 CPU 및 프로세스 점유 현황 등을 파악하는 정도로 했던 것같다. 즉, 배경지식과 깊이가 부족한 지식으로 얕은 지식으로 버텨왔던 느낌이다.

 

이 책을 통해서 한 걸음 리눅스 지식의 깊이를 더한 것같다는 느낌을 받는다. 동시에 모르는 것들이 너무 많아졌다는 생각이 든다.

분명한 것은 이 책을 통해 어떤 것들을 알아야 하고 어떻게 이해를 할 수 있는지 명쾌하게 설명이 되어 있다. 그 역할이 큰 것은 아무래도 그림!을 이용했기 때문이라고 생각한다. 그림을 통해서 수많은 원리를 추측하게 하지 않고 명쾌하게 설명하기 위해 노력을 한 점이 독자로써 잘 보인다. 정말 이 점에 대해서는 박수를 아끼고 싶지 않다.

 

또한, 나에게는 프로세스 관련 지식과 가상화 기술이 항상 간지러웠는데 이 책을 통해 해당 부분들을 모두 충족시켜 주었다. 특히 프로세스 부분은 기초와 응용으로 두 챕터로 설명하여 더욱 독자들에게 양질의 지식을 제공해준다. 가상화 또한 요즘 핫한 분야인데 그림으로 구조를 잘 설명해주어 이해가 쉽게 하였다. 

 

마지막에는 그림을 통해 전반적인 구조를 설명해주었다! Wrap up을 그림으로 표현했다는 것에 감사하고 깔끔하며 어떻게 활용할지 가이드까지 제공해준다.

 

만약, 리눅스에 대해 간지러운 부분이 있거나 무엇을 알아야할지 모른다면 이 책이 가이드라인이 될 것이다.

필요한 부분만 봐도 좋지만 실습하는 내용도 추가되어 있어 깊이를 뻗어가는 데 도움이 될 것이다.

 

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

 

1230923.jpg

 

 

 

리눅스는 서버 개발자와 데이터 분석가라면 잘 알아야 하는 운영체제입니다.

 

리눅스의 기본 개념부터 프로세스 관리, 메모리, 파일 시스템, 가상화 등 알아야 할 부분이 많은데요.

리눅스를 학습하고 활용하는 데 효과적인 책을 소개하려 합니다.

 

소개해 드릴 책은 ‘그림으로 배우는 리눅스 구조’입니다.

 

이 책은 리눅스 및 컴퓨터 시스템에 대한 전반적으로 설명해 줍니다.

 

그림을 통한 시각적인 설명과 함께, 실습 코드는 Go와 Python으로 작성되어 있습니다.

 

커널부터 시작하여 프로세스 관리, 메모리 관리, 파일 시스템, 가상화, 컨테이너, cgroup 등의 내용을 폭넓게 다룹니다.

 

이 책을 통해 리눅스의 핵심 개념과 기술을 깊이 있게 이해하고, 프로그래밍과 시스템 운용에 활용할 수 있는 여러분이 되시길 바랍니다.

 


3230923.jpg

 

◆ 메모리 관리

리눅스 메모리 관리 시스템 명령어를 알아보도록 하겠습니다.

 

운영체제에서 메모리 관련 정보를 수집하는 데 사용하는 명령어들이 있습니다.

 

그 명령어는 used, buff/cache, SAR입니다.

 

used는 운영체제에 사용 중인 메모리양을 표시해 줍니다.

 

버퍼와 캐시는 buff/cache 명령어로 사용된 메모리양을 볼 수 있습니다.

 

시스템 자원 사용 통계를 확인할 때는 sar 명령어를 사용하면 됩니다.

 

메모리를 효율적으로 사용하기 위해선 안 쓰는 프로세스를 삭제하거나 메모리 강제 해제하면 됩니다.

 

강제 해제한 메모리는 다른 프로세스에 할당하는 식으로 메모리를 관리합니다.

 

 

 

2230923.jpg

 

 

 

 

◆ 프로세스 통신

프로세스는 컴퓨터에서 실행 중인 프로그램을 말하는데요.

메모리에 할당된 공간과 실행 상태를 포함하고 있습니다.

 

프로세스 간 통신은 프로그램들이 서로 정보를 주고받거나 조율할 때 사용합니다.

 

공유 메모리는 프로세스들끼리 특정 메모리 영역을 공유해서 데이터를 주고받습니다.

 

특정 사건이 발생했을 때 프로세스 간에 시그널 신호를 주고받아 응답받을 수 있습니다.

 

한쪽에서 데이터를 보내면, 다른 쪽에서 받는 형태로 프로세스 간에 단방향 통신 파이프를 만듭니다.

 

네트워크에서 사용하는 소켓을 이용하여 프로세스 간에 양방향 통신이 가능합니다.

 

마치 전화나 채팅하듯이 프로세스끼리 소켓을 통해 대화할 수 있습니다.

 

 

 

4230923.jpg

 

 

끝으로 리눅스에 대한 이해를 바탕으로 리눅스의 핵심인 커널에 대한 이해가 중요합니다.

 

이 책은 Go, Python으로 작성된 실습 코드를 중심으로 구성되어 있어 프로그래밍 언어에 익숙하지 않은 독자들도 실습으로 리눅스와 관련된 개념을 습득할 수 있습니다.

 

실습 코드와 친절한 주석 설명이 함께 제공되어 리눅스 개발을 시작할 수 있도록 돕습니다.

 

이 책을 통해 리눅스와 커널, 시스템 운용에 대한 지식을 배우고 적용할 수 있는 기반 지식을 확보할 수 있을 것으로 기대됩니다.

 

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

 

먼저 이 책은 실습과 그림으로 배우는 리눅스 구조(https://www.hanbit.co.kr/store/books/look.php?p_code=B2453522793)의 개정판이다. 이전판의 부제는 '개발자가 알아야 하는 OS와 하드웨어의 기초'이며 표지에는 리눅스의 마스코트 펭귄이 여기 저기에서 뭔가 헤매는 듯한 모습을 보이고 있다. 개정판은 노란색 표지에 '실습하며 배우는 운영체제, 가상 머신 그리고 컨테이너 기본 지식까지 | 파이썬, Go 언어편'라는 부제를 달고 출간되었다. 개정판이므로 저자는 그대로 리눅스 커널 개발에 경험이 많은 '다케우치 사토루'이며, 특이하게 역자가 바뀌었다. 이전판의 경우 오타가 다소 많았어서 개정판에서는 오타가 많이 줄었으면 하는 개인적인 바램이 있었다. 책을 펼치고 얼마 안되어 KiB, MiB 등을 설명하는 과정에서 제곱을 기재하며 윗첨자로 기재하지 않아, 에구구... 이전판과 같이 오타가 많은 것은 아닌가 하고 생각했으나 다행히 생각보다는 눈에 띄는 오타가 많지는 않았다. 또한 일본서에서만 보이는 문제('영어 -> 일본어 -> 한국어'로 번역되면서 한국에서는 잘 사용하지 않는 용어를 사용하는 것)도 간간히 보이지만, 책을 읽는데 크게 방해되지 않으며 충분히 바로 바로 파악할 수 있는 수준이다.

 

노란색 표지에서 초보서의 느낌이 물씬 풍기지만 마냥 초보자만을 위한 서적은 아닌 것 같다. 다년간 리눅스를 사용한 저자의 친절함(일본서 특유의 친절함이 여기저기 보인다)으로 다소 깊이감은 떨어질 수 있지만, 깊이 알기전에 전체 방향을 잡거나 기초 개념을 알기에는 이 책은 매우 적합한 것으로 보인다. 나의 경우에도 리눅스를 사용한지 20년이 넘었지만 예전에 내가 리눅스를 공부할 때도 이러한 친절한 서적이 곁에 있었다면 하는 생각을 잠시 가져보기도 하였다.

 

400페이지라는 작은(?) 분량으로 방대한 리눅스를 속속들이 살펴볼 수는 없다. 다만, 가상화, 도커 등 리눅스에서 구동되는 비교적 최근 기술도 개정판에 담으려 하였고, 이러한 것들을 어느 정도 맛(?)을 보고 더 도약하기 위한 밑거름으로 이 책은 훌륭한 길잡이가 될 수 있을 것이라 생각된다. 리눅스의 구조와 동작들에 대해 친절한 설명과 함께 학습하고자 하는 이들에게 추천하는 바이다.

 

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

 

리눅스구조.jpg

 

 

 

"그림으로 배우는 리눅스 구조"는 리눅스의 복잡한 세계를 쉽고 재미있게 소개하는 책입니다. 이 책은 그림과 예제를 활용해 어려운 내용을 단순화하고, 이해하기 쉽게 설명해 줍니다. 프로세스 관리부터 메모리 관리, 가상화 기능까지 주요 개념들이 그림으로 시각적으로 표현되어 있습니다. 그래서 복잡한 이론을 더 잘 이해하고 기억할 수 있습니다.

실제 리눅스 시스템에서 활용할 수 있는 상황들을 예제로 들어 설명하므로, 단순히 개념만 알아가는 것이 아니라 실질적인 문제 해결 능력까지 향상시킬 수 있습니다. '처음 만나는 리눅스'라면 어렵다고 생각할 수도 있는 본격적인 내용도, 이 책과 함께라면 두려움을 떨쳐 버릴 수 있습니다. 초보자부터 중급 사용자까지 모든 분들이 리눅스의 세계를 체계적으로 탐험하며 실질적인 지식과 기술을 습득할 수 있습니다.

이 책은 리눅스 구조를 설명하기 위해 체계적으로 내용을 구성하고 있습니다.
첫 번째로, 기본적인 '리눅스 개요'를 시작으로 프로그램 및 프로세스, 커널, 시스템 콜 및 라이브러리에 대한 지식을 접하게 됩니다. 이를 통해 리눅스의 세계에 첫 발을 디딘다고 볼 수 있죠.
그 다음 단계에서는 '프로세스 관리'를 배웁니다. 여기서는 프로세서 생성과 종료 등의 기본적인 내용부터 시작해서 좀비 프로세서와 고아 프로세서 같은 특수 상황까지도 살펴보게 됩니다.
그 후 '메모리 관리' 파트에서 메모리 할당 방법과 가상 메모리 등에 대해 배우며, 시스템의 중추적인 부분을 이해할 수 있게 됩니다.
다음으로 진입하는 '장치 접근' 부분에서는 하드웨어 장치 접근 방법을 배우게 되며, 이 과정에서 디바이스 드라이버 개발에 필수적인 지식도 함께 습득하게 됩니다.
파일 시스템은 운영체제의 핵심 요소 중 하나입니다. 그래서 '파일 시스템' 파트에서 파일 접근 방법과 파일 시스템 구조를 자세히 알아보게 됩니다.
메모리 계층과 블록 계층은 성능 최적화와 데이터 처리 속도 향상에 큰 영향을 미칩니다. 그래서 다음 단계인 '메모리 계층', '블록 계층' 파트에서 각각의 구조와 작동 원칙에 대해 학습할 수 있습니다.
현재 IT 환경에서 매우 중요한 역할을 하는 가상화 기능과 컨테이너도 놓치지 않았습니다. 이들 주제를 다룬 파트에서 클라우드 환경에서의 리소스 관리에 필요한 지식을 얻습니다.
마지막으로, 'cgroup'과 '활용법' 파트에서는 리소스 제어 기법과 실제 환경에서 어떻게 적용할 수 있는지에 대해 배웁니다. 이를 통해 이론을 실전으로 전환하는 데 큰 도움이 됩니다.

이 책을 통해 크게 세 가지 가치를 얻을 수 있다고 생각합니다.
첫 번째로, 복잡한 '리눅스 시스템 이해'가 가능합니다. 책을 따라가며 학습하면서, 그동안 어려워 보였던 리눅스의 세계를 체계적으로 이해하고, 그 속에서 자유롭게 움직일 수 있는 능력을 기르게 됩니다.
두 번째로, '실용적인 기술'을 습득하는 것입니다. 이 책에서 파이썬과 Go 언어를 통해 직접 구현해 가면서 지식과 기술을 활용할 수 있습니다. 그래서 이론만 알고 있는 것이 아니라 실제 문제를 해결할 수 있는 능력까지 키울 수 있습니다.
마지막으로, '성능 최적화 및 안정성 향상'에 대한 방법을 배울 수 있습니다. 프로세스 관리부터 메모리 관리 등 다양한 주제에 대한 깊이 있는 이해를 바탕으로 시스템 성능 최적화와 안정성 향상에 필요한 전략과 방법들을 익힐 수 있습니다.
따라서 "그림으로 배우는 리눅스 구조"는 리눅스의 세계를 체계적으로 탐험하며 실질적인 지식과 기술, 그리고 최적화 전략까지 함께 습득할 수 있는 완벽한 가이드북입니다.

많은 사람들이 "그림으로 배우는 리눅스 구조"를 좋아할 것이라 확신합니다. 복잡한 리눅스 시스템의 구조와 원리를 그림과 예시를 통해 직관적으로 이해하고, 파이썬과 Go 언어로 간단한 프로그래밍을 해 가면서 깊이 이해할 수 있습니다.
클라우드 컴퓨팅 및 가상화와 연결된 현재 IT 세계에서 리눅스는 기본 소양이 되어 가고 있습니다. 이 책 '그림으로 배우는 리눅스 구조'는 리눅스 내부를 들여다보고 싶은 독자에게 마음의 불을 지피며, 그 불빛 아래 의문을 해소시켜 줄 등대가 되어줄 것입니다.

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<완독 후 느낀점>

 

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

 

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

 

저는 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 등 일부 도서는 인증이 제한됩니다.

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

닫기

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

자료실

최근 본 책0