Rust 커널 서적에서 사용하는 함수들이 죄다 옛날 커널 기준이다. 지금 난 6.16 버전 받아다가 하고 있으니, 당연히 한 스텝 마다 막힘.
이쯤에서 선택지는 2개가 있다
- 옛날 커널을 받아서 쓴다
- 싸운다
일단 2번으로 하고 있다. 1주일에 커널 서적 끝내긴 개뿔. 회사 복귀 후에도 계속 싸워야 할 듯 하다.
그래도 2번을 고집하는 이유는, 1번보다 많은 것을 얻을 수 있기 때문이다. 마치 아무 대책 없이 노트북 OS 날려버리고 아치리눅스를 설치한 것과 비슷하다. 적응을 강제하는 환경을 만들어버렸더니, 아치리눅스 사용법 뿐만 아니라 개발 중에 만사에 당황하지 않는 멘탈도 얻었다.
처음에 싸우던 방법은 진짜 그 코드를 그대로 두고 조금씩 바꿔쓰기 위해 ChatGPT에 “이거 대체할 수 있는 함수나 매크로 뭐임?” 하고 물어봤다. “아 그 낡은거 왜 궁금해함? 이거같은데?” 하고 잘 답해주긴 한다. 하지만 그 대답이 쓸데없이 길다. 대부분 “그거 여기어디 있는데, export 안됨. ㅋ. 직접 c로 shim 짜셈” 이다. 걔가 코드 쭉 써준걸 보면, 그냥 rust로 쓴 척 하는 c 모듈 코드다. 그리고 잘 돌지도 않음. 물론 내 손이 문제겠지만 말이다.
그래서 바꾼 방법은, 코드 슥 읽은 다음에 그 목적을 달성하는 모듈을 직접 짜는 방법이다. 이렇게 하려니 직접 커널 소스를 돌아다니면서 찾아야 한다. 근데 아직 코드베이스 자체가 익숙치 않으니 감이 잘 안잡힘. 그 부분부터 잡아야 할 듯 하다. C 기반으로 된 책도 있긴 한데, 무슨 Calculus마냥 두꺼워서 아직 엄두는 안남. 일단 싸우고 나서 생각해 볼 예정이다.