Računarstvo
Rubrika Računarstvo namenjena je svima koji žele da se upoznaju sa razvojem računarske tehnike i računarstva — od prvih ideja i računarskih sistema, do savremenih digitalnih tehnologija koje oblikuju današnji svet. Kroz ovu rubriku biće predstavljeni najvažniji događaji, ideje i dostignuća koji su obeležili razvoj računarstva, kao i ljudi, institucije i kompanije čiji je rad imao presudan uticaj na razvoj savremenih računarskih sistema.
Posebna pažnja biće posvećena pionirima računarstva, njihovim istraživanjima i projektima koji su postavili temelje današnjih informacionih tehnologija. Pored istorijskog pregleda razvoja računara, procesora, operativnih sistema, programskih jezika i računarskih mreža, rubrika će sadržati prikaze značajnih naučnih radova, tehnoloških inovacija i razvojnih pravaca koji su menjali način na koji ljudi koriste računare i digitalne tehnologije.
Cilj ove rubrike je da poveže istoriju i savremeni razvoj računarstva, pruži širi pogled na tehnološki napredak i podstakne interesovanje za istraživanje i razumevanje sveta računarskih tehnologija koje predstavljaju osnovu savremenog digitalnog društva.
Računarstvo u senci
U savremenom digitalnom društvu često se više govori o informacionim tehnologijama nego o samom računarstvu, iako upravo računari i računarska tehnika predstavljaju osnovu na kojoj su informacione tehnologije nastale i razvijale se. Bez razvoja računarskih sistema, procesora, memorija, računarskih mreža i softverskih alata ne bi bilo ni savremenih informacionih tehnologija koje danas imaju ključnu ulogu u gotovo svim oblastima društva.
Istovremeno, zahtevi za sve složenijom obradom, prenosom i skladištenjem informacija snažno su uticali na razvoj računara, podstičući nastanak novih arhitektura, komunikacionih sistema i softverskih rešenja. Može se očekivati da će sa daljim razvojem veštačke inteligencije, distribuiranih sistema, IoT uređaja i digitalnih komunikacija taj uticaj u budućnosti postajati još izraženiji.
Međutim, intenzivna primena informacionih tehnologija vremenom je donekle potisnula u drugi plan sam računar kao infrastrukturnu osnovu savremenog digitalnog sveta. Zbog toga se danas često veći značaj pridaje korišćenju gotovih računarskih sistema i softverskih platformi, nego razumevanju principa njihovog projektovanja i razvoja. Upravo zato je važno ukazivati na značaj računarske tehnike i računarskog inženjerstva, jer bez razumevanja načina na koji računari funkcionišu i nastaju nije moguće dugoročno obezbediti razvoj novih generacija informacionih tehnologija.
Elementi računara
U okviru računarstva jasno se izdvajaju dva osnovna segmenta – hardver i softver. U klasičnom smislu, hardver predstavlja osnovu računarskog sistema, odnosno fizičku infrastrukturu na kojoj se izvršava softver. Iako su razvoj softverskih sistema i informacionih tehnologija poslednjih decenija snažno uticali na razvoj računarstva, upravo hardver određuje granice performansi, pouzdanosti i mogućnosti savremenih računarskih sistema.
U okviru hardvera mogu se posmatrati dva međusobno povezana nivoa – arhitektura i organizacija računara. Arhitektura računara definiše funkcionalne karakteristike računarskog sistema, odnosno daje odgovor na pitanje šta računar radi. Ona obuhvata skup instrukcija, način adresiranja memorije, registre, model izvršavanja programa i druge osobine koje su vidljive programeru.
Sa druge strane, organizacija računara odnosi se na način realizacije arhitekturnih rešenja i daje odgovor na pitanje kako računar radi. Organizacija obuhvata strukturu procesora, način povezivanja funkcionalnih jedinica, memorijsku hijerarhiju, magistrale, upravljačke mehanizme i druge hardverske komponente koje omogućavaju realizaciju definisane arhitekture.
Kao veza između arhitekture i organizacije računara često se uvodi pojam mikroarhitekture. Mikroarhitektura predstavlja nivo na kome se arhitekturni koncepti prenose u konkretnu organizaciju računarskog sistema. Ona definiše način realizacije instrukcija, organizaciju toka informacija, izvršnih jedinica, keš memorija i drugih elemenata procesora koji direktno utiču na performanse, energetsku efikasnost i mogućnosti savremenih računarskih sistema.
Što se tiče softvera, on se tradicionalno deli na sistemski i aplikativni softver. Sistemski softver predstavlja osnovu za funkcionisanje računarskog sistema i omogućava izvršavanje aplikativnih programa, dok aplikativni softver obuhvata programe namenjene rešavanju konkretnih korisničkih zadataka i primena.
Međutim, savremeni razvoj računarstva uslovio je potrebu da se ova podela proširi i posebnim slojem softvera namenjenog razvoju novih programskih rešenja. Ovaj sloj obuhvata razvojne alate i okruženja koja omogućavaju projektovanje, realizaciju, testiranje i održavanje softverskih sistema. U njega spadaju editori programa, razvojna okruženja, sistemi za upravljanje verzijama, alati za testiranje i drugi programski alati koji predstavljaju osnovu savremenog softverskog inženjerstva.
Sistemski softver obuhvata operativne sisteme, prevodioce programskih jezika, linkere, biblioteke i različite uslužne programe koji omogućavaju efikasan rad računarskog sistema. Poseban značaj imaju drajveri hardverskih uređaja, jer predstavljaju vezu između operativnog sistema i fizičkih komponenti računara. Njihova uloga je da omoguće pravilnu komunikaciju i upravljanje uređajima kao što su procesori, memorije, diskovi, mrežni adapteri, grafički sistemi i drugi periferni uređaji.
Na taj način softver predstavlja složen hijerarhijski sistem koji povezuje hardversku infrastrukturu sa krajnjim korisnikom, omogućavajući realizaciju širokog spektra računarskih i informacionih aplikacija.
Granicu između hardvera i softvera računarskog sistema u velikoj meri predstavlja arhitektura računara. Upravo arhitektura definiše način na koji softver komunicira sa hardverom, odnosno skup funkcija i mehanizama koje hardver stavlja na raspolaganje programima i operativnom sistemu.
Zbog toga je poznavanje arhitekture računara jedan od osnovnih preduslova za razvoj sistemskog softvera, a posebno za projektovanje jezičkih prevodilaca, kao što su asembleri, kompajleri i interpreteri. Projektant prevodioca mora detaljno poznavati skup instrukcija procesora, organizaciju registara, način adresiranja memorije, model izvršavanja instrukcija i druge arhitekturne karakteristike računarskog sistema, kako bi programski kod mogao efikasno i pravilno da bude preveden u mašinski oblik.
Na taj način arhitektura računara predstavlja tačku povezivanja hardverskih i softverskih komponenti računarskog sistema i jednu od ključnih oblasti savremenog računarskog inženjerstva.