"640 KB powinno wystarczyć każdemu" - historia cytatu
640 KB miało wystarczyć każdemu, a nie wystarczyło nikomu. W świadomości wielu z nas odpowiedzialnym za ten stan rzeczy był Bill Gates, ale jeśli przyjrzymy się sprawie bliżej okazuje się, że nie jest to takie oczywiste.
W tym materiale biorę pod lupę mrożący krew w żyłach cytat “640 KB powinno wystarczyć każdemu”. Jak zawsze materiał dostępny jest w wersji tekstowej oraz w wersji wideo:
Przy okazji zachęcam do subskrybowania mojego kanału na YT, tam zawsze materiał będzie się pojawiał wcześniej.
Pamięć konwencjonalna
Zanim przejdziemy do sedna tematu, tym którzy nie wiedzą należy się wyjaśnienie odnośnie tego, czym właściwie było 640 KB pamięci i dlaczego barierę na poziomie 640 KB niemiło wspominają starsi informatycy czy po prostu tamtejsi posiadacze pecetów, ale ponieważ zwrócono mi już uwagę, że zanudzam (:P), to po dziesięciominutowe wyjaśnienie odnośnie tego czym jest pamięć konwencjonalna odsyłam do załączonego klipu (gdzie i tak robię to po łebkach), tutaj wyjaśnię to zaledwie kilkoma akapitami.
Zacznę od cofnięcia się do 1981 roku kiedy to IBM wypuścił na rynek pierwszy IBM PC –model 5150. Komputer posiadał w sercu procesor 8088 czyli ubogą wersję procesora 8086. Ten słabszy przedstawiciel dopiero co rodzącej się architektury x86 posiadał 20‑bitową magistralę adresową i był w stanie zaadresować 1 MB pamięci, co nie oznacza, że pierwszy IBM PC posiadał 1 MB RAM‑u.
IBM tak zaprojektował swojego pierwszego PeCeta, że z tego jednego magabajta, który “obsługuje” procesor 8088, dla użytkownika zostawało tylko (a wtedy aż) 640 KB. Była to tzw. pamięć konwencjonalna, pozostałe 384 KB to pamięć górna (UMA), zarezerwowana na BIOS czy obsługę różnych urządzeń, np. kart graficznych.
Zerknijmy szybko na rynek komputerów domowych z początku lat 80‑tych pod kątem dostępnego RAM‑u. Atari 1200XL posiadało 64 KB pamięci, tyle samo posiadał TRS‑80 Model 4. Apple IIe posiadał również 64 KB pamięci na start, a Commodore 64 – jak dobrze pamiętacie, także posiada 64 KB pamięci.
Co ważne, wszystkie wymienione konstrukcje ukazały się PO premierze pierwszego Personal Computer od IBM‑a. Tak więc te 16 KB na start w wariancie podstawowym z możliwością sporej rozbudowy, nie było złym pomysłem.
IBM PC stało się standardem, pojawiło się jak wiecie wiele klonów, Microsoft latami ulepszał DOS‑a, a Intel opracowywał kolejne generacje procesorów w architekturze x86, podnosząc tym samym ilość obsługiwanego RAM‑u.
Z każdym rokiem zachłanność gier i programów w pamięć rosła, a na domiar “złego” multitasking zaczynał być czymś oczywistym.
Wtrącę, że w kwestii coraz to większego zapotrzebowania w pamięć fajnymi słowami w 1987 roku podzielił się Jerry Pournelle, między innymi pisarz, ale nie tylko i nie tylko książek – prowadził bowiem swoją rubrykę w magazynie Byte.
Mój pierwszy komputer posiadał 12 KB pamięci. Kiedy rozszerzyłem jej ilość do 64 KB, myślałem, że mam całą pamięć, jakiej kiedykolwiek będę potrzebował. Ehh. Teraz wiem lepiej.
Tutaj jeszcze taka ciekawostka: Nieżyjący już Pournelle jest uznawany za pierwszego pisarza, który napisał swoją książkę w edytorze tekstowym na komputerze. Było to w 1977 roku.
Nie przeciągając: oprogramowanie miało swoje wymagania odnośnie dostępnej pamięci konwencjonalnej (640 KB) i pecet musiał mieć tyle tej pamięci wolnej, aby móc odpalić program, nawet jeśli np. gra wymagała 100 KB, a w pececie zainstalowanych było kilka MB RAM‑u. Jeśli użytkownik zapełnił pamięć konwencjonalną sterownikami i TSR‑ami, to miał problem i musiał prosić o pomoc kolegę “magika”, który wiedział jak zoptymalizować RAM, ewentualnie spróbować własnych sił, posiłkując się jakimś czasopismem. Później sprawę ułatwiły różne programy, czy to od dostawcy systemu (np. MemMaker) czy firm trzecich (np. QEMM), a jeszcze później za sprawą Ekspanderów (np. DOS/4GW) to twórcy oprogramowania dbali o to, aby np. gra się odpaliła.
Uzupełnieniem tej sekcji niech będzie taka oto grafika:
Czas na praktykę, a przykładem niech będzie program HWInfo, którego wersja dla DOS jest cały czas do pobrania ze strony producenta. Mam pod ręką PeCeta z procesorem Am386 i z 16 MB RAM‑u. Czyli nie powinno być problemów z odpaleniem tego softu na tym sprzęcie. Sprawdźmy zatem:
Próba uruchomienia programu kończy się wyświetleniem komunikatu o zbyt małej ilości pamięci. Aby odpalić HWInfo na tym kompie, trzeba: zapalić kadzidełko, pomodlić się, zwiększyć ilość pamięci konwencjonalnej i voila:
OK, mamy zatem wyjaśnione zagadnienie pamięci konwencjonalnej (jeszcze raz przypomnę, że w wideo jest to bardziej dokładnie wyjaśnione) może to nudne, ale konieczne, aby zrozumieć dlaczego użytkownicy pecetów nie byli fanami bariery 640 KB i zarazem jej "wynalazcy" – osobnika imieniem William Henry Gates III, znany bardziej jako Bill Gates, który słowami "640 KB powinno wystarczyć każdemu" nastręczył wszystkim tylu problemów.
Tylko... czy to na pewno Bill Gates odpowiada za omawianą Barierę i czy faktycznie jest autorem tych niefortunnych słów?
Wersja krótka
Posługując się terminologią facebookową: “to skomplikowane”, a teraz wersja długa...
Wersja długa
Dlaczego właściwie przedstawiciel Microsoftu miałby odpowiadać za barierę RAM‑u w produkcie firmy IBM? Kto tak naprawdę odpowiada za Barierę? Producent sprzętu czy oprogramowania? To o tyle ciekawa kwestia, że po dziś dzień dzieli internautów.
Trochę się już nagadałem o bliskich kontaktach MS‑a i IBM‑a w materiale o historii DOS‑a i tutaj nie będę się powtarzał, musicie jedynie wiedzieć, że zanim system trafił pod strzechy obie firmy wspólnie go szlifowały, dlatego podejrzewanie Gatesa nie jest pozbawione podstaw. Twórcy DOS‑a mogli przecież podpowiedzieć IBM‑owi ile pamięci konwencjonalnej ma być dostępnej dla użytkownika.
Cytat “640 KB powinno wystarczyć każdemu” datowany jest na 1981 rok. W zasadzie to nie wiem kto datował ten cytat na rok 1981, wiele źródeł po prostu kopiuje po sobie ten fakt, ale nikt nie jest w stanie wskazać źródła i dowodu, że słowa faktycznie padły w 1981 roku – dla porządku załóżmy że tak było, wszakże obie firmy współpracowały wtedy blisko, więc kto wie. Mi udało się jedynie znaleźć informację, że słowa padły z ust Gatesa w połowie roku 1981 podczas niesprecyzowanej imprezy komputerowej w Seattle.
Pierwsza pisana wzmianka o odpowiedzialności Gatesa za Barierę pojawia się dopiero w 1985 roku w gazecie InfoWorld. Otóż w wydaniu datowanym dokładnie na 29 kwietnia niejaki James E. Fawcette, ówczesny redaktor naczelny, we Wstępniaku zatytułowanym Give Me Power (Dajcie Mi Moc) to właśnie Gatesowi przypisuje słowa:
Kiedy ustawialiśmy górny limit dla PC‑DOS-a na poziomie 640 KB, myśleliśmy że nikt nigdy nie będzie potrzebował tyle pamięci.
Swoją drogą ten cytat różni się od tego, który wszyscy znamy (“640 KB powinno wystarczyć każdemu”) – i nie, w translacji nic nie zginęło, to po prostu dwa różne cytaty.
Nie jest wykluczone, że ten dłuższy cytat jest zwyczajnie zmyślony. W żadnym innym czasopiśmie taki cytat nie jest przytaczany, nie jest również podane kiedy te słowa padły, czy był to wywiad, bezpośrednia rozmowa, fragment jakiejś książki? Nie wiadomo, wiemy natomiast, że słowa nie przewinęły się w żadnej innej gazecie.
Jest to o tyle dziwne, że ta gafa w postaci nie podania źródła cytatu, przydarzyła się rednaczowi, nie szeregowemu dziennikarzowi, a mówimy tutaj o szanowanej gazecie, jaką był wtedy InfoWorld.
Idziemy dalej. Kolejna poszlaka wskazująca na Gatesa pojawiła się w InfoWorld w wydaniu datowanym na 14 listopada 1988 roku. Pismak George Morrow w artykule “Bus wars” czyli “Wojna magistrali” (tutaj w domyśle EISA vs MCA) napisał:
(...) Bill Gates powiedział kiedyś, że 640 KB to więcej niż ktokolwiek będzie potrzebował. Był w błędzie.
Niestety autor także nie podał źródła odnośnie tego kiedy i gdzie Bill Gates wypowiedział takie słowa.
Cytat, który wszyscy znamy pojawił się w tej samej gazecie, ale dopiero w 1990 roku, dokładnie w wydaniu datowanym na pierwszego stycznia.
Kolejna – jakże przełomowa – dekada w przemyśle IT została zamknięta, był to zatem świetny moment na podsumowanie tego co się działo.
W sekcji z podsumowaniem dokonań roku 1981 znalazł się znany nam cytat, a jego autorstwo przypisano Gatesowi.
Cytat ten zrobił istne tourne dookoła świata, tłumaczono go na wiele języków i przytaczały go nawet takie gazety jak The Washington Post. Znany jest przynajmniej jeden przypadek, kiedy autor książki podając omawiany cytat, jako źródło podaje właśnie wpis w Washington Post.
Jak reagował na to Gates? Otóż główny zainteresowany zaprzecza, że kiedykolwiek wypowiedział takie słowa. Mało tego – twierdzi, że powiedział coś zupełnie przeciwnego i że to po naciskach Microsoftu, bariera była na poziomie AŻ 640 KB, a nie 512 KB jak chciał to uczynić IBM.
Od 1990 roku Gates prowadził swoją rubrykę w gazecie The Huntsville Times, gdzie odpowiadał na różne pytania czytelników nadesłane między innymi “elektroniczną pocztą” i w 1996 roku napisał do niego niejaki L. Marshall:
Czytałem w gazecie, że w 1981 roku powiedziałeś: „640 KB powinno wystarczyć każdemu”. Co miałeś na myśli, kiedy to powiedziałeś?
Na co Gates odpowiedział:
Powiedziałem kilka głupich rzeczy i kilka złych rzeczy, ale tego nie powiedziałem.
Dalej tłumaczył:
Wciąż wpadam na ten głupi cytat, że wystarczy tylko 640 KB pamięci, który mi się przypisuje. Nikt nigdy nie podaje skąd jest ten cytat, a to zwykła plotka, powtarzana raz za razem.
Tutaj trzeba oddać Gatesowi rację. Faktycznie nikt nigdy nie podawał źródła wypowiedzi Gatesa, po prostu jedna gazeta to napisała, a reszta zaczęła to kopiować.
Nawet twórca książki "The Yale Book of Quotations" przyznaje, że nie ma dowodów na to, że słowa padły z ust Gatesa.
ALE...
Z drugiej strony Bill Gates nie cieszy się opinią osoby, która nigdy nie... kłamie. Fundamentem Microsoftu było kłamstwo jakie Gates sprzedał firmie MITS (więcej o tym w materiale Historia systemu MS DOS).
Kłamał też chociażby w sprawie zatrudniania cudzoziemców w ramach programu wizowego H‑1B. Czasami gadał też zwykłe głupoty, np: twierdził, że w dwa lata wyeliminuje spam (było to w 2004 roku), a 4 lata przed wypuszczeniem 32‑bitowego Windowsa NT 3.1 powiedział:
Nigdy nie zrobimy 32‑bitowego systemu operacyjnego.
Czyli niby wiedział, że 640 KB może być niewystarczającą ilością pamięci konwencjonalnej, a nie wpadł na to że 32‑bitowy system wcześniej czy później stanie się oczywistością? Jest to przynajmniej podejrzane.
Może zatem cytat pochodzi od niego? Zrobimy jeszcze jedną wycieczkę do przeszłości. Tym razem cofniemy się do końcówki lat 80‑tych. W 1989 roku Bill Gates wygłosił mowę na Uniwersytecie Waterloo, a na stronach uniwersytetu cały czas można się do niej dokopać i ją odsłuchać. Przyjemność trwa półtorej godziny, ale nas interesuje tylko ten fragment (ok. 22 minuty):
(...) więc jest to 1 MB przestrzeni adresowej i zabrałem z tego górne 384 KB i zdecydowałem, że część musi być przeznaczone na pamięć wideo, część na ROM, I/O.
Zostało 640 KB na pamięć ogólnego przeznaczenia. To doprowadziło do dzisiejszej sytuacji, kiedy ludzie mówią o barierze 640 KB, czyli limicie pamięci jaka jest dostępna w tych maszynach.
Nie przyznaje się tutaj do ojcostwa kłopotliwego cytatu, ale jasno podkreśla, że maczał palce przy ustalaniu Bariery.
Więc?
Pora na jakieś podsumowanie.
Czy to takie trudne do wyobrażenia, że w czasach kiedy komputery osobiste miały do dyspozycji jedynie 64 KB RAM‑u, ktoś ustalił granicę RAM‑u na poziomie 10 razy większym? Gates zakładał, że wystarczy to na 10 lat, rzeczywistość pokazała, że po około pięciu latach ludzie zaczęli coraz głośniej mówić, że jest to problem.
Warto wiedzieć, że komputery, które nie były zgodne z IBM PC, a na których działał DOS miały Barierę na wyższym poziomie, np. Victor 9000/Sirius 1 posiadał Barierę na poziomie 896 KB, a komputery Siemensa z serii PC‑D oraz PC‑X oddawały użytkownikowi 1020 KB pamięci konwencjonalnej.
W tym materiale chciałem dowieść jednego – nie ma 100% pewności, że słowa, które przypisuje się Billowi Gatesowi są faktycznie jego. Wszystko zatem wskazuje na to, że sam cytat jest klasycznym apokryfem.
Podkreślić trzeba, że choć Gates prawdopodobnie nie jest autorem cytatu, to autorem bariery w jakimś stopniu z pewnością jest, do czego się – jak czytaliście/słyszeliście –przyznał.
Na koniec jeszcze jedna ciekawostka.
Podczas zbierania materiałów do tego odcinka natrafiłem na książkę The Simple Guide to Home Electronics autorstwa Marka Schutte wydaną w 2017 roku, czyli niedawno. Otóż autor książki był kiedyś pracownikiem firmy Intel, konkretnie, był członkiem zespołu, który doradzał IBM‑owi odnośnie użycia w ich pierwszym PeCecie chipu Intela. Był zatem w samym środku wydarzeń i według jego relacji, Intel już z chwilą podpisania umowy z IBM‑em zakładał, że limit pamięci będzie z czasem problematyczny.
Producent procesorów wiedząc, że Microsoft opracowuje OS dla maszyn IBM‑a w których zagości 8088 (i potencjalnie jego następcy), przygotował zespołowi programistów listę dziesięciu założeń, na których Microsoft miał NIE opierać swojego systemu. Efekt? Zacytuję autora:
Według mojej wiedzy, Bill i jego zespół złamali osiem z dziesięciu założeń.
W tym materiale to już wszystko. Na koniec chciałem zaznaczyć, że przygotowanie tego odcinka ułatwiła mi strona quoteinvestigator.com – polecam wszystkim, autorzy zajmują się sprawdzaniem czy cytaty są słusznie przypisywane różnym osobom, istna kopalnia wiedzy.