diff --git a/_drafts/2024-04-01-operating-system-intro.md b/_drafts/2024-04-01-operating-system-intro.md
deleted file mode 100644
index 50306c2..0000000
--- a/_drafts/2024-04-01-operating-system-intro.md
+++ /dev/null
@@ -1,142 +0,0 @@
----
-title: "[운영체제] 운영체제 개요"
-date: 2024-04-01 12:24:00 +0900
-categories: [Computer-Science, 운영체제]
-tags: ['OS']
----
-
-
-## 1. 운영체제란?
-
-**운영체제(OS, Operating System)**란 통일된 전체(System)을 운용해 나간다(Operating)는 의미로, 하드웨어(HW, Hardware)를 소프트웨어(SW, Software)로 추상화(Abstraction)[^abstract]한 소프트웨어이다.
-
-### OS의 핵심 기능
-
-- 프로세스 관리
-- 메모리 관리
-- 입출력 및 파일 관리
-
-### 관련된 문제
-
-OS는 **여러 종류의 SW를 동시에 작동하게 하는 문제**를 해결하는 과정에서 등장하였으며, OS를 개발하기 위해서는 다음과 같은 문제를 해결해야 했다.
-
-- 누가, 언제, 얼마나 CPU를 사용해야 하는가?
- 1. 프로세스 작동 시기는 언제인가?
- - 프로세스는 어떻게 교체하는가?
- 2. 프로세스의 메모리 로드 관리는 어떻게 하는가?
- 3. CPU와 메모리를 어떻게 연결하는가?
- 4. 내려간 프로세스는 어떻게 저장하는가?
-
-그리고 아래와 같은 여러 가지 파생 문제가 생겨났다.
-- 프로세스 동기화
-- 교착상태, 기아상태
-- 저장장치 관리
-- 분산 시스템, 가상화 시스템
-
-OS의 개념은 HW를 관리하는 소프트웨어에 국한된 것이 아니며, 컴퓨터공학에서 무엇인가를 **관리**하려 할 때 광범위하게 적용될 수 있다. 예를 들어, SW가 무수한 자원을 관리할 수도 있는데, 이 때 OS의 개념이 적용될 수 있다.
-
-[^abstract]: 추상화(abstraction)는 컴퓨터공학의 목표 중 하나이다.
-
-
-## 2. 운영체제 소개
-
-### 운영체제란?
-
-1. 가장 먼저 실행되는 소프트웨어이며,
-2. 저장장치의 특정 영역에 저장되어 있다.
-
-### 운영체제의 역할?
-
-1. 컴퓨터 자원을 독점하고 관리하는 소프트웨어이며,
-2. 컴퓨터 자원을 추상화하여 인터페이스를 제공한다.
-
-### 운영체제의 목표
-
-자원관리를 **'잘'** 하는 것으로, **효율성, 안정성, 확장 가능성, 편리성**을 갖추어야 한다.
-
-### 운영체제가 없다면?
-
-- 추가적인 장치연결과 SW 설치가 불가능
-- 사용 불편, 대응 어려움
- - 공학용 계산기, 펌웨어 등
- - 회로 수준에서 구워져 나온 범위 내에서 작동하는 기기들
-
-그러나, 운영체제가 없다는 것이 꼭 나쁜 것만은 아니다.
-- 특수 하드웨어를 조작하는 것에는 적합할 수 있음
-- 확장성이 결여되었다는 것은 보안성이 증가했다는 것과 같을 수 있음
- - 불편한 인터페이스라는 것: 비전문가의 접근에 대해 보호받는다는 것을 의미
-
-
-## 3. 운영체제 역사
-
-### 고정 프로그램 방식(Fixed Program Computer)
-
-- 하나의 기계란, 하나의 기능을 의미
-- 기능 변경이란, 기계를 새로 만듦을 의미
-- 하드 와이어링 사용
-- 회로 수정의 조금의 편의를 제공해주는 수준
-
-### 일괄 작업 시스템(Batch-Processing System)
-
-내장 프로그래밍 방식(Stored Program Computer)
-- Reader: 천공 카드 / Printer: 라인 프린터
-- 전문 연산장치(CPU)와 로직 저장장치의 분리
-- 폰 노이만 구조
-- 운영체제 기능 일부(장치 관리) 제공
-- 작업을 한번에 1개만 작업 가능
- - 중간에 입력값 제어하거나, 결과 확인 불가능
-
-### 대화형 시스템(Interacive System)
-
-- 모니터 및 키보드 등장
-- 프로그램 실행 도죽 사용자 입력 받기 가능
- - 하나의 장치에서 어떻게 여러 개 작업하는 것인가? → 다중 프로그래밍
-
-### 다중 프로그래밍
-
-- 하나의 CPU로 여러 작업 동시 실행
-- 동시에 실행하는 것처럼 보이게 함
-- 프로그램 실행 중 I/O 발생 → 다른 프로그램 실행
-
-
-## 4. 운영체제가 하는 일
-
-- 프로세스 관리
-- 메모리 관리
-- 파일 시스템 관리
-- 통계 등 기타 관리
-- 네트워크 관리 (바깥 자원 관리)
-- 보안 관리
-
-운영체제가 하는 일은 필요시 지속적으로 확장되어 왔다.
-
-
-
-## 5. 운영체제 종류
-### P2P(Peer-to-Peer) 시스템
-
-- 특정 서버의 과부화를 해결
- → 단일 장애점 (Single point of failure)
-- 서버 고치지 않고, 사용자를 직접 연결함
-- 그리드 컴퓨팅, 클라우드 컴퓨팅, 사물 인터넷, 네트워크 OS, 분산 운영체제 동기화(synchronization), 협의(consensus)
-
-### 가상화 시스템(Virtualization)
-
-OS는 하드웨어에 대한 추상화: 컴퓨터도 추상화할 수 있다.
-- 컴퓨터 자체를 소프트웨어로 구현한 것
-- 독립공간(sandbox) 지원
-- Hypervisor(Virtual Machine Manager), Container(Docker)
-
-### 모바일 운영체제
-
-- 모바일 전화기나 스마트폰 등 휴대 장치에서 실행됨
-- Network, Power to performance ratio(전성비) 추구
-
-### 임베디드 운엉체제
-- 임베디드 컴퓨터에서 사용됨
-
-### 실시간 운영체제
-
-실시간 애플리케이션 또는 태스크를 정해진 데드라인(deadline) 시간 이내에 처리되도록 보장하는 것을 목표로 한다.
-- 처리시간 예측 가능하고, 보장함 (Timing guarantee)
-- pSOS, VxWorks, VRTX, RT-Linux, Lynx
\ No newline at end of file
diff --git a/_drafts/2024-04-01-os_structure.md b/_drafts/2024-04-01-os_structure.md
deleted file mode 100644
index f69fee2..0000000
--- a/_drafts/2024-04-01-os_structure.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: "[운영체제] 운영체제 구조"
-date: 2024-04-01 15:37:00 +0900
-categories: [Computer-Science, 운영체제]
-tags: ['OS']
----
-
-
-## 1. 운영체제의 구조
-
-운영체제는 크게 2(+1) 부분으로 분류되는 구조를 가진다.
-
-### 커널(Kernel)
-
-- 운영체제의 핵심
-- 좁은 의미의 OS
-- OS 핵십 기능(프로세스, 메모리, 저장장치의 관리)
-- 응용 소프트웨어는 하드웨어 자원 이용하려면 커널에 요청해야 함
-
-### 인터페이스(Interface)
-
-- 커널에 명령을 전달하고, 실행 결과를 알려 줌
-- API, System Call, Shell, GUI
-
-### (+ Device driver)
-
-- 커널과 하드웨어의 연결법을 서술
-- 운영체제의 부분일 수도, 아닐 수도 있음 (정의마다 다름)
-
-
-
-## 2. 커널과 시스템 콜
-커널이 하는 일은 운영체제가 하는 일이다. 따라서 외부 노출을 방지하기 위해 User-mode, Kernel-mode가 존재한다. 모드가 스위칭될 때, CPU 차원에서 작동모드가 완전히 바뀐다.
\ No newline at end of file
diff --git "a/_posts/Computer-Science/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro.md" "b/_posts/Computer-Science/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro.md"
new file mode 100644
index 0000000..569b0ad
--- /dev/null
+++ "b/_posts/Computer-Science/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro.md"
@@ -0,0 +1,182 @@
+---
+title: "[운영체제] 운영체제 개요"
+date: 2024-04-01 12:24:00 +0900
+categories: [Computer-Science, 운영체제]
+tags: ['OS']
+---
+{% assign img_path = "/assets/img/posts/운영체제/2024-04-01-operating-system-intro" %}
+
+
+
+## 1. 운영체제란?
+
+**운영체제(OS, Operating System)**란 조직되어 통일된 전체(System)을 관리/운용해 나간다(Operating)는 의미로, 하드웨어(HW, Hardware)를 소프트웨어(SW, Software)로 추상화(Abstraction)[^abstract]한 소프트웨어이다.
+
+### 1.1. OS의 핵심 기능
+
+- 프로세스 관리
+- 메모리 관리
+- 입출력 및 파일 관리
+
+### 1.2. 관련된 문제
+
+OS는 **여러 종류의 SW를 동시에 작동하게 하는 문제**를 해결하는 과정에서 등장하였으며, OS를 개발하기 위해서는 다음과 같은 문제를 해결해야 했다.
+
+- 누가, 언제, 얼마나 CPU를 사용해야 하는가?
+ 1. 프로세스 작동 시기는 언제인가?
+ - 프로세스는 어떻게 교체하는가?
+ 2. 프로세스의 메모리 로드 관리는 어떻게 하는가?
+ 3. CPU와 메모리를 어떻게 연결하는가?
+ 4. 내려간 프로세스는 어떻게 저장하는가?
+
+그리고 아래와 같은 여러 가지 파생 문제가 생겨났다.
+- 프로세스 동기화
+- 교착상태, 기아상태
+- 저장장치 관리
+- 분산 시스템, 가상화 시스템
+
+OS의 개념은 HW를 관리하는 소프트웨어에 국한된 것이 아니며, 컴퓨터공학에서 무엇인가를 **관리**하려 할 때 광범위하게 적용될 수 있다. 예를 들어, SW가 무수한 자원을 관리할 수도 있는데, 이 때 OS의 개념이 적용될 수 있다.
+
+[^abstract]: 추상화(abstraction)는 컴퓨터공학의 목표 중 하나이다.
+
+
+
+## 2. 운영체제 소개
+
+### 2.1. 운영체제란?
+
+1. **가장 먼저 실행**되는 소프트웨어
+1. **컴퓨터 자원을 독점/관리**하는 소프트웨어
+1. 저장장치의 **특정 영역에 저장**되어 있음
+1. 컴퓨터 자원을 **추상화**하여 **인터페이스를 제공**
+
+### 2.2. 운영체제의 목표
+
+자원관리를 **'잘'** 하기 위한 것으로, 아래의 기능을 갖춰야 한다.
+- 효율성(Efficiency)
+- 안정성(Robustness, Security)
+- 확장 가능성(Scalability, Extensibility, Portability)
+- 편리성(Usability, Interactivity)
+
+![운영체제 역할과 목표]({{ img_path }}/2.2. 운영체제 역할과 목표.png){: width='400'}
+
+### 2.3. 운영체제 기능, 하는 일
+
+- **보안** / **네트워크** / **장치** / **프로세스** / **메모리** / **파일시스템** 관리
+- 그리고 **기타 관리** (사용자 계정, 통계, 오류 발견/대응 등)
+
+운영체제의 기능과 하는 일은 필요 시 지속적으로 확장되어 왔다.
+
+![운영체제 기능]({{ img_path }}/2.3. 운영체제 기능.png)
+
+- 초기에는 **장치 관리** 기능밖에 존재하지 않았음
+- 그러다 여러 프로그램을 동시에 돌려야 되자 **프로세스 관리** 기능이 추가되고,
+- 메모리가 한정되었으므로 **메모리 관리 기능**이,
+- 작업 보관의 필요성이 생겨 **파일 시스템 관리 기능**이,
+- 이 모든 작업이 이상없이 돌아가는지 확인하기 위해 **통계 등 기타 관리 기능**이 생겨남
+- 그러다 네트워크가 등장하고, 장치 밖의 자원 관리 위해 **네트워크 관리 기능**이 생기고,
+- 외부 사용자 신뢰성 확보 위해 **보안 관리 기능**이,
+- 여러 사용자의 관리를 위해 **사용자 계정 관리** 기능 등이 생겨나게 되었음
+
+### 2.4. 운영체제가 없다면?
+
+**작동은 가능**하다. 하지만 **한정된 기능**과 **제어가 쉽지 않다는 것** 뿐이다.
+- 추가적인 장치연결 및 SW 설치가 불가능
+- 사용 불편, 대응 어려움
+ - 공학용 계산기, 펌웨어 등
+ - 회로 수준에서 구워져 나온 범위 내에서 작동하는 기기들
+
+> 운영체제가 없다는 것이 **꼭 나쁜 것은 아닐 수도 있다!**
+> - **특수 하드웨어를 조작**하는 것에는 적합할 가능성 有
+> - 확장성이 결여되었다는 것 → **보안성 증가**했다는 것일 수도...
+> - 불편한 인터페이스라는 것 → **비전문가 접근에 대해 보호**받는다는 것
+{: .prompt-info}
+
+
+
+## 3. 운영체제 역사
+
+### 3.1. 고정 프로그램 방식(Fixed Program Computer)
+
+- 하나의 기계 = **하나의 기능**을 의미
+- 기능 변경 = **기계를 새로 만듦**을 의미
+- 하드 와이어링 사용
+- 회로 수정의 조금의 편의를 제공해주는 수준
+
+### 3.2. 일괄 작업 시스템(Batch-Processing System)
+
+**= 내장 프로그래밍 방식(Stored Program Computer)**
+
+- Reader: 천공 카드 / Printer: 라인 프린터였음
+- 전문 연산장치(CPU)와 로직 저장장치(RAM)의 분리
+ - 폰 노이만 구조
+- 운영체제 기능 일부(**장치 관리**) 제공
+- 작업을 **한번에 1개**만 처리 가능
+ - 중간에 입력값 제어하거나, 결과 확인 불가능
+
+![일괄 작업 시스템]({{ img_path }}/3.2. 일괄 작업 시스템.png){: width='500'}
+
+### 3.3. 대화형 시스템(Interacive System)
+
+- 모니터/키보드 등장
+- 프로그램 실행 도중 사용자 입력 가능
+ - 하나의 장치에서 어떻게 여러 개 작업하는 것인가? → 다중 프로그래밍
+
+![대화형 시스템]({{ img_path }}/3.3. 대화형 시스템.png){: width='500'}
+
+### 3.4. 다중 프로그래밍
+
+- 하나의 CPU로 여러 작업 동시 실행
+ - CPU사용시간을 각 작업에 분할 할당, 동시에 실행하는 것처럼 보이게 함
+- 프로그램 실행 중 I/O 발생 → 다른 프로그램 실행
+- 오늘날 대부분의 시스템에서 채택
+
+![다중 프로그래밍]({{ img_path }}/3.4. 다중 프로그래밍.png)
+
+### 3.5. 요약
+
+|구분|시기 |주요 기술 |특징
+|----|------------|---------------------|-------------------------------------------
+|0기|1940년대 |없음 |진공관 사용
+|1기|1950년대 |카드 리더, 라인프린터|일괄 작업 시스템
운영체제의 등장
+|2기|1960년대 |키보드, 모니터 |대화형 시스템
+|3기|1960년대 초반|C언어 |다중 프로그래밍 기술 개발
시분할 시스템
+|4기|1970년대 후반|PC |개인용 컴퓨터의 등장
분산 시스템
+|5기|1990년대 |웹 |클라이언트/서버 시스템
+|6기|2000년대 |스마트폰 |P2P 시스템
그리드 컴퓨팅
클라우드 컴퓨팅
사물 인터넷
+
+## 4. 일괄 처리 시스템 VS 다중 프로그래밍
+
+![일괄 처리 시스템 VS 다중 프로그래밍]({{ img_path }}/4. 일괄 처리 시스템 VS 다중 프로그래밍.png)
+
+
+
+## 5. 기타 시스템
+### 5.1. P2P(Peer-to-Peer) 시스템
+
+- **특정 서버의 과부화**를 해결
+ - 단일 장애점 (Single point of failure)
+- 서버 고치지 않고, 사용자를 직접 연결함
+- **그리드 컴퓨팅**, **클라우드 컴퓨팅**, **사물 인터넷**, 네트워크 OS, 분산 운영체제 동기화(synchronization), 협의(consensus)
+
+### 5.2. 가상화 시스템(Virtualization)
+
+OS는 하드웨어에 대한 추상화: 컴퓨터도 추상화할 수 있다.
+- 컴**퓨터 자체를 소프트웨어로 구현한 것**
+- 독립공간(sandbox) 지원
+- Hypervisor(Virtual Machine Manager), Container(Docker)
+
+### 5.3. 모바일 운영체제
+
+- 모바일 전화기나 스마트폰 등 휴대 장치에서 실행됨
+- Network, Power to performance ratio(**전성비**) 추구
+
+### 5.4. 임베디드 운엉체제
+
+- 임베디드 컴퓨터에서 사용됨
+
+### 5.5. 실시간 운영체제
+
+실시간 애플리케이션 또는 태스크를 **정해진 데드라인(deadline) 시간 이내에 처리되도록 보장**하는 것을 목표로 한다.
+- 처리시간 예측 가능하고, 보장함 (Timing guarantee)
+- pSOS, VxWorks, VRTX, RT-Linux, Lynx
\ No newline at end of file
diff --git "a/_posts/Computer-Science/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure.md" "b/_posts/Computer-Science/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure.md"
new file mode 100644
index 0000000..08e99c9
--- /dev/null
+++ "b/_posts/Computer-Science/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure.md"
@@ -0,0 +1,193 @@
+---
+title: "[운영체제] 운영체제 구조"
+date: 2024-04-01 15:37:00 +0900
+categories: [Computer-Science, 운영체제]
+tags: ['OS']
+---
+{% assign img_path = "/assets/img/posts/운영체제/2024-04-01-os_structure" %}
+
+
+## 1. 운영체제의 구조
+
+운영체제는 크게 나누어 **2(+1) 구조**로 볼 수 있다.
+
+![운영체제의 구조]({{ img_path }}/1. 운영체제의 구조.png){: width="300"}
+
+### 1.1. 커널(Kernel)
+
+- **운영체제의 핵심**
+- **좁은 의미**의 OS
+- OS 핵심 기능(프로세스 / 메모리 / 저장장치 관리 등)의 집합
+- 응용 SW는 HW 자원 이용하기 위해 커널에 요청해야 함
+
+### 1.2. 인터페이스(Interface)
+
+- **커널에 명령 전달**, 실행 결과 알려 줌
+- API, System Call, Shell, GUI
+
+### 1.3. (+ Device driver)
+
+- 운영체제의 한 부분일 수도, 아닐 수도 있음 (정의마다 다름)
+- 커널과 하드웨어를 연결시킴
+
+
+
+## 2. 커널과 시스템 콜
+
+> **커널이 하는 일**은 곧 **운영체제가 하는 일**이다.
+{: .prompt-danger }
+
+외부로 직접 노출이 되는 것을 방지하기 위해, **User-mode**와 **Kernel-mode**를 분리하였다. 모드가 스위칭될 때 CPU 차원에서 작동모드가 완전히 바뀐다.
+
+![커널과 시스템 콜]({{ img_path }}/2. 커널과 시스템 콜.png){: width='400'}
+
+### 2.1. System Call(syscall)
+
+**시스템 콜(syscall)**이란 커널이 자신의 기능을 함수 형태로 제공해주는 것이다. 커널을 보호하기 위해 아래 작업을 수행한다.
+
+- 입력값의 검증
+- 권한의 확인
+- 작업 순서 제어
+
+API를 통해 만들어진 프로그램들은 최종적으로 이 **syscall**을 호출하는 형태가 된다.
+
+![시스템 콜]({{ img_path }}/2.1. 시스템 콜.png){: width='500'}
+
+![시스템 콜 2]({{ img_path }}/2.1. 시스템 콜 2.png){: width='500'}
+
+
+
+## 3. 눈으로 보는 syscall
+
+```c
+#include
+
+int main() {
+ printf("Hello Syscall!!\n");
+ return 0;
+}
+```
+{: file="sysc.c"}
+
+위와 같은 `sysc.c`{: .filepath} 파일을 생성하고 리눅스 환경에서 아래 명령어를 실행한다.
+
+```terminal
+gcc sysc.c
+strace -o sysc.log ./a.out
+cat sysc.log
+```
+
+출력되는 로그를 살펴보면, 최종 출력(printf)은 syscall인 **write 함수**에 의해 수행됨을 알 수 있다. 파이썬이라 할지라도, 콘솔에 출력하기 위한 최종 방법은 **write 함수**이다. 다만 strace 로그가 훨씬 길다(= 파이썬이 느린 이유)
+
+`strace -T option` 을 이용해 syscall별 소요 시간을 출력할 수 있다.
+
+
+
+## 4. 시스템콜의 호출: Interface
+
+- OS가 제공하는 **Library** 또는 **API(Application Programming Interface)**
+ - xNIX: POSIX
+ - Windows: Win32 API
+- 대부분의 xNIC 앱들은 `libc(glibc)` 링킹해서 사용
+ - Windows: `kernel32.dll` (redirect to → `ntdll.dll`)
+- 확인: `ldd` 명령어
+ - `libc.so.6`: 표준 C 라이브러리
+ - `a.out`, `echo`, `vim`, 심지어 python까지 모두 `libc` 사용
+ - 내부적으론 표준 C 라이브러리 사용한다는 의미이다.
+
+### 4.1. 시스템콜의 Assembly 코드 확인
+
+- `objdump` 명령어를 이용함
+
+```terminal
+objdump -M intel --disassemble=__write /lib/x86_64-linux-gnu/libc.so.6
+```
+- `-M intel`: Intel syntax로 출력
+- `--disassemble=__write`: write 함수만 출력
+
+---
+
+> 시스템콜은 일반 함수와는 다르게 언어에서 직접 호출이 불가능하며, 오직 CPU에 의해서만 호출됨
+{: .prompt-warning}
+
+- `eax`에 호출하고자 하는 syscall 번호 입력(OS 내부에 indexing 되어있음)
+- syscall 명령 실행 → **해당 syscall 호출**함과 동시에 **CPU는 kernel 모드로 전환**된다.
+
+![syscall_assembly]({{ img_path }}/4.1. syscall_assembly.png){: width='500'}
+
+- `linux/arch/x86/entry/syscalls/syscall_64.tbl
+`{: .filepath} 를 열어보면 아래 그림과 같이 syscall의 indexing을 확인할 수 있다.
+
+![syscalls]({{ img_path }}/4.1. syscalls.png)
+
+
+
+## 5. 디바이스 드라이버
+
+커널과 하드웨어 그 중간 어딘가에 위치한다.
+
+- **API** → User-Level에 대한 인터페이스
+- **디바이스 드라이버** → 하드웨어에 대한 인터페이스
+- 하드웨어와 직접 연결되며, 신호에 대한 약속을 정하는 것
+ - OS가 그 기준을 정의
+
+![디바이스 드라이버]({{ img_path }}/5. 디바이스 드라이버.png)
+
+
+
+## 6. 커널의 형태
+
+- 어떻게 설계하느냐에 따라 모양이 조금씩 달라짐
+- 현대에서는 **단일형 커널**과 **계층형 커널**을 하이브리드로 사용하기도 한다.
+- 종류: **단일형 커널**, **계층형 커널**, **마이크로 커널**
+
+### 6.1. 단일형 커널
+
+- **초창기 구조**
+- 커널의 모든 기능이 한 덩어리로 되어 있음
+ - 마치 main 함수에 모든 코드가 들어있는 느낌
+
+![단일형 커널]({{ img_path }}/6.1. 단일형 커널.png){: width='400'}
+
+### 6.2. 계층형 커널
+
+- **대부분의 구조**
+- 비슷한 기능을 가진 모듈별로 계층을 만듦 → Kernel stack
+
+![계층형 커널]({{ img_path }}/6.2. 계층형 커널.png){: width='400'}
+
+### 6.3. 마이크로 커널
+
+- 커널은 **아주 기본적 기능**만 제공
+- 대부분의 기능은 User-level로 이식, 프로세스간 통신으로 시스템 운영
+
+![마이크로 커널]({{ img_path }}/6.3. 마이크로 커널.png){: width='400'}
+
+
+
+## 7. 가상머신
+
+![가상머신]({{ img_path }}/7. 가상머신.png){: width='400'}
+
+OS마다 제공하는 **API/syscall**의 형태가 다르기 때문에, OS가 다르면 프로그램 호환이 안 되는 문제가 발생했다. 이런 문제를 해결하기 위해 등장한 것이 **가상머신**으로, **OS**와 **응용 프로그램** 사이에서 작동한다.
+
+- OS간 이식성 증가 → 하나의 프로그램, 다양한 환경 지원
+- 일종의 API 호환 레이어
+- 예시
+ - Java JVM
+ - .NET Framework
+ - Python
+ - LLVM 등
+
+---
+
+가상머신은 **가상화(Virtualization)**와 다른 듯 하지만, 같은 개념이다.
+
+> 무엇인가를 "에뮬레이션" 하는 것이라면 어떤 SW이든 가상머신이라 할 수 있다.
+{: .prompt-info}
+
+- **에뮬레이션**: 대상이 되는 sys를 다른 sys로 구현/재구현한 것
+- **시뮬레이션**: 대상이 되는 sys를 추상화한 것(Output만 모방)
+- 공통점: 실제 HW를 사용할 필요 없이 작업 처리 환경 제공
+
+Virtualization의 가상머신은 **컴퓨터 HW 시스템을 SW로 구현한 것**이고, 여기서의 가상머신은 **특정 플랫폼의 API 시스템을 SW로 구현한 것**이라는 차이점이 있을 뿐이다.
\ No newline at end of file
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/2.2. \354\232\264\354\230\201\354\262\264\354\240\234 \354\227\255\355\225\240\352\263\274 \353\252\251\355\221\234.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/2.2. \354\232\264\354\230\201\354\262\264\354\240\234 \354\227\255\355\225\240\352\263\274 \353\252\251\355\221\234.png"
new file mode 100644
index 0000000..954c577
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/2.2. \354\232\264\354\230\201\354\262\264\354\240\234 \354\227\255\355\225\240\352\263\274 \353\252\251\355\221\234.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/2.3. \354\232\264\354\230\201\354\262\264\354\240\234 \352\270\260\353\212\245.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/2.3. \354\232\264\354\230\201\354\262\264\354\240\234 \352\270\260\353\212\245.png"
new file mode 100644
index 0000000..579774b
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/2.3. \354\232\264\354\230\201\354\262\264\354\240\234 \352\270\260\353\212\245.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.2. \354\235\274\352\264\204 \354\236\221\354\227\205 \354\213\234\354\212\244\355\205\234.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.2. \354\235\274\352\264\204 \354\236\221\354\227\205 \354\213\234\354\212\244\355\205\234.png"
new file mode 100644
index 0000000..4fb4dbe
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.2. \354\235\274\352\264\204 \354\236\221\354\227\205 \354\213\234\354\212\244\355\205\234.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.3. \353\214\200\355\231\224\355\230\225 \354\213\234\354\212\244\355\205\234.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.3. \353\214\200\355\231\224\355\230\225 \354\213\234\354\212\244\355\205\234.png"
new file mode 100644
index 0000000..fe3f63f
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.3. \353\214\200\355\231\224\355\230\225 \354\213\234\354\212\244\355\205\234.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.4. \353\213\244\354\244\221 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.4. \353\213\244\354\244\221 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215.png"
new file mode 100644
index 0000000..00b0315
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/3.4. \353\213\244\354\244\221 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/4. \354\235\274\352\264\204 \354\262\230\353\246\254 \354\213\234\354\212\244\355\205\234 VS \353\213\244\354\244\221 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/4. \354\235\274\352\264\204 \354\262\230\353\246\254 \354\213\234\354\212\244\355\205\234 VS \353\213\244\354\244\221 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215.png"
new file mode 100644
index 0000000..b2dd235
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-operating-system-intro/4. \354\235\274\352\264\204 \354\262\230\353\246\254 \354\213\234\354\212\244\355\205\234 VS \353\213\244\354\244\221 \355\224\204\353\241\234\352\267\270\353\236\230\353\260\215.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/1. \354\232\264\354\230\201\354\262\264\354\240\234\354\235\230 \352\265\254\354\241\260.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/1. \354\232\264\354\230\201\354\262\264\354\240\234\354\235\230 \352\265\254\354\241\260.png"
new file mode 100644
index 0000000..41b3ac7
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/1. \354\232\264\354\230\201\354\262\264\354\240\234\354\235\230 \352\265\254\354\241\260.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2. \354\273\244\353\204\220\352\263\274 \354\213\234\354\212\244\355\205\234 \354\275\234.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2. \354\273\244\353\204\220\352\263\274 \354\213\234\354\212\244\355\205\234 \354\275\234.png"
new file mode 100644
index 0000000..e57bcc5
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2. \354\273\244\353\204\220\352\263\274 \354\213\234\354\212\244\355\205\234 \354\275\234.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2.1. \354\213\234\354\212\244\355\205\234 \354\275\234 2.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2.1. \354\213\234\354\212\244\355\205\234 \354\275\234 2.png"
new file mode 100644
index 0000000..c7c8239
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2.1. \354\213\234\354\212\244\355\205\234 \354\275\234 2.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2.1. \354\213\234\354\212\244\355\205\234 \354\275\234.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2.1. \354\213\234\354\212\244\355\205\234 \354\275\234.png"
new file mode 100644
index 0000000..8bafce4
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/2.1. \354\213\234\354\212\244\355\205\234 \354\275\234.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/4.1. syscall_assembly.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/4.1. syscall_assembly.png"
new file mode 100644
index 0000000..f33841c
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/4.1. syscall_assembly.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/4.1. syscalls.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/4.1. syscalls.png"
new file mode 100644
index 0000000..2a65177
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/4.1. syscalls.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/5. \353\224\224\353\260\224\354\235\264\354\212\244 \353\223\234\353\235\274\354\235\264\353\262\204.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/5. \353\224\224\353\260\224\354\235\264\354\212\244 \353\223\234\353\235\274\354\235\264\353\262\204.png"
new file mode 100644
index 0000000..fd25e08
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/5. \353\224\224\353\260\224\354\235\264\354\212\244 \353\223\234\353\235\274\354\235\264\353\262\204.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.1. \353\213\250\354\235\274\355\230\225 \354\273\244\353\204\220.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.1. \353\213\250\354\235\274\355\230\225 \354\273\244\353\204\220.png"
new file mode 100644
index 0000000..192683b
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.1. \353\213\250\354\235\274\355\230\225 \354\273\244\353\204\220.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.2. \352\263\204\354\270\265\355\230\225 \354\273\244\353\204\220.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.2. \352\263\204\354\270\265\355\230\225 \354\273\244\353\204\220.png"
new file mode 100644
index 0000000..1d44409
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.2. \352\263\204\354\270\265\355\230\225 \354\273\244\353\204\220.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.3. \353\247\210\354\235\264\355\201\254\353\241\234 \354\273\244\353\204\220.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.3. \353\247\210\354\235\264\355\201\254\353\241\234 \354\273\244\353\204\220.png"
new file mode 100644
index 0000000..ec4fb05
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/6.3. \353\247\210\354\235\264\355\201\254\353\241\234 \354\273\244\353\204\220.png" differ
diff --git "a/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/7. \352\260\200\354\203\201\353\250\270\354\213\240.png" "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/7. \352\260\200\354\203\201\353\250\270\354\213\240.png"
new file mode 100644
index 0000000..f411ab3
Binary files /dev/null and "b/assets/img/posts/\354\232\264\354\230\201\354\262\264\354\240\234/2024-04-01-os_structure/7. \352\260\200\354\203\201\353\250\270\354\213\240.png" differ