나만의 운영 체제를 만드는 수업 프로젝트가 있습니다. 나는 그것에 대해 많은 고민을 했고 이제 모든 것이 혼란스러워 보입니다.

나만의 운영 체제를 만드는 수업 프로젝트가 있습니다. 나는 그것에 대해 많은 고민을 했고 이제 모든 것이 혼란스러워 보입니다.

나는 운영 체제를 만드는 것에 대해 생각했고, 이제 그것을 어디서부터 시작해야 할지에 대한 당신의 조언에 의존합니다.

답변1

진심인가요? 즉, 팬이 만든 운영 체제가 많이 있지만 이는 무겁고 힘든 작업입니다!

우선 운영 체제는 최소한 다음을 갖추어야 합니다.

  1. 부트로더: 커널을 RAM에 푸시하려면 TLB를 준비하고 일부 관리 작업을 수행하세요.

  2. 커널: 커널은 운영 체제의 가장 중요한 부분이며 프로그램 간의 물리적/가상 메모리 매핑, 멀티태스킹, I/O 스케줄링, IPC, 뮤텍스 등과 같은 중요한 측면을 관리합니다. OS에 따라 여러 가지 철학이 있습니다(Linux 아키텍처와 같은 모놀리식, OS X 아키텍처와 같은 하이브리드, 미완성 Hurd와 같은 마이크로커널). 이에 따라 시스템의 각 개별 측면을 관리하는 것은 커널 코드이거나 사용자 코드입니다.

  3. 사용자에게 기계와의 상호작용을 제공하는 Userland 애플리케이션.

GNU/Linux 및 BSD 세계에는 다음과 같은 여러 가지가 있습니다.

부트로더: GRUB2, GRUB, LILO, ISOLINUX...

커널: Linux, kFreeBSD...

사용자 영역 앱: GNU [또는] BSD Coreutils, Bash, Xorg 등 수많은 앱 :)

어쨌든, 그것이 귀하의 질문이라면 여기에 답변이 있으며, 더 많은 정보를 원하시면 다음 위키의 각 측면에 대한 디자인 결정에 관해 머리를 긁적이기 시작하는 방법에 대한 많은 정보가 있습니다.http://wiki.osdev.org/Main_Page

부트로더 작동 방식, stdio.h와 같은 필수품 없이 베어메탈에서 프로그래밍하는 방법, 그리고 실제로 유용한 정보가 많이 있습니다.

관련 정보