운영 체제를 설계해야합니다. 예를 들어, 유닉스 계열 시스템이어야한다고 결정하더라도 여전히 많은 결정이 필요합니다. 유닉스와 비슷한 정도를 원하십니까? UNIX의 어느 부분을 좋아하고 개선이 필요하다고 생각하십니까?
유닉스 계열로 설정하지 않았다면 더 많은 질문에 답해야합니다. 프로세스는 트리를 형성해야합니까, 아니면 "평평"해야합니까? 어떤 종류의 프로세스 간 통신을 지원 하시겠습니까? 다중 사용자이거나 다중 태스킹 (또는 단일 태스킹)을 원하십니까? 실시간 시스템을 원하십니까? 작업간에 어느 정도의 격리를 제공 하시겠습니까? 모 놀리 식 대 마이크로 커널 규모로 어디에서 떨어지기를 원하십니까? 분산 작업을 어느 정도 지원합니까 (있는 경우)?
나는 일반적으로 좋을 걸 에 대한 영감의 리눅스 커널을 공부. 그것은 리눅스 커널 자체에 반대되는 것이 아니라, 리눅스가 주로 교육용이 아닌 프로덕션 용도로 만들어 졌다는 간단한 사실입니다. 많은 최적화, 역 호환성 해킹 등이있어 생산에는 매우 유용하지만 교육보다는 산만 할 가능성이 높습니다.
당신이 그것을 찾을 수 있다면, 사자의 책 (사본 UNIX 6 판에 라이온스 해설 과 함께, 소스 코드 존 라이온스는) 훨씬 쉽게 시작 지점입니다. 6th Edition UNIX는 여전히 간결한 장난감 시스템이 아니라도 상당히 빠르게 읽고 이해하기에 충분히 작고 단순했습니다.
x86 (적어도 주로)을 대상으로하려는 경우 Richard Burgess의 MMURTL V 1.0 을 참조하십시오. 이것은 CPU 설계자가 원래 의도했던대로 x86 하드웨어를 훨씬 더 많이 사용하는 x86 용 시스템을 제공합니다. 대부분의 실제 시스템은 다른 CPU 로의 이식성을 선호합니다. 아시다시피, 이것은 하드웨어의 끝 부분에 훨씬 더 집중되는 경향이 있습니다. 인쇄 된 사본은 비싸고 찾기 어려워 보이지만 텍스트와 코드 를 무료로 다운로드 할 수 있습니다 .
다행히도 Andrew Tanenbaum과 Albert Woodhull의 운영 체제 설계 및 구현과 같은 몇 가지 가능성도 있습니다 .