1. 서
그동안의 CS공부는 여러 사정으로 인해 번번이 자료구조와 알고리즘에서 벗어나지 못했었다. 그래도 독학으로 진행하고 있는 자료구조 및 알고리즘 공부가 여러 시행착오 끝에 어느정도는 틀이 잡혀가고 있음을 느낀다. 그렇기에 지금 시점은 한 걸음 더 나아갈 수 있는 적기라고 할 수 있다. 언제나처럼 책 소개를 빙자하여 운영체제를 왜 공부해야 하는지와 어떤 교재를 고르게 되었는지 짚어보기로 하자.
2. 운영체제를 공부해야 하는 이유
소프트웨어 엔지니어는 왜 운영체제를 공부해야 할까? 이제 막 공부를 시작하는 내가 보기에도 '초식동물은 왜 풀을 먹을까'와 비슷해보이는 질문이다. 운영체제가 CS 5대 과목중 하나인 이유에는 여러가지가 있을테지만, 근본적인 이유는 소프트웨어는 하드웨어 위에서 실행되는 것이기 때문이 아닐까하는 생각이 든다. 효율적인 소프트웨어를 설계하려면 하드웨어의 자원의 관리 방식을 알아야 할 것이고, 이를 위해서는 운영체제를 이해할 필요가 있을 것이다.
특히 AI와 관련된 직군을 목표로 할 경우 운영체제를 깊이있게 이해할 필요가 있다고 생각된다. 기본적으로 많은 AI작업은 병렬처리와 분산 시스템에서 이루어지고 있다. 나아가 AI모델이 잡아먹고 있는 컴퓨팅자원의 양이 어마어마한 것은 유명한 이야기이고 이를 어떻게 최적화할 것인지는 매우 핫한 주제이다. 최근 딥시크가 엄청난 주목을 받은 이유도 같은 맥락의 이야기일 것이다. 운영체제를 공부하면 자원의 효율적 관리에 관한 이해를 바탕으로 CPU 스케쥴링, 메모리 관리 등 다양한 기술을 익힐 수 있기에, 더욱 넓은 시야에서 커리어를 쌓아나갈 수 있을 것이다.
3. 표제의 중요성
운영체제를 공부하기 위해 여기저기 기웃거린 결과 가장 유명하고 널리 쓰이는 교재로 두 가지가 있음을 알 수 있었다. 바로 공룡책으로 불리는 'Operating System Concepts'와 OSTEP로 불리는 '운영체제 아주 쉬운 세 가지 이야기' Operating Systems Three Easy Pieces이다. 그리고 내가 고른 교재는 후자이다.
보자마자 영리하게 지은 제목이라는 생각이 들었다. 저자에 따르면 이 제목은 '파인만의 물리학 강의'에 대한 존경의 의미로 명명했다고 한다. TMI이지만 궁금해서 찾아보니 '파인만의 물리학 강의'에서 일반인을 위해 여섯개의 파트를 추려낸 'Six Easy Pieces' 교재를 말하는 것으로 보인다. 어찌됐건, 해당 교재는 펴보기도 전에 운영체제에는 세 가지 핵심기둥이 존재한다는 점을 말해주고 있었고, 목차로부터 그 기둥은 1) 가상화, 2) 병행성, 3) 영속성임을 알 수 있었다. 오랜기간 고시생으로 살아온 나에게 있어 확 꽂히는 면이 있는 책이었다. 그리고 경험상 꽂혔던 책이 실망시킨 적은 한번도 없었다.
추가적으로 본 교재의 아주 훌륭한 부분중 하나는 바로 온라인상에서 전문을 합법적으로 열람할 수 있다는 점이다. 다음 링크들을 참고해보자.
원서
Operating Systems: Three Easy Pieces
Blog: Why Textbooks Should Be Free Quick: Free Book Chapters - Hardcover - Softcover (Amazon) - Buy PDF - EU (Lulu) - Buy in India - Buy Stuff - Donate - For Teachers - Homework - Projects - News - Acknowledgements - Other Books Welcome to Operating System
pages.cs.wisc.edu
번역본
ostep-translations/korean at master · remzi-arpacidusseau/ostep-translations
Various translations of OSTEP can be found here. Help the cause and contribute! - remzi-arpacidusseau/ostep-translations
github.com
과제코드
GitHub - remzi-arpacidusseau/ostep-homework
Contribute to remzi-arpacidusseau/ostep-homework development by creating an account on GitHub.
github.com
프로젝트
GitHub - remzi-arpacidusseau/ostep-projects: Projects for an undergraduate OS course
Projects for an undergraduate OS course. Contribute to remzi-arpacidusseau/ostep-projects development by creating an account on GitHub.
github.com
4. 결어
멀티프로세싱과 멀티스레딩 관련 질문에서 탈탈 털렸던게 엊그제 같다. 당하면 당한만큼 갚아주는게 균형에 맞지 않을까? 뜨거운 복수심으로 공부를 시작해본다.
'독서 > 운영체제 아주 쉬운 세 가지 이야기' 카테고리의 다른 글
[OSTEP] CPU 가상화 : MLFQ 스케줄러 (0) | 2025.03.06 |
---|---|
[OSTEP] CPU 가상화 : 스케줄링 개요 (0) | 2025.03.04 |
[OSTEP] CPU 가상화 : 제한적 직접 실행 원리 (0) | 2025.03.02 |
[OSTEP] CPU 가상화 : 프로세스 (0) | 2025.02.28 |
[OSTEP] Intro : 운영체제 개요 (0) | 2025.02.27 |