MINIX

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),

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.

== Triển khai ==
=== MINIX 1.0 ===
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 đã được 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.

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 ===
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 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.

=== MINIX 2.0 ===
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ử 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 và HP Jornada 680/690 PDA dựa trên Hitachi SH3 cũng được phát triển.

==== Minix-vmd ====
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 ===
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."

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. 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.

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. 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.

== Quan hệ với Linux ==
=== Anh hưởng ban đầu ===
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. Torvalds sử dụng và đánh giá cao MINIX, 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..

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" ===
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". 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 ==
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, 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 ==
- MINIX file system
- Minix-vmd
- MINIX 3
- Linux

== Liên kết ngoài ==
- History of MINIX from Andrew Tanenbaum