aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksa Vučković <aleksav013@gmail.com>2022-01-09 23:38:08 +0100
committerAleksa Vučković <aleksav013@gmail.com>2022-01-09 23:38:08 +0100
commit97d99fa196d4b732cfd6635dcb8b0a9c9228c88d (patch)
tree3f24e615620ef8120a8a05523b63c0c90fcc1053
parente2b78d20b80d89321d8d9df3ab8ade8407642dfc (diff)
Pocetak zakljucka + Objasnjavanje koda
-rw-r--r--kernel.pdfbin435170 -> 436239 bytes
-rw-r--r--kernel.tex19
2 files changed, 18 insertions, 1 deletions
diff --git a/kernel.pdf b/kernel.pdf
index 3d60808..02988f5 100644
--- a/kernel.pdf
+++ b/kernel.pdf
Binary files differ
diff --git a/kernel.tex b/kernel.tex
index 59aaa95..8ca59d8 100644
--- a/kernel.tex
+++ b/kernel.tex
@@ -311,6 +311,9 @@ mu dalje upravljanje.
{\eng\url{https://wiki.osdev.org/Bootloader}}
+\section{{\eng Multiboot2}}
+\medskip
+
\section{{\eng ELF}}
\medskip
@@ -498,9 +501,15 @@ ili {\eng USB} flesh sa kojih se kasnije dizhe sistem.
{\eng as/boot.s}:\\
+U prvom delu postavljamo promenljive na vrednosti koje su odredjene {\eng Multiboot2} standardom.\\
\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot00.s}\srb\end{minipage}
+Nakon toga postavljamo prvih 512 bitova na prethodno pomenute vrednosti ali
+tako da za svaku promenljivu ostavljamo 32 bita prostora.\\
\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot01.s}\srb\end{minipage}
+Definisemo sekciju {\eng bss} u kojoj kreiramo stek i dodeljujem mu 16 kilobajta.\\
\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot02.s}\srb\end{minipage}
+I na kraju postavljamo registar esp na vrh steka i pozivamo {\eng kernel\_main}
+funkciju koja je napisana u {\eng C}-u.\\
\begin{minipage}{\textwidth}\eng\lstinputlisting[language=Assembler]{include/01.pocetak/boot03.s}\srb\end{minipage}
\section{Ispis na ekran - {\eng VGA}}
@@ -508,7 +517,10 @@ ili {\eng USB} flesh sa kojih se kasnije dizhe sistem.
{\eng c/vga.c}:\\
+Primetimo da u {\eng C}-u koristimo {\eng uintX_t} promenljive. To je zbog toga
+shto nam je sada vrlo bitno da pazimo na velichinu koju zauzimaju promenljive.
\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/02.vga/vga00.c}\srb\end{minipage}
+Prvih 4 bita oznacavaju boju pozadine, a poslednjih 4 bita boju
\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/02.vga/vga01.c}\srb\end{minipage}
\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/02.vga/vga02.c}\srb\end{minipage}
\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/02.vga/vga03.c}\srb\end{minipage}
@@ -667,7 +679,12 @@ ili {\eng USB} flesh sa kojih se kasnije dizhe sistem.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Zakljuchak}
-Ovaj projekat je bio sjajan pokazatelj koliko je zapravo kompleksno.
+Ovaj projekat je bio sjajan pokazatelj koliko je zapravo kompleksna izrada
+jezgra operativnog sistema koji treba da predstavlja most izmedju hardvera i
+softvera. Drago mi je shto sam odabrao ovako tezhak projekat za maturski rad iz
+razloga shto mi je to pomoglo da probijem barijeru i ulozhim puno truda da bih
+zapravo razumeo kako rade operativni sistemi i koliko je sofisticiran njihov
+dizajn.
\thispagestyle{empty}
\mbox{}