Minix | |
---|---|
Utvecklaren | Andrew Tanenbaum |
OS-familjen | Unix-liknande operativsystem |
Första upplagan | 1987 [3] |
senaste versionen |
|
Senaste testversionen | |
Språk som stöds | engelsk |
Plattformar som stöds | x86 och ARM |
Typ av kärna | mikrokärna |
Licens | modifierad BSD-licens [d] [4][5][6] |
Källkodsförråd | git.minix3.org/?p=minix.… |
Hemsida | minix3.org _ |
Mediafiler på Wikimedia Commons |
Minix är ett gratis Unix-liknande mikrokärnoperativsystem distribuerat under BSD-licensen [7] [8] . Andrew Tanenbaum skapade den första versionen av Minix 1987 som en "illustration" för läroboken Operating Systems: Design and Implementation. Linus Torvalds , utvecklaren av Linux [9] , har uppnått den största berömmelsen bland studenter som studerar operativsystemteori från Minix-källan . Inledningsvis var Minix mål att lära eleverna hur man bygger datorer och grunderna i operativsystem. Minix -källkoden skiljer sig helt från Linux OS-koden, men precis som Linux är Minix ett Unix -liknande operativsystem med en liknande uppsättning kommandon.
Källkoden för MINIX 3 med kommentarer översatta till ryska kan erhållas på CD tillsammans med boken "Operating Systems: Development and Implementation" (Tanenbaum E.S., Woodhull A.S., 3:e upplagan publicerad i Ryssland 2007), som i detalj beskriver strukturen av OS på exemplet med Minix.
Den 1 november 2008 fick Andrew Tanenbaum ett anslag på 2,5 miljoner euro från European Research Council för att arbeta med projektet: "Research on Truly Reliable and Secure System Software". Bidraget gör det möjligt att fortsätta arbetet med vidareutvecklingen av MINIX 3 OS i minst fem år (till november 2013) [10] .
Andrew Tanenbaum skapade Minix vid Free University of Amsterdam för att demonstrera principerna som beskrivs i hans bok "Operating Systems: Design and Implementation" ( 1987 ). ISBN 0-13-637406-9 . Förkortade 12 000 rader källkod för kärnan , minneshanteringsundersystemet och Minix-filsystemet trycktes i boken. Minix är övervägande skrivet i programmeringsspråket C.
1987 behandlade Tanenbaum bara Minix som ett läromedel. För att hålla OS-koden tillgänglig för studier under terminen , avvisade Andrew Tanenbaum förslag om att förbättra Minix eller acceptera patchar som kom från läsare av hans lärobok. Rollen för projektet, där Tanenbaums läsare förkroppsligade sin önskan att utveckla operativsystem, övertogs av Linux .
Tanenbaum utvecklade ursprungligen Minix för IBM PC och IBM PC/AT-datorer som fanns tillgängliga vid den tiden. Minix version 1.5 portades till Motorola 68000 , vilket gör den kompatibel med de populära plattformarna Amiga , Atari ST , Apple Macintosh . Dessutom gjordes versioner för SPARC , National Semiconductor NS32032 och transputrar .
Minix 1.5 släpptes 1991 . Detta inkluderade stöd för IBM PS/2 MicroChannel- systemen , som också portades till Motorola 68000 och SPARC-arkitekturerna , samtidigt som de stödde Atari ST , Amiga , Macintosh [11] och SPARCstation [12] [13] .
Minix 2.0 stödde återigen bara x86- arkitekturen och släpptes 1997 . Den ingick i den andra upplagan av Tanenbaums bok, som han skrev tillsammans med Albert Woodhull. Minix 1 och 2 var inlärningsverktyg [14] [15] .
Minix version 3 tillkännagavs den 24 oktober 2005 av Andrew Tanenbaum under hans tal vid Association for Computing Machinery Symposium on Operating Systems Principles (ACM Symposium on Operating Systems Principles). Även om Minix fortfarande fungerar som en fallstudie i den nya utgåvan av Tanenbaum och Woodhulls bok, har den designats om och gjorts användbar som ett robust operativsystem för mikrokontroller och andra inbyggda system . Den är tillgänglig på en LiveCD som kan köras utan att behöva installera systemet på en hårddisk, och är kompatibel med många emulatorer som Bochs , QEMU , VMware , VirtualBox och Virtual PC [16] .
Detta operativsystem är kompakt. Delarna som fungerar i användarläge är uppdelade i små moduler och är väl isolerade från varandra. Till exempel körs varje enhetsdrivrutin som en separat användarlägesprocess, och en bugg i drivrutinen (överlägset källan till de flesta buggar i alla operativsystem) kan inte helt bryta systemet som helhet. I Minix, när en drivrutin kraschar, startas den automatiskt om utan att användaren behöver ingripa, ladda om och utan att påverka program som körs. Dessa funktioner, mikrokärnarkitektur och andra aspekter ökar avsevärt tillförlitligheten hos detta operativsystem.
Från och med version 3.1.4 stöder Minix virtuellt minne .
Meddelande om ändringar i release 3.1.5 [17] :
Meddelande om ändringar i release 3.1.6:
Meddelande om ändringar i release 3.1.7:
Meddelande om ändringar i release 3.2.0:
Release 3.3.0 började stödja ARM .
Minix 3.4.0 blev en releasekandidat i januari 2016 [20] .
Minix 3 har fortfarande en community som utvecklat den, och communityn träffades på MINIXCon 2016 med 50 personer för att diskutera framtiden för Minix [21] .
Alla Intel-kretsuppsättningar efter 2015 körs i MINIX 3 som en mjukvarukomponent i Intel Management Engine [22] .
Torvalds använde och uppskattade MINIX som student till Tanenbaum [23] , men när han implementerade Linux-kärnarkitekturen bestämde han sig för att inte använda MINIX-arkitekturen, utan antog en monolitisk kärnarkitektur istället för en mikrokärnarkitektur. Detta beslut av Torvalds godkändes inte av Tanenbaum och resulterade i en tvist mellan Tanenbaum och Torvalds . Tanenbaum presenterade sitt argument för att använda mikrokärnarkitekturen i maj 2006 [24] .
Tidig utveckling av Linux-kärnan gjordes på ett MINIX-värdsystem, vilket ledde till att Linux införlivade olika funktioner från MINIX, såsom stöd för filsystemet MINIX.
I maj 2004 gjorde Kenneth Brown från Alexis de Tocqueville Institute påståendet att större delar av Linux-kärnan kopierades från MINIX-kodbasen, och tillkännagav detta i sin bok Samizdat [ 25] . Dessa anklagelser har avslöjats, framför allt av Andrew Tanenbaum, som har varit mycket kritisk mot Kenneth Brown och har publicerat ett långt motbevis på sin personliga webbplats, som också påpekar att Brown finansierades av Microsoft [26] [8] .
Operativsystem | |||||
---|---|---|---|---|---|
För servrar eller arbetsstationer |
| ||||
Inbäddad | |||||
Övrig |