PintOS Project를 시작하며

이 글을 읽는 자는 분명 막막함 속에서 희망을 찾기 위해 동분서주하고 있을 것이다. 물론 나 또한 핀토스를 진행하면서 똑같은 처지를 경험했기에, 최소한 갈피를 못 잡고 뻘짓하는 일이 없도록 이 글을 적는다.

먼저 말하고 싶은 점 하나. 이 블로그의 숙제 project 관련 글들은 내 코드를 단 한줄도 넣지 않을 것이다. 단순히 대략적인 구현 단계와 방법, 하면 안 되는 것들, 도움되었던 정보 등등만 적을 것이니 cheating 걱정 없이 후배님들이 마음 편히 읽어주었으면 한다.

카이스트 운영체제 및 실험 과목의 주 프로젝트인 PintOS는 64비트 운영체제로 개량되었기에 인터넷을 뒤져봐도 도움될 정보가 거의 없다. 물론 현재는 64비트로 전환된지 조금 시간이 흘렀기에 관련 블로그 포스팅들도 많이 보이기 시작했지만, 코드가 대부분 같이 첨부되어 있어 읽을 수가 없었다.

그래서 나는 대부분의 과제를 내 스스로 진행했는데, 그 결과 많은 뻘짓과 많은 초기화를 거치며 몸과 마음이 피폐해졌다. 마치 Getting Over it과 같은 게임을 하는 느낌이었다.

Getting Over It

몇 시간동안 작업한 것을 다 지우고 새로 시작하면서 이렇게 하면 안된다는 것을 누가 가르쳐 주었다면 좋았을 것이란 생각이 들었고, 결국 모든 프로젝트를 마치고 이 글을 작성하고 있다.

여담이지만 운영체제 및 실험 과목을 들을 계획이라면 방학 때 최대한 마쳐라. 최소한 프로젝트 2까지 완료하고, 중간고사 전 3,기말 고사 전  4를 완료하는 식으로라도 진행해야 삶의 질과 성적을 챙길 수 있다.

Q: 배우지도 않았는데 어떻게 프로젝트를 미리 하나요?‌‌
A: 수업을 수강해도 관련 내용을 배우기 전에 프로젝트를 진행합니다. 설령 배우더라도 핀토스 프로젝트와 배우는 내용 사이에는 조금 괴리가 있기에 크게 도움도 안 돼요.

Q: 실라버스를 보니 코드가 바뀔 수 있다는데요?‌‌
A: 계속 바뀝니다. 하지만 적어도 이제는 프로젝트 상의 오류를 수정하기 보다, 프로젝트의 범위만 손대니깐 크게 걱정하지 마세요. 미리 해두고 공지 뜨면 고치면 됩니다.

Q: Extra는 필수인가요?‌‌
A: 과거에는 필수였는데, 2022년 봄학기 기준 성적에 크게 영향을 끼치지는 않았습니다. 왜냐하면 최대 얻을 수 있는 extra credit이 정해져서 성적에 극적인 변화를 주지 않았고, 교수님께서도 핀토스의 부담을 줄이려고 노력하십니다. 그러니깐 시간 없으면 핀토스를 포기하고 시험공부를 하세요.

Q: 프로젝트 간 난이도는 어때요?
A: 개개인마다 다르지만 Extra를 제외하면 3>>4=2>>>>1 이라고 느꼈습니다. 프로젝트 4 extra를 구현하지 않았기에 Extra를 포함한다면 어떨지는 잘 모릅니다. 하지만 Extra 2는 hidden testcase도 없고 Extra중에 가장 쉬운 거 같으니 무조건 하세요.

Q: 너무 막막하고 어려운데 다들 끝까지 다 하나요?
A: 모두가 막막하고 어려워하기에, extra를 제외하면 hidden testcase가 없는데도 불구하고 프로젝트 평균은 90/90/70/60 느낌으로 점점 낮아집니다.