안녕하세요. 올리고당입니다.
이번 방학에는 OS를 공부하며 시간을 보내려 합니다.
"만들면서 배우는 OS 커널의 구조와 원리 -김범준 저" 책을 참고하여 공부하고 있습니다.
현재는 절판돼서 중고로 구할 수밖에 없네요.
책은 2005년 기준으로 작성된 거라, 현시점과 괴리가 있는 부분은
다른 블로그의 글들을 참고했습니다.
다만, 조금 아쉬운 점이 있었습니다.
책에서는 플로피 디스크에 작성한 커널을 삽입해 컴퓨터로 실행해보는 과정이 있었지만,
블로그에서는 가상 머신을 이용하여 시뮬레이션해 보았습니다.
그래서 저는 한발 더 나아가, 흥미로운 목표를 몇 가지 설정했습니다.
1. Assembly와 Rust언어를 이용해 OS 커널을 구현한다.
2. Raspberry pi(라즈베리파이)에 구현한 OS 커널을 로드한다.
ARM architecture 명령어도 공부할 겸,
Rust언어도 공부할 겸,
겸사겸사가 너무 많은가요? ㅎㅎ
제 공부계획은 이렇습니다.
1. 책과 블로그에 소개된 방법을 통해 먼저 OS 커널을 이해한다.
2. assembly로 작성된 코드 중에서, Rust로 대체할 수 있는 부분을 찾는다.
3. 대체할 부분을 제외한 코드의 IA-32(intel x86) assembly를 Arm7l(Raspberry pi 4B) assembly로 번역한다.
4. 이렇게 작성한 OS커널을 직접 라즈베리파이에 로드한다.
'과연 될까?'하는 마음으로, 잘 될지 안 될지 확신이 서지 않습니다만,
그런 도전이기에 가슴이 두근거리네요 ㅎㅎ
아무튼 도전 시작입니다!
참고 도서 ( 책 )
http://www.yes24.com/Product/Goods/1469757
만들면서 배우는 OS 커널의 구조와 원리 - YES24
도대체 커널 책은 왜 그리 어려운가?이 책의 가장 큰 목적은 방대한 커널을 이해하기 위한 토대를 마련해주는 것이다. 소프트웨어 개발자는 HelloWorld 소스코드를 컴파일하고 실행하는 것으로 시
www.yes24.com
참고 블로그
https://itguava.tistory.com/8?category=630867
[OS 개발 1] 첫 시작
운영체제(Operating System, OS) 만들기에 앞서 그 동안 프로그래밍을 공부하면서 운영체제에 대해서도 계속 공부해야겠다는 생각을 가지고 있었지만 그러지 못했습니다. 이제는 험난했던 대학원 생
itguava.tistory.com
Intel Architecture Software Developer Manual ( IA-32 ) ( Intel Manual vol.1~3 )
http://www.cs.cornell.edu/courses/cs412/2000SP/resources/Intel%20Architecture%20Vol.%201.PDF
https://pdos.csail.mit.edu/archive/6.097/readings/intelv2.pdf
https://www.scs.stanford.edu/05au-cs240c/lab/ia32/IA32-3.pdf
- 공부 중간에
생각보다 블로그는 별로 참고를 안하게 되네요. 대부분의 지식은 참고 도서와 Intel Manual vol. 1~3, 영문 위키피디아에서 얻고 있습니다. 인텔 메뉴얼만 해도 엄청 자세히 나와있더군요. 본문에 출처를 표기하지 않은 사진, 지식, 코드 등은 제가 직접 만들거나, 전부 참고 도서와 Intel Manual vol. 1~3 에서 발췌하여 블로그를 작성하였습니다.
'OS' 카테고리의 다른 글
[32bit] 부트섹터에서 프로그램 꺼내기(2) (0) | 2021.07.27 |
---|---|
[32bit] 부트섹터에서 프로그램 꺼내기(1) (0) | 2021.07.27 |
[32bit] 첫 걸음, 부트스트랩( Bootstrap ) (0) | 2021.07.27 |
[32bit] 개발환경 구축하기 - Vmware 설치하기, VS code 소개 (0) | 2021.07.27 |
[32bit] 개발환경 구축하기 - nasm 설치하기, 환경변수 설정하기. (0) | 2021.07.27 |