Dlaczego Tanenbaum się mylił w debatach Tanenbaum-Torvalds?

233

Ostatnio przydzielono mi czytanie z debat Tanenbaum-Torvalds w mojej klasie OS. W debatach Tanenbaum dokonuje pewnych prognoz:

  1. Mikrojądra to przyszłość
  2. x86 wymrze, a architektury RISC zdominują rynek
  3. (Za 5 lat) wszyscy będą korzystać z bezpłatnego systemu operacyjnego GNU

Miałem rok, kiedy miały miejsce debaty, więc brakuje mi intuicji historycznej. Dlaczego te prognozy nie zostały sprawdzone? Wydaje mi się, że z punktu widzenia Tanenbauma są to całkiem rozsądne prognozy na przyszłość. Co się stało, że się nie spełniły?

Robz
źródło
189
Przewidując przyszłość, faworyzuj entropię i szczęście zamiast innowacji i ideałów.
zzzzBov
18
Napisałem tutaj trochę maratonowej odpowiedzi , która obejmuje pewne podstawy w punkcie 1. W rzeczywistości dość trudno jest uniknąć tej debaty, omawiając różnice w architekturze jądra. Najsłodsza ironia to właściwie podpis, Linus "my first, and hopefully last flamefest" Torvaldsktóry oczywiście również się nie spełnił :)
Tim Post
13
Zostawiam to jako komentarz zamiast odpowiedzi (nie sądzę, że jest „wystarczająco skomplikowany”, aby być odpowiedzią): Tanenbaum nie mylił się, sądząc, że Microkernels są lepsze, że x86 powinien opuścić arenę i że GNU OS (cokolwiek jądro, na którym działa) było lepszym rozwiązaniem. Być może był naiwny, jeśli naprawdę wyraził silne przekonanie, że stanie się to tak szybko (lub w ogóle), częściowo z powodu bezwładności społecznej i monopoli, a częściowo dlatego, że wydajne mikrojądra nie są tak łatwe do wdrożenia w systemach ogólnego przeznaczenia . (więc tak, szczęście )
njsg
15
Tanenbaum nie jest całkowicie w błędzie: w nowej erze post PC iOS opiera się na Mach i ARM, Android na L4 i ARM. Przegrał tylko GNU.
mouviciel
15
@mouviciel: i GNU zaginęło tylko na pulpicie. Serwery, urządzenia mobilne i osadzone to praktycznie wszystkie monopole GNU.
gbjbaanb

Odpowiedzi:

171

Mikrojądra to przyszłość

Myślę, że Linus w swojej debacie zwrócił uwagę na jądra monolityczne. Z pewnością niektóre wnioski wyciągnięte z badań mikrojądra zostały zastosowane do jąder monolitycznych. Microsoft czasami twierdził, że jądro Win32 jest architekturą mikrojądra. To trochę rozciąga się, gdy spojrzysz na niektóre mikrokernele podręcznika, ale twierdzenia miały techniczne uzasadnienie.

x86 wymrze, a architektury RISC zdominują rynek

Jeśli tworzysz kopię zapasową z komputerów stacjonarnych i serwerów, RISC dominuje na rynku procesorów pod każdym względem. ARM (R oznacza RISC) wyprzedza liczbę procesorów x86, jest w użyciu więcej procesorów ARM niż procesorów x86 i jest większa łączna moc obliczeniowa ARM niż pojemność obliczeniowa x86. W tym roku pojedynczy dostawca ARM (tak, Apple) może sprzedać łącznie wszystkich dostawców x86. Tylko w obszarze pulpitu i serwera dominuje x86. Tak długo, jak Windows jest dominującą platformą dla komputerów stacjonarnych i Linux dla serwerów, będzie to prawdopodobnie trwało przez jakiś czas.

Jest w tym również część b . Inżynierowie Intela wykonali niesamowitą pracę, aby wycisnąć życie z zestawu instrukcji, nawet do rdzenia RISC z translatorem opcode, który znajduje się na górze. Porównaj z jednym z dominujących producentów procesorów do komputerów stacjonarnych RISC, IBM, który nie mógł uzyskać energooszczędnej i wysokiej wydajności G5 dla laptopów Apple w rozsądnym czasie.

(Za 5 lat) wszyscy będą korzystać z bezpłatnego systemu operacyjnego GNU

Myślę, że różni dostawcy systemów operacyjnych nadal oferują atrakcyjne oferty wartości w swoich systemach operacyjnych. GNU niekoniecznie jest najważniejszym graczem w społeczności Open Source, więc nawet bardziej rozpowszechnione przyjęcie oprogramowania open source niekoniecznie przekłada się na systemy GNU. Jednak istnieje wiele rzeczy GNU (na przykład wszystkie komputery Mac są dostarczane z GNU Bash . Prawdopodobnie jest kilka narzędzi systemu GNU na telefony z Androidem). Myślę, że ekosystem komputerowy jest znacznie bardziej zróżnicowany niż przewidział Tanenbaum, nawet jeśli ograniczysz swój widok do komputerów stacjonarnych.

ccoakley
źródło
8
W punkcie 3 Linux jest bardzo szeroko rozpowszechniony, prawdopodobnie najczęściej używany system operacyjny, Windows i VxWorks. Zatem punkt 3 można uznać za prawdziwy. Sprawia, że ​​2 na 3 poprawne, co jest całkiem dobre, biorąc pod uwagę, jak nieprzewidywalne jest IT.
deadalnix
11
@deadalnix - Chciałem wyraźnie wymienić zakres na 3, ograniczając się do komputerów stacjonarnych. Jeśli farma serwerów Google działa pod Linuksem (prawda?), A każde pole liczy się do liczby linuksów, a mój modem kablowy z rozebraną wersją systemu Linux się liczy, a mój telefon z Androidem się liczy, prawdopodobnie Linux dominuje. Ale chociaż widziałem ładne wykresy sprzedanych / używanych procesorów ARM vs.
ccoakley
6
Również w odniesieniu do części 2, różne modernizacje x86 wychodzą o kilka kroków poza RISC i robią fascynujące rzeczy z „mikrooperacjami” wewnętrznie, które zapewniają jeszcze lepszą elastyczność planowania dzięki zmianie kolejności poleceń w locie, co zapewnia daleko idące zwiększenie wydajności poza tym, o czym mogą nawet marzyć zwolennicy RISC. Procesory RISC też mogą to osiągnąć, ale w tym momencie nie porównujesz RISC vs. CISC, porównujesz różne sprzętowe strategie JIT z dość abstrakcyjnymi nakładkami ISA.
puszysty
5
@KonradRudolph powołując się na całkowitą sprzedaż za pośrednictwem Google: 3 miliardy układów ARM wysłanych w 2009 r. ( Vanshardware.com/2010/08/mirror-the-coming-war-arm-versus-x86 ), podczas gdy szacuje się, że w 2011 r. Sprzedano około 400 milionów układów x86 (4 razy podana liczba kwartalna tutaj: computerworlduk.com/news/it-business/3345299/… ). Rynek wbudowany jest ogromny i w dużej mierze nie-Intel.
ccoakley
5
Nie sądzę, aby punkt 3 był prawdziwy w tym sensie, że Tanenbaum miał na myśli. W tym czasie wokół GNU HURD panował duży optymizm. Twierdzenie, że Linux (w dowolnym wariancie) jest zwycięstwem GNU OS, jest po prostu nieważne historycznie. Przestrzeń użytkownika? Pewnie. Ale w pewnym sensie Linux jądro wygrało pomimo GNU.
regularfry
60

Eksperci oprogramowania zignorowali ekonomię sprzętu

... lub „Moore miał rację i obaj się mylili”

Najważniejszą rzeczą, która została przeoczona w tej debacie, był wpływ technologii wytwarzania procesorów i ekonomii, napędzany przez zmniejszające się rozmiary tranzystorów wyrażone w prawie Moore'a (nic dziwnego, jakby wiedzieli dużo o sprzęcie CPU, ci faceci studiowali i dyskutowali o oprogramowaniu, a nie Produkcja procesora lub ekonomia). Stałe koszty produkcji amortyzowane przez procesory (np. Projekt ISA, projekt procesora i urządzenia produkcyjne procesora) gwałtownie wzrosły, zwiększając w ten sposób korzyści skali; przy spadających jednostkowych kosztach procesora (w kategoriach „huk za złotówkę” i „huk za wat”), koszt procesora nie musi być amortyzowany w związku z tak szerokim wyborem funkcji, aby zapewnić wartość, więc przetwarzanie w produktach ze stałą funkcją wybuchł; Budżety tranzystorów CPU wzrosły wykładniczo,

1. Skala procesora wygrywa nad różnorodnością procesora

Znaczenie ekonomii skali sprawiło, że zalety ISA / CPU ukierunkowane na większy (a więc szerszy) rynek przewyższają potencjalne korzyści wynikające z wyborów projektowych, które zawężają rynek dla ISA / CPU. Systemy operacyjne mogą obsługiwać coraz większą część rynku na obsługiwany ISA / CPU, więc nie ma potrzeby (lub nawet nie ma potrzeby) wykonywania ćwiczeń związanych z przenoszeniem, aby umożliwić rozwój ekosystemu systemu operacyjnego. Domeny problemowe Cel ISA i procesora jest zwykle tak szeroki, że w większości się pokrywają, więc w przypadku każdego oprogramowania poza kompilatorem zmniejszyły się również rozmiary ćwiczeń związanych z przenoszeniem. Prawdopodobnie zarówno Torvalds , jak i Tanenbaumprzecenił część projektu i implementacji jądra, która teraz musi być ISA, a nawet specyficzna dla CPU. Jak opisał Tanenbaum, współczesne jądra systemu operacyjnego wyodrębniają różnice między procesorami i procesorami ISA. Jednak kod specyficzny dla CPU / ISA we współczesnych systemach operacyjnych jest znacznie mniejszy niż mikrojądro. Zamiast implementować obsługę przerwań / planowanie, zarządzanie pamięcią, komunikację i operacje we / wy, te nieprzenośne bity odnoszą się tylko do niewielkiej części implementacji tych usług, przy czym znaczna większość architektury nawet tych podstawowych funkcji systemu operacyjnego jest przenośna.

2. Open Source wygrał bitwę, ale przegrał wojnę

Większy zysk za złotówkę oznacza, że ​​większy udział w przetwarzaniu danych mają produkty o stałej funkcji, w których możliwość modyfikacji produktu nie jest częścią oferty wartości dla klienta. Jak na ironię, oprogramowanie open source rozkwitło w tych urządzeniach o stałej funkcji, ale najczęściej korzyści płynące z tych swobód są realizowane raczej przez twórców produktów, a nie przez użytkowników końcowych (co było prawdą nawet na rynku oprogramowania jeszcze wtedy: Microsoft był dużym konsumentem oprogramowania typu open source, ale ich klienci nie). Podobnie można argumentować, że open source boryka się z większymi problemami z pulpitem ogólnego przeznaczenia niż gdziekolwiek indziej, ale wraz z rozwojem sieci i przetwarzania w chmurze, komputery stacjonarne są coraz częściej wykorzystywane w węższym celu (przede wszystkim w przeglądarce), z pozostałymi funkcjami działającymi w chmurze (jak na ironię, głównie na platformach open source). W skrócie: open source naprawdę posiada przestrzeń obliczeniową ogólnego przeznaczenia, ale rynek stał się bardziej wyrafinowany; przetwarzanie opakowań produktów komputerowych rzadziej zatrzymuje się na funkcji ogólnego przeznaczenia, ale jest kontynuowane wraz z produktem przeznaczonym do stałych funkcji, w których znaczna część zalet przetwarzania otwartego oprogramowania stoi w sprzeczności z celami produktu.

3. 2 n Środki wzrostu Stałe k Oszczędności nie są ważne

Gwałtowny wzrost budżetów tranzystorów przyniósł ze sobą świadomość, że koszt budżetu tranzystorów architektury CISC jest prawie całkowicie ustalony. Strategiczną zaletą RISC było przeniesienie złożoności z zestawu instrukcji procesora do kompilatora (bez wątpienia częściowo motywowane faktem, że autorzy kompilatorów czerpali znacznie mniej korzyści ze złożonych ISA niż twórcy kodujący w asemblerze, ale kompilatory mogą znacznie łatwiej zrozumieć matematycznie o prostym ISA, a zatem wykorzystującym); wynikające z tego oszczędności tranzystora można by następnie zastosować do poprawy wydajności procesora. Zastrzeżenie polegało na tym, że oszczędności budżetowe na tranzystorach wynikające z prostszego ISA zostały w większości naprawione (a narzuty w projektowaniu kompilatorów również zostały w większości naprawione). Chociaż ten stały wpływ był ogromną częścią budżetu w ciągu dnia, jak można sobie wyobrazić, potrzeba tylko kilku rund wykładniczego wzrostu, aby wpływ stał się trywialny. Ten gwałtownie malejący wpływ w połączeniu z wyżej wspomnianym gwałtownie rosnącym znaczeniem monokultury procesora oznaczał bardzo małe okno możliwości dla każdego nowego ISA. Nawet tam, gdzie nowe ISA odniosły sukces, współczesne ISA „RISC” nie są ortogonalnymi ISA opisanymi w strategii RISC, ponieważ dalszy wzrost budżetów tranzystorów i szersze zastosowanie przetwarzania SIMD w szczególności zachęciło do przyjęcia nowych instrukcji dostosowanych do określonych funkcji. Ten gwałtownie malejący wpływ w połączeniu z wyżej wspomnianym gwałtownie rosnącym znaczeniem monokultury procesora oznaczał bardzo małe okno możliwości dla każdego nowego ISA. Nawet tam, gdzie nowe ISA odniosły sukces, współczesne ISA „RISC” nie są ortogonalnymi ISA opisanymi w strategii RISC, ponieważ dalszy wzrost budżetów tranzystorów i szersze zastosowanie przetwarzania SIMD w szczególności zachęciło do przyjęcia nowych instrukcji dostosowanych do określonych funkcji. Ten gwałtownie malejący wpływ w połączeniu z wyżej wspomnianym gwałtownie rosnącym znaczeniem monokultury procesora oznaczał bardzo małe okno możliwości dla każdego nowego ISA. Nawet tam, gdzie nowe ISA odniosły sukces, współczesne ISA „RISC” nie są ortogonalnymi ISA opisanymi w strategii RISC, ponieważ dalszy wzrost budżetów tranzystorów i szersze zastosowanie przetwarzania SIMD w szczególności zachęciło do przyjęcia nowych instrukcji dostosowanych do określonych funkcji.

4. Proste: rozdzielenie obaw. Complex: Separacja przestrzeni adresowej.

Nowoczesne jądro Linuksa (podobnie jak większość innych jąder) pasuje raczej do luźnej definicji makrokernela, a nie do wąskiej definicji mikrojądra. To powiedziawszy, ze swoją architekturą sterowników, dynamicznie ładowanymi modułami i optymalizacjami wieloprocesowymi, które sprawiają, że komunikacja w przestrzeni jądra coraz bardziej przypomina przekazywanie wiadomości mikrojądra, jego struktura bardziej przypomina projekt mikrojądra (wcielony przez Minix) niż projekt makrokernela (wcielony w projekt Linuksa w czasie dyskusji). Podobnie jak konstrukcja mikrojądra, jądro Linuksa zapewnia uogólnioną komunikację, planowanie, obsługę przerwań i zarządzanie pamięcią dla wszystkich innych składników systemu operacyjnego; jego komponenty mają zwykle odrębne struktury kodu i danych. Podczas gdy moduły są ładowane dynamicznie, luźno połączone fragmenty przenośnego kodu, które komunikują się za pośrednictwem stałych interfejsów, nie wykorzystują jednej pozostałej właściwości mikrojądra: nie są to procesy w przestrzeni użytkownika. Ostatecznie prawo Moore'a zapewniło, że problemy motywowane problemami sprzętowymi, takimi jak przenośność (problem Tanenbauma) i wydajność (problem Torvaldsa) zmniejszyły się, ale problemy z programowaniem stały się niezwykle ważne. Pozostałe niezrealizowane zalety, jakie może zapewnić separacja przestrzeni adresowej, są przeważone przez dodatkowy bagaż nałożony na oprogramowanie systemu operacyjnego z powodu ograniczeń projektowych i zwiększonej złożoności interfejsów komponentów. Prawo zapewniło, że problemy motywowane problemami sprzętowymi, takimi jak przenośność (problem Tanenbauma) i wydajność (problem Torvaldsa) zmniejszyły się, ale problemy z programowaniem stały się niezwykle ważne. Pozostałe niezrealizowane zalety, jakie może zapewnić separacja przestrzeni adresowej, są przeważone przez dodatkowy bagaż nałożony na oprogramowanie systemu operacyjnego z powodu ograniczeń projektowych i zwiększonej złożoności interfejsów komponentów. Prawo zapewniło, że problemy motywowane problemami sprzętowymi, takimi jak przenośność (problem Tanenbauma) i wydajność (problem Torvaldsa) zmniejszyły się, ale problemy z programowaniem stały się niezwykle ważne. Pozostałe niezrealizowane zalety, jakie może zapewnić separacja przestrzeni adresowej, są przeważone przez dodatkowy bagaż nałożony na oprogramowanie systemu operacyjnego z powodu ograniczeń projektowych i zwiększonej złożoności interfejsów komponentów.

Co ciekawe, co ma być silna tendencja jest pojawienie hypervisor, która podobnie jak mikrojądro Abstracts się sprzętu. Niektórzy twierdzą, że hiperwizory są mikrojądrami. Architektura hiperwizora jest inna, ponieważ obowiązki przeznaczone do mikrokerneli są obsługiwane przez jądra „gościa” siedzące na szczycie, z multipleksami hiperwizorów między nimi, a abstrakcja hiperwizora nie jest ogólną komunikacją i przestrzenią adresową pamięci, ale przede wszystkim faktyczną emulacją sprzętu.

Podsumowując: przyszłość sprzyja tym, którzy przyjmą najmniej surową semantykę

* .. lub „nitpickers do bani przewidywania przyszłości”

W praktyce wiele poprawności / zła w debacie jest kwestią semantyki (i było to częścią argumentów Torvaldsa, a IMHO Tanenbaum nie docenił w pełni). Trudno jest precyzyjnie zdefiniować przyszłość, ponieważ istnieje tak wiele czynników poza argumentem, które mogą się pojawić; luźniejsza semantyka oznacza, że ​​twoje przewidywania są większym celem na tarczy niż w przeciwniku, co daje ci o wiele większe szanse. Jeśli zignorujesz semantykę, argumenty wysunięte zarówno przez Torvaldsa, jak i Tanenbauma miały rację co do wielu rzeczy, a błędne bardzo niewiele.

tl; dr

Większość ISA nie pasuje do semantycznej definicji RISC, ale wykorzystuje większość zalet projektowych charakterystycznych dla procesorów RISC w tym czasie; ilość systemu operacyjnego zależna od CPU jest mniejsza niż oczekiwano Tanenbaum, nie mówiąc już o Torvalds; open source dominuje w komputerach ogólnego zastosowania, ale konsumenci tego rynku to teraz głównie ci, którzy pakują komputery w produkty o stałej funkcji, w których znaczna część korzyści z oprogramowania open source nie jest realizowana; oddzielenie funkcji systemu operacyjnego między przestrzeniami adresowymi nie okazało się korzystne, ale oddzielenie funkcji systemu operacyjnego od „wirtualnego” sprzętu ma. Jeśli chcesz twierdzić, że twoje przewidywania okazały się słuszne, zostaw sobie tyle semantycznego pokoju manewrowego, jak to możliwe, tak jak pan Torvalds.

PS Ostatnia ironiczna obserwacja: Linus Torvalds jest jednym z najsilniejszych zwolenników utrzymywania jak największej liczby nowych funkcji w przestrzeni użytkownika i poza jądrem Linuksa.

Christopher Smith
źródło
42
  • Mikrojądra to przyszłość

Popełnił błąd, wygląda na to, że wszystko zmierza do użycia hybrydowych jąder. Linux formalnie nadal jest monolityczny, ale dodawanie takich rzeczy jak FUSE itp. Sprawia, że ​​wygląda trochę hybrydowo.

  • x86 wymrze, a architektury RISC zdominują rynek

Ok, więc x86 nie wymarł. Ale czy RISC nie dominuje na rynku? Miliardy smartfonów korzystających z ARM, wszystkie konsole do gier korzystające z procesorów RISC, większość urządzeń sieciowych z procesorami MIPS.

Poza tym na początku lat 2000. RISC i CISC zbiegły się tak bardzo, że nie było wyraźnych różnic w wewnętrznym projekcie. Nowoczesne procesory x86 są w zasadzie wewnętrznie RISC z interfejsem CISC.

  • (Za 5 lat) wszyscy będą korzystać z bezpłatnego systemu operacyjnego GNU

Jeśli przez GNU OS miał na myśli GNU Hurda, to rzeczywiście całkowicie nieudana prognoza. To, co ludzie masowo wykorzystują, to system Android. Android to Linux, jednak nie jest to GNU, ponieważ nie używa GNU libc. Zamiast tego używa własnego Googleion Bionic . A udział w rynku standardowego Linux-a na komputery stacjonarne jest nadal poniżej 2%. Ale czy naprawdę miał na myśli komputery osobiste? Na rynku serwerów Linux absolutnie dominuje z 70-90% udziałem w zależności od segmentu.

vartec
źródło
5
„Na rynku serwerów Linux absolutnie dominuje, z 70-90% udziałem w zależności od segmentu”. Gdzie jest na to dowód?
quant_dev
4
Liczby vartca są prawdopodobnie przesadzone. Zostawię to tutaj en.wikipedia.org/wiki/OS_market_share#Servers
Federico klez Culloca
4
@quant_dev: 92% z Top500, 60-70% serwerów sieciowych, cała infrastruktura Google, cała infrastruktura FB, cała infrastruktura Amazon ... itd.
vartec
1
Czy możesz podać linki do kopii zapasowej swoich wyciągów?
quant_dev
13
Top500: i.top500.org/stats , Google: lwn.net/Articles/357658 , Amazon: news.cnet.com/2100-1001-275155.html , FB: http: /www.infoq.com/presentations/Facebook -System-Stack
vartec
21
  1. Niepewny.

  2. W połowie racja. Dzisiejsze układy „x86” to RISC pod maską, w zasadzie „interfejs CISC”. x86 nie umarł, ponieważ Intel miał wystarczający udział w rynku i wystarczające przychody, aby dokonać tej zmiany i uzyskać ją tuż przed tym, jak inne rozwiązania RISC uzyskają od nich znaczny udział w rynku.

  3. Dwa główne powody: kompatybilność i użyteczność.

    Ponownie, istniejące systemy (Windows i, w mniejszym stopniu Mac OS) mają bardzo dużą zainstalowaną bazę. Oznacza to, że wielu użytkowników korzysta z wielu programów. Darmowe systemy GNU nie mogą tego powielić. Projekt WINE wykonał wiele pracy w tym kierunku, ale nadal nie zastępuje on prawdziwego systemu Windows, a programiści WINE nawet nie twierdzą, że tak jest. Ludzie nie chcą używać systemu operacyjnego, który nie uruchamia ulubionych programów, bez względu na to, jak teoretycznie jest niesamowity. (I bez zainstalowanej bazy użytkowników nikt nie chce tworzyć systemu. Jest to problem z kurczakiem i jajkiem).

    A potem dochodzimy do użyteczności. Moja mama ma system Windows. Potrafi dobrze to wykorzystać do swoich celów. Wszystko, czego potrzebuje do pracy ze swoim komputerem, jest dostępne z interfejsu Windows, a gdybym powiedział jej słowa „linia poleceń”, nie wiedziałaby nawet o czym mówię. O ile mi wiadomo, nadal nie można tego zrobić w żadnym wolnym systemie GNU. W rzeczywistości Linux jest tak trudny do pracy, że nawet najwięksi półbogowie społeczności mają czasem poważne problemy z prostymi zadaniami. I nigdy nie wydają się „dostać” i pracować nad rozwiązaniem problemów, dlatego nigdy nie zdobywają udziału w rynku. (Powiązany artykuł powinien być konieczny do przeczytania dla każdego, kto kiedykolwiek próbuje stworzyć program na rynku masowym!)

Mason Wheeler
źródło
16
-1 za wpis na blogu sprzed 8 lat, co nie jest już istotne.
vartec
16
@Vartec: Nie dotyczy? Czy poważnie twierdzisz, że użytkownik może dziś wybrać Linuksa i zacząć robić pełny repertuar typowych zadań dla użytkowników końcowych, nie wiedząc nawet, że istnieje nawet wiersz poleceń, tak jak w Windows lub OSX?
Mason Wheeler
17
@Mason: kiedy ostatnio widziałeś na przykład Ubuntu? Łatwiej jest wykonywać typowe zadania dla użytkowników końcowych na Ubuntu bez wiedzy na temat konsoli niż na OSX (do diabła, na OSX wyświetlanie ukrytych plików wymaga doktoratu z nerdologii). W Ubuntu rzeczy po prostu działają. W systemie Windows musisz zainstalować sterowniki lub cokolwiek innego. W OSX rzeczy po prostu nie działają. BTW. czy twoja mama używa RegEdit :-P
vartec
8
@MasonWheeler: Oczywiście. Każdy może odebrać Ubuntu i użyć go bez wiersza poleceń rzeczy w ogóle . Mój współlokator - z pewnością nie znający się na technice - nie miał problemów z przejściem z Windows na Ubuntu. Inne znane mi osoby korzystające z Ubuntu - różniące się doświadczeniem, ale nie wszyscy eksperci - również nie miały żadnych problemów. Mój poprzedni współlokator w ubiegłym roku miał więcej problemów ze swoim komputerem Mac niż mój obecny współlokator z Ubuntu, na podobnym poziomie obsługi komputera. (Nawet drukowanie było znacznie łatwiejsze w Linuksie niż na Macu!) Cała linia poleceń Linuksa jest jednak rażącym wprowadzeniem w błąd.
Tikhon Jelvis
18
@MasonWheeler: Czy poważnie twierdzisz, że użytkownik może dziś wybrać system Windows i skonfigurować drukarkę sieciową?
Christoffer Hammarström
14

Myślę, że istnieje kilka powodów, które są dość poważne, ale nie zostały wspomniane.

Pierwszym z nich jest raczej ślepe założenie Tanenbauma, że ​​techniczna przewaga doprowadziłaby do dominacji na rynku. Ludzie od lat kłócą się o to, czy mikrokernele (nanokernele, pikokernele itp.) Są technicznie lepsze, ale na razie załóżmy, że są. Nadal pozostaje nam pytanie, czy ta techniczna przewaga prawdopodobnie przełoży się na dominację na rynku. Zakładam, że tak nie jest. Dla większości ludzi Windows, Mac OS itp. Są wystarczająco dobre. Co gorsza, ulepszenia, które miałyby znaczącą różnicę dla większości użytkowników, dotyczyłyby interfejsu użytkownika, a nie jądra.

Drugi to drastycznie zawyżone tempo zmian na (rozsądnie) dojrzałym rynku. Łatwo jest szybko zmieniać rzeczy, gdy masz nowy rynek. Aby zasadniczo wszyscy zmienili się w ciągu pięciu lat, migracja musiałaby odbywać się z pełną prędkością, nawet tak, jak to przewidział.

Chciałbym też zauważyć inny sposób, w jaki miał rację, o którym nie wspomniałem. Ludzie już zauważyli wszechobecność RISC (np. W telefonach komórkowych). Nie wspomnieli o wszechobecności tego, co nazwałbym „microkernel 2.0”. Obecnie jest to bardziej znane jako „maszyna wirtualna” lub „hypervisor”. Jednak tak naprawdę są to mikrojądra.

Duża różnica polega na tym, że Tanenbaum pomyślał w kategoriach mikrojądra i emulacji systemu operacyjnego w trybie użytkownika, które zostały zaprojektowane specjalnie dla siebie. Zamiast tego utrzymaliśmy system operacyjny zasadniczo niezmieniony i dostosowaliśmy mikrojądro do działania w niezmienionej postaci. Z technicznego punktu widzenia nie jest to tak miłe, ale z punktu widzenia rynku jest znacznie lepsze - zamiast całkowicie nowego systemu od góry do dołu użytkownik może nadal korzystać z większości swojego istniejącego kodu i dodawać nowy „narzędzie”, które tak naprawdę jest systemem operacyjnym mikrojądra.

Jerry Coffin
źródło
8

Jednym z głównych powodów był system Windows, zwłaszcza Windows 3.1, a nieco później Windows 95 i NT 3.51. Konsumenci szczególnie lubili interfejsy GUI, w przeciwieństwie do starych systemów tekstowych Unix i DOS. Oznaczało to, że więcej przeciętnych ludzi kupowałoby komputery do użytku domowego. Również eksplozja Internetu w połowie lat 90-tych spowodowała wzrost sprzedaży.

Ceny komputerów spadały również w latach 90., aż doszły do ​​punktu, w którym są dzisiaj. Było to spowodowane korzyściami skali wynikającymi ze wzrostu popytu ze strony konsumentów i przedsiębiorstw. Na przykład wszystkie pięć moich obecnych komputerów kosztuje mniej łącznie niż ten, który kupiłem w roku 486 w 1992 roku.

W pewnym sensie może mieć rację, ale w nieoczekiwanym kierunku. Wzrost liczby urządzeń mobilnych, smartfonów i tabletów częściowo spowodował uproszczenie systemów operacyjnych i może zmniejszyć popularność x86. Jednak wykraczają daleko poza to, co przewidywano w 1992 roku.

jfrankcarr
źródło
7

Ostatecznie wszystko sprowadza się do tego, że rzeczy tak naprawdę nie lubią się zmieniać.

Nie przeprowadziliśmy migracji do lepiej zaprojektowanego mikrojądra, ponieważ monolityczne były łatwiejsze do utworzenia, działały szybciej i wszyscy wiedzieli, jak je zbudować. Ponieważ Linux został opracowany jako monolityczne jądro i stał się popularny, nie było mikrokerneli, które osiągnęłyby wystarczający sukces do startu. (to trochę tak samo z tego samego powodu, dla którego wszyscy używamy systemu Windows, korzystamy z systemu Windows, ponieważ wszyscy korzystają z systemu Windows)

RISC, inni zauważyli, że x86 jest obecnie prawie architekturą RISC, z opakowaniem CISC na górze dla kompatybilności wstecznej.

Wiele osób korzysta z darmowego systemu GNU - na serwerze. Sieć jest w dużej mierze przez nią napędzana. Nikt nie zauważa, ponieważ wszyscy klienci mają system Windows. W tamtych czasach miałeś wybór: Linux wciąż był bardzo hobby; smak Uniksa, ale nie było go stać na jego zakup; lub tani n wesoły Windows. Linux zajął zbyt dużo czasu, aby zastąpić Unixa, i wciąż nie ma wystarczająco atrakcyjnego rozwiązania do działania na pulpicie (częściowo z powodu ideologicznych problemów z różnymi systemami Windows, binarnymi sterownikami graficznymi i braku stabilnego ABI). Radzi sobie raczej dobrze na innych rynkach komputerów stacjonarnych, takich jak urządzenia wbudowane i mobilne.

gbjbaanb
źródło
6

Wszystkie są prawdziwe, jeśli nie uważasz, że komputer jest czymś na pulpicie.

  1. To prawda, że ​​mikrojądra nigdy nie działały, ponieważ nigdy nie były wystarczająco mikro. Jeśli cały zredukowany osadzony linux jest mniejszy niż specyficzny dla x86 bit jądra MACH, czy kwestia mikrojądra jest odpowiednia?

  2. RISC dominuje na rynku. Coraz więcej procesorów ARM jest sprzedawanych każdego roku niż procesorów X86. Prawdopodobnie nigdy nie jesteś więcej niż 6 stóp od procesora ARM.

  3. Prawie wszyscy używają Linuksa, są na swoim routerze, telewizorze, Tivo i telefonie z Androidem - po prostu nie wiedzą, że mają system operacyjny

Martin Beckett
źródło
4
„mikrojądra nigdy nie działały, ponieważ nigdy nie były wystarczająco mikro”> Jak rozumiem, słowo „mikro” niekoniecznie odnosi się do bajtów lub linii kodu. Chodzi o to, aby wprowadzić funkcjonalność do przestrzeni użytkownika, dzięki czemu usługi dostarczane przez samo jądro będą minimalne. Na przykład system z mikrojądrem miałby proces użytkownika dedykowany do obsługi systemu plików. Zatem istnienie zredukowanej wersji linuksa, która jest mniejsza niż minix, nie jest tak naprawdę istotne.
Robz
1
@Robz Size jest w pewnym sensie odpowiedni - celem mikrojądra jest zapewnienie przenośności i umożliwienie określonych przypadków brzegowych (takich jak uruchamianie dwóch środowisk systemu operacyjnego na jednym komputerze jednocześnie bez wirtualizacji). Jeśli mikrojądro jest większe niż hybrydowy / monolit, który ogranicza platformy, na których można go wdrożyć, ORAZ ma tendencję do niszczenia argumentu, że łatwiej jest uzyskać przenośność, pisząc mały komponent, jeśli w rzeczywistości nie jest mniejszy niż alternatywa.
Marcin
4

1) Mylił się w mikrojądrach. W moim rozumieniu potrzeba prędkości wymaga prześcignięcia w rozwiązywaniu problemów wymuszonych w mikrojądrach, przynajmniej w jądrze Linuksa.

2) Dominującą architekturą w tabletach i telefonach komórkowych jest ARM, który jest zestawem instrukcji RISC. Nawet system Windows został przeniesiony.

3) Każdy nie ma wolnego systemu GNU. Wynika to przede wszystkim z patentów i kompatybilności wstecznej. Ci, którzy nie chcą systemu Windows, często wybierają OS X.

użytkownik1249
źródło
1) prędkość miała wtedy jeszcze większe znaczenie! Nie jestem pewien, czy miałoby to dzisiaj tak duże znaczenie.
gbjbaanb
Zależy od tego, gdzie są twoje wąskie gardła.
Kiedy twoim jedynym wymaganiem jest „być szybszym od drugiego faceta”, z czasem nie staje się to łatwiejsze. Moim zdaniem był bardzo krótki okres czasu, kiedy HURD mógł wyprzedzić Linuksa jako realną opcję, i spartaczyli go marnując czas na porcie od L4 do Macha.
regularfry
2

1. Mikrokernele zawiodły

Z powodów, które Linus Torvalds stwierdził, że na papierze wygląda teoretycznie atrakcyjnie, ale we wdrażaniu na nowoczesnych systemach - które są bardzo złożonymi systemami - złożoność staje się wykładniczo niemożliwa do zarządzania. Studium przypadku to GNU Hurd, w pełni mikrojądrowy system, który nie osiągnął nawet podstawowych funkcji. Mac OS X jest podobny do struktury Hurda i jest to najmniej stabilny i najbardziej ograniczony system operacyjny.

2. Architektura procesora

Stało się to zróżnicowane w zależności od różnych zastosowań. Jedna architektura procesora nie dominowała, ponieważ przypadki użycia wbudowanego, mobilnego, stacjonarnego, serwera itp. Są różne i wymagają różnych podejść. Tannenbaum nie zauważył tej dywersyfikacji.

3. GNU vs. Świat?

GNU nie dominowało, ale Linux na serwerze, wbudowanym i mobilnym. Tablety i telefony Apple mają system iOS, który jest po prostu starym Uniksem. Dokładne statystyki są trudne do zdobycia dla wdrożeń Linuksa na komputerze, ponieważ nie ma prawdziwego mechanizmu podstawowego - sprzedaży jednostek - który z pewnością może dać dokładną wartość. Większość wdrożeń Linuksa na pulpicie jest czasami rejestrowanych jako wdrożenia Windows, ponieważ użytkownicy kupują system Windows, a następnie piszą o nim w systemie Linux. Jednak jeśli segmentujesz systemy operacyjne, Linux ma około 5-6% na komputerze stacjonarnym, zgodnie z http://www.w3schools.com/browsers/browsers_os.asp, a liczba ta jest równa liczbie użytkowników systemu Windows Vista na całym świecie, co jest bardzo znaczące .

Na podstawie moich własnych szacunków z różnych źródeł wydaje się, że Linux na pulpicie może być faktycznie równy liczbie użytkowników Windows XP - około 25% - jeśli weźmie się pod uwagę kraje niezachodnie, takie jak Chiny i Indie, w których Linux jest bardziej popularny niż w USA lub UE, ale które mogą nie zostać uwzględnione w zachodnich statystykach, ponieważ liczą tylko ruch do anglojęzycznych stron internetowych skierowanych do ludzi Zachodu.

W Indiach większość studentów używa Ubuntu lub Fedory, ponieważ jest to domyślny system operacyjny indyjskich systemów edukacyjnych i słynnych IIT. Większość indyjskich urzędów rządowych również używa Linuksa. W Chinach Red Flag Linux jest oficjalnym systemem operacyjnym chińskiego rządu i systemów szkolnych - Academies of Arts and Sciences - i jest zalecanym systemem operacyjnym w Chinach przez państwowe media jako próbę powstrzymania młodych zubożałych Chińczyków przed użyciem pirackich kopii systemu Windows. Jeśli policzysz użycie Linuksa w Indiach i Chinach, zaszokowałoby to większość zachodnich ekspertów technicznych i radykalnie zmieniłoby postrzeganie prawdziwej dominacji pulpitu Linux w niezachodnich krajach rozwijających się, w których dominuje.

AG Restringere
źródło
1
Rzeczywistość jest taka, że ​​Windows jest naprawdę ubijany na froncie systemu operacyjnego na komputery i serwery. Jeśli uważasz, że tylko 45% użytkowników korzysta z systemu Windows 7, oznacza to, że adopcja nowego systemu operacyjnego Windows każdego cyklu aktualizacji systemu Windows zmniejsza się nieznacznie o 10-15%, a użytkownicy albo pozostają przy starej wersji, albo przechodzą na Maca lub Linuksa. W przypadku serwerów sytuacja jest jeszcze gorsza, ponieważ każde uaktualnienie serwera Windows 20-30% użytkowników natychmiast przełącza się na klastry serwerów Linux ...
AG Restringere
1
Świetny artykuł na powyższe ... focus.com/fyi/50-places-linux-running-you-might-not-expect
AG Restringere
1

Produkcja stała się tańsza, x86 zbliżyło się do ceny RISC, więc jego użycie było już niewykonalne. Wystąpił także problem drobnego dostawcy.

Lucas Kauffman
źródło
Nie sądzę, że sterownik RISC był kiedykolwiek ceną, bardziej chodziło o to, że architektury RISC były lepiej zaprojektowane niż x86. Niestety MIPS i SPARC nigdy nie skalowały się zbyt dobrze, a DECowi zabrakło pieniędzy, zanim Alpha uzyskała wystarczający udział w rynku. Intel był w stanie znacznie zwiększyć wydajność w stosunku do x86, więc naprawdę nie było ważnego powodu do zmiany (dla większości osób). Teraz, gdy wydajność mierzona jest w watach niż MHz, x86 zaczyna powoli przechodzić w nieistotność.
TMN
Tak, wiem, właśnie mówiłem, dlaczego RISC wzrosła na początku znacznie szybciej niż RISC. Oczywiście w dzisiejszych czasach to się bardzo zmieniło.
Lucas Kauffman
1
  1. Mikrojądra zastępują wywołania metod komunikatami międzyprocesowymi, co zwiększa złożoność programowania dla niektórych hipotetycznych korzyści. Jak się okazuje w przeważającej części można uzyskać te same zalety dobrego komponowania, nawet jeśli wszystko odbywa się w jednym wielkim procesie.
  2. Pytanie nie jest już aktualne. Architektury CISC już nie istnieją, wszystkie nowoczesne procesory są w swoich sercach RISC, ale to nie zabiło zestawu instrukcji x86. Procesory x86 od czasów Pentium-Pro (17 lat temu) używają translacji kodu operacyjnego, aby rdzeń RISC wyglądał jak procesor x86 z zewnątrz.
  3. Classic Gorzej jest lepiej . Iteracja, pragmatyzm, efekty sieci i ekosystemu za każdym razem biją czystość.
Klin
źródło
1

Mikrojądra to przyszłość x86 wymrze, a architektury RISC zdominują rynek (za 5 lat) wszyscy będą korzystać z wolnego systemu GNU

To zależy od tego, jak postrzegasz i definiujesz przyszłość, w tradycyjnym znaczeniu jego przewidywania zawiodły.

Jednak czas jeszcze się nie skończył (na bok kolejna głębsza dyskusja) .

Zatem rzeczy mogą się jeszcze zmienić:

  1. Mikrokernele lub jakiś wariant może powrócić

  2. RISC / ARM może dominować -> tablety / telefony komórkowe

  3. Za 10 lub 15 lat. Kto wie, open source powoli zmienia świat…

Ciemności
źródło
1
Oczywiście rzeczy mogą się zmienić w przyszłości. Moje pytanie dotyczy tego, jaki jest teraz świat i dlaczego nie odzwierciedlał on już jego przewidywań.
Robz
Te powody zostały już wymienione przez innych, daję wam alternatywne spojrzenie, w ramach każdej zdrowej dyskusji należy przynajmniej wziąć pod uwagę wszystkie perspektywy. Żyj długo i ciesz się moim przyjacielem.
Darknight
Około 3 różnica polega na tym, że system operacyjny GNU nie jest już istotny. Nikt nie używa jądra GNU Hurd, a jeśli usuniesz wszystkie narzędzia przestrzeni użytkownika GNU z komputerów stacjonarnych z systemem Linux lub OS X, większość ludzi nawet tego nie zauważy. Jeśli spojrzysz na inne udane wdrożenia systemów operacyjnych typu open source (np. Routery oparte na systemie Linux i Android), większość z nich również nie zależy od komponentów GNU. Istnieje wiele narzędzi GNU, które są bardzo popularne i przydatne, tak, ale daleko im do bycia częścią „systemu operacyjnego”, z którego korzystają ludzie.
ehabkost
0

Dla 2: Zestaw instrukcji CISIC ma dużą zaletę: jest bardziej kompaktowy, jak skompresowany kod maszynowy. Obecnie dekodowanie instrukcji CISC do mikrooperacji jest bardzo tanie i dostęp do pamięci RAM jest bardzo drogi. CISC ma więc tę zaletę, że wypycha więcej kodu w pamięci podręcznej L1 / L2 / L3

chrześcijanin
źródło
0

Pamiętam czas - i czas, który go poprzedzał. Nie wiem o mikrojądrach, ale

2) Pomysł RISC miał dwie nogi: optymalizacje oprogramowania można wykonać lepiej w oprogramowaniu niż w sprzęcie oraz że ekonomicznie można wykonać układy RISC, które były szybsze niż układy CISC.

Oba pomysły okazały się w krótkim okresie fałszywe. Intel mógł i zrobił chipy CISC, które taktowały instrukcje szybciej niż konkurencyjne chipy RISC, w konkurencyjnej cenie. Intel mógł i zrobił chipy CISC, które lepiej optymalizują program sprzętowo niż w kompilatorze lub w nadzorcy środowiska wykonawczego oprogramowania - a do tego można dodać dowolną optymalizację oprogramowania, podobnie jak w przypadku Układ RISC.

3) Informatyka, programowanie i operacje zostały całkowicie ponownie wynalezione 4 razy w mojej karierze. Od głównej ramy do komputera. Z wiersza poleceń do GUI. Od GUI do Internetu. Z Internetu na iPada. Rewolucja wydaje się teraz normalna, ale NIE PRZEWIDZIŁEM SIĘ, ŻE. Jak wszyscy starsi programiści w tym czasie, przepowiadał „koniec historii”.

Bardzo niewiele osób korzystało z systemu GNU w ciągu pięciu lat, ponieważ licznik wznowił się.

Być może nadal się dzieje. 5 lat temu można było przewidzieć, że nasz Windows Server zostanie zastąpiony przez serwery * nix (jak piszę, SAMBA wydała AD Domain Server, który był brakującym elementem układanki). To się nie stanie tam, gdzie pracuję: nie będziemy mieć żadnych lokalnych serwerów.

David
źródło