[1000줄 OS 구현하기] C 표준 라이브러리

Featured image for [1000줄 OS 구현하기] C 표준 라이브러리

C 표준 라이브러리 | OS in 1,000 Lines 1. C 표준 라이브러리 기본 타입과 메모리 조작, 문자열 조작 함수를 직접 구현해 본다. 가. 기본 타입들 예를 들어 align_up(0x1234, 0x1000)은 0x2000이 되고, is_aligned(0x2000, 0x1000)은 true를 반환하지만 is_aligned(0x2f00, 0x1000)은 false를 반환한다고 한다. 메모리 정렬(alignment)은 시스템의 성능과 안정성을 위해 필요하다. 순수 C 코드로 구현할 수도 있지만 교제에서는 Clang의 … 더 읽기

[1000줄 OS 구현하기] Hello World!

Featured image for [1000줄 OS 구현하기] Hello World!

Hello World! | OS in 1,000 Lines 1. SBI로 출력 SBI를 OS의 API 정도로 소개했었다. SBI의 function을 호출하기 위해선 ecall 명령어를 사용한다. 가. kernel.c 수정되거나 추가한 코드만 살펴보면… SBI 호출 시 Function ID (fid)와 Extension ID (eid)는 SBI 사양에서 미리 정의된 번호들. 이러한 ID들은 RISC-V SBI 표준에 의해 미리 정의되어 있어서 개발자가 임의로 정하는 것이 … 더 읽기

[1000줄 OS 구현하기] Boot

Featured image for [1000줄 OS 구현하기] Boot

Booting the Kernel | OS in 1,000 Lines 1. Booting 보통 컴퓨터를 부팅하면 BIOS나 UEFI가 하드웨어를 초기화하고 OS를 로드한다. QEME virt machine에서는 OpenSBI가 BIOS나 UEFI 역할을 수행한다. 종류 long form 설명 특징 BIOS Basic Input/Output System 컴퓨터 부팅 시 가장 먼저 실행되는 펌웨어 하드웨어 초기화, 운영체제 로드, 오래된 PC에서 주로 사용 UEFI Unified Extensible Firmware … 더 읽기

[1000줄 OS 구현하기] RISC-V Assembly

Featured image for [1000줄 OS 구현하기] RISC-V Assembly

RISC-V 101 | OS in 1,000 Lines 1. RISC-V RISC-V는 (”리스크 파이브”로 발음한다.) 축소 명령어 집합 컴퓨터 즉, RISC(Reduced Instruction Set Computer) 기반의 개발형 명령어 집합(ISA)이다. 대부분의 ISA와 달리 RISC-V ISA는 일부 목적으로는 자유로이 사용할 수 있으며, 누구든지 RISC-V 칩과 소프트웨어를 설계, 제조, 판매할 수 있게 허가되어 있다. 저자는 RISC-V를 CPU로 선택한 이유가 명세가 간단하고 … 더 읽기

[1000줄 OS 구현하기] 시작하기

Featured image for [1000줄 OS 구현하기] 시작하기

1. 출처 Operating System in 1,000 Lines | OS in 1,000 Lines 1000줄로 운영체제를 직접 구현할 수 있다고 한다. 운영체제를 공부할 겸 한번 만들어 보자. 실제로 Linux의 0.01 version이 8413 줄에 불과했다고 하니 충분히 가능할 것 같다. 글에 따르면 완성된 OS에선 기본적인 context switching, paging, user mode, a command shell, disk device driver, file read/write … 더 읽기