공부용/Kernel Exploit Study

[Kernel Exploit] Basic Operating Systems (1)

What Operating Systems Do

 - OS는 유저가 보다 쉽게 시스템을 사용할 수 있도록 GUI와 같은 ease of use, good performance를 제공한다.

 - 여러 사용자가 공평하게 사용할 수 있도록 resource를 관리하고 program을 제어한다.

 - Mobile Devices는 resource를 적게 갖고 있는데, 이를 서버나 클라우드에 연결 해 resource를 보충한다.

 - Embedded System은 내장형 시스템으로 해당 디바이스를 제어한다. (공장 제어, 항공기, IoT 등에 사용)

 

Defining Operating Systems

 - Operating Systems는 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. (Wikipedia)

 

What is Kernel

 - 커널은 Operating Systems에서 핵심적인 부분을 담당하는 프로그램을 뜻한다. 커널은 Operating Systems에서 굉장히 민감한 부분을 다루고 있기 때문에 보안 관리가 매우 중요하다.

 

Computer System Organization

 - Computer System은 CPU, disk controller, USB controller, graphics adpater 등이 system bus로 연결되어 메모리에 정보를 전송한다.

 

Computer-System Operation

 - 프로그램이 실행 되려면 메모리로 로딩되어야 한다.

 - I/O Devices와 CPU는 개별적으로 움직인다.

 - Device 마다 독립적인 Device Controller가 존재하고 Controller 안에는 자신이 사용할 local buffer가 존재한다.

 - Device Driver는 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램이다. (Wikipedia)

 - CPU는 main memory와 local buffer 간에 data 이동을 담당한다.

 - CPU와 Device Controller는 상대적으로 속도 차이가 많이 나기 때문에 I/O가 일을 다 마치면 Interrurpt를 걸어 CPU가 일을 처리하게 한다.

 

Common Functions of Interrupts

 - Interrupt vector는 Interrupt를 구분하는 값이고 이를 이용해 service routines 값을 계산한다.

 - trap or exception는 software-generated Interrupt 뜻한다.

 

Interrupt Handling

 - Operating Systems는 Interrupt가 발생할 경우, 원래 갖고 있던 PC(program counter)와 레지스터 값을 저장해야 한다. Kernel Exploit에서 trap frame에 속하는 부분이다.

 

I/O Structure

 - System call은 System에서 지원하는 다양한 기능을 뜻한다. (Interrupt 처럼 처리)

 - Device-status table은 디바이스 상태를 저장하기 위한 테이블이다.

 

Stroage Structure

 - Main memory는 random access이며 volatile 이란 특징을 갖고 있다. 

 - Non-volatile memory(NVM)은 Non-volatile 이란 특징을 갖고 있다. (SSD가 여기에 포함)

 - HDD는 순차접근이 가능한 기억 장치이다. 가용 용량이 크다는 게 특징이다.

 

Stroage Hierarchy

 - Storage Hierarchy는 저장소 계층이란 뜻으로 CPU, register, cache, memory, ssd, hdd가 여기에 속한다.

 - Caching은 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. (Wikipedia) 그냥 한마디로 자주 사용하는 걸 위로 올리는 것을 뜻한다.

 

Direct Memory Access Structure

 - Direct Memory Access는 CPU의 중재 없이 메인 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템의 기능이다. 이로 인해 CPU의 부담을 줄여주게 된다.

 

Clustered Systems

 - 그냥 병렬 시스템을 뜻한다. ex) CPU의 4Core 8Threads

 - 이들은 Storage-Area Network(SAN)을 통해 stroage를 공유할 수 있다.

 - 즉, High-Performance Computing(HPC)이다.

 - 그러나 많은 시스템을 사용하기 때문에 충돌 방지를 위해 Distributed Lock Manager(DLM)을 필요로 한다. (동기화)