본문 바로가기

운영체제 정리/64비트 OS 만들기 실습

[64비트 멀티코어 OS 원리와 구조] 1장 - OS 개발을 위한 힘찬 첫걸음

실습 과정을 다른 카테고리에도 작성했지만, 이 카테고리에서는 책을 더 천천히 살펴보고 이론/실습 섹션으로 나눠서 내 나름대로 정리를 해보려고 한다. (책만 배끼는 수준이 아닌)

 

현재 나는 64비트 멀티코어 OS 원리와 구조 1권의 10장까지 구현한 상태이다.

나는 맥 환경에서 작업하고, 책은 윈도우에서 작업 + 11년 전 상황의 조합이라 몇몇개는 잘 동작하지 않는 부분이 있었는데, 이 부분에서 내가 삽질하면서 찾은 내용까지 기록하려고 한다.

 

1장의 책 내용은 따로 정리할 건 없고, OS 개발을 시작하는 독자에게 저자가 용기를 주는 세션이다.

 

OS 개발하는 과정에서 얻을 수 있는 세 가지

 

1. 하드웨어와 소프트웨어를 모두 다뤄볼 수 있다.

2. OS의 기능을 실제로 구현하면서 문제 해결 능력을 기를 수 있다.

3. 큰 성취감을 느낄 수 있다.

 

 

OS를 개발하는 데 필요한 지식 (중요도, 난이도 순)

 

1. 하드웨어 지식

- 가장 많은 비중을 차지. 대부분 내용은 하드웨어와 함께 제공되는 스펙 문서에 있음.

- 스펙만 잘 구하면 큰 문제없이 디바이스 드라이버를 만들 수 있음.

 

2. 어셈블리어

- 몰라도 큰 상관은 없는 수준. 기초적인 부분만 사용함. 

- OS 첫 부팅, 프로세서 동작 모드 설정, 멀티태스킹의 일부분, 응용프로그램을 위한 시스템 콜의 일부분

 

3. C언어

- 모른다면 OS를 만들 수 없음. 안다고 해도 포인터에 대한 개념이 정확하게 잡혀 있지 않으면 역시 힘듦. 다만 복잡한 포인터를 사용하는 일은 거의 없음.

- C언어가 약하다고 생각하면 기초부터 다지자.

 

4. OS 이론

- 개발 초기 단계에는 거의 필요 없음. 개발 중반에 들어서면 OS 전체의 방향을 설계하는 데 큰 역할을 함.

- OS 관련 서적을 되도록 많이 보자. 각 방식의 차이를 알면 장단점을 비교할 수 있어서 OS 설계에 많은 도움이 된다.

- OS에 정답은 없음. 다양한 방법으로 설계해보자.

 

5. 컴파일러, 링커, 도구 사용법

- 컴파일러와 링커는 작성한 소스 코드를 부팅 가능한 이미지로 만들어주는 프로그램을 말함.

- OS 이미지를 생성하려면 컴파일러와 링커에 복잡한 옵션을 설정해야 하며 도구도 설정 작업이 필요함. 하지만 대부분 개발 초기에 설정이 끝나면 개발 완료될 떄까지 거의 변하지 않으므로 개발 환경 설치시 살펴보는 것으로 충분.

 

 

 

 

 

 

 

https://product.kyobobook.co.kr/detail/S000001223755

 

64비트 멀티코어 OS 원리와 구조 1 | 한승훈 - 교보문고

64비트 멀티코어 OS 원리와 구조 1 | 부트 로더에서 GUI까지, 운영체제의 모든 것을 직접 제작한다!OS 개발 60일 프로젝트『64비트 멀티코어 OS 원리와 구조』제1권. 이 책은 저자가 직접 OS를 개발하

product.kyobobook.co.kr