Zakaj se Linux (delno) zahvaljuje za svoj uspeh Microsoftu

  • Oct 30, 2023
MIKROJEDRA VS MONOLITNI SISTEM

Večina starejših operacijskih sistemov je monolitnih, kar pomeni, da je celoten operacijski sistem ena sama datoteka a.out, ki deluje v 'načinu jedra.' Ta dvojiška datoteka vsebuje upravljanje procesov, upravljanje pomnilnika, datotečni sistem in počitek. Primeri takih sistemov so UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS in mnogi drugi.

Alternativa je sistem, ki temelji na mikrojedru, v katerem večina OS teče kot ločeni procesi, večinoma zunaj jedra. Komunicirajo s posredovanjem sporočil. Naloga jedra je obravnavati posredovanje sporočil, obravnavanje prekinitev, nizkonivojsko upravljanje procesov in po možnosti V/I. Primeri te zasnove so RC4000, Amoeba, Chorus, Mach in še neizdani Windows/NT.

Medtem ko bi lahko šel v dolgo zgodbo o relativnih prednostih obeh modelov, je dovolj reči, da je med ljudmi, ki dejansko oblikujejo operacijske sisteme, razprava v bistvu končana. Mikrojedra so zmagala. Edini pravi argument za monolitne sisteme je bila zmogljivost in zdaj je dovolj dokazov, da so lahko sistemi z mikrojedri prav tako hitro kot monolitni sistemi (npr. Rick Rashid je objavil članke, v katerih je Mach 3.0 primerjal z monolitnimi sistemi), da je zdaj vsega konec, vendar kričanje`.

MINIX je sistem, ki temelji na mikrojedrih. Datotečni sistem in upravljanje pomnilnika sta ločena procesa, ki se izvajata zunaj jedra. I/O gonilniki so prav tako ločeni procesi (v jedru, vendar samo zato, ker je zaradi mrtve narave procesorjev Intel to težko narediti drugače). LINUX je sistem monolitnega sloga. To je velik korak nazaj v sedemdeseta leta prejšnjega stoletja. To je tako, kot bi vzeli obstoječi, delujoči program C in ga prepisali v BASIC. Zame je pisanje monolitnega sistema leta 1991 resnično slaba ideja.

PRENOSLJIVOST

Nekoč je bil CPU 4004. Ko je zrasel, je postal 8008. Nato je bil podvržen plastični operaciji in postal je 8080. Iz nje je nastal 8086, iz katerega je nastal 8088, iz katerega je nastal 80286, iz katerega je nastal 80386, iz katerega je nastal 80486 in tako naprej do N-te generacije. Medtem so se pojavili čipi RISC in nekateri od njih delujejo pri več kot 100 MIPS. V prihodnjih letih so verjetno hitrosti 200 MIPS in več. Te stvari ne bodo kar naenkrat izginile. Zgodilo se bo, da bodo postopoma prevzeli linijo 80x86. Zagnali bodo stare programe MS-DOS z interpretacijo 80386 v programski opremi. (Napisal sem celo svoj IBM PC simulator v C, ki ga lahko dobite po FTP iz ftp.cs.vu.nl = 192.31.231.42 v dir minix/simulator.) Mislim, da je velika napaka načrtovati operacijski sistem za katero koli specifično arhitekturo, saj to ne bo vse tako dolgo naokoli.

MINIX je bil zasnovan tako, da je razumno prenosljiv in je bil prenesen iz linije Intel na 680x0 (Atari, Amiga, Macintosh), SPARC in NS32016. LINUX je dokaj tesno povezan z 80x86. Ni prava pot.