MINIX

Bách khoa toàn thư mở Wikipedia
Jump to navigation Jump to search
MINIX
Minix3.1.8.PNG
Màn hình khởi động MINIX 3.1.8
Nhà phát triển Andrew S. Tanenbaum
Được viết bằng C, C++, Tcl, FORTRAN, Modula-2, Pascal, Perl, Python
Loại hệ điều hành Tương tự Unix
Tình trạng hoạt động Current
Kiểu mã nguồn Nguồn mở
Phát hành lần đầu , 1987; 31 năm trước
Phiên bản mới nhất 3.4.0 / tháng 1, 2016; 2 năm trước
Đối tượng quảng cáo Giáo viên (v1, v2)
Hệ thống nhúng (v3)
Có hiệu lực trong Tiếng Anh
Nền tảng hỗ trợ PC, PC/AT, PS/2, Motorola 68000, SPARC, Atari ST, Commodore Amiga, Macintosh, SPARCstation, I386, NS32532, ARM, INMOS transputer
Kiểu nhân Microkernel
Giấy phép Ban đầu độc quyền, Giấy phép BSD từ 2000
Trang mạng minix3.org

MINIX (từ "mini-Unix") là một hệ điều hành máy tính tương tự Unix dựa trên kiến trúc microkernel và tuân theo chuẩn POSIX (từ phiên bản 2.0),[1][2]

Phiên bản đầu của MINIX được tạo ra bởi Andrew S. Tanenbaum cho mục đích giáo dục. Bắt đầu với MINIX 3, mục tiêu chính của sự phát triển dịch chuyển từ sự giáo dục sang việc tạo ra một hệ điều hành microkernel độ tin cậy cao và tự sửa lỗi. MINIX bây giờ phát triển như là phần mềm nguồn mở.

MINIX phát hành lần đầu năm 1987, với mã nguồn hoàn chỉnh của nó tạo sẵn cho các trường đại học để học tập trong khóa học và nghiên cứu. Nó trở thành phần mềm tự do mã nguồn mở từ khi nó chuyển đổi giấy phép sang BSD license tháng 4/2000.[3]

Triển khai[sửa | sửa mã nguồn]

MINIX 1.0[sửa | sửa mã nguồn]

Andrew S. Tanenbaum đã tạo ra MINIX tại Vrije Universiteit ở Amsterdam để minh hoạ cho các nguyên lý truyền đạt trong cuốn sách giáo khoa của mình, Operating Systems: Design and Implementation (1987).

Một giản lược 12.000 dòng lệnh C của kernel, quản lý bộ nhớ, và file system của MINIX 1.0 đã đựoc in trong cuốn sách. Prentice-Hall cũng phát hành mã nguồn MINIX và bản nhị phân trên đĩa mềm với một hướng dẫn tham khảo. MINIX 1 có các lời gọi hệ thống tương thích với Seventh Edition Unix.[4]

Tanenbaum ban đầu phát triển MINIX cho các máy vi tính IBM PC và IBM PC/AT có sẵn vào thòi kỳ đó

MINIX 1.5[sửa | sửa mã nguồn]

MINIX 1.5, phát hành năm 1991, bao gồm các hỗ trợ cho hệ thống MicroChannel IBM PS/2 và port cho kiên trúc Motorola 68000 và SPARC, hỗ trợ các nền tảng Atari ST, Commodore Amiga, Apple Macintosh[5] và Sun SPARCstation. Cũng có mọt bản port không chính thức cho các vi xử lý tương thích Intel 386 (trong chế độ bảo vệ 32-bit), National Semiconductor NS32532, ARM và INMOS transputer. Meiko Scientific đã sử dụng phiên bản đầu tiên của MINIX để làm cơ sở cho hệ điều hành MeikOS cho dòng máy tính song song dựa trên Transputer  Computing Surface của họ. Một phiên bản của MINIX chạy như một tiến trình sử dụng dưới SunOS và Solaris cũng đã có sẵn, một giả lập gọi là SMX.[6][7]

MINIX 2.0[sửa | sửa mã nguồn]

Hệ thống khởi động và dấu nhắc đăng nhập MINIX 2.0.4
Giao tiếp shell MINIX 2.0.4 

Nhu cầu với các kiến trúc dựa trên 68k suy giảm, vì vậy, MINIX 2.0 phát hành năm 1997, chỉ hỗ trợ cho các kiến trúc x86 và Solaris-hosted SPARC. Đó là chủ đề của các ấn bản thứ hai của cuốn giáo trình Tanenbaum, cùng viết với Albert Woodhull và được phát hành trên đĩa CD-ROM đính kèm với cuốn sách. MINIX 2.0 bổ sung các quy chuẩn POSIX.1, hỗ trợ cho các vi xửa lý 386 và sau này trong chế độ 32-bit và thay thế giao thức mạng Amoeba trong MINIX 1.5 bằng TCP/IP. Port không chính thức của MINIX 2.0.2 cho máy trạm ISICAD Prisma 700 dựa trên 68020[8] và HP Jornada 680/690 PDA dựa trên Hitachi SH3[9] cũng được phát triển.

Minix-vmd[sửa | sửa mã nguồn]

Minix-vmd là một biến thể của MINIX 2 cho các vi xử lý tương thích Intel IA-32, tạo bởi hai nhà nghiên cứu của Vrije Universiteit, với bổ sung thêm bộ nhớ ảo và hỗ trợ X Window System.

MINIX 3[sửa | sửa mã nguồn]

MINIX 3.2 đang chạy lệnh giám sát hệ thống "top"
MINIX 3 đang chạy X11 với trình quản lý của sổ twm

MINIX 3 đã được công bố công khai ngày 24/10/2005 bởi Andrew Tanenbaum trong bài phát biểu của mình ở hội nghị ACM Symposium Operating Systems Principles. Mặc dù vẫn đang là một ví dụ cho phiên bản mới của cuốn giáo trình  của Tanenbaum và Woodhull, nó được thiết kế lại toàn diện và "có thể sử dụng như một hệ thống nghiêm túc trên máy tính nguồn lực hạn chế và nhúng và cho các ứng dụng đòi hỏi độ tin cậy cao."[10]

MINIX 3 chỉ hỗ trợ các hệ thống kiến trúc IA-32 và ARM. Nó có sẵn trong một định dạng Live CD cho phép nó được sử dụng trên một máy tính mà không cần cài đặt nó trên ổ đĩa cứng, và trong các phiên bản tương thích với các giả lập/ ảo hóa phần cứng, bao gồm Bochs, QEMU, VMware Workstation/Fusion, VirtualBox và Microsoft Virtual PC.

Version 3.1.5 phát hành ngày 5/11/2009. Nó bao gồm X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine, và hơn 400 tiện ích Unix phổ biến khác. Với việc bổ sung X11, phiên bản này đánh dấu sự chuyển đổi từ hệ thống chỉ có văn bản. Nó cũng có thể chịu được bị treo driver. Trong nhiều trường hợp, nó có thể tự động khởi động lại trình điều khiển mà không ảnh hưởng đến tiến trình đang chạy. Bằng cách này, MINIX là tự chữa lành và có thể được sử dụng trong các ứng dụng đòi hỏi độ tin cậy cao. MINIX cũng đã hỗ trợ cho quản lý bộ nhớ ảo, khiến nó phù hợp cho việc sử dụng như hệ điều hành desktop.[11] Các ứng dụng desktop như Firefox và OpenOffice.org không có sẵn cho MINIX 3 tuy nhiên.

Với phiên bản 3.2.0, userland chủ yếu đã bị thay thế bởi NetBSD và hỗ trợ từ pkgsrc trở thành khả thi làm tăng các ứng dụng phần mềm có sẵn mà MINIX có thể dùng. Clang thay thế các trình biên dịch trước đó (vơi tùy chọn hỗ trợ GCC), và GDB, GNU debugger, đã được port.[12]

MINIX 3.3.0, phát hành tháng 9/2014, hỗ trợ thêm ARM.

MINIX 3.4.0RC, Release Candidates có mặt thags 1/2016.[13] Tuy nhiên bản phát hành ổn định của MINIX 3.4.0 vẫn chưa được công bố.

MINIX 3 vẫn có một cộng đồng phát triển tích cực với hơn 50 người tham dự MINIXCon 2016, một hội nghị để thảo luận về lịch sử và tương lai của Minix.[14]

Quan hệ với Linux[sửa | sửa mã nguồn]

Anh hưởng ban đầu[sửa | sửa mã nguồn]

Các nguyên tắc thiết kế Tanenbaum áp dụng cho MINIX ảnh hưởng lớn đến quyết định thiết kế Linus Torvalds áp dụng trong việc tạo ra các hạt nhân Linux.[cần dẫn nguồn] Torvalds sử dụng và đánh giá cao MINIX,[15] nhưng thiết kế của ông xa rời kiến trúc MINIX theo những cách đáng kể, đáng chú ý nhất bằng cách sử dụng monolithic kernel thay vì microkernel. Điều này không được chấp thuận của Tanenbaum trong cuộc tranh luận Tanenbaum–Torvalds. Tanenbaum giải thích một lần nữa lý do sử dụng một microkernel tháng 5/2006..[16]

Việc phát triển nhân Linux ban đầu đã được thực hiện trên một hệ thống máy chủ MINIX, dẫn đến Linux kế thừa các tính năng khác nhau từ MINIX, ví dụ như MINIX file system.

Tuyên bố Samizdat[sửa | sửa mã nguồn]

Tháng 5/2004, Kenneth Brown của Alexis de Tocqueville Institution đã cáo buộc rằng phần chính của hạt nhân Linux đã được sao chép từ codebase MINIX,trong một cuốn sách có tên là Samizdat.[17] Những lời buộc tội này bị nhiều người bác bỏ - nổi bật nhất là chính Andrew Tanenbaum, người chỉ trích mạnh mẽ Kenneth Brown và phát hành một bác bỏ lâu trên trang web cá nhân của mình, cũng chỉ ra rằng Brown được tài trợ bởi Microsoft.

Giấy phép[sửa | sửa mã nguồn]

Tại thời điểm phát triển ban đầu của nó, giấy phép của MINIX được coi là khá tự do. Giấy phép của nó có giá rất nhỏ ($69) so với các hệ điều hành khác. Mặc dù Tanenbaum mong cho MINIX có thể tiếp cận dễ dàng với các sinh viên, bản phát hành của ông đã không được chuẩn bị để cung cấp tài liệu (chẳng hạn như mã nguồn) có thể sao chép một cách tự do, do đó, một giấy phép hạn chế đòi hỏi một khoản phí danh nghĩa (bao gồm giá của cuốn sách của Tanenbaum) đã được áp dụng như là một sự thỏa hiệp. Điều này ngăn chặn việc sử dụng MINIX làm cơ sở cho một hệ thống phân phối phần mềm tự do.

Khi các hệ điều hành tự do nguồn mở tương tự Unix như Linux và 386BSD có mặt vào đầu những năm 1990, nhiều nhà phát triển tình nguyện đã rời bỏ MINIX chuyển sang một trong số đó. Tháng 4/2000, MINIX đã trở thành phần mềm tự do/mã nguồn mở dưới một giấy phép phần mềm tự do,[18] Nhưng do thời gian này hệ điều hành khác đã vượt qua khả năng của nó, và nó vẫn chủ yếu là một hệ điều hành cho sinh viên và người có đam mê

Xem thêm[sửa | sửa mã nguồn]

Chú thích[sửa | sửa mã nguồn]

  1. ^ Tanenbaum, Andrew S (ngày 20 tháng 5 năm 2004). “Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.5”. Bản gốc lưu trữ ngày 11 tháng 9 năm 2010. Truy cập ngày 20 tháng 8 năm 2016. 
  2. ^ Tanenbaum, Andrew S.; Woodhull, Albert S.; Sambuc, Lionel (ngày 11 tháng 3 năm 2015). “MINIX 3 FAQ”. Truy cập ngày 20 tháng 8 năm 2016. 
  3. ^ "MINIX is now available under the BSD license", Apr 9 2000, minix1.woodhull.com
  4. ^ Tanenbaum, Andrew S.; Woodhull, Albert S. (1997) [1986]. Operating Systems Design and Implementation . ISBN 0-13-638677-6. OCLC 35792209. Truy cập ngày 2 tháng 8 năm 2011. 
  5. ^ “MacMinix”. 
  6. ^ Tanenbaum, Andrew S.; Woodhull, Albert S.; Bot, Kees (ngày 22 tháng 7 năm 2005). “WELCOME TO MINIX” (TXT). Truy cập ngày 2 tháng 8 năm 2011. 
  7. ^ Flouris, M. “Installing and running MINIX for Solaris (SMX)”. Truy cập ngày 2 tháng 8 năm 2011. 
  8. ^ Harvey, George. “Minix on the Prisma”. Truy cập ngày 2 tháng 8 năm 2011. 
  9. ^ “MINIX for Jornada”. 23 tháng 9 năm 2002. Bản gốc lưu trữ ngày 11 tháng 12 năm 2002. Truy cập ngày 2 tháng 8 năm 2011. 
  10. ^ Chú thích trống (trợ giúp) 
  11. ^ Schmidt, Ulrich (ngày 10 tháng 11 năm 2010). “New to minix”. Truy cập ngày 2 tháng 8 năm 2011. 
  12. ^ “MINIX Releases”. wiki.minix3.org. Truy cập ngày 29 tháng 2 năm 2012. 
  13. ^ “Index of /iso/snapshot/”. download.minix3.org. Truy cập ngày 14 tháng 10 năm 2016. 
  14. ^ “MINIXCon 2016”. www.minix3.org. Truy cập ngày 14 tháng 10 năm 2016. 
  15. ^ Moody, Glyn (ngày 25 tháng 8 năm 2015). “How Linux was born, as told by Linus Torvalds himself”. Ars Technica. Truy cập ngày 25 tháng 8 năm 2015. 
  16. ^ Tanenbaum, Andrew S. (ngày 12 tháng 5 năm 2006). “Tanenbaum-Torvalds Debate: Part II”. Truy cập ngày 2 tháng 8 năm 2011. 
  17. ^ Brown, Kenneth (ngày 4 tháng 6 năm 2004). “Samizdat's critics… Brown replies”. Alexis de Tocqueville Institution. Truy cập ngày 2 tháng 8 năm 2011. 
  18. ^ “The Minix licence”. 

Liên kết ngoài[sửa | sửa mã nguồn]