CS(40)
-
[1000줄 OS 구현하기] 예외
예외 (Exception) | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1. 예외 운영체제(OS)에서 예외(Exception)는 프로그램 실행 중에 발생하는 예기치 않은 상황이나 오류를 의미한다. 이는 하드웨어나 소프트웨어에서 발생할 수 있으며, 정상적인 프로그램의 흐름을 방해하는 사건입니다. 예외는 크게 다음과 같은 상황에서 발생할 수 있다:하드웨어 인터럽트: 외부 장치로부터의 신호나 이벤트소프트웨어 인터럽트: 시스템 콜과 같은 프로그램의 의도적인 요청프로그램 오류: 0으로 나누기, 잘못된 메모리 접근, 페이지 폴트 등 운영체제는 이러한 예외 상황이 발생했을 때 적절한 예외 처리 루틴을 실행하여 시스템의 안정성을 유지해야 한다. 프로세스..
00:27:20 -
[1000줄 OS 구현하기] 커널 패닉
커널 패닉 (Kernel Panic) | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1. 커널 패닉 커널 패닉은 운영체제의 커널에서 복구할 수 없는 치명적인 오류가 발생했을 때 시스템이 안전하게 작동할 수 없다고 판단하여 즉시 작동을 중지하는 상태를 말합니다. 블루스크린과 같다고 생각하면 된다. 이번 챕터에서는 크리티컬 한 오류가 발생하면 커널이 동작을 멈추도록 구현해 보았다. kernel.h#define PANIC(fmt, ...) \ do { ..
2025.02.03 -
[1000줄 OS 구현하기] C 표준 라이브러리
C 표준 라이브러리 | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1. C 표준 라이브러리 기본 타입과 메모리 조작, 문자열 조작 함수를 직접 구현해 본다. 가. 기본 타입들 common.htypedef int bool;typedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned int uint32_t;typedef unsigned long long uint64_t;typedef uint32_t size_t;typedef uint32_t paddr_t;typedef uint32_t vaddr_t;#define true 1#define false 0#define..
2025.02.03 -
[1000줄 OS 구현하기] Hello World!
Hello World! | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app한글 번역이 생겼습니다! 1. SBI로 출력 SBI를 OS의 API 정도로 소개했었다. SBI의 function을 호출하기 위해선 ecall 명령어를 사용한다. 가. kernel.c#include "kernel.h"typedef unsigned char uint8_t;typedef unsigned int uint32_t;typedef uint32_t size_t;extern char __bss[], __bss_end[], __stack_top[];void *memset(void *buf, char c, size_t n) { uint8_t *p = (uint8_t..
2025.02.03 -
[1000줄 OS 구현하기] Boot
Boot | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1. Booting 보통 컴퓨터를 부팅하면 BIOS나 UEFI가 하드웨어를 초기화하고 OS를 로드한다. QEME virt machine에서는 OpenSBI가 BIOS나 UEFI 역할을 수행한다. 종류long form설명특징BIOSBasic Input/Output System컴퓨터 부팅 시 가장 먼저 실행되는 펌웨어하드웨어 초기화, 운영체제 로드, 오래된 PC에서 주로 사용UEFIUnified Extensible Firmware InterfaceBIOS를 대체하는 현대적인 펌웨어 인터페이스빠른 부팅 속도, 더 많은 기능 제공, 현대 PC에서 주로 사용OpenSBIOpen Supervis..
2025.01.21 -
[1000줄 OS 구현하기] RISC-V Assembly
RISC-V 101 | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1. RISC-V RISC-V는 (”리스크 파이브"로 발음한다.) 축소 명령어 집합 컴퓨터 즉, RISC(Reduced Instruction Set Computer) 기반의 개발형 명령어 집합(ISA)이다. 대부분의 ISA와 달리 RISC-V ISA는 일부 목적으로는 자유로이 사용할 수 있으며, 누구든지 RISC-V 칩과 소프트웨어를 설계, 제조, 판매할 수 있게 허가되어 있다. 저자는 RISC-V를 CPU로 선택한 이유가 명세가 간단하고 초보자에게 적합하며, x86과 Arm과 함께 최근 주목받는 ISA이기 때문이라 한다. RISC-V Ratified Specificatio..
2025.01.17 -
[1000줄 OS 구현하기] 시작하기
1. 출처 Intro | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1000줄로 운영체제를 직접 구현할 수 있다고 한다. 운영체제를 공부할 겸 한번 만들어 보자. 실제로 Linux의 0.01 version이 8413 줄에 불과했다고 하니 충분히 가능할 것 같다. 글에 따르면 완성된 OS에선 기본적인 context switching, paging, user mode, a command shell, disk device driver, file read/write operations in C 등을 할 수 있다고 한다. 이 과정에서 가장 어려운 부분은 ‘디버깅’이라고 한다. 구현되지 않은 printf 없이 디버깅하는 방법을 배워야 한다. 충분히 ..
2025.01.17 -
[컴퓨터구조론] 입출력 구조
제 11장 Part-2위 유튜브 강의를 정리, 보충한 내용입니다. 본격적으로 들어가기 앞서 I/O와 Memory에 대하여 알아보자. Device란?: 네트워크 어댑터, LCD 디스플레이, 오디오, 터미널, 키보드, 하드디스크, 플로피디스크, 프린터 등과 같은 주변 장치를 뜻함.: 디바이스의 구동을 위해서 디바이스 드라이버가 필요함.Device Driver란?: 실제 device를 추상화하여 사용자 프로그램이 정형화된 인터페이스를 통해 디바이스를 제어할 수 있도록 하는 프로그램.: 디바이스 제어에 필요한 정형화된 인터페이스를 구현하기 위하여 요구되는 함수와 자료구조의 집합체.: 응용 프로그램이 하드웨어를 제어할 수 있도록 인터페이스를 제공한다.: 하드웨어 독립적인 프로그램을 작성할 수 있도록 함.: 사용..
2024.06.21