IT priče

Nevidljiva slojevitost tehnologije

technology-layers

Kada počinjete da razumete kako naši moderni uređaji rade i kako se prave, nemoguće je da vam se ne zavrti u glavi od dubine svega što je umešano u tu proizvodnju. Nemoguće je ne diveti se činjenici da oni, eto, rade dok Marfijev zakon kaže da ne postoji mogućnost da rade.

Upravo ste otišli na Google home page

Jednostavno zar ne?

Šta se u stvari desilo?

Ako znate kako funkcionisu browseri, nije baš toliko jednostavno. U igri su HTTP, HTML, CSS, ECMAScript, itd… To su u stvari toliko kompleksne tehnologije da će se svakom inženjeru zavrteti u glavi ako razmišlja o njima previše, i tako su napravljene da nijedna kompanija ne može sama nositi sa tolikom kompleksnošću.

Hajde da pojednostavimo.

Povezali ste kompjuter sa www.google.com

Jednostavno, zar ne?

Šta se u stvari desilo

Ako znate ponešto o mrežama, nije baš toliko jednostavno. Da bi informacija stigla od vašeg kompjutera do google potrebni su DNS, TCP, UDP, IP, WiFi/Ethernet, DOCSIS, OC, SONET, itd… To su u stvari toliko kompleksne tehnologije da će se svakom inženjeru zavrteti u glavi ako razmišlja o njima previše, i tako su napravljene da nijedna kompanija ne može sama nositi sa tolikom kompleksnošću.

Pojednostavićemo onda.

Ukucali ste www.google.com u address bar vašeg browsera.

Jednostavno zar ne?

Šta se u stvari desilo?

Ako znate kako funkcionišu operativni sistemi nije ni blizu jednostavnog. Da bi operativni sistem protumačio šta i gde kucate potrebni su kernel, USB host stack, input dispatcher, event handler, font hinter, pixel i sub-pixel rasterizeri, sistem za iscrtavanje prozora, drajver za grafičku karticu, itd… Sve tehnologije koje sam nabrojao su pisane u višim programskim jezicima koje procesiraju kompajleri, linkeri, optimizatori, prevodioci, itd… To su tek kompleksne tehnologije od kojih se svakom inženjeru zavrti u glavi ako razmišlja o njima previše. Toliko kompleksne da nijedna kompanija ne može sama da se nosi sa njihovom kompleksnošću.

U redu, pojednostavićemo.

Pritisnuli ste dugme na tastaturi.

To je sigurno jednostavno?

Paa, ako znate kako rade kompjuterske periferije, nije nimalo jednostavno. Potrebni su regulator struje, relej, ulazni multiplekser, USB device stack, USB hub stack, i još puno tehnologija. Sve implementirane u jednom čipu. Taj čip se pravi od tankih vafera monokristalne silikonske rude, sa vrlo malo drugih atoma koji se bukvalno prskaju na tu kristalnu strukturu. Oni su povezani sa mnogo slojeva aluminijuma i bakra koji se nanose prema šablonu ultra ljubičastog svetla koje je toliko fokusirano da je preciznost na nivou mikrona. Čip je povezan sa spoljašnjim svetom tankim zlatnim žicama i nalazi se unutar pakovanja napravljenog od dimenziono i termalno stabilne legure. Čip se sastoji od tranzistora koji su grupisani da prave logičke kapije. U nekim delovima čipa, logičke kapije se kombinuju da brave petlje, koje se organizuju u redove, koji se kombinuju sa selektorima da bi se napravio registar. U drugom delu čipa, logičke kapije se kombinuju u bus kontrolere i dekodere instrukcija i mikrokoda da bi se napravio execution scheduler. U nekom 15. delu čipa, kombinuju se da bi napravile adresne i data multipleksere, da bi se dobio memorijski kontroler. Ovo nabrojano je samo vrh ledenog brega.  Ovo je toliko kompleksna tehnologija da se svakom ineženjeru zavrti u glavi ako razmišlja o njoj previše, i takva je da nijedna kompanija ne može sama da se nosi sa tolikom kompleksnošću.

technology-layers

Možemo li da pojednostavimo dalje?

Zastrašujuće je da ne možemo. Jedva razumemo kompleksnost jednog čipa u tastaturi, a ne postoji jednostavniji nivo. Sledeći korak bi nas odveo na softver koji dizajnira čip logiku. Taj softver sam po sebi ima nivo kompleksnosti, pa bismo morali da krenemo ispočetka.
Današnji kompjuteri su toliko kompleksni da mogu biti dizajnirani i proizvedeni samo od strane malo manje kompleksnih kompjutera. Opet, kompjuteri korišćeni za dizajn i proizvodnju  su toliko kompleksni da mogu biti dizajnirani i proizvedeni samo od strane malo manje kompleksnih kompjutera. Morali bismo da prođemo kroz mnogo takvih petlji da bi smo stigli na nivo gde bi smo mogli da krenemo od nule.
Kada počinjete da razumete kako naši moderni uređaji rade i kako se prave, nemoguće je da vam se ne zavrti u glavi od dubine svega što je umešano u tu proizvodnju. Nemoguće je ne diveti se činjenici da oni, eto, rade dok Marfijev zakon kaže da ne postoji mogućnost da rade.

Za ljude koji se ne bave tehnologijom, sve gorenavedeno je jedna obična crna kutija. To je možda najveći uspeh tehnologije; svi ti kompleksni slojevi su u potpunosti sakrvieni od ljudi koji koriste te uređaje. Sa druge strane, to je i razlog zašto neke ljude frustrira korišćenje kompjutera. Postoji toliko mnogo stvari koje mogu da krenu naopako, pa je i verovatnoća da će se nešto pokvariti velika. Nažalost kompleksnost tih sistema je tolika da mnogi korisnici ne mogu da urade ništa po pitanju grešaka i problema.

Kompleksnost je i jedan od razloga zašto ITjevci i ne-ITjevci imaju poteškoća u komunikaciji. Prva grupa zna mnogo stvari o mnogo slojeva, dok druga zna isuviše malo stvari o malo slojeva da bi mogla da uspostavi kvalitetnu direktnu komunikaciju. Jaz je isuviše veliki da bi jedna osoba bila intermedijator između dve grupacije. Zbog toga imamo glomaznu tehničku podršku, i kol centre sa hijerarhijom. Bez slojevitih struktura za korisničku podršku dešavale bi se one frustrirajuće situacije gde krajnji korisnik ima pristup bazi podataka koju koriste inženjeri. Na kraju ni korisnici, ni inženjeri ne bi dobili one informacije koje su im potrebne da bi rešili problem.

U oktobru prošle godine umrla su dva velikana IT industrije – Steve Jobs i Dennis Ritchie. Mediji su pisali nadugačko i naširoko o Jobsovoj smrti, dok je Dennisova smrt prošla poprilično neopaženo (barem u ne-IT krugovima). Razlog je što je Jobs imao najveći uticaj na sloju koji vidi najviše ljudi, dok je Dennisov bio dublji. Ako bih zamišljao svet bez Jobsa, on bi verovatno imao manje eye-candy detalja, malo lošije dizajniran, malo više kockast. Dok bi svi naši uređaji radili u potpunosti iste stvari, na potpuno isti način. Sa druge strane, Današnja IT industrija ne bi postojala bez Dennisa i bez ljudi koje je inspirisao. Do sredine 80ih, Dennisov uticaj je preuzeo kompletnu industriju, a i par godina ranije je ostalo vrlo malo stvari iz pre-C ere.

Zbog tolike slojevitosti, tj. neverovatne  mogućnosti tehnologije da sakrije svoju kompleksnost od širokih narodnih masa je celokupan patentni i zakonodavni mehanizam koji se tiče ITa vrlo loš. Ljudi koji upravljaju patentnim sistemom i zakonodavstvom su jedva svesni one osnovne kompleksnosti stvari koje regulišu i kojima upravljaju. Ultimativan primer zakona trivijalnosti: patentne svađe i tužbe oko mobilnih telefona se svode na veličine ekrana, redosled ikonica, mehanizam za otključavanje ekrana. Takve gluposti se dešavaju jer su te stvari jedini aspekt o kome ljudi umešani u rasprave mogu da diskutuju, iako su u potpunosti irelevantne za samu funkciju stvari o kojoj se diskutuje.

Nažalost, loši i nekvalitetni zakoni vezani za IT prolaze zbog istih razloga. SOPA, PIPA, ACTA su samo jedni od primera… O njima nekom drugom prilikom…

Addendum #1: CC:BY 3.0
Addendum #2: Napisao Jean-Baptiste Queru

Leave a Comment

4 Comments