학습하기에 충분한 OS가 있습니까? [닫은]


19

운영 체제가 어떻게 작동하는지 이해하고 싶습니다. 그러나, 나는 대부분의 오픈 소스 OS의 커널이 풀 타임 프로그래머가 배우기조차 너무 학습 목적으로 너무 복잡하다고 생각합니다. 학습 목적으로 만 만들어진 "간단한"OS가 있습니까?




내 검색에서 이것을 발견했지만 결코 시도하지 않았습니다. pdos.csail.mit.edu/6.828/2012/xv6.html 분명히 유닉스 v6을 학습 도구로 대체하기 위해 작성되었습니다.
ctrl-alt-delor

답변:


28

Andrew Tanenbaum의 Minix ( 운영 체제 설계 및 구현 참조 )는 바로 이러한 종류의 목적을위한 것입니다. 다른 날짜는 있지만 아직 유닉스 V6을 다루는 Lion 's Book 을 읽을 수도 있습니다. 후자의 명백한 단점은 사용하는 C가 매우 쓸모 없기 때문에 경험이 많은 C 프로그래머조차도 부분적으로 읽기가 어려울 수 있으며 코드를 소화하는 최신 컴파일러를 계획 할 수 없다는 것입니다.


7
MINIX 3은 교육 도구아니며 MINIX 3 마이크로 커널은 확실히 이해하기 쉽지 않습니다. Tanenbaum에 따르면 MINIX 1만이 교육 도구였습니다.
sakisk

10

MIT의 OS 과정에서 사용되는 최신 Unix와 유사한 Xv6 운영 체제를 고려해야합니다 . 그것과 관련된 강의 자료도있는 것 같습니다.

Bochs와 Qemu x86 에뮬레이터 모두에서 실행됩니다. 나는 그 부분을했다. 재미 있었어요.


7

Minix는 훌륭한 선택이며 다른 답변 중 하나에 설명되어 있습니다.

시누

또한 XINU를 고려하십시오-XINU는 Unix가 아닙니다.

은 또한 철자가 철자입니다.

Douglas Comer가 저술 한 책은 저술이 잘되어 있고 잘 묘사되어 있고 범위가 있다고 생각합니다.

Xinu와 함께 가르치는 방법에 대한 Embedded Xinu 및 웹 사이트가 있습니다.

http://xinu.mscs.mu.edu/Teaching_With_Xinu

FreeRTOS

요즘 많은 사랑을받는 또 다른 작은 OS는 FreeRTOS입니다. 그것은 거의 모든 것에서 실행됩니다. Mars에서 왔으며 프로세서 나 평가판이 실행되지 않는 경우 약 10 페이지의 설명서를 읽고 인터럽트, 타이머 및 UART와 관련된 약 5 개의 파일을 수정하면 실행 중일 수 있습니다.

http://www.freertos.org/

그들은 31 개의 아키텍처와 18 개의 툴 체인을 지원한다고 주장했다. 2009 년 말 저의 경험은 좋았으며 그 이후로 많이 향상되었다고 들었습니다.

다른 링크

유용한 정보가있을 수있는 비슷한 질문이 여기에 있습니다.

/programming/254149/how-do-you-write-a-basic-operating-system

Linux 및 기타 많은 운영 체제 설계는 UNIX의 영향을 받기 때문에 원래 디자이너 (Kernigan, Richie 및 Thompson 및 기타)가 유익하고 소스에서 설계 아이디어를 얻는 비디오입니다.

http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System

클래식하지만 종종 수정 된 운영 체제 교재가 있습니다.

Silberschatz, Galvin, Gagne : 운영 체제 개념, 7 판

최신판도있을 수 있습니다. 책 판매자를 통해 책에 대한 링크는 거의 없지만 미리보기는 매우 관대하므로 운영 체제에 대한 자세한 내용은 다음을 확인하십시오.

http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720


3

우리 대학에서는 NachOS를 배웠 습니다 . 학습을위한 훌륭한 오픈 소스 OS입니다. 또한 NachOS에서 학습을위한 많은 대학 운동을 찾을 수 있습니다.

Nachos는 학부 및 잠재적으로 대학원 수준의 운영 체제 과정을 가르치기위한 교육용 소프트웨어입니다. Nachos 배포판은 다음과 함께 제공됩니다.

  • 개요 용지
  • 작동중인 운영 체제에 대한 간단한 기준 코드
  • 일반 개인용 컴퓨터 / 워크 스테이션 샘플 할당을위한 시뮬레이터
  • C ++ 입문서 (Nachos는 배우기 쉬운 C ++ 부분 집합으로 작성되었으며 C 프로그래머에게 부분 집합을 가르치는 데 도움이 됨)

과제는 스레드 및 동시성, 멀티 프로그래밍, 시스템 호출, 가상 메모리, 소프트웨어로드 TLB, 파일 시스템, 네트워크 프로토콜, 원격 프로 시저 호출 및 분산 시스템을 포함한 최신 운영 체제의 모든 영역을 설명하고 탐색합니다.


0

KOS (Kid OD) 및 SOS (Simple OS)를 살펴보십시오 . 둘 다 OS의 내부를 가르치도록 설계된 운영 체제입니다. KOS는 SOS의 "아버지"이며 KOS의 경험을 바탕으로 구축되었습니다.

이 프로젝트는 Linux Magazine France의 많은 교육 기사의 기초였습니다.

KOS 웹 사이트에서 다른 단순 OS의 소스를 다운로드 할 수 있는 페이지를 찾을 수도 있습니다.


0

.NET 기술 제품군을 사용하는 경우 Singularity를 확인할 수 있습니다 . 2008 년 이후 업데이트되지 않았지만 CodePlex에서 소스 및 ISO 형식으로 다운로드 할 수 있습니다 ( 여기) .


downvote, downvoter에 대한 특별한 이유는 무엇입니까? 링크는 여전히 유효하며 고급 언어로 작성된 간단한 OS입니다.
Jesse C. Slicer

0

사람들은 모든 CP / M 및 초기 DOS 버전을 이해할 수 있습니다. 그 후 상황이 통제에서 벗어 났고 아무도 더 이상 모든 것을 알지 못합니다. 그들은 OS가 어떻게 작동하는지 배우기 위해 고안되지 않았지만 많은 사람들 그 OS에서 그것을 배웠습니다.


1
답을 뒷받침하기 위해 참고 문헌이나 일화적인 증거를 추가해보십시오. 또는 X 버전이 Y 버전보다 더 쉽게 이해되는 이유를 나타 내기 위해 추가 세부 정보를 추가하십시오.

-1

어셈블러 프로그래밍에 관한 책을 읽어보십시오. 당신은 그것에 능숙하게 될 필요는 없지만 컴퓨터의 많은 내부 작업을 가르쳐 줄 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.