리눅스의 중요한 역할은 외부 장치를 조작하는 일이다. 

리눅스 같은 OS가 없으면 여러 개의 프로세스가 각각 디바이스를 조작하는 코드를 작성해야 합니다. 

이렇게 했을때의 단점은 아래와 같다. 

1. 모든 애플리케이션 개발자가 디바이스의 스펙을 상세히 알아야만 디바이스를 조작할 수 있다.

2. 개별 개발이므로 개발 비용이 커집니다.

3. 멀티 프로세스가 동시에 디바이스를 조작할 경우 예상 외의 동작이 발생 할 수 있다. 

 

위의 세 가지 단점 때문에 리눅스는 디바이스 드라이버를 통해 프로세스가 디바이스를 조작하도록 제공 한다. 

그리고 종류가 같으면 같은 인터페이스로 조작하도록 되어 있다. 

디바이스 조작 외에도 프로세스 관리 시스템, 프로세스 스케줄링, 메모리 관리 시스템 등을 수행한다. 

프로세스가 디바이스 드라이버를 포함한 커널이 제공하는 기능을 사용하려 할 때는 시스템 콜이라고 하는 특수한 처리를 통해 커널에 요청한다. 

 

이후 뒷 장에서는 아래와 같은 내용으로 책이 서술되어 있다. 

3장: 커널의 프로세스 생성, 파괴를 담당하는 프로세스 관리 시스템

4장: CPU 자원을 관리하는 프로세스 스케줄러

5장: 메모리 관리 시스템

6장: 기억장치 계층 

7장: 파일시스템

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

목차

Chapter 1. 컴퓨터 시스템의 개요

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

Chapter 3. 프로세스 관리

Chapter 4. 프로세스 스케줄러

Chapter 5. 메모리 관리

Chapter 6. 메모리 계층

Chapter 7. 파일시스템

Chapter 8. 저장 장치

 

+ Recent posts