나에게 필요한 지식과 기술을 검색해 보세요.

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

개발자가 알아야 하는 OS와 하드웨어의 기초

지은이

다케우치 사토루

옮긴이

신준희

출간일

2019.02.20

레벨

초급

평점

4.4(19명)

정가

24,000

판매가

21,600

총 결제 금액

10%

21,600

적립 예정

1,080P

쪽수

304쪽

ISBN

9791162241523

브랜드

한빛미디어

<개발자 레벨업 프로젝트> OS의 구조를 들여다 보자!

 

스마트폰에서 클라우드까지, IT 산업 곳곳에서 리눅스가 보입니다. 이렇게 산업과 생활 전반에 걸쳐 사용하는 OS는 어떻게 움직일까요?

이 책은 컴퓨터 시스템을 구성하는 운영체제를, 그중 가장 많이 사용하는 리눅스를 예로 들어 설명했습니다. 단순히 읽고 넘어가지 않고 스스로 실습해보며 동작 원리를 익힐 수 있으며, 프로그래머, 시스템 설계자 등 대부분의 개발자에게 꼭 필요한 지식을 담았습니다.

이 책을 통해 소프트웨어와 하드웨어의 상호작용을 이해하세요. 그다음, 책에서 배운 운영체제 전체 구성, 프로세스, 메모리 등에 대한 이해를 바탕으로 프로그램을 개발한다면 소프트웨어 신뢰도를 확보하는 동시에 성능 최적화까지도 도전할 수 있습니다.

 

 

누구를 위한 책인가요?

 

현업에서 OS나 하드웨어 구조를 알고 프로그래밍 해야 하는 개발자와 리눅스 동작과 구조에 관심있는 학생, 벤더의 서버 엔지니어라면 이 책이 꼭 필요합니다.

 

 

[도서 특징]

 

따라하며 OS의 작동방식을 이해해봅시다.

이 책에서는 컴퓨터 시스템을 구성하는 OS(운영체제, Operating System)나 하드웨어를 직접 다루며 어떻게 작동하는지를 알려줍니다. 실습을 진행하는 환경은 우분투 리눅스 16.04/x86_64입니다.

애플리케이션 개발자, 시스템 설계자, 지금 서비스를 운영하거나 벤더의 서버 엔지니어라면 이 책을 한 번 읽어 보길 권합니다. 단, 리눅스의 기본 명령어 정도는 아셔야 합니다.

 

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

  • 하드웨어 특성을 고려하여 소프트웨어를 개발할 수 있습니다.
  • 시스템 설계 시 기준으로 삼을 지표가 무엇인지 알 수 있습니다.
  • OS나 하드웨어 관련 오류를 대처할 수 있습니다.

 

 

[추천사]

 

저자의 교육법은 매우 독특하고 늘 풍부한 도표와 설명을 더한 테스트 데이터를 그림으로 보여줍니다. 이런 그림과 데이터는 구체적이고도 간결하게 상황을 잘 설명해 이해를 돕습니다. 예를 들어 성능을 내기 위해 프로그램을 작성할 때 필수인 캐시 메모리를 설명할 때에는 동작 원리를 그림으로 나타낼 뿐만 아니라, 메모리와 캐시 메모리의 구체적인 속도 차이를 나타내는 그래프를 이용하기도 합니다. 이런 독특한 교육 방법으로 저자에게 배운 덕에 신입사원들도 프로그램을 짜면서 프로그램의 품질까지도 고려하는 개발자로 성장했습니다.

저자

목차

CHAPTER 1 컴퓨터 시스템의 개요 

 

CHAPTER 2 사용자 모드로 구현되는 기능

시스템 콜 

시스템 콜의 wrapper 함수 

표준 C 라이브러리 

 

CHAPTER 3 프로세스 관리

프로세스 생성의 목적 

fork() 함수 

execve() 함수 

종료 처리 

 

CHAPTER 4 프로세스 스케줄러

테스트 프로그램의 사양 

테스트 프로그램의 구현 

첫 번째 실험 

고찰 

컨텍스트 스위치 

프로세스의 상태 

상태 변환 

idle 상태 

여러 가지 상태 변환 

스루풋과 레이턴시 

실제 시스템 

논리 CPU가 여러 개일 때 스케줄링 

실험 방법 

두 번째 실험 

스루풋과 레이턴시 

고찰 

경과 시간과 사용 시간 

슬립을 사용하는 프로세스 

실제 프로세스 

우선순위 변경 

 

CHAPTER 5 메모리 관리

메모리의 통계 정보 

메모리 부족 

단순한 메모리 할당 

가상 메모리 

페이지 테이블 

실험 

프로세스에 메모리를 할당할 때 

실험 

고수준 레벨에서의 메모리 할당 

해결법 

가상 메모리의 응용 

파일 맵 

디맨드 페이징 

메모리 부족 

스왑 

계층형 페이지 테이블 

Huge Page 

 

CHAPTER 6 메모리 계층

캐시 메모리 

Translation Lookaside Buffer 

페이지 캐시 

동기화된 쓰기 

버퍼 캐시 

파일의 읽기 테스트 

파일의 쓰기 테스트 

튜닝 파라미터 

정리 

하이퍼스레드 

 

CHAPTER 7 파일시스템

리눅스의 파일시스템 

데이터와 메타데이터 

용량 제한 

파일시스템이 깨진 경우 

저널링 

Copy on Write 

그래도 깨지는 것을 막을 수 없는 경우 

파일시스템의 깨짐에 대한 대책 

파일의 종류 

캐릭터 장치 

블록 장치 

여러 가지 파일시스템 

메모리를 기반으로 한 파일시스템 

네트워크 파일시스템 

가상 파일시스템 

Btrfs 

 

CHAPTER 8 저장 장치

HDD의 데이터 읽기 쓰기의 동작 방식 

HDD의 성능 특성 

HDD의 테스트 

테스트 프로그램 

블록 장치 계층 

I/O 스케줄러 

미리 읽기 

테스트 

시퀀셜 접근 

랜덤 접근 

SSD의 동작 방식 

정리 

 

찾아보기

리뷰

전체 평점

4.4

오탈자

  • 종이책1802

    표기 오류

    마지막 줄

    2021-08-31
  • 종이책61

    표기 오류

    최하단

    2019-07-15
  • 종이책1681

    표기 오류

    코드 하단의 목록

    2019-05-08
  • 종이책1661

    표기 오류

    상단

    2019-04-22
  • 종이책1651

    기술 오류

    그림 5-38 내부

    2019-04-22

24,000

10%

21,600