알라딘

실습과 그림으로 배우는 리눅스 구조 - 개발자가 알아야 하는 OS와 하드웨어의 기초

다케우치 사토루 지음, 신준희 옮김 | 한빛미디어
  • 등록일2019-06-17
  • 파일포맷pdf
  • 파일크기0 K  
  • 지원기기아이폰, 아이패드, 안드로이드, 태블릿, PC
  • 평점 평점점 평가없음

책소개

[개발자 레벨업 프로젝트] OS의 구조를 들여다 보자!
스마트폰에서 클라우드까지, IT 산업 곳곳에서 리눅스가 보입니다. 이렇게 산업과 생활 전반에 걸쳐 사용하는 OS는 어떻게 움직일까요?
이 책은 컴퓨터 시스템을 구성하는 운영체제를, 그중 가장 많이 사용하는 리눅스를 예로 들어 설명했습니다. 단순히 읽고 넘어가지 않고 스스로 실습해보며 동작 원리를 익힐 수 있으며, 프로그래머, 시스템 설계자 등 대부분의 개발자에게 꼭 필요한 지식을 담았습니다.
이 책을 통해 소프트웨어와 하드웨어의 상호작용을 이해하세요. 그다음, 책에서 배운 운영체제 전체 구성, 프로세스, 메모리 등에 대한 이해를 바탕으로 프로그램을 개발한다면 소프트웨어 신뢰도를 확보하는 동시에 성능 최적화까지도 도전할 수 있습니다.

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

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

이 책에서는 컴퓨터 시스템을 구성하는 OS(운영체제, Operating System)나 하드웨어를 직접 다루며 어떻게 작동하는지를 알려줍니다. 실습을 진행하는 환경은 우분투 리눅스 16.04/x86_64입니다.
애플리케이션 개발자, 시스템 설계자, 지금 서비스를 운영하거나 벤더의 서버 엔지니어라면 이 책을 한 번 읽어 보길 권합니다. 단, 리눅스의 기본 명령어 정도는 아셔야 합니다.

책을 통해 OS나 하드웨어에 대한 이해도를 높이고 나면 다음과 같은 일이 가능합니다.
● 하드웨어 특성을 고려하여 소프트웨어를 개발할 수 있습니다.
● 시스템 설계 시 기준으로 삼을 지표가 무엇인지 알 수 있습니다.
● OS나 하드웨어 관련 오류를 대처할 수 있습니다.

저자소개

2005년부터 2017년까지 후지츠(주)에서 엔터프라이즈용 리눅스, 그중 특히 커널 개발과 서포트 일을 주로 했다. 2017년부터는 사이보우즈(주)에서 기술고문으로 일하고 있다.

목차

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의 동작 방식
____정리

____찾아보기

한줄 서평