어차피 내가 이해하고 나면 더이상 필요없어지는 글들이기도 하고
거기에다가 리눅스 커널 0.11에 대한 정복을 들어간다.
그리고 이게 조금 중요해보이는게,
직접 코드를 리팩터링 한다던지,
특정 관심사별로 모아서 본다던지 하는식으로,
나는 각 코드들에게 topological 성질이 있다고 생각해.
예를 들면, 이 코드는 ~방향에서도 살펴봐야하지만, ~~방향에서도 살펴봐야한다.
이런것들. 특히 concurrency가 연관되면 빼박이야.
뭐... 내가 해당 분야 공부도 제대로 안하고 이런짓 하는거 인정해.
근데 나 자신이 한번쯤 직접 시도해봐야할 필요가 있다고 느낀다.
그러고 나면, 오히려 동기화에 대해서 어떤 학문적 접근을 해야하는지 그 다음 방향이 보일지도 몰라.
여하튼
리눅스 0.11 의 작동방식을 각 모듈별로 모아서 정립한 후,
(대충
메모리 시스템과 페이징
인터럽트 시스템과 스케쥴링
파일 시스템과 I/O
이 세가지가 운영체제의 가장 대표적인 모듈이라고 생각함.
)
절차지향은 리커디기 교본에 잘 나와있고,
나같은 경우는 해당 절차지향을
위의 방식으로 리팩토링 함과 동시에
각각의 리팩토링에 대해서 동시성 이슈가 생기는 부분들을 다시 또 submodule 시켜서
문자 그대로 정복을 해버릴 생각이다.
정 복 들 어 갑 니 다.
나 음.... 인생 망할지도 몰라 ㅇㅇㅇㅇㅇ좆댔다. 이게 얼마나 시간이 걸릴지도 잘 모르겠어.
사실 시간의 문제는 아님.
내 지능의 문제야.
근데 일단
아 여기는 내 지능상 안된다. 하는 벽을 세번 부딪혀보고 접을생각이다.
일단 한번은 어제인가 그저께 부딪혔었고,
두번 남았다.
이게 아무리 빡세도, 리눅스 커널을 직접 만들고 디버깅해보는것보단 나을거야. 주요 모듈 외에 자잘한것들은 안볼수 있으니까 뭐 시리얼포트라던지, 부트섹트쪽에 나오는 어셈블리라던지, 하드웨어에다가 in / out 보내는것들 뭐하는건지 이런거는 생략함. 거기까지 다 다루는거는 뭐 인간 디버거 하겠다는거고, "잘 돌아가네" 가 아니라 "잘 돌아가며, 잘 돌아가는것을 증명까지 했음" "잘 돌아가는 이유에 대해서 규명했음" 까지 간건데 그거는 리눅스 만든것보다도 더 쌉오바야
재미있으면된거지머
:)