U svetu računarstva, softverski fundamenti i najvažnije komponente su operativni sistem i paketske mreže. Zanimljivo je da oni dele određene dizajn karakteristike, o čemu ćemo i diskutovati. Istorijski, mreže su nastale ubrzo nakon operativnih sistema, i to od strane istih istraživača-inženjera. Pod OS-om smatramo operativni sistem sa svim glavnim karakteristikama modernih UNIX/Linux sistema (proces kao osnovna apstrakcija, virtuelna memorija, hijerarhijski fajl sistem, …). Pod Mrežom smatramo paketske mreže, konkretno Ethernet/IP mreže.

Savremeni operativni sistemi (UNIX/Linux) vuku korene iz Multics projekta, OS-a dizajniranog za servisno (“cloud?”) računarstvo na konceptu time sharing-a – simultani pristup više korisnika za interaktivan rad sa računarom. Multics je imao sve dizajn atribute modernog operativnog sistema – virtuelna memorija, hijerarhijski fajl sistem, višestruki nivoi bezbednosti, …

Time-sharing OS – “rotiranje” procesa

Multics je bio zajednički projekat MIT-a, Bell Labs-a i General Electric-a, ispostavilo se da je preambicioznim i nije zaživeo. Na njegovom pepelu je nastao UNIX, koji je (suprotno od Multics-a) težio jednostavnom dizajnu i skromnim očekivanjima, ali čiji osnovni dizajn je delio dosta zajedničkog sa Multics-om. I sam UNIX je dosta evoluirao vremenom, i naravno od UNIX-a je vremenom nastao GNU/Linux OS.

Savremena mreža (TCP/IP protokol stek) je evoluirao direktno iz ARPANET mreže, iako su finalnom dizajnu doprineli i drugi naučno-istraživački centri u svetu (Baran-ova “paketska” mreža (RAND, US), Davis-ov koncept paketa (NPL, UK), “Pouzinova” Cyclades mreža u Francuskoj). O dizajnu, principima i mehanizmima paketskih mreža može se mnogo toga reći, ali to nije naša tema.

TCP/IP komunikacioni stek “u akciji” – komutiranje/rutiranje paketa

Dizajn filozofija

Bafer se koristi kao struktura za smeštanje podataka unutar OS-a. Hoćemo da omogućimo razmenu podataka (bafera) između dva udaljena računara (OS-a) — prenesimo ih preko paketa! Paket je dakle manifestacija bafera u mreži.

Takođe, koncept apstrakcije grupisanjem određenih funkcija u jedan sloj (engl. layering) se koristi i OS i u mrežnom dizajnu. Zanimljivo je da je i sam sloj (npr. IP procesiranje), zapravo proces u OS-u. Hijerarhijski dizajn u operativnim sistemima je predložio poznati holandski naučnik računarstva, Edsger Dijkstra. Ideja je da se dizajn razloži na više manjih samostalnih celina (slojeva) koje preko interfejsa omogućavaju sloju(evima) “iznad” njega da koristi njegove funkcije, dok se on sam “oslanja” na funkcije slojeva “ispod” sebe. Ovime se lakše implementira, održava i evoluira kompletan sistem.

Šire posmatrajući, možemo zapaziti da savremeni OS i mreže omogućavaju simultani višestruki pristup korisnicima. OS definiše koncept procesa, dok mreža paketa. I OS i mreža dinamički “raspoređuju” (procese i pakete, respektivno) bez vršenja rezervacije hardverskih resursa, oslanjajući se na statističko multipleksiranje i time efikasno koriste (ograničene) hardverske resurse.

Mreža + OS = “Mrežni OS”

OS u svičevima/ruterima je zapravo u osnovi isti taj OS sa namenskom funkcijom i samim tim i dizajnom. OS u mrežnim uređajima je “osakaćen” (pozitivno) – izbačeni su svi nepotrebni servisi, namenski kompajliran i podešen kernel za prosleđivanje paketa, izvršavanje ruting i drugih upravljačkih protokola i mrežnih servisa.

“Network is the Computer.”

John Cage (Sun Microsystems), 1984.