Operacinių sistemų pagrindai

1. Įvadas Kompiuteris – elektroninis įrenginys. Jo principines galimybes, sugebėjimą apdoroti duomenis nulemia jį sudarantys įrenginiai. Tačiau vieni nevaldomi įrenginiai tik – “negyvi” įtaisai. Įrenginių ir įvairių informacinių procesų darbą kompiuteriuose organizuoja ir valdo tam tikros programinės priemonės. Dauguma tų programų sudaro vieningą visumą, kuri vadinama operacine sistema (OS). Tai svarbiausia programinės įrangos dalis. Operacinė sistema palaiko ryšį su išorine aplinka, valdo procesus kompiuterio viduje, valdo atmintinę, tvarko kompiuterio saugomus duomenis ir t.t.. Operacinė sistema – tai svarbi kompiuterio įrangos sudėtinė dalis OS apibrėžimas priklauso visų pirma nuo to, kokiu požiūriu ji nagrinėjama:• Vartotojo požiūriu OS gali būti apibrėžiama kaip virtualus kompiuteris, paslepiantis nuo vartotojo techninės kompiuterio įrangos detales, ir vietoj jų pateikiantis vartotojui patogesnes abstrakcijas ir priemones. Disko atveju tokios abstrakcijos pavyzdys yra failas. Vartotojui dirbti su failais yra žymiai patogiau, negu kiekvienai skaitymo – rašymo operacijai nurodyti daug techninės įrangos detalių – absoliutų disko adresą, sektorių skaičių, takelį ir t.t. • Kompiuterio techninės įrangos požiūriu OS gali būti apibrėžiama kaip resursų valdytoja. Ji organizuoja bendrą visų kompiuterio techninės įrangos komponenčių (mikroprocesoriaus, atminties, diskinių įrenginių, terminalų, spausdintuvų, tinklo interfeiso plokščių ir kt.) darbą. Jei kelios programos varžosi dėl bendro naudojimo resursų (spausdintuvas, atmintis), OS uždavinys yra tvarkingai juos paskirstyti. Dėl resursų gali varžytis ne tik kelios programos, bet ir keletas vartotojų. OS negalima vertinti kaip kažkokio išorinio reguliatoriaus. Tai tokia pat programa, kaip ir kitos, tik skirta visos kompiuterinės sistemos valdymui ir todėl turinti dideles teises. Operacinė sistema – tai programų kompleksas, kuris organizuoja ir koordinuoja informacijos apdorojimo procesą kompiuteryje ir suteikia vartotojui paprasčiausias paslaugas. Arba kitaip: operacinė sistema – specialiųjų programų ir duomenų rinkinys, sukurtas kompiuterinės sitemos ištekliams valdyti, kompiuterio programų kūrimui palengvinti ir šių programų vykdymui valdyti. Pagrindinės OS funkcijos yra šios: ryšio su išorine aplinka (įvedimo- išvedimo procesų) valdymas;  procesų kompiuterio viduje valdymas;  atmintinės valdymas;  kompiuterio saugomų duomenų tvarkymas. 2.1. Operacinių sistemų vystymosi raida OS evoliucijos varomosios jėgos buvo techninis progresas ir vartotojų lūkesčiai. Evoliucijos proceso apžvalga padeda įvertinti svarbiausias šiuolaikinės OS savybes. Pagrindiniai veiksniai skatinę operacinių sistemų evoliuciją : 1. Programos užkrovimas (loading) ir autoužkrovimas (bootstraping). Pirmuosiuose kompiuteriuose buvo mažai galvojama apie vartotoją – jungikliai ir lemputės buvo šių kompiuterių įvedimo – išvedimo (I/O) įrenginiai. Programa buvo įvedama, jungikliais nurodant atminties adresą, o po to ir komandinį žodį. Taip kartojant, būdavo įvedama visa programa. Tada programos skaitliukas nustatomas ties pirmąja programos komanda ir spaudžiamas “Pradžios” mygtukas. Siekiant palengvinti darbą su kompiuteriu, visų pirma, buvo sprendžiama programos užkrovimo (loading) problema. Buvo nuspręsta programą paruošti iš anksto ir specialiu įvedimo įrenginiu (perfojuostų ar perfokortų nuskaitymo) įvesti į kompiuterio atmintį. Tačiau perforuotų kortelių arba juostų nuskaitymui reikalinga speciali programa – užkrovėjas (loader), kurią taip pat reikia užkrauti į atmintį. Kaip užkrauti užkrovėją? Sprendžiant šį uždavinį, buvo sukurtas prietaisas, kompiuterio įjungimo metu automatiškai nuskaitantis mažą užkrovimo programą (pvz. vienos perfokortos apimties), kuri vėliau nuskaito didesnę užkrovimo programą. Programinių užkrovėjų įdiegimas ir buvo pirmasis žingsnis link šiuolaikinių operacinių sistemų. 2. Perfokortų era. Perfokortos buvo pradėtos naudoti dar XIX a. pab. elektromechaniniuose skaičiavimo įtaisuose. Tačiau jų era iš tiesų prasidėjo apie 1950–sius ir tęsėsi iki pat 1980–ųjų. Šiuo laikotarpiu atsirado ir “užduoties” (job) sąvoka. Užduotimi buvo vadinama programą ir duomenis aprašančių perfokortų paketas. Toks principas buvo ypač patogus programų paketo įvedimui. Perfokortos taipogi buvo panaudojamos ir rezultatų išvedimui. 3. Terminalai ir spausdintuvai. Kitas svarbus žingsnis į priekį buvo terminalo panaudojimas. Terminalu suprantamas įvedimo ir išvedimo įrenginių rinkinys. Įvedimui buvo panaudota klaviatūra, o rezultatai buvo išvedami į displėjaus ekraną arba spausdintuvą. Ilgainiui klaviatūra + displėjus gavo pavadinimą “valdymo pultas” (control console) ir tapo pagrindiniu vartotojo sąsajos įrenginiu ateities operacinėse sistemose.

4. Procesoriaus išnaudojimo efektyvumas. 1950-siais kompiuteriai ir jų darbo laikas buvo labai brangūs, todėl labai svarbūs buvo procesoriaus išnaudojimo efektyvumo padidinimo uždaviniai, tokie kaip:• užduočių užkrovimo laiko minimizavimas; • procesoriaus prastovų minimizavimas tuo metu, kai atliekamos lėtos įvedimo-išvedimo operacijos. 5. I/O valdymo sistema (input – output control system – IOCS). Buvo pastebėta, kad kiekvienoje naujoje programoje didelę dalį užima tokie patys veiksmai, pvz. įvedimo- išvedimo veiksmai. Tai paskatino sukurti standartinių programinių priemonių rinkinį, kurį galima būtų įkrauti į atmintį kompiuterio darbo pradžioje ir sudaryti galimybę prie jo prieiti visoms programoms. Tokiu principu pagrįstas įvedimo–išvedimo valdymo sistemų (IOCS) veikimas. 6. Nauji periferiniai įrenginiai. Pradėta naudoti magnetinio įrašymo technologija – magnetinės juostos ir vėliau magnetiniai diskai. Ši naujovė turėjo įtakos IOCS sudėtingumui. Dabartiniu metu plačiai naudojami optiniai diskai. 7. Nauja programinė įranga. Pirmosios programos buvo rašomos mašininiu kodu. Tobulėjant kompiuteriams ir plečiantis jų pritaikymo sričiai, reikėjo rašyti vis sudėtingesnes programas ir padaryti šį procesą kuo spartesnį. Taip atsirado Asemblerio programavimo kalba. Po Asemblerio sekė kitų programavimo kalbų ir kompiliatorių sukūrimas – FORTRAN, Algol ir t.t.. Asemblerių ir kompiliatorių įdiegimas turėjo įtakos užduoties (job) struktūros sudėtingumui. Dabar, pvz., užduotis turėjo susidėti iš tokių veiksmų sekos:1. Užkrauti asemblerį, 2. Nuskaityti programą, parašytą asemblerio kalba, 3. Sukompiliuoti programą atmintyje, 4. Vykdyti programą, 5. Perduoti programai duomenis iš duomenų perfokortų. Tai buvo gana sudėtinga procedūra, vertusi ateityje ieškoti lengvesnių priemonių. 8. Naujos idėjos. Apie 1960-uosius bendromis Mančesterio Universiteto ir Ferranti kompanijos pastangomis buvo sukurtas kompiuteris Atlas, kuriame buvo panaudotos tokios naujos idėjos, kaip pertraukimų mechanizmas ir virtualios atminties sistema. Šis kompiuteris jau buvo kuriamas, galvojant apie OS darbo efektyvumą. 1964 m. IBM kompanija išleido System 360 kompiuterių seriją, kuri vėliau išsivystė į seriją System 370. Šoise serijose pirmą kartą panaudotas suderinamumo principas, t.y. tos pačios programinės priemonės palaikomos įvairiuose kompiuteriuose, nes šie kompiuteriai naudoja tą pačią architektūrą ir komandų rinkinį. Pagrindiniai veiksniai, sukuriant ir tobulinant pirmąsias OS, buvo:• būtinumas sumažinti užduoties užkrovimo laiką (set-up time, job loading time); • poreikis efektyviau išnaudoti procesoriaus darbą, vykstant lėtam I/O procesui; • standartinių IOCS funkcijų sukūrimas; • magnetinių juostų ir diskų panaudojimas; • naujos sisteminės programinės įrangos sukūrimas; • naujos techninės įrangos įdiegimas (pvz. pertraukimai). Kaip šie impulsai veikė OS vystymosi raidą? 9. Nuoseklus paketinis užduočių apdorojimas (single stream batch processing). Siekiant sumažinti prastovas dėl naujų užduočių užkrovimo (set-up), programa-užkrovėjas buvo sukurtas tam, kad automatiškai iš perfokortų (arba perfojuostų) nuskaitymo įrenginio užkrauti nuoseklų užduočių srautą į kompiuterio atmintį, kur jos po to būtų viena po kitos nuosekliai vykdomos. Tokia ankstyva OS forma buvo vadinama “supervizoriumi’ arba “monitoriumi”. Nors ir paprastos savo sudėtimi, tačiau tai buvo vienos pirmųjų operacinių sistemų. Tam, kad atskirti užduotis sraute ir aiškiau apibrėžti, ką viena ar kita užduotis turi įvykdyti, perfokortų kaladėje buvo naudojamos spec. valdymo kortos (dažniausiai prasidedančios ženklais //). Šios kortos ir buvo pirma ryšio priemonė tarp vartotojo ir kompiuterio. Vėliau valdymo perfokortos tapo sudėtingesnės ir jų sistema buvo pavadinta Užduočių valdymo kalba (Job Control Language – JCL). 10. Multiprogramavimas (multiprogramming). Tolimesnis žingsnis, vystant OS, buvo multiprogramavimo įdiegimas, t.y. įgyvendinta galimybė kelioms programoms vykti vienu metu, procesoriui “persijunginėjant” nuo vienos programos prie kitos.Tokiu būdu tapo įmanoma išnaudoti procesoriaus laiką kitai programai, kai einamoji programa vykdydavo I/O funkcijas. Paketinė multiprograminė sistema dirbdavo taip: į atmintį buvo pakraunamas užduočių paketas. Kol viena iš užduočių vykdydavo I/O, procesorius pradėdavo vykdyti kitą, parinkdamas ją pagal užduotą prioriteto numerį.
Vėliau multiprogramavimas buvo panaudotas ir terminaliniame (on-line) darbo režime, t.y. vartotojui dirbant prie terminalo ir tiesiogiai bendraujant su kompiuteriu. Šiuo atveju yra užtikrinamas keleto vartotojų darbas prie terminalų vienu metu, ir toks darbo principas yra vadinamas “laiko paskirstymu”. Žinoma, buvo naudojamas ir mišrus (terminalinis + paketinis) multiprograminis darbas. 11. Spooling (Simultaneous Peripheral Operations On-line) – tai I/O duomenų kaupimas, prieš perduodant juos kitai užduočiai. 12. Svarbus patobulinimas buvo I/O duomenų tarp užduočių perdavimas per diską. Toks veiksmas leido žymiai pagreitinti tokias operacijas. Spooling buvo vienas iš ankstyviausių muliprogramavimo pritaikymų. Šiuo atveju, nuskaitymo, taikomoji ir spausdinimo programos galėjo dirbti vienu metu. 13. Realaus laiko sistemos. Plečiantis kompiuterių taikymo sferai, atsirado speciali taikomųjų uždavinių klasė – realaus laiko sistemos. Tai sistemos, kurios turi pakankamai greitai reaguoti, norėdamos paveikti aplinką. Tokių sistemų pavyzdžiu gali būti įvairios valdymo, dispečerinės sistemos, o taip pat informacinės sistemos, pateikiančios operatyvią informaciją, pvz. apie laisvas vietas lėktuvuose ar traukiniuose. Operacinės sistemos turi turėti priemones, užtikrinančias greitą tokių sistemų atsaką. Saugumo ir patikimumo aspektai taip pat labai svarbūs tokiose sistemose.2.2. Operacinių sistemų sudarymo principai

Dauguma OS turi daugelio lygių hierarchinę struktūrą (žiūrėti 1_pav). Kiekvienas šios struktūros lygis valdo jam pavaldžius žemesnius ir formuoja ryšiams su aukštesniais lygiais skirtas priemones (interfeisus). Žemiausiame OS struktūros lygyje yra fizinių kompiuterio įrenginių valdymo primityvai, kurie leidžia likusias OS dalis padaryti nepriklausomas nuo įrenginių techninio realizavimo būdo. Ši OS dalis dažnai vadinama OS branduoliu. Branduolys – tai speciali programa, kuri nuolat būna kompiuterio opertyviojoje atmintyje ir visą laiką vykdoma. Ji aptarnauja visas lenteles, kurios naudojamos kompiuterio procesų ir resursų valdymui. Loginių primityvų lygyje nurodymai yra duodami ne realiems kompiuterio įrenginiams, o juos valdančioms OS struktūroms, kurios vadinamos loginiais įrenginiais. Vartotojams skirtas priemones ir OS interfeisą formuoja OS interpretatorius (komandų procesorius). Išorinio interfeiso pobūdis priklauso nuo OS paskirties ir techninių kompiuterio galimybių. Kompiuteris ir jo OS yra universalūs įrankiai, kuriuos dar reikia specializuoti. Tai atlieka taikomosios programos. Aprašyta hierarchinė valdymo struktūra realiose OS retai kada tiksliai išlaikoma. Jose atskiri struktūriniai elementai dažniausiai jungia iš karto kelių valdymo lygių funkcijas. Detaliau įvairios operacinių sistemų struktūros aprašytos 5_doc.2.3. Operacinių sistemų tipai

Operacinės sistemos gali būti klasifikuojamos pagal įvairius kriterijus, nors dažniausiai konkreti OS gali turėti kelių tipų savybes. Taigi OS gali būti skirstomos pagal tokias savybes:•• vienu metu atliekamų užduočių skaičių – vienprogramės (mono) ir daugiaprogramės (multi); • vienu metu valdomų centrinių procesorių skaičių – vienprocesorinės ir multiprocesorinės; • dialogą su vartotoju – interaktyviosios ir neinteraktyviosios; • vartotojo sąveiką su OS atliekant jo užduotį – paketinės, realaus laiko ir paskirstyto laiko. Vienprogramės sistemos. Pirmosios operacinės sistemos buvo skirtos vienam vartotojui, nes galėjo priimti komandas tik iš vieno terminalo. Vienprogrames OS šiuo metu dažniausiai turi asmeniniai, o šiuolaikinės didelės kompiuterinės sistemos projektuojamos taip, kad vienu metu galėtų atlikti daug užduočių.v Multiprograminėse OS visų vykdytinų programų kopijos įrašomos į pagrindinę atmintį. OS koordinuoja kiekvienos programos vykdymą. Ji nurodo centriniam procesoriui skirti tam tikrą laiko intervalą kiekvienai programai. Prieš tai joms dar suteikiami vadinamieji prioritetai. Iškart vykdoma tik viena programa. Bet procesorius dirba taip greit, kad atrodo lyg visos programos būtų vykdomos tuo pačiu metu. Multiprocesorinės sistemos. Tai žymiai sudėtingesnės sistemos. Čia iškart vykdomos kelios programos, naudojant du ar daugiau procesorius. Gali būti lygiagrečiai vykdomos ir kelios tos pačios programos komandos, suskaldžius programą į kelias lygiagrečias šakas (gijas). Multiprocesorinė konfigūracija labai populiari didelėse kompiuterinėse sistemose ir galinguose mikrokompiuteriuose. Multiprocesorinių sistemų privalumai:• programas galima įvairiai paskirstyti tarp kelių procesorių;

• didėja skaičiavimų greitis (sulygiagretinus skaičiavimus keliuose procesoriuose); • didėja patikimumas (sugedusį vieną procesorių gali pakeisti kitas). Paketinio apdorojimo OS jokio ryšio tarp vartotojo ir atliekamos jo užduoties nėra. Šio tipo OS gali būti taikomi įvairūs metodai resursų naudojimui optimizuoti. Realaus laiko sistemos naudojamos kaip valdymo įtaisai konkrečiose sistemose (pvz., gamybos procesuose arba skrydžių valdyme). Čia labai griežti reikalavimai procesų trukmei. Būtina spėti sureaguoti į visus pakitimus, kad nė vieno proceso nė vienas signalas nebūtų praleistas. Paskirstyto laiko sistemos. Tai multiprograminė OS, kuriai būdinga tai, kad vienu metu su kompiuteriu dirba daug vartotojų. Kyla poreikis, kad sistemos atsakymas į kiekvieno vartotojo veiksmus būtų kuo spartesnis. Todėl kiekvienai vykdomai programai čia skiriamas trumpas procesoriaus laiko intervalas. Po to persijungiama iš eilės prie kitos programos. Jei per nustatytą laiko intervalą kurios nors programos skaičiavimo procesai nesibaigia, OS turi įsiminti esamą būvį, nutraukti jos vykdymą ir pereiti prie kitos programos vykdymo. Nutraukta programa bus tęsiama, kai vėl ateis jos eilė.2.4. Operacinių sistemų funkcijos

OS galima žiūrėti kaip į didelę ir sudėtingą sistemą, sudarytą iš dalių, kurios valdo:• procesus; • pagrindinę atmintį; • failus; • apsaugos sistemą. Plačiau aptarsime kai kurias OS funkcijas. Procesų valdymas . Programos tekstas yra įvairių instrukcijų seka, o jos vykdymas – dinamiškas procesas. Programa yra pasyvi, kol saugoma išorinėje atmintyje, ir tada ji neturi jokios įtakos kompiuteriui. Programa tampa aktyvi, kai įrašoma į operatyviąją atmintį ir OS ją paleidžia. Aktyvi programos būsena vadinama procesu. Taigi procesas yra tam tikras darbas, atliekamas pagal programą. Gyvenime yra daug panašių situacijų (pvz., muzikinis kūrinys atliekamas pagal anksčiau parašytą partitūrą). Kiekvienas procesas gali patekti į įvairias būsenas: jis gali būti vykdomas, blokuotas, atidėtas, paruoštas vykdyti ir t.t. Atskiras proceso būsenas, perėjimą iš vienos į kitą, taip pat nuo vieno proceso prie kito valdo OS. Pačios OS darbas yra įvairių procesų seka. Paprastai sistemoje vienu metu vyksta daug procesų, kurių dalis gali būti OS procesai (vykdo sistemines užduotis), o kiti – vartotojo procesai (vykdo vartotojo taikomąją programą). Kai kuriems procesams gali prireikti tų pačių kompiuterio resursų, todėl OS turi juos tinkamai paskirstyti. Valdydama procesus, OS atlieka tokias pagrindines funkcijas:• sukuria ir baigia vartotojo ar sisteminį procesą; • sustabdo ir vėl atkuria procesus, “persijungdama” juos; • sinchronizuoja procesus; • palaiko ryšius tarp procesų. Kuriant naują procesą, padaromi įrašai sisteminėse lentelėse, išskiriami tam tikri resursai. Esant laisvam procesoriui, pilnai parengtas (t.y. turintis visus reikalingus resursus) procesas gali būti pradedamas vykdyti. Tačiau jis gali būti sustabdytas, jei baigiasi jam skirtas laiko intervalas, jei procesui reikia duomenų, kurie yra išorinėje atmintyje, ir kt. Tada procesorius persijungia prie kito proceso, o tai valdo atitinkama OS programa (procesas). Atminties valdymas . Operatyvioji atmintis (OA) saugo duomenis, kuriuos reikia labai greitai pateikti centriniam procesoriui (kuo greičiau, tuo efektyviau jis panaudojamas). Operatyviojoje atmintyje laikoma vykdoma programa ir jai reikalingi kiti duomenys. Baigus vykdyti programą, šią atminties sritį reikia palaisvinti. Norint kuo efektyviau panaudoti centrinį procesorių, operatyviojoje atmintyje reikia laikyti kelias programas. Todėl OS naudojasi tam tikra tos atminties paskirstymo strategija. Taigi valdant atmintį OS turi:• fiksuoti, kokia atminties dalis užimta ir kas ją užima; • nuspręsti, kokio proceso programą perkelti į OA, kai ji tampa laisva; • paskirti ar atimti prireikus iš kai kurių procesų tam tikrą jų užimamą OA sritį. Virtuali atmintis. Viena pagrindinių OS funkcijų yra efektyviai ir kruopščiai paskirstyti atmintį. Virtualios atminties atveju vartotojui visai nesvarbu, kur bus patalpinta jo programa. Programa dalijama į modulius ar mažas sekcijas, kurios prireikus įrašomos į pagrindinę atmintį. Laikinai nenaudojami moduliai saugomi greitaeigiame diske. Seniau visos OS buvo suprojektuotos taip, kad visa programa turėjo būti įrašyta į pagrindinę atmintį prieš ją vykdant. Be abejo, virtuali atmintis palengvina multiprogramavimą, nes leidžia laikyti operatyviojoje atmintyje kelių programų modulius, tuo metu reikalingus šioms programoms vykdyti.

Valdant išorinę atmintį, OS realizuoja šios atminties paskirstymą failams, kaupia informaciją apie užimtas bei laisvas atminties sritis. Failų valdymas . Tai viena svarbiausių OS funkcijų. OS kūrėjai stengiasi atsiriboti nuo atminties įrenginių fizinių savybių ir apibrėžia loginį duomenų vienetą failą. Tai pagrindinė kompiuterio atmintyje saugomų duomenų struktūra. Failas mokykliniuose vadovėliuose ir kituose leidiniuose dar vadinamas byla. Failą gali sudaryti programos tekstas, duomenys, sukurtas dokumentas ir pan. Failus nesunku surasti, pakeisti, pašalinti ar perduoti išvedimo įrenginiui, jei jie saugomi tvarkingai, suskirstyti į grupes pagal tam tikrus kriterijus. Panašiai kaip bibliotekose įvairūs leidiniai yra katalogizuoti, taip ir kompiuteriuose visa informacija apie failus saugoma kataloguose. Kiekvienas vartotojas paprastai turi savo katalogą, o jame – pakatalogius, kuriuose saugomi vienos paskirties arba vieno projekto failai. Paveikslėlyje 6_pav pavaizduotas studentų katalogas STUD, kuriame yra studentų grupėms skirti pakatalogiai UA8, UP8 ir UV8, o kataloge UP8 – nauji pakatalogiai JON, KALV ir PETR, kurie tikriausiai skirti JONAIČIO, KALVAIČIO ir PETRAIČIO failams saugoti. Kaip matome iš pateikto pavyzdžio, katalogas yra kaip medis, o iš kiekvieno katalogo gali “išaugti” naujos šakos atitinkančios pakatalogius. Panašiai kaip medis turi šaknį, taip ir kiekvienas diskas – pagrindinį (aukščiausio lygio) katalogą, dar vadinamą šakniniu. Iš jo “išauga” stambiausios šakos (svarbiausi katalogai), iš šių – smulkesnės ir t.t. iki žemiausio lygio pakatalogių. Kiekviename kataloge gali būti saugomi failai (tiksliau – informacija apie jų saugojimo vietą) ir kitos pagrindinės charakteristikos – sukūrimo data, laikas, dydis. Failus galima surikiuoti pagal norimą požymį, pvz., pagal jų apimtis arba tipą. Kiekvienam failui duodamas vardas, kuris paprastai sudaromas iš dviejų dalių, atskirtų tašku. Pageidautina, kad pagrindinė vardo dalis (prieš tašką) atspindėtų saugomos faile informacijos prasmę, o antroji dalis (po taško) – failo paskirtį. Pastaroji dalis vadinama plėtiniu. Katalogo struktūra pateikta Failų vardų pavyzdžiai kai kuriose IBM PC kompiuterių operacinėse sistemose (MS DOS, Windows): tekstas1.doc – tekstas, paruoštas redaktoriumi WORD, pirma.pas – programa pirma, parašyta PASCAL kalba, pirma.exe – tos pačios programos vykdomasis modulis. Daugumoje sistemų plėtinys sudaromas iš ne daugiau kaip 3 simbolių. Apskritai jis nebūtinas, bet padeda suprasti, kokio tipo informacija saugoma faile. Dažniausiai naudojami tokie plėtiniai:• com, exe – parengtų vykdyti programų tekstai (vykdomieji moduliai); • bat – OS komandų paketų failai; • txt – tekstiniai failai; • sys – OS sudedamosios dalys. Pagrindinis katalogas sudaro loginės disko struktūros pagrindą ir yra žymimas diskinio įrenginio vardu (viena raide) su dvitaškiu, pvz., C: . Tvarkant failus, svarbi aktyvaus (paruošto darbui) katalogo sąvoka. Įjungus kompiuterį, aktyviu tampa tas kaupiklis ir katalogas, iš kurių į OA įvedamas OS branduolys, arba tas katalogas, kurį parengia pradinio OS paruošimo programa . Norint patekti iš vieno katalogo į kitą, tenka pereiti katalogų medžio šakomis, t.y. reikia nurodyti kelią, susidedantį iš tų šakų sąrašo. Kelias gali būti nurodomas tik nuo aktyvaus arba pagrindinio katalogo. Jau minėjome, kad failų sistema yra viena svarbiausių OS dalių. Ji atsakinga už failų, saugomų diskuose ir kituose atminties įrenginiuose, tvarkymą. Todėl OS turi aukšto lygio funkcijas, kurios naudojamos failams sukurti, duomenims į juos įrašyti arba iš jų skaityti, perduoti duomenis iš vienų failų į kitus ir kt. Vartotojui telieka nurodyti failo (ar failų) vardus ir kartais kelią iki reikiamo katalogo. Kelias – tai visų medžio šakų, kuriomis einama iki reikiamo katalogo, sąrašas. Taigi, kelias į 6_pav. parodytą katalogą JON, einant nuo šakninio katalogo, yra C:STUDUP8JON (užrašant operacinės sistemos MS DOS komandose) arba C:/STUD/UP8/JON (OS Unix). Kelio šaka šaknies link paprastai žymima dviem taškais (..). Į vesties ir išvesties posistemis atlieka sąsajos (interfeiso) tarp pagrindinės ir išorinės atminčių funkcijas. Operacinė sistema atsako už pagrindinėje atmintyje esančių buferių aptarnavimą. Joje yra ir įrenginių tvarkyklės (driver – OS modulių, tiesigiai bendraujančių su įvesties ir išvesties įrenginiais) rinkinys.
Į vesties ir išvesties posistemio darbas tarpusavyje tampriai susietas su failų bei išorinės atminties valdymu.3.1. Windows vystymosi raida

Microsoft firma šiandien pateikia tokią Windows operacinių sistemų šeimą (žiūrėti 2_pav ) Windows 3.1 (1992 m.) buvo pirma Windows versija, oficialiai pavadinta operacine sistema. Tačiau ji negalėjo funkcionuoti atskirai nuo MS – DOS. Iš tiesų tai buvo DOS operacinės sistemos grafinis apvalkalas. Pirmąja Windows su tinklinėmis galimybėmis versija tapo operacinė sistema Windows for Workgroups 3.1. OS Windows 95 buvo kuriama, kai jau egzistavo 32-jų bitų saugi operacinė sistema Windows NT. Tačiau pastaroji buvo pernelyg reikli aparatūriniams resursams. Todėl ir buvo sukurta ne tokia reikli OS Windows 95, tinkanti 32-jų bitų taikomosioms programoms. Į Windows 95 komplektą buvo įtraukti visi būtini realaus režimo (“MS-DOS režimo”) komponentai. Vienas pagrindinių Windows 95 ypatumų – visai nauja (palyginus su Windows 3.x) vartotojo aplinka. 1998 m. Microsoft išleido naują OS versiją – Windows 98. Ją įdiegti galima iš Windows 3.11 arba Windows 95 aplinkos. Naujosios OS pagrindinė architektūra nepakito, bet naujovių daug:• integruota naršyklė “Internet Explorer 4.0”, paverčianti pagrindinį langą Interneto tinklapiu; • OS stabilesnė, nes, kaip teigia Microsoft programuotojai, ištaisyta daugiau kaip 3000 klaidų; • šiek tiek padidėjo sistemos darbo sparta ( sutrumpėjo programų iškvietimo laikas, paspartėjo kompiuterio parengimas išjungti, nes nereikalaujama užbaigti visų dirbančių programų ar tinklo ryšių, kaip tai daro Windows 95, ir kt.); • naujos energijos taupymo galimybės; • geresnė pagalbos sistema; • nebereikia jokios programinės įrangos prijungiant naujus įrenginius – į OS įdiegtos visos tvarkyklės; ir kt. Windows NT pagrindinė paskirtis – tarnauti vidutinių ir didelių bendrovių bei organizacijų verslo aplinkai. Didelis šios OS privalumas – gera informacijos apsauga bei palankios tinklo administravimo sąlygos. Pirmosios operacinių sistemų Windows NT versijos buvo Windows NT 3.1 ir Windows NT Advanced Server 3.1. Kitados Windows NT keliami reikalavimai įrangai – mikroprocesorius ne lėtesnis kaip 80386DX ir 12 MB operatyvinės atminties – atrodė (ir buvo) labai dideli. Windows NT Workstation 3.5 ir Windows NT Server 3.5 “įtilpo” į 8 MB, ir tai buvo vertinama kaip itin didelis pasiekimas. Vis labiau populiarėja kišeniniai kompiuteriai. Microsoft firma, anksčiau atsargiai žiūrėjusi į šią naują kompiuterių kartą, 1996 metais nusprendė sukurti specialiai jai skirtą Windows versiją. Ši versija pavadinta Windows CE ir pasirodė 1996 m. lapkritį. Tuo pat metu keletas skaičiavimo technikos gamintojų sukūrė specialią kišeninių kompiuterių klasę (Handheld PC), naudojančią šią operacinę sistemą.3.2. Pagrindinės sistemos struktūros ypatybės Operacinę sistemą Windows galima nagrinėti tokiais pagrindiniais aspektais:• sistemos architektūra; • sistemos stabilumas; • sistemos suderinamumas su kitomis sistemomis ir tinklais; • sistemos lankstumas ir patogumas vartotojui. Visos šios operacinių sistemų šeimos versijos turi daug bendrų bruožų. Tai vienoda vartotojų aplinka, standartinės programos, tokios kaip Internet Explorer arba elektroninis paštas ir kt. Tačiau vėlesnėse versijose yra ir esminių skirtumų. Tai reiklumas aparatūrai, produktyvumas, patikimumas ir geresnė apsaugos sistema. Vėlesnėse Windows versijose labai ženkliai kito tiek aparatūriniai, tiek programiniai elementai:• naršyklė “Internet Explorer ”, paverčianti pagrindinį langą Interneto tinklapiu; • OS stabilesnė, nes, kaip teigia Microsoft programuotojai, ištaisyta daugiau kaip 3000 klaidų; • šiek tiek padidėjo sistemos darbo sparta ( sutrumpėjo programų iškvietimo laikas, paspartėjo kompiuterio parengimas išjungti, nes nereikalaujama užbaigti visų dirbančių programų ar tinklo ryšių, kaip tai daro Windows 95, ir kt.); • naujos energijos taupymo galimybės; • geresnė pagalbos sistema; • nebereikia jokios programinės įrangos prijungiant naujus įrenginius – į OS įdiegtos visos tvarkyklės; ir kt.4.1. UNIX vystymosi raida Pirmąją UNIX versiją sukūrė Ken Thompson, AT&T kompanijos Bell laboratorijų darbuotojas, norėdamas turėti paprastą operacinę sistemą DEC PDP-7 kompiuteriui, kad galėtų žaisti žaidimą Space Travel. 1973 metais C kalbos autorius Dennis Ritchie perrašė UNIX kodą C kalba. Tuo metu kompanijai AT&T buvo uždrausta varžytis su kitais kompiuterinėje rinkoje, tad jie dosniai dalino naujos operacinės sistemos tekstą kitiems, ypač universitetams, o tai sąlygojo greitą UNIX paplitimą. UNIX sistemos kūrimu užsiėmė ir kitos firmos (Kalifornijos universitetas Berklyje, Microsoft korporacija ir kt.), tad greitai atsirado ištisa UNIX operacinių sistemų šeima. Kadangi C kalba yra labai mobili, netrukus buvo sukurtos UNIX versijos ir kitiems mikroprocesoriams, t.y. kitų klasių kompiuteriams. Pastaroji savybė (UNIX mobilumas) taipogi turi didelę įtaką šios operacinės sistemos paplitimui, nes galima vykdyti programas, paruoštas visai kitos klasės kompiuteriams. UNIX galimybės geriausiai atsiskleidžia darbo stotyse (procesoriai RISC, SPARC, t.t.), tačiau paruošta nemažai versijų ir Intel x86 rinkai (Xenix, SCO Unix, Solaris for x86, Unix Ware, Linux ir t.t.).

Nors yra sukurta daugybė įvairių UNIX versijų, tačiau galima išskirti pagrindinių UNIX komandų rinkinį, kuris nesiskiria visose UNIX versijose, palaikančiose POSIX (Portable Operating System Interface) standartą.4.2. Sistemos struktūra UNIX – daugiavartotojiška sistema. Unix failo – orientuota sistema, turinti aukštą failų sistemos apsaugos laipsnį. Šioje sistemoje net įvedimo – išvedimo įrenginiai yra traktuojami kaip atskiri failai. Bet koks kreipinys čia – tai kreipinys į programą, vadinamą komandų interpretatoriumi (Shell). Ši programa saugo OS nuo vartotojų nepageidaujamų veiksmų. OS pagrindas yra branduolys. Paprastai į branduolį kreipiasi tik programos per sisteminius kreipinius. Vartotojas bendrauja tik su Shell. Ji inerpretuoja komandas, ir arba jas vykdo pati, arba perduoda vykdyti kitoms programoms, kurios siunčia branduoliui užklausimus žemo lygio operacijų vykdymui. Sistema labai mobili. Joje galima vykdyti programas, paruoštas visai kitos klasės kompiuteriams. Ji naudojama darbo stotyse (RISC, SPARCir kt.), įvairių mikroprocesorių kompiuteriuose (versijos Intel x 86 ir kt. (Xenix, SCO Unix, Solaris for x 86, Unix Ware, Linux ir kt). Dauguma Unix versijų palaiko POSIX standartą (Portable Operating System Interface). Sistemos struktūrą žiūrėti 5_pav.4.3. Procesai Procesas – tai programa jos vykdymo metu. Procesą sudaro pati programa, jos duomenys ir stekas (steaks), programos skaitliukas, steko nuoroda, registrai bei kita tarnybinė informacija, reikalinga programai vykdyti. Procesas – tai vienareikšmiškai identifikuojama programa, kuriai reikia įvairių kompiuterio resursų. Multiprograminėse sistemose vienu metu dirba daug procesų, kuriems centrinio procesoriaus laiką skirsto operacinės sistemos dalis, vadinama procesų planuotoju. Procesui išnaudojus jam skirtą procesoriaus darbo laiko kvantą, planuotojas laikinai sustabdo procesą ir perduoda valdymą kitam procesui. Kai procesas laikinai sustabdomas, turi išlikti galimybė vėliau jį pratęsti vykdyti lygiai toje pačioje būsenoje, kurioje jis buvo jį sustabdžius. Tokiu būdu, turi būti išsaugota visa informacija apie procesą jo sustabdymo metu. Pavyzdžiui, būtina išsaugoti informaciją apie skaitymo žymes kiekviename proceso naudojamame faile, kad READ kreipinys, pratęsus proceso vykdymą, nuskaitytų teisingus duomenis. Paprastai, su procesu susijusi išsaugoma informacija susideda iš jo užimamos adresų erdvės turinio (core image) ir atitinkamo elemento procesų lentelėje. Procesų lentelė – tai struktūrų masyvas arba susietas struktūrų sąrašas, kuriame kiekviena struktūra aprašo vieną iš egzistuojančių procesų. Daugelio procesų vykdymas vienu metu, turint vieną procesorių ir planuotojui skirstant jo laiką, yra vadinamas pseudolygiagrečiu procesų darbu. Nors iš tikrųjų tam tikru konkrečiu momentu centrinį procesorių naudoja tik vienas procesas, visi procesai, dirbdami pakaitomis, “stumiasi” į priekį po laiko kvantą ir vartotojui susidaro iliuzija, kad visi procesai vyksta tuo pačiu metu, t.y. lygiagrečiai. Procesų darbui valdyti yra skirti įvairūs servisai, iškviečiami atitinkamais sisteminiais kreipiniais. Svarbiausi sisteminiai kreipiniai procesų valdymui yra šie: FORK – procesų – vaikų sukūrimui (sukuriamas procesas, identiškas procesui – tėvui),  EXEC – proceso kodo perrašymui, iškviečiant norimą programą,  SIGNAL, KILL – signalų priėmimui ir siuntimui, procesams bendraujant tarpusavyje. FORK sisteminis kreipinys leidžia sistemoje sukurti procesų medį. Šiame medyje kiekvienas procesas turi vieną procesą – tėvą, tačiau gali turėti kelis procesus – vaikus. Nors kiekvienas procesas yra nepriklausomas vienetas, procesams dažnai tenka bendrauti su kitais procesais. Pavyzdžiui, vienas procesas gali generuoti išėjimo duomenis, kurių savo įėjime laukia kitas procesas. Todėl procesai gali įgyti įvairias būsenas: aktyvus procesas – tuo metu naudoja centrinį procesorių.  blokuotas procesas – logiškai negali būti vykdomas, kol neįvyks tam tikras išorinis įvykis (pvz. bus paruošti duomenys).  pasiruošęs procesas – gali būti vykdomas, tačiau yra laikinai sustabdytas, planuotojui užleidus centrinį procesorių kitam procesui. OS, iš tikrųjų, valdo ne patį procesą, o jo pavidalą arba, kitaip sakant, kodo ir duomenų segmentus. Kodo segmentas turi realias instrukcijas centriniam procesoriui. Jį gali sudaryti tiek vartotojo parašytas kodas tiek sistemos sugeneruotas kodas. Sisteminis kodas aprūpina ryšį tarp programos ir OS.
Operacinėje sistemoje kartu dirbantys procesai paprastai yra priversti bendrai naudoti tam tikrą atminties sritį, kurioje jie gali tiek skaityti, tiek ir rašyti. Tai gali būti tam tikra operatyvinės atminties sritis arba bendro naudojimo failas. Dažniausiai operacinėse sistemose susiduriame su situacija, kai vienu metu parengties būsenoje yra keli procesai (pvz., gamintojas ir vartotojas). Tokioje situacijoje OS turi nuspręsti, kurį iš šių procesų vykdyti pirmuoju. Operacinės sistemos dalis, kuri priima tokį sprendimą, yra vadinama planuotoju (scheduler), o algoritmas, kurį ji naudoja, yra vadinamas planavimo (scheduling) algoritmu. Sklandžiam sistemos darbui procesų tvarkymui yra naudojamos įvairios priemonės : dispečerizavimas  laiko paskirstymas  pertraukimo mechanizmas Pereinant iš vieno proceso į kitą labai svarbus yra jų dispečerizavimas, vykdymo tvarkos parinkimas. Vykdymo tvarka gali būti nuosekli, t. y. jie vykdomi iš eilės. Daug vartotojų aptarnaujančiose sistemose taikomas laiko paskirstymas. Tai reiškia, kad procesui viršijus operacijų sistemos nustatytą trukmę, jo aptarnavimas yra pertraukiamas ir pradedami kiti procesai. Čia svarbus yra kompiuterio būvio registravimas ir atstatymas, kad būtų galima vėl tęsti pertrauktą procesą. Pertraukimo mechanizmas reguliuoja procesų trukmę, procesų sąveiką, lygiagretų kelių procesų vykdymą, atskirų procesų ir net kompiuterio įrenginių darbo sinchronizavimą. Pertraukimai yra tos priemonės, kuriomis procesai palaiko ryšį su aparatūrinėmis priemonėmis. Dažniausiai pasikartojantys pertraukimai yra pertraukimai, ateinantys iš sisteminio laiko skaitiklio (taimerio). Taimerio pertraukimai įvyksta vidutiniškai kas 10 ms. Duomenys (duomenų segmentas) taip pat yra proceso pavidalo dalis. Duomenys yra trijų tipų: registiniai, dinaminiai, steko duomenys. Procesas gali dirbti dviem režimais: vartotojo ir sisteminiame . Darbas sisteminiame režime reiškia, kad procesas vykdo sisteminius iškvietimus ir apdorja pertraukimus. Proceso darbas vartotojo režime reiškia, kad yra vykdomas kodas, užduotas vartotojo. Planuodama užduotis sistema įvertina proceso darbą abiem režimais. Sisteminis režimas yra svarbus, nes jame valdomi bendrai naudojami resursai, priėjimas prie diskų, papildomos dinaminės atmintinės paskirstymas ir kiti dalykai. Šiame režime apdorojami sisteminių kreipinių arba išorinių signalų iššaukiami pertraukimai. Procesuose skiriamos trys skirtingos fazės: parengimas, vykdymas, užbaigimas. Parengiant procesą, jo programa yra talpinama OA ir parenkama jos vykdymui reikalinga įranga. Po to paruoštas procesas yra vykdomas. Vykstant procesui, yra analizuojamos ir vykdomos procesą aprašančios komandos, o užbaigiant yra išlaisvinama procesui skirta įranga ir valdymas grąžinamas opercijų sistemai, kuri pradeda naują procesą. Kiekvienam procsui sukuriamas jo valdymo blokas, kuris patalpinamas į sisteminę procesų lentelę. Ši lentelė yra OS branduolyje. Pati lentelė – tai procesų valdymo struktūrų blokų masyvas. Kiekviename tokiame bloke yra tokie duomenys: proceso būvio žodis  prioritetas  sisteminio planuotojo išskirtas laiko kvanto dydis  centirinio procesoriaus panaudojimo laipsnis  dispečerizavimo požymis  vartotojo identifikatorius, kuriam priklauso pocesas  procesų grupė  proceso ir motininio proceso identifikatoriai  pavidalo talpinamo pripumpavimo srityje dydis  duomenų ir kodų segmentų dydis  signalų, laukiančių apdorojimo, masyvas Kad sistema funkcionuotų, branduolys turi sekti šiuos duomenis.4.4. Failų sistema Unix duomenys diske sudaro hierarchinę failų sistemą. Čia failų sistema vieninga visiems diskams. Disko turinys prijungiamas prie sistemos komanda mount, o atjungiamas – umount. Unix sistemoje kiekvienas failas turi vadinamąją “informacinę viršūnę” – inode . Joje yra tokia informacija:• pagrindinė informacija apie katalogą, • 12 nuorodų į tiesioginius blokus • 3 nuorodų į papildomus indeksų blokus: paprastus, dvigubo ir trigubo “netiesiogiškumo” • 13-toji nuoroda parodo kitą indeksø blokà, kuriame yra tiesioginës failo blokø nuorodos; • 14-toji nuoroda parodo kità indeksų bloką, kurio kiekvienas įrašas – tai nuoroda į kitą indeksų bloką, kuriame yra tiesioginës failo blokų nuorodos; • 15-toji nuoroda parodo jau trijų lygių indeksų sistemą. Ryšiai tarp katalogų, mazgų (Inode) ir failų 3_pav.. Jame viršuje – šakninis katalogas (root). Nuo jo pradeda šakotis Unix failų sistema (katalogų medį rasite 4_pav). Kai kurie katalogai visose Unix sistemose turi griežtai apibrėžtą paskirtį, pavyzdžiui: /home – namų katalogas, dar vadinamas login katalogu. /dev – katalogas, kuriame saugomi specialūs failai, skirti periferiniams įrenginiams.
/usr – katalogas, kuriame saugomos komandos, pagalbinës programos (utilities), bibliotekos, žinyno man dokumentai ir kt. /etc – katalogas, kuriame saugomi pagrindiniai konfigūraciniai failai, jų tarpe ir vartotojų registracinis failas passwd.it t. t. Informacija apie failus UNIX sistemoje saugojama atskirai nuo pačių katalogų specialiose struktūrose – Inode (mazguose). Kiekvieną failą atitinka vienas mazgas. Kataloguose saugojamas failo vardas ir nuoroda į atitinkamą mazgą. Visa kita informacija apie failą saugojama mazge (inode), tame tarpe, disko blokų, priklausančių failui, išdėstymas. Unix – daugelio vartotojų sistema. Joje kiekvienam vartotojui sukuriamas jo registracinis katalogas, į kurį patenkama tuoj pat po užsiregistravimo sistemoje. Registracinį katalogą sukuria administratorius. Šis katalogas dažniausiai prijungiamas prie katalogo /usr (arba /usr/home). Katalogų ir failų varduose mažosios raidės skiriamos nuo didžiųjų. Simboliai “.” (taškas) ir “_” (pabraukimo ženklas) negali būti pirmaisiais vardo simboliais. Išimtį sudaro du specialūs vardai: – vardas “.” yra “einamojo” katalogo pseudonimas, – vardas “..” yra aukštesnio lygio katalogo pseudonimas. Vardų maksimalus ilgis skirtingas įvairiose Unix versijose ir gali būti 255 simboliai. Vardų plėtinių ilgis nėra ribojamas 3 simboliais. Be to, Unix failai gali turëti kelis plėtinius. Unix sistemoje yra 3 pagrindinių failų tipai: • paprastieji failai (tekstiniai ir dvejetainiai),• katalogai (failų sąrašai, kuriuos formuoja ir tvarko sistemos branduolys),• specialūs failai (įvesties ir išvesties įrenginių failai). UNIX failų sistemoje labai gerai išvystyta failų apsauga. Failų sistemos apsaugos priemones žiūrėti 1_doc.4.5. Darbo kompiuterių tinkle ypatybės Šiandien UNIX yra, ko gero, progresyviausia operacinė sistema. UNIX sistemose yra sukurtas TCP/IP. Šioje sistemoje galima naudotis visomis Interneto paslaugomis: elektroniniu paštu, Usenet, WWW, FTP. Dirbant kompiuterių tinkle sverbūs yra IP – paketų maršrutizacijos protokolai, TCP/IP priemonių palaikymas, priėjimo prie skirtingų failų sistemų organizavimas. Kaip bus palaikomas ryšys kompiuterių tinkle priklauso nuo to:• su kiek skirtingų vartotojų ir kompiuterių ryšys bus palaikomas; • kokia autonomija disponuos kiekvienas vartotojas ar kompiuteris; • kiek informacijos bus perduodama. Kiekvieno tinklo komponentai yra:• fiziniai įrenginiai; • protokolai; • įvairūs priedėliai (tai daugiausia protokolai, naudojami sąveikai su panašiais protokolais, naudojamais kituose kompiuteriuose (mazguose). Svarbios yra ryšio priemonių praleidžiamojo kanalo galimybės. Šios priemonės yra skirstomos į žemo našumo ir aukšto našumo ryšio priemones. Pvz., teksto (raidžių) siuntimas elektroniniu paštu yra pats žemiausias perdavimo lygis. Aukšto lygio yra telefoninis ryšys, kurio metu vyksta garso perdavimas realiame laike be jokių užlaikymų. Dar aukštesnio lygio yra televizijos ryšys. Tinklai (detaliau 2_doc) taip pat yra įvairių tipų. Daugiau dėmesio skirsime klientas – serveris tipo tinklui, kuriam būdinda NFS (Network File System) tinklinė failų sistema. Ši sistema suteikia galimybę pasiekti failus esančius kitoje tinklo vietoje. Čia naudojama DNS (Domain Name System), kuri nustato mazgų IP adresus. Gali būti naudojami keli kompiuterių mainų modeliai: OSI (Open System Interconection) – atviro tipo tinklas ir DoD (Department of Defense) – gynybos ministerijos arba Internet.UNIX – e dažniausiai yra naudojams TCP/IP protokolas (būdingas DoD modeliui). UNIX palaiko daugiau 100 TCP/IP sistemos protokolų. Kiekvienas protokolas detaliai aprašytas dokumentuose, vadinamuose RFC (Request for Comments). Oficiali saugykla vadinasi RS.INERNIC.NET (IP adresas 198.41.0.9). UNIX tinklo apsaugos sistema yra labai išvystyta. Pagrindinę informaciją galima rasti alt.security, alt.security.index, comp.security.unix protokoluose. Kai kurias UNIX komandas, kurios leidžia sužinoti tam tikrą sistemos informaciją, galima sėkmingai taikyti ir norint pasiekti nutolusius mazgus.4.6. UNIX teksto redaktoriai Svarbiausias programuotojo įrankis yra teksto redaktorius. Teksto redaktorių atsiradimo istorijos pradžia yra laikai kai gyvavo teletaipiniai terminalai. Iki tol vartotojas vargo informaciją perforuodamas perfokortose, kurių, padarius klaidą, negalima buvo redaguoti. Klaidinga perfokorta būdavo išmetama ir ruošiama nauja. Teleitaipe informacijos išvedimas buvo atliekamas spausdinant ją plačiajuosčiame popieriuje arba popierinėje juostelėje. Informacijos redagavimui teletaipiniame terminale buvo pradėti naudoti paprasti teksto redaktoriai. Redagavimo procesas atrodo taip: vartotojas renka teksto eilutę, įveda komandą jos redagavimui, perrenka teksto eilutę, kad įsitikinti jog informacija teisinga.
Atsiradus videoterminalams teksto redagavimas galėjo būti vykdomas tiesiogiai, jei tik jis visas tilpo vienoje eilutėje. Teksto redaktoriuje atsirado veiksmai, kuriais galima buvo persikelti į teksto eilutės pradžią ar pabaigą, įterpti ar trinti žodžius, tačiau negalima buvo persikelti eilute aukščiau. Tačiau, keičiantis techninei įrangai ir poreikiams, teksto redaktoriai tobulėjo ir šiandien jų turime visą galybę. UNIX – e jų yra daug ir įvairių .Labiausiai paplitę emacs ir vi teksto redaktoriai. Vi (plačiau 3_doc) yra vienas pirmųjų sistemos vizualių(full screen) redaktorių. Jis yra visose UNIX sistemose. Emacs yra UNIX integruota programavimo aplinka. Jis turi lanksčią ir visaapimančią vartotojo sąsają. Paprasčiausi UNIX redaktoriai yra pico (plačiau 4_doc), joe, jed. Pradedantys gali naudoti mcedit redaktorių, kuris labai panašus į Norton Commander vidinį redaktorių.