Có hệ điều hành nào đủ đơn giản để học không? [đóng cửa]


19

Tôi thực sự muốn hiểu làm thế nào một hệ điều hành hoạt động đằng sau hậu trường. Tuy nhiên, tôi nghĩ rằng hạt nhân của hầu hết các hệ điều hành nguồn mở ngoài kia quá phức tạp cho mục đích học tập, ngay cả đối với một lập trình viên toàn thời gian để học. Có hệ điều hành "đơn giản" nào được tạo ra cho mục đích học tập không?




Tôi tìm thấy điều này trên tìm kiếm của tôi, không bao giờ thử nó. pdos.csail.mit.edu/6.828/2012/xv6.html rõ ràng nó được viết để thay thế Unix v6 như một công cụ học tập.
ctrl-alt-delor

Câu trả lời:


28

Minix của Andrew Tanenbaum (xem Thiết kế và triển khai hệ điều hành ) được dành cho mục đích chính xác này. Một khả năng khác (mặc dù khá cũ) là đọc qua Lion's Book , bao gồm Unix V6 (Unix đầy đủ, nhưng một phiên bản đủ cũ mà vẫn đủ đơn giản để nghiên cứu khá dễ dàng). Nhược điểm rõ ràng của cái sau là C mà nó sử dụng khá lỗi thời, do đó, ngay cả các lập trình viên C có kinh nghiệm cũng có thể thấy các phần hơi khó đọc và bạn không thể lập kế hoạch cho trình biên dịch hiện đại tiêu hóa mã.


7
PHÚT 3 là không phải là một công cụ giảng dạy và hạt nhân MINIX 3 chắc chắn không dễ hiểu. Theo Tanenbaum, chỉ có MINIX 1 là một công cụ giảng dạy.
sakisk

10

Bạn nên xem xét một hệ điều hành Xv6 hiện đại giống như Unix , được sử dụng trong khóa học HĐH tại MIT. Nó dường như cũng có một số tài liệu khóa học liên quan đến nó.

Nó chạy trong cả trình giả lập Bochs và Qemu x86. Tôi đã làm phần đó. Đó là niềm vui.


7

Minix là một lựa chọn tuyệt vời và được mô tả trong một trong những phản hồi khác.

Xinu

Cũng xem xét XINU - XINU không phải là Unix.

Cũng là UNIX đánh vần ngược.

Có một cuốn sách của Douglas Comer mà tôi nghĩ là được viết tốt, minh họa tốt, và có phạm vi tốt.

Có một Xinu nhúng và một trang web về giảng dạy với Xinu.

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

FreeRTOS

Một hệ điều hành nhỏ khác nhận được nhiều tình yêu trong những ngày này là FreeRTOS. Nó chạy trên hầu hết mọi thứ. Nếu bạn đến từ Sao Hỏa và có bộ xử lý hoặc bảng eval nơi nó không chạy, bạn có thể đọc khoảng 10 trang tài liệu, sửa đổi khoảng năm tệp liên quan đến ngắt, bộ hẹn giờ và UART và bạn sẽ chạy.

http://www.freertos.org/

Họ tuyên bố nó hỗ trợ 31 kiến ​​trúc và 18 chuỗi công cụ. Trải nghiệm của tôi vào cuối năm 2009 là tốt, và tôi nghe rằng nó đã được cải thiện rất nhiều kể từ đó.

Liên kết khác

Một câu hỏi tương tự về điều đó có thể có thông tin hữu ích cho bạn được đặt ở đây:

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

Linux và rất nhiều thiết kế hệ điều hành khác chịu ảnh hưởng của UNIX, vì vậy video này nơi các nhà thiết kế ban đầu (Kernigan, Richie và Thompson và những người khác) vừa cung cấp thông tin vừa lấy ý tưởng thiết kế ngay từ nguồn.

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

Có một cuốn sách giáo khoa hệ điều hành cổ điển nhưng thường được sửa đổi:

Silberschatz, Galvin, Gagne: Khái niệm hệ điều hành, Phiên bản thứ 7

Có thể có phiên bản mới hơn quá. Tôi hiếm khi liên kết đến một cuốn sách thông qua một người bán sách, nhưng phần xem trước rất hào phóng, vì vậy để tìm hiểu thêm về các hệ điều hành, vui lòng kiểm tra:

http://www.amazon.com/Operating-System-Con chấp-Ahamham-Silberschatz / dp / 0470128720


3

Trong trường đại học của tôi, chúng tôi đã học NachOS . Đó là một hệ điều hành nguồn mở tuyệt vời cho việc học. Bạn cũng có thể tìm thấy nhiều bài tập của trường đại học trên NachOS để học.

Nachos là phần mềm hướng dẫn để giảng dạy đại học, và có khả năng tốt nghiệp, các khóa học hệ điều hành cấp. Bản phân phối Nachos đi kèm:

  • Một bài viết tổng quan
  • Mã cơ sở đơn giản cho một hệ điều hành làm việc
  • Trình mô phỏng cho các bài tập mẫu máy tính / máy trạm cá nhân chung
  • Một primer C ++ (Nachos được viết trong một tập hợp con dễ học của C ++ và primer giúp dạy cho các lập trình viên C tập hợp con của chúng ta)

Các bài tập minh họa và khám phá tất cả các lĩnh vực của các hệ điều hành hiện đại, bao gồm các luồng và đồng thời, đa chương trình, các cuộc gọi hệ thống, bộ nhớ ảo, TLB được tải phần mềm, hệ thống tệp, giao thức mạng, cuộc gọi thủ tục từ xa và hệ thống phân tán.


0

Hãy xem KOS (Kid OD) và SOS (Hệ điều hành đơn giản). Cả hai đều là Hệ điều hành được thiết kế để dạy nội bộ của HĐH. KOS là "cha đẻ" của SOS và được xây dựng dựa trên kinh nghiệm có được từ KOS.

Các dự án này là nền tảng của nhiều bài báo giáo dục trên Tạp chí Linux Pháp.

Trên trang web KOS, bạn cũng có thể tìm thấy một trang nơi bạn có thể tải xuống các nguồn của các hệ điều hành mô phỏng khác.


0

Nếu bạn thuộc gia đình công nghệ .NET, bạn có thể kiểm tra Singularity . Nó chưa được cập nhật từ năm 2008, nhưng có thể được tải xuống dưới dạng nguồn và ISO từ CodePlex tại đây .


Lý do đặc biệt cho downvote, downvoter ? Liên kết vẫn còn hoạt động và đó là một hệ điều hành đơn giản được viết bằng ngôn ngữ cấp cao.
Jesse C. Choper

0

Mọi người có thể hiểu tất cả các phiên bản CP / M và DOS đầu tiên. Sau đó mọi thứ vượt khỏi tầm kiểm soát và không ai biết mọi thứ nữa. Chúng không được thiết kế để học cách một HĐH hoạt động nhưng nhiều người đã học được điều đó từ các HĐH đó.


1
Xem xét thêm một số tài liệu tham khảo hoặc bằng chứng giai thoại bổ sung để sao lưu câu trả lời của bạn. Hoặc thêm một số chi tiết bổ sung để cho biết tại sao phiên bản X dễ hiểu hơn phiên bản Y.

-1

Đi đọc một cuốn sách về lập trình trong trình biên dịch chương trình. Bạn không cần phải thành thạo về nó nhưng nó sẽ dạy cho bạn rất nhiều hoạt động bên trong của máy tính.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.