Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
książkijestnauczenieczytelnikarzeczy,któretrzebawiedzieć,bybyćdobrym
programistąsystemowym.
Sprzętkomputerowy(hardware)zawieranietylkoczęśćwykonującąwła-
ściweobliczenia,lecztakżeokreśla,jaktaczęśćkomunikujesięzeświatem
zewnętrznym.Sprzętjestwyrażonypoprzezukładylogiczne.Układylogiczne
stanowiąfizycznewcielenietejsamejlogiki,którajestużywanadopisania
programówkomputerowychijestkluczowadozrozumieniapracykompu-
tera.Układylogicznezbudowanezróżnegorodzajuobwodówelektronicz-
nych.Projektowanieobwodówwykraczapozazakrestejksiążki,alemożna
sięwielesięonichdowiedzieć,studiującelektrotechnikę.Jeślichceszrządzić
światem,rozważpodwójnydyplom:zelektrotechnikiiinformatyki.
Oczywiścieupodstawtegowszystkiegokryjąsięnaukipodstawowe,któ-
redająnamwszystkoodzrozumieniaelektrycznościpowiedzęchemiczną
niezbędnądobudowymikroprocesorów.
Takjaktopokazanonarysunku1,każdypoziombazujenatym,coznaj-
dujesiępodnim.Oznaczato,żebłędylubnieoptymalnewyborynaniższych
poziomachbędąwpływałynawszystkopowyżej.Błądprojektantawproce-
sorachIntelPentiumokoło1994rokusprawił,żeniektóreoperacjedziele-
niadawałyniedokładnewyniki.Tomiałowpływnacałeoprogramowanie,
którekorzystałozdzieleniazmiennoprzecinkowegowykonywanegonatych
procesorach.
Jakwidać,programowaniesystemoweznajdujesięnadolehierarchii
oprogramowania.Jestonopodobnedoinfrastruktury,takiejjakdrogi,elek-
tryczność,woda.Zawszejestważne,żebybyćdobrymprogramistą,alejestto
tymważniejsze,jeślijesteśprogramistąsystemowym,ponieważinniopiera-
swąpracęnazbudowanejprzezciebieinfrastrukturze.Widaćrównież,że
programowaniesystemowejestumieszczonemiędzyprogramowaniemapli-
kacjiasprzętemkomputerowym,cooznacza,żeprogramistasystemowymusi
sporowiedziećojednymiodrugim.Słowofijoga”wsanskrycietłumaczysię
jakofijedność”,itakjakpraktykującyjogęposzukujązjednoczeniaswojego
umysłuiciała,programiścisystemowitechno-joginami,którzyjednoczą
sprzętzoprogramowaniem.
Nietrzebauczyćsięprogramowaniasystemowego,bypracowaćnaktó-
rymśzpozostałychpoziomów.Alejeślisiętegonienauczymy,będziemyzdani
napomocinnejosobywrozwiązaniuproblemówspozawłasnejdziedziny,
zamiastpoprosturozwiązaćjesamemu.Rozumienieistotnychtechnologii
prowadzirównieżdolepszegowyborurozwiązańnawyższympoziomie.To
niejestjedyniemojaopinia:zachęcamdoprzeczytaniapostuz2014roku:
fiTheResourceLeakBugofOurCivilisation”(fiBłądwyciekuzasobównaszej
cywilizacji”)autorstwaVille-MatiasHeikkila.
Celemtejksiążkijesttakżeopisaniewieluhistoriiretro.Większośćpro-
gramistównieuczysięhistoriiwłasnegorzemiosła,ponieważibeztegojest
mnóstwomateriałudoopanowania.Wrezultaciewiększośćludzipopełnia
tesamebłędy,którejużwielokrotniebyłypopełnianiewprzeszłości.Pozna-
nieniecohistoriiprogramowaniaumożliwiaprzynajmniejrobienienowych
ifilepszych”błędówzamiastpowtarzaniastarych.Należyteżpamiętać,że
nowe,pionierskietechnologieerydzisiejszejbardzoszybkostanąsiętechno-
logiamiretrodlajutra.
Wprowadzenie
xxxv