결국 여기까지 왔다. 네, Rust 커널 책 1-2주요? 개뿔! 초반에 Rust 언어의 사용법이 책 두께의 반 이상을 차지해서 얕봤다. 리눅스 커널 버전부터 다르고, Rust의 커널 관련한 부분의 개발이 활발한 바람에 이미 책은 EUC-KR 수준의 레거시가 되어 있었음. 실습 코드를 그냥 이해한 다음 그 목적을 하는 모듈을 짜보려다보니, 왜? 왜? 왜에에에에??? 가 연속되어 그냥 OS까지 들어가서 커널로 돌아오기로 했다.
정신 차리니 OS에 도착하는 과정
/dev/random을 Rust로 구현하기 → 왜 딴 애들은module!매크로 이용해서 모듈 선언하는데, 얘는module_misc_device!지? → 그건 그렇고… 없네? → 대체제 찾았다! → file operations에서 read, write 정의 못하네? → c shim 가자 → 이 삽질 할 시간에 본진을 때리는게 낫지 않음?
최고의 방어는 공격이다. 그래서 ChatGPT에게 커리큘럼 내놓으라 함. 그래서 접한 책은 아래와 같다.
https://pages.cs.wisc.edu/~remzi/OSTEP/
pdf로 그냥 공개되어 있다.
여튼 그래서 슥 보고 있는데, 일단 개론 부분을 요약하면, OS가 존재하는 이유는 하드웨어 위에서 동시에 여러 일을 시키기 위해 가상화를 지원하는 것이다. cpu 1개짜리 머신이라고 프로그램 하나만 돌리면 아까우니까, 젖먹던 힘까지 다 끌어다 쓰기 위해 생긴거다. 힘내라 컴퓨터야. 인간들이 그렇지 뭐.