From a5f5378f913d9bac3a5d686372cf1b8dda1cd835 Mon Sep 17 00:00:00 2001
From: Aleksa Vučković <aleksav013@gmail.com>
Date: Tue, 24 May 2022 02:27:37 +0200
Subject: lektorisanje

---
 kernel.tex | 161 +++++++++++++++++++++++++++++++------------------------------
 1 file changed, 81 insertions(+), 80 deletions(-)

(limited to 'kernel.tex')

diff --git a/kernel.tex b/kernel.tex
index ead876e..36e13c2 100644
--- a/kernel.tex
+++ b/kernel.tex
@@ -124,18 +124,18 @@
 \bigskip
 
 Ideja za ovaj rad proizishla je iz ekstenzivnog korish\/c1enja {\eng GNU/Linux}
-sistema, kao i zhelja za razumevanjem rada rachunara na najnizhem nivou.
+sistema, kao i zhelja za razumevanjem rada rachunara na najnizhem nivou.\\
 
-Ceo kod je pisan u {\eng GNU Asembler}-u i {\eng C}-u i mozhe se nac1i na
+Ceo kod je pisan u {\eng GNU Assembler}-u i {\eng C}-u i mozhe se nac1i na
 {\eng GitHub}-u na stranici {\eng\url{https://github.com/aleksav013/mykernel}}.
-Kod, zajedno sa svim alatima za njegovo korishenje i upotrebu, je dostupan pod
-{\eng GPLv3} licencom.
+Kod, zajedno sa svim alatima za njegovo korish\/c1enje i upotrebu, je dostupan
+pod {\eng GPLv3} licencom.\\
 
 Ovaj projekat se konstantno unapredjuje i nemoguc1e je odrzhavati
 sinhronizovanim fajlove koji sachinjavaju operativni sistem, a koji se
 istovremeno pominju u ovom radu. Iz tog razloga, rad c1e biti napisan za
 verziju operativnog sistema 1.0.0. Na stranici {\eng GitHub}-a ova verzija se
-mozhe nac1i pod {\eng tag/s} sekcijom na stranici projekta.
+mozhe nac1i pod {\eng tag/s} sekcijom na stranici projekta.\\
 
 Radi laksheg kompajlovanja koda od strane chitaoca, kreiran je {\eng toolchain}
 - set alata, specifichno za kompajlovanje ovog operativnog sistema, koji se
@@ -143,9 +143,9 @@ mozhe nac1i na stranici
 {\eng\url{https://github.com/aleksav013/aleksa-toolchain}},
 takodje dostupan pod {\eng GPLv3} licencom otvorenog koda. Set alata {\eng
 aleksa-toolchain} kreiran je takodje i iz razloga shto je zapravo neizbezhan
-proces kreiranja {\eng cross-compilera} - kompajlera koji kompapajluje kod za
-drugi sistem/arhitekturu na trenutnom sistemu/arhitekturi. Na taj nachin i
-drugi ljudi osim autora mogu doprineti izradi i pobojshanju ovog operativnog
+proces kreiranja \text{{\eng cross-compiler}-a} - kompajlera koji kompajluje
+kod za drugi sistem/arhitekturu na trenutnom sistemu/arhitekturi. Na taj nachin
+i drugi ljudi osim autora mogu doprineti izradi i poboljshanju ovog operativnog
 sistema u buduc1nosti.\\
 
 Ovaj projekat ima za cilj da prikazhe postupak kreiranja jednog za sada
@@ -166,9 +166,9 @@ ove familije nose zajednichki naziv upravo po sufiksu 86 koji se pojavljuje u
 imenima svih ovih procesora.\\
 
 U periodu od 1999. do 2003. {\eng AMD} je proshirio velichinu registra na 64 bita
-i ta arhitektura ima vishe naziva od kojih su najkorisheniji: {\eng x86\_64,
-amd64} i {\eng x64}. Velika vec1ina uredjaja danas koristi {\eng x86\_64} arhitekturu
-procesora.\\
+i ta arhitektura ima vishe naziva od kojih su najkorish\/c1eniji: {\eng
+x86\_64, amd64} i {\eng x64}. Velika vec1ina uredjaja danas koristi {\eng
+x86\_64} arhitekturu procesora.\\
 
 Jezgo operativnog sistema prikazano u ovom radu bazirano je na {\eng X86}
 arhitekturi sa registrom velichine 32 bita. Konkretna verzija ove arhitekture
@@ -182,7 +182,7 @@ imenom 80386 shto oznachava trec1u generaciju {\eng X86} arhitekture.
 Postoji vishe vrsta registara procesora\cite[75]{misc:1}. Neki od osnovnih
 registara koje je potrebno pomenuti dati su u tekstu koji sledi. Razlog zbog
 kojeg su navedena i imena registara prethodnih verzija {\eng X86} arhitekture
-je zbog toga shto je moguc1e adresirati prvih {\eng x} bitova ako se koristi
+je zbog toga shto je moguc1e adresirati prvih {\eng x} bitova, ako se koristi
 ime registra za {\eng x}-tobitnu verziju {\eng X86} arhitekture. Naravno, ovo
 vazhi samo ukoliko je duzhina registra nasheg sistema (32 bita), vec1a ili
 jednaka duzhini registra chiju notaciju koristimo.
@@ -222,7 +222,7 @@ gdtr & ldtr & idtr \\
 \hline
 \end{tabular}}\\
 
-Osim pomenutih, pochev od shesnaestobitne {\eng X86} arhitekture postoje i
+Osim pomenutih, pochev od shesnaestobitne {\eng X86} arhitekture, postoje i
 registri {\eng ah, bh, ch, dh (h-higher)} koji predstavljaju gornju polovinu
 (od 9. do 16. bita) {\eng ax, bx, cx, dx} registara redom. U daljem tekstu
 bic1e prikazan odnos izmedju registara o kome je ranije bilo rechi, kao i
@@ -253,7 +253,7 @@ Registri opshte namene imaju ulogu u chuvanju operandi i pokazivacha:
 \begin{itemize}
 \item Operandi za logichke i aritmetichke operacije
 \item Operandi za adresne kalkulacije
-\item Pokazivache na memorijsku lokaciju
+\item Pokazivacha na memorijsku lokaciju
 \end{itemize}
 
 Registri opshte namene se mogu koristiti proizvoljno prema potrebi. Medjutim,
@@ -262,8 +262,8 @@ se svakom od ovih registara dodeli neka specifichna uloga u kojoj je malo bolji
 od ostalih registara opshte namene.\\
 
 Na taj nachin kompajleri vec1inu vremena kreiraju bolji asemblerski kod nego
-ljudi, prosto iz razloga jer svaki od registara opshte namene takodje koriste i
-za njihovu specifichnu funkciju svaki put gde je to moguc1e.\\
+ljudi, prosto iz razloga shto svaki od registara opshte namene takodje koriste
+i za njihovu specifichnu funkciju svaki put gde je to moguc1e.\\
 
 Specifichna uloga registara opshte namene:
 \begin{itemize}
@@ -295,7 +295,7 @@ Specifichna uloga segmentnih registara:
     izvrshavaju.
 \item {\eng ds - data segment}. Osim {\eng ds}, segmentni registri za segmente
     podataka su i {\eng es, fs}, kao i {\eng gs}.
-\item {\eng ss - stack segment} {\eng ss} registar sadrzhi selektor segmenta
+\item {\eng ss - stack segment}. {\eng ss} registar sadrzhi selektor segmenta
     koji pokazuje na segment steka gde se chuva stek programa koji se trenutno
     izvrshava. Za razliku od registra za segment koda, {\eng ss} registar
     se mozhe eksplicitno postaviti shto dozvoljava aplikacijama da postave
@@ -309,27 +309,27 @@ Specifichna uloga segmentnih registara:
 Realni mod karakterishe 20-tobitna segmentirana memorija shto znachi da se
 mozhe adresirati samo malo vishe od jednog megabajta. Svi procesori pochev od
 80286 zapochinju u ovom modu nakon paljenja rachunara zbog kompatibilnosti. Da
-bismo mogli da adresiramo vishe memorije potrebno je da koristimo segmentne
+bismo mogli da adresiramo vishe memorije, potrebno je da koristimo segmentne
 registre.\\
 
-Postupak kojim iz realnoh moda prelazimo u zashtic1en mod naziva se daleki skok
-{\eng (far jump)} gde pri postavljanju segmentnih registara "skachemo" iz
-jednog segmenta u drugi. Daleki skok najchesh\/c1e podrazumeva promenu selektora
-segmenta, koji se nalazi u segmentu koda, i koji pokazuje na segment koda u
-kome se nalaze instrukcije koje se trenutno izvrshavaju.
+Postupak kojim iz realnog moda prelazimo u zashtic1eni mod naziva se daleki
+skok {\eng (far jump)} gde pri postavljanju segmentnih registara "skachemo" iz
+jednog segmenta u drugi. Daleki skok najchesh\/c1e podrazumeva promenu
+selektora segmenta, koji se nalazi u segmentu koda, i koji pokazuje na segment
+koda u kome se nalaze instrukcije koje se trenutno izvrshavaju.
 
 \section{Segmentacija}
 \medskip
 
 Segmentacija je reshenje kojim se omoguc1ava adresiranje vishe memorije nego
 shto je to hardverski predvidjeno. Segmentacija se postizhe korish\/c1enjem
-{\eng offset}-a. Sa segmenatcijom smo u realnom modu da adresiramo memoriju sa
-20 umesto predvidjenih 16 bitova.
+{\eng offset}-a. Upravo smo uz pomoc1 segmenatcije u realnom modu adresirali
+memoriju sa 20, umesto predvidjenih 16 bitova.
 
 \section{{\eng Protected mode}}
 \medskip
 
-Zashtic1en mod je stanje procesora u kojem procesor ima pun pristup celom
+Zashtic1eni mod je stanje procesora u kojem procesor ima pun pristup celom
 opsegu memorije za razliku od realnog moda. Maksimalna velichina {\eng RAM}
 memorije koju arhitektura {\eng i386} podrzhava je {\eng 4GB} upravo zbog
 velichine registra od 32 bita ($2^{32}B = 4GB$). Neki procesori koji
@@ -356,16 +356,16 @@ prve instrukcije.
 \section{Redosled pokretanja}
 \medskip
 
-Od pritiska dugmeta za paljenje rachunara, pa do uchitavanja operativnog sitema
-postoji ceo jedan proces. Nakon pritiska dugmeta rachunar prvo izvrshava {\eng
-POST (Power On Self Test)} rutinu koja je jedna od pochetnih faza {\eng BIOS}-a
-{\eng (Basic Input Output System)}. U {\eng POST}-u rachunar pokushava da
-inicijalizuje komponente rachunarskog sistema jednu po jednu i proverava da li
-one ispunjavaju sve uslove za startovanje rachunara. Ukoliko je ceo proces
-proshao bez greshaka nastavlja se dalje izvrshavanje {\eng BIOS}-a. {\eng BIOS}
-sada ima ulogu da pronadje medijum koji sadrzhi program koji c1e uchitati
-jezgro operativnog sistema u ram memoriju rachunara. Taj program se naziva
-{\eng Bootloader}.
+Od pritiska dugmeta za paljenje rachunara, pa do uchitavanja operativnog
+sistema postoji ceo jedan proces. Nakon pritiska dugmeta, rachunar prvo
+izvrshava {\eng POST (Power On Self Test)} rutinu, koja je jedna od pochetnih
+faza {\eng BIOS}-a {\eng (Basic Input Output System)}. U {\eng POST}-u,
+rachunar pokushava da inicijalizuje komponente rachunarskog sistema jednu po
+jednu i proverava da li one ispunjavaju sve uslove za startovanje rachunara.
+Ukoliko je ceo proces proshao bez greshaka, nastavlja se dalje izvrshavanje
+{\eng BIOS}-a. {\eng BIOS} sada ima ulogu da pronadje medijum koji sadrzhi
+program koji c1e uchitati jezgro operativnog sistema u ram memoriju rachunara.
+Taj program se naziva {\eng Bootloader}.
 
 %{\eng\url{https://wiki.osdev.org/Boot_Sequence}}
 
@@ -388,13 +388,13 @@ odeljku Korish\/c1eni alati.
 
 %{\eng\url{https://wiki.osdev.org/Bootloader}}
 
-\section{{\eng Multiboot2} specifikacija}
+\section{{\eng Multiboot} specifikacija}
 \medskip
 
 {\eng Multiboot} specifikacija je otvoreni standard koji jezgrima obezbedjuje
 ujednachen nachin pokretanja od strane {\eng bootloader}-a usaglashenih sa ovom
 specifikacijom. Jedna od prvih stvari koji svako jezgro uradi je postavljanje
-konstanti definisanih {\eng multiboot2} standardom da bi bilo prepoznato od
+konstanti definisanih {\eng multiboot} standardom da bi bilo prepoznato od
 strane {\eng bootloader}-a i da bi mu bilo predato dalje upravljanje.
 
 \section{{\eng ELF}}
@@ -430,7 +430,7 @@ Assembler}-a.
 U daljem tekstu se mogu videti neki od alata korish\/c1enih u kreiranju ovog
 rada. Vec1ina korish\/c1enih alata poseduje {\eng GPLv3} licencu.
 {\eng GNU Public Licence} je licenca otvorenog koda koja dozvoljava
-modifikovanje i distribuiranje koda sve dok taj je taj kod javno dostupan.
+modifikovanje i distribuiranje koda sve dok je taj kod javno dostupan.
 Jedini programi sa ove liste koji nije kreirao {\eng GNU} su {\eng QEMU}
 virtuelna mashina, {\eng git} i {\eng NeoVim} koji koriste {\eng GPLv2}
 licencu.\\
@@ -501,7 +501,7 @@ Instrukcije za kompajlovanje date su u nastavku.
 Iako trenutno postoje mnogo popularnije alternative poput {\eng NASM (Netwide
 Assembler)} i {\eng MASM (Microsoft Assembler)} koji koriste noviju Intelovu
 sintaksu, autor se ipak odluchio za {\eng GASM} zbog kompatibilnosti sa {\eng
-GCC} kompajlerom. {\eng GASM} kosristi stariju {\eng AT\&T} sintaksu koju
+GCC} kompajlerom. {\eng GASM} koristi stariju {\eng AT\&T} sintaksu koju
 karakterishe: obrnut poredak parametara, prefiks pre imena registara i
 vrednosti konstanti, a i velichina parametara mora biti eksplicitno definisana.
 Zbog toga c1e mozhda nekim chitaocima biti koristan program {\eng intel2gas}
@@ -515,7 +515,7 @@ napisanog u asembleru.
 \smallskip
 
 {\eng GNU Linker} je korish\/c1en za linkovanje, tj. "spajanje" svog
-komapjlovanog koda u jednu binarnu datoteku tipa {\eng ELF} koja predstavlja
+kompajlovanog koda u jednu binarnu datoteku tipa {\eng ELF} koja predstavlja
 jezgro (kernel).
 
 \section{{\eng GCC}}
@@ -526,7 +526,7 @@ Izvorni kod softvera se mozhe nac1i na stranici
 korish\/c1enje.\\
 
 Isto kao i za {\eng GNU Binutils} moguc1e je pronac1i vec1 spreman paket u
-pojedinim distribucijama ali je preporuka manuelno kompajlovati iz
+pojedinim distribucijama, ali je preporuka manuelno kompajlovati iz
 prethodno navedenih razloga. Za {\eng Arch Linux} ovaj paket se mozhe nac1i na
 stanici {\eng\url{https://aur.archlinux.org/packages/i686-elf-gcc/}}.\\
 
@@ -578,14 +578,14 @@ Makefile}-ovi.
 \medskip
 
 Izvorni kod softvera se mozhe nac1i na stranici
-{\eng\url{https://www.gnu.org/software/make/}}
+{\eng\url{https://www.gnu.org/software/make/}},
 zajedno sa uput\/stvom za kompajlovanje i korish\/c1enje.\\
 
-{\eng Make}\cite{book:78575} nam omoguc1ava da sa lakoc1om odrzhavamo i manipulishemo izvornim
-fajlovima. Moguc1e je sve kompajlovati, obrisati, kreirati {\eng iso} fajl kao
-i pokrenuti {\eng QEMU} virtuelnu mashinu sa samo jednom kljchnom rechi u
-terminalu. Kreirani {\eng Makefile} za potrebe ovog projekta bic1e detaljno
-objashnjen u sekciji {\eng Build system}.
+{\eng Make}\cite{book:78575} nam omoguc1ava da sa lakoc1om odrzhavamo i
+manipulishemo izvornim fajlovima. Moguc1e je sve kompajlovati, obrisati,
+kreirati {\eng iso} fajl kao i pokrenuti {\eng QEMU} virtuelnu mashinu sa samo
+jednom kljuchnom rechi u terminalu. Kreirani {\eng Makefile} za potrebe ovog
+projekta bic1e detaljno objashnjen u sekciji {\eng Build system}.
 
 \section{Manje bitni alati}
 \medskip
@@ -605,7 +605,7 @@ Linux} kernel. Izvorni kod softvera se mozhe nac1i na stranici
 
 {\eng Git} je program koji nam pomazhe da odrzhavamo izvodne fajlove
 sinhronizovanim sa repozitorijumom. Osim toga znachajan je i njegov sistem
-kontrole verzija - moguc1nost da se za svaku promenu({\eng commit}) vidi
+kontrole verzija - moguc1nost da se za svaku promenu ({\eng commit}) vidi
 tachno koji su se fajlovi izmenili i koja je razlika izmedju neke dve verzije
 projekta.
 
@@ -613,7 +613,7 @@ projekta.
 \smallskip
 
 Izvorni kod softvera se mozhe nac1i na stranici
-{\eng\url{https://www.gnu.org/software/xorriso/}}
+{\eng\url{https://www.gnu.org/software/xorriso/}},
 zajedno sa uput\/stvom za kompajlovanje i korish\/c1enje.\\
 
 Sluzhi za kreiranje {\eng ISO} fajlova koji se mogu "narezati" na {\eng CD}
@@ -624,13 +624,13 @@ koji sadrzhi sve shto je neophodno za uspeshno podizanje sistema.
 \smallskip
 
 Izvorni kod softvera se mozhe nac1i na stranici
-{\eng\url{https://www.sourceware.org/gdb/}}
+{\eng\url{https://www.sourceware.org/gdb/}},
 zajedno sa uput\/stvom za kompajlovanje i korish\/c1enje.\\
 
 {\eng GDB} je {\eng GNU}-ov {\eng debugger} koji sluzhi za pronalazhenje
 greshaka u kodu, kao i aktivno prac1enje izvrshavanja programa (u ovom sluchaju
 jezgra). Uz pomoc1 ovog programa ustanovljeno je shta svako dugme na tastaturi
-vrac1a nakon pritiska shto je znachajno ubzalo proces mapiranja tastature.
+vrac1a nakon pritiska, shto je znachajno ubzalo proces mapiranja tastature.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -648,7 +648,7 @@ operativnog sistema kreirao je Endrju S. Tanenbaum kao profesor Vrije
 univerziteta u Amsterdamu. Profesor Tanenbaum kreirao je operativni sistem kao
 primer principa koji su prikazani u njegovoj knjizi "Operativni sistemi: Dizajn
 i Implementacija" ({\eng Operating Systems: Design and
-Implementation})\cite{book:1400099}. Osim ove knjige Tanenbaum napisao je i
+Implementation})\cite{book:1400099}. Osim ove knjige, Tanenbaum napisao je i
 mnoge druge koje mogu biti od koristi svima koji zhele da se bave dizajnom
 operativnih sistema\cite{book:821745}\cite{book:915673}.
 Zanimljiva chinjenica je da je {\eng Minix} najpopularniji operativni sistem
@@ -665,14 +665,14 @@ najkorish\/c1enijim operativnim sistemom ikada.
 
 Vec1 duzhe od dve godine koristim operativni sistem sa {\eng Linux} jezgrom
 shto je bio i glavni razlog zashto sam izabrao rad na ovu temu.
-U toku izrade ovog projekta pozheleo sam da bolje razumem kako funkcionishe
+U toku izrade ovog projekta, pozheleo sam da bolje razumem kako funkcionishe
 izrada {\eng Linux} kernela i kako je to "zajednica" ona koja ga pokrec1e i
 odrzhava, a ne neka velika korporacija. Stoga sam odluchio da dam svoj doprinos 
 i poslao sam nekoliko zakrpa ({\eng patch}-eva) koji su primljeni i
 implemetirani u novoj 5.17 verziji {\eng Linux} kernela. Ovo iskustvo pokazalo
 mi je koliko je ozbiljna organizacija koja stoji iza celog tog projekta i
 koliko je bitno raditi na svim sferama nekog projekta kao shto su i izrada
-dokumentacije i spremnost da se edukuju i zaiteresuju mladi ljudi kojima c1e
+dokumentacije i spremnost da se edukuju i zainteresuju mladi ljudi kojima c1e
 ovakvo iskustvo znachiti u daljem profesionalnom usavrshavanju. Drago mi je
 shto me je ovaj projekat odvazhio da nachinim taj korak i doprinesem mozhda
 najvec1em softverskom projektu ikada.
@@ -681,13 +681,13 @@ najvec1em softverskom projektu ikada.
 \medskip
 Najpopularniji {\eng BSD} operativni sistemi su redom {\eng
 FreeBSD\cite{book:1310096}, OpenBSD} i {\eng NetBSD}. Svaki od njih ima
-razlichite ciljeve ali svi se slazhu u jednom: softver mora ostati minimalan.
+razlichite ciljeve, ali se svi slazhu u jednom: softver mora ostati minimalan.
 Svi ovi operativni sistemi svoje sistemske programe i biblioteke imaju napisano
-u duplo ako ne i nekoliko puta manje linija koda nego {\eng GNU/Linux}. To ih chini
-mnogo lakshim za odrzhavanje, ali i mnogo sigurnijim.\\
+u duplo, ako ne i nekoliko puta manje linija koda nego {\eng GNU/Linux}. To ih
+chini mnogo lakshim za odrzhavanje, ali i mnogo sigurnijim.\\
 
-{\eng BSD} oprativni sistemi razlikuju se od {\eng GNU/Linux}-a po tome shto su
-kod {\eng BSD}-a jezgro i korisnichki programi celina koje je nastala od
+{\eng BSD} operativni sistemi razlikuju se od {\eng GNU/Linux}-a po tome shto
+su kod {\eng BSD}-a jezgro i korisnichki programi celina koja je nastala od
 strane jednog tima ljudi i odrzhavaju se uporedo, dok je kod {\eng GNU/Linux}-a
 jezgro {\eng Linux}, a {\eng GNU Coreutils} chini korisnichke programe {\eng
 (user space)} i njihov razvoj je potpuno nezavisan. Zbog te chinjenice, {\eng
@@ -733,8 +733,8 @@ arhive, a zatim je {\eng patch}-uje (primenjuje skup izmena). Nakon toga
 korish\/c1enjem {\eng GCC} kompajlera na {\eng host} sistemu, kompajluje se
 poseban {\eng GCC} kompajler koji sluzhi za kompajlovanje izvornog koda
 namenjenog jezgru ovog operativnog sistema. Nakon toga on se instalira na
-put {\eng /opt/aleksa/usr/bin/} gde se nalazi novi {\eng SYSROOT} koji koristi
-{\eng Makefile}.
+put {\eng /opt/aleksa/usr/bin/}, gde se nalazi novi {\eng \$SYSROOT} koji
+koristi {\eng Makefile}.
 
 \section{{\eng Makefile}}
 \medskip
@@ -745,7 +745,7 @@ koji se pokrec1e ukucavanjem komande {\eng make $<$ime\_pravila$>$}. U tekstu
 koji sledi mozhe se videti koji je to set pravila koje su definisani za ovaj
 projekat.
 
-\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make,linerange={70-98}]{include/00.build/Makefile}\srb\end{minipage}\smallskip
+\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make,linerange={70-200}]{include/00.build/Makefile}\srb\end{minipage}\smallskip
 
 Mozhemo videti da je ovo kompleksnija forma {\eng Makefile}-a jer sadrzhi
 proces rekurzivnog pozivanja {\eng \$(MAKE)} komande. To znachi da ovaj
@@ -781,11 +781,11 @@ jeziku\cite{book:441007}\cite{book:690930}.
 {\eng as/boot.s}:\\
 
 U prvom delu postavljamo promenljive na vrednosti koje su odredjene {\eng
-Multiboot2} standardom da bi {\eng bootloader} prepoznao nashe jezgro.
+Multiboot} standardom da bi {\eng bootloader} prepoznao nashe jezgro.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot1.s}\srb\end{minipage}\smallskip
 
-Nakon toga postavljamo prvih 512 bajtova na prethodno pomenute vrednosti ali
+Nakon toga postavljamo prvih 512 bajtova na prethodno pomenute vrednosti, ali
 tako da za svaku promenljivu ostavljamo 32 bita prostora.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot2.s}\srb\end{minipage}\smallskip
@@ -795,7 +795,7 @@ podataka, redom.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot3.s}\srb\end{minipage}\smallskip
 
-Definishemo sekciju {\eng bss} u kojoj kreiramo stek i dodeljujemo mu 16
+Definishemo sekciju {\eng .bss} u kojoj kreiramo stek i dodeljujemo mu 16
 kilobajta.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot4.s}\srb\end{minipage}\smallskip
@@ -808,7 +808,7 @@ ima naziv {\eng "far jump"} jer skachemo van tekuc1eg segmenta.
 
 U segmentu koda postavljamo segmentne registre na adresu segmenta podataka.
 Zatim postavljamo {\eng esp} registar na pochetak steka koji smo
-inicijalizovali u {\eng bss} sekciji i predajemo upravljanje {\eng
+inicijalizovali u {\eng .bss} sekciji i predajemo upravljanje {\eng
 kernel\_main} funkciji.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot6.s}\srb\end{minipage}\smallskip
@@ -880,7 +880,7 @@ niz karaktera a zatim iskoristi prethodnu funkciju.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/02.vga/vga12.c}\srb\end{minipage}\smallskip
 
-Funkcija koja ispisuje realnan broj na ekran tako shto je prvo pretvori u niz
+Funkcija koja ispisuje realan broj na ekran tako shto je prvo pretvori u niz
 karaktera a zatim iskoristi funkciju za ispis niza karaktera.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/02.vga/vga13.c}\srb\end{minipage}\smallskip
@@ -897,7 +897,7 @@ brojache kolone i reda na pochetnu poziciju.
 Globalna tabela deskriptora je struktura u kojoj se chuvaju informacije o
 segmentima memorije.\\
 
-{\eng include/source/gdt.h}:
+{\eng include/source/gdt.h}:\\
 
 Koristimo {\eng \#ifndef} i {\eng \#define} direktive da bi se osigurali da se
 ovaj fajl ukljuchuje ({\eng include}-uje) samo jednom u toku celog rada
@@ -913,7 +913,6 @@ UINT16\_MAX...}.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/03.gdt/gdt2.h}\srb\end{minipage}\smallskip
 
-Format u kom rachunar prihvata unos pojedinachnih definicija segmenata.
 Primetimo {\eng \_\_attribute\_\_((packed))}, na kraju definicije strukture. To
 nam oznachava da se nec1e ostavljati mesta u memoriji izmedju promenljivih
 unutar strukture, vec1 c1e se "pakovati" jedna do druge u memoriji.
@@ -951,7 +950,8 @@ funkciji.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/03.gdt/gdt3.c}\srb\end{minipage}\smallskip
 
-Funkcija koja na osnovu parameta inicijalizuje jedan globalni segment memorije.
+Funkcija koja na osnovu parametara inicijalizuje jedan globalni segment
+memorije.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/03.gdt/gdt4.c}\srb\end{minipage}\smallskip
 
@@ -963,7 +963,7 @@ inicijalizuje sve segmente memorije koji c1e se koristiti,
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/03.gdt/gdt6.c}\srb\end{minipage}\smallskip
 
-kao i poziva fukciju kojoj prosledjuje pokazivach na globalnu tabelu segmenata
+kao i poziva funkciju kojoj prosledjuje pokazivach na globalnu tabelu segmenata
 memorije.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/03.gdt/gdt7.c}\srb\end{minipage}\smallskip
@@ -976,12 +976,13 @@ memorije.
 
 Globalna tabela prekida je struktura koja nam govori koja funkcija zapravo
 reaguje kada procesor dobije zahtev za prekid ({\eng interrupt request}). Tada
-procesor pauzira ono shto trenutno radi i predaje upravljenje odredjenoj funkciji.\\
+procesor pauzira ono shto trenutno radi i predaje upravljanje odredjenoj
+funkciji.\\
 
 Funkcija je duzhna da dojavi procesoru da je c1e ona preuzeti ({\eng
 handle}-ovati) taj prekid i ukoliko je prekid fatalan (deljenje nulom, {\eng
-triple fault},...) funkcija ima zadatak da ukloni novonastali problem i obezbedi
-operativnom sistemu oporavak od greshke.\\
+triple fault},...) funkcija ima zadatak da ukloni novonastali problem i
+obezbedi operativnom sistemu oporavak od greshke.\\
 
 {\eng include/source/idt.h}:
 
@@ -999,8 +1000,8 @@ Struktura u kojoj rachunar prihvata globalnu tabelu prekida.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt6.h}\srb\end{minipage}\smallskip
 
-Pokazivach na tabelu prekida koja se prosledjuje funkciji napisanoj u {\eng
-Assembler}-u, a koja uchitava tabelu prekida u odgovarajuc1i registar.
+Pokazivach na tabelu prekida koja se prosledjuje funkciji napisanoj u \text{{\eng
+Assembler}-u}, a koja uchitava tabelu prekida u odgovarajuc1i registar.
 
 \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt7.h}\srb\end{minipage}\smallskip
 
@@ -1107,9 +1108,9 @@ funkciji.
 \section{{\eng Heap}}
 \medskip
 
-{\eng Heap} za ovo jezgro kotisti algoritam\cite{book:1412} bitmape da bi na
-najefikasniji nachin chuvalo podatke o trenutno korishc1enim blokovima. Hip nam
-sluzhi da bismo dinamichki alocirali memoriju, tj. da bismo mogli da
+{\eng Heap} za ovo jezgro koristi algoritam\cite{book:1412} bitmape da bi na
+najefikasniji nachin sachuvalo podatke o trenutno korish\/c1enim blokovima. Hip
+nam sluzhi da bismo dinamichki alocirali memoriju, tj. da bismo mogli da
 koristimo globalne promenljive, kao i promenljive chiji zhivotni vek mora biti
 dugotrajniji od funkcije u kojoj je ta promenljiva nastala.\\
 
-- 
cgit v1.2.3

