Quora의 If Linux was rewritten in an OOP language, what would happen?에 대한 Marty Fouts님의 답변입니다.


이것은 매우 어려운 질문입니다. 저는 당신이 C++와 같은 “Multiparadigm” 언어보다는 Smalltalk와 같은 순수한 OOP를 의미한다고 가정할 것입니다.

저는 OOP를 사용하는 운영체제 연구에 참여했었습니다. 가설로만 보면 정말 좋은 아이디어인 것처럼 보입니다. 연습에서는 대부분 두 가지 이유에서 모든 시스템은 실패했습니다. 모두 과도하게 설계되었습니다. 그것은 거의 OOP 디자이너가 자연스레 2번째 시스템 증후군 함정에 빠지는 것과 같았습니다. 저는 이것을 피했어야 한다고 생각합니다.

두번째 문제는 미묘하고 어떻게 짧게 설명해야 할지 모르겠지만 여기 있습니다: 최근의 프로세스 지향적인 운영체제는 오브젝트들로 재해석될 수 있는 매우 작은 모듈로 나뉘는 콘셉으로 바뀌어 분해하기 매우 어려워졌습니다.

Linux를 다시 작성(Rewrite)하는 것은 모듈(the decomposition)에 대한 명확한 정의가 없고 수많은 모듈과 성능 측의 이유 또는 간단히 레거시에 의한 캡슐화 위반이기 때문에 매우 어려울 것입니다. IP/TCP 스택들에서 찾을 수 있는 위반과 같은 몇 가지 위반은 문제 중 하나입니다. 프로토콜은 분리될 만큼 깨끗하지 않습니다. OOM killer나 프로세스 스케쥴러와 같은 다른 것들은 문서화되지 않은 가정에 묻혔습니다.

저는 이 시도가 비참하게 두 가지 이유에 의해 실패할 것이라고 생각하지만 that’s a scientific wild ass guess.