From 013366f9eea59bb1b2ee1985580f37a32c20ee76 Mon Sep 17 00:00:00 2001 From: Aleksa Vučković Date: Sat, 28 May 2022 00:27:42 +0200 Subject: makefile & komentarisanje koda (treci deo) --- kernel.tex | 234 ++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 155 insertions(+), 79 deletions(-) (limited to 'kernel.tex') diff --git a/kernel.tex b/kernel.tex index 5dc70e1..818339f 100644 --- a/kernel.tex +++ b/kernel.tex @@ -779,7 +779,7 @@ 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}. +koristi {\eng Makefile} za izgradnju jezgra. \section{{\eng Makefile}} \medskip @@ -788,9 +788,24 @@ koristi {\eng Makefile}. terminalu. Svaki {\eng Makefile} sadrzhi neki set pravila koji definishe proces 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. +projekat.\\ -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make,linerange={70-200}]{include/00.build/Makefile}\srb\end{minipage}\smallskip +{\eng Makefile}: + +\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make,linerange={68-104}]{include/00.build/Makefile}\srb\end{minipage}\smallskip + +\newpage + +Osim navedenog seta pravila, u {\eng Makefile}-u mozhemo definisati neke +promenljive koje bi nam omoguc1ile krac1i zapis, izbegavanje ponavljanja +konstanti, kao i znachajno lakshe menjanje istih. One funkcionishu na slichan +nachin kao i pretprocesorske direktive u {\eng C}-u. Primetimo da ispred nekih +linija u kojima dodeljujemo vrednosti promenljivima imamo i kljuchnu rech {\eng +export}. To znachi da c1e se vrednost date promenljive, preneti i u rekurzivni +poziv {\eng Makefile}-a. + +\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make,linerange={0-22}]{include/00.build/Makefile}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make,linerange={25-40}]{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 @@ -800,12 +815,27 @@ Konkretno kod ovog jezgra postoje josh dva {\eng Makefile}-a, a tichu se koda napisanog u {\eng C}-u, kao i koda napisanog u {\eng GNU Assembler}-u za {\eng X86} arhitekturu.\\ +{\eng src/as/Makefile}: + +\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make]{include/00.build/AS_Makefile}\srb\end{minipage}\smallskip + +{\eng src/c/Makefile}: + +\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make]{include/00.build/C_Makefile}\srb\end{minipage}\smallskip + Na taj nachin bi sa lakoc1om projekat mogao biti proshiren na vishe razlichitih -arhitektura procesora shto je i autorov plan u buduc1nosti. Biblioteke, +arhitektura procesora, shto je i autorov plan u buduc1nosti. Biblioteke, interaktivni {\eng shell}, kao i drajver za tastaturu napisan za ovo jezgo se ne bi menjali, dok bi zbog specifichnosti druge arhitekture bile promenjene komponente zaduzhene za pochetnu inicijalizaciju i kontolisanje hardvera na -najnizhem nivou. +najnizhem nivou.\\ + +Za svaki projekat moguc1e je automatizovati deo posla kreiranjem {\eng +Makefile}, pa tako na primer i ovaj maturski rad koji je iskucan u {\eng +LaTeX}-u ima svoj {\eng Makefile}: + +\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=make]{Makefile}\srb\end{minipage}\smallskip + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -954,7 +984,8 @@ deklaracije ukoliko su one vec1 definisane pod tim imenom. Autor je kreirao biblioteku {\eng types.h} da bi od\/jednom dodao sve kompajlerske biblioteke koje definishu vrste promenljivih kao shto su {\eng int, uint16\_t, bool,...}, kao i konstante kao shto su {\eng true, false, -UINT16\_MAX...}. +UINT16\_MAX...}. Na taj nachin u jednom redu se dodaju sve biblioteke zaduzhene +za to, dok se chitljivost rada povec1ava. \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/03.gdt/gdt2.h}\srb\end{minipage}\smallskip @@ -1029,16 +1060,26 @@ 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.\\ -{\eng include/source/idt.h}: +{\eng include/source/idt.h}:\\ + +Direktive koje se dalje ponavljaju u svakom {\eng header} fajlu. Dalje +pozivanje direktiva c1e biti izostavljeno, radi sushtine. \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt1.h}\srb\end{minipage}\smallskip -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt2.h}\srb\end{minipage}\smallskip +%\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt2.h}\srb\end{minipage}\smallskip + +Konstanta koju dalje koristimo pri definisanju prekida. \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt3.h}\srb\end{minipage}\smallskip +Segmenti u memoriji o kojima je u proshloj sekciji bilo rechi. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt4.h}\srb\end{minipage}\smallskip +Konstante koje chuvaju vrednosti adresa preko kojih dalje komuniciramo sa {\eng +PIC (Programmable Interrupt Controller)}-om. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt5.h}\srb\end{minipage}\smallskip Struktura u kojoj rachunar prihvata globalnu tabelu prekida. @@ -1050,15 +1091,20 @@ 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 +Prototipi funkcija koji su korishc1eni u sledec1em poglavlju. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt8.h}\srb\end{minipage}\smallskip +Direktive koje se dalje ponavljaju u svakom {\eng header} fajlu. Dalje +pozivanje direktiva c1e biti izostavljeno, radi sushtine. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/04.idt/idt9.h}\srb\end{minipage}\smallskip %{\eng\url{https://wiki.osdev.org/IDT}} \section{{\eng IRQ} i {\eng PIC}} \medskip -{\eng c/idt.c}: +{\eng c/idt.c}:\\ \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/05.irq/idt1.c}\srb\end{minipage}\smallskip @@ -1067,21 +1113,38 @@ predvidjeni registar. \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/05.irq/idt2.c}\srb\end{minipage}\smallskip -Tabela segmenata i pokazivach na nju koji se prosledjuje prethodno pomenutoj +Tabela prekida i pokazivach na nju koji se prosledjuje prethodno pomenutoj funkciji. \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/05.irq/idt3.c}\srb\end{minipage}\smallskip +Funkcija koja na osnovu pruzhenih parametara definishe prekid u tabeli. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/05.irq/idt4.c}\srb\end{minipage}\smallskip +Funkcija koja dodaje prekid na tabeli u niz koji sadrzhi sve prekide. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/05.irq/idt5.c}\srb\end{minipage}\smallskip +Funkcija koja inicijalizuje kontroler prekida. To je jedan od najbitnijih +chipova koji definishe {\eng X86} arhitekturu. Bez njega ova arhitektura ne bi +bila vodjena principima prekida. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/05.irq/idt6.c}\srb\end{minipage}\smallskip +Funkcija koja definishe sve prekide koje c1emo koristiti uz pomoc1 prethodno +pomenutih funkcija. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C,linerange={1-6,34-37}]{include/05.irq/idt7.c}\srb\end{minipage}\smallskip +Ova funkcija sve podatke o prekidima, skladishtenim u niz, prosledjuje posebno +formiranoj strukturi pokazivacha na tabelu prekida, + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/05.irq/idt8.c}\srb\end{minipage}\smallskip +koji se zatim prosledjuje asemblerskoj funkciji koja uchitava tu tabelu +prekida. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/05.irq/idt9.c}\srb\end{minipage}\smallskip @@ -1091,15 +1154,22 @@ funkciji. \section{Tastatura} \medskip -{\eng c/keyboard.c}: +{\eng c/keyboard.c}:\\ -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard1.c}\srb\end{minipage}\smallskip +Korish\/c1ene biblioteke: -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard2.c}\srb\end{minipage}\smallskip +\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard1.c}\srb\end{minipage}\smallskip Bafer koji chuva prethodno pozvane funkcije radi implementacije istorije komanda, kao i brojach bafera na trenutnu komandu. +\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard2.c}\srb\end{minipage}\smallskip + +Tabela koja prevodi kodove koje vrac1a prekid u karaktere koje funkcija +ispisuje. Takodje, chuva se i informacija da li je dati karakter trenutno +pritisnut shto nam mozhe posluzhiti prilikom mapiranja pritiska vishe karaktera +odjednom. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard3.c}\srb\end{minipage}\smallskip Funkcija za inicijalizaciju tastature. Ova funkcija postavlja jezik tastature i @@ -1124,47 +1194,81 @@ Takodje funkcija azhurira bafer koji chuva do sada pozivane komande. \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard7.c}\srb\end{minipage}\smallskip Funkcija koja definishe ponashanje jezgra nakon pritiska {\eng enter} dugmeta -na tastaturi. +na tastaturi. Primetimo da se izvrshava komanda koja je u tom trenutku u +baferu, a nakon toga se dati bafer chuva u istoriji bafera. \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard8.c}\srb\end{minipage}\smallskip +Funkcija koja odredjuje ponashanje jezgra nakon pritiska {\eng space} dugmeta +na tastaturi. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard9.c}\srb\end{minipage}\smallskip +Funkcija koja odredjuje ponashanje jezgra nakon pritiska dugmeta sa strelicom +okrenutom ka gore, na tastaturi. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard10.c}\srb\end{minipage}\smallskip +Funkcija koja odredjuje ponashanje jezgra nakon pritiska dugmeta sa strelicom +okrenutom ka dole, na tastaturi. + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard11.c}\srb\end{minipage}\smallskip -%\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard12.c}\srb\end{minipage}\smallskip +Funkcija koja je postavljena u tabeli prekida da odgovori na prekide koji se +tichu tastature. +%\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard12.c}\srb\end{minipage}\smallskip %\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard13.c}\srb\end{minipage}\smallskip \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard14.c}\srb\end{minipage}\smallskip -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard15.c}\srb\end{minipage}\smallskip +Ona uzima kod koji vrac1a prekid i pretvara ga u karakter ili izvrshava neku od +prethodno navedenih funkcija u zavisnosti od toga koji karakter je pritisnut na +tastaturi. -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard16.c}\srb\end{minipage}\smallskip +\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard15.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard16.c}\srb\end{minipage}\smallskip + +Ovde se mozhe videti kako se na primer neka kombinacija karaktera mozhe +iskoristiti za definisanje prechica na tastaturi. \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard17.c}\srb\end{minipage}\smallskip + + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/06.keyboard/keyboard18.c}\srb\end{minipage}\smallskip \section{{\eng PIT - Programmable Interval Timer}} \medskip -{\eng c/timer.c}: +{\eng c/timer.c}:\\ + + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/07.pit/timer1.c}\srb\end{minipage}\smallskip + + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/07.pit/timer2.c}\srb\end{minipage}\smallskip + + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/07.pit/timer3.c}\srb\end{minipage}\smallskip + + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/07.pit/timer4.c}\srb\end{minipage}\smallskip + + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/07.pit/timer5.c}\srb\end{minipage}\smallskip + + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/07.pit/timer6.c}\srb\end{minipage}\smallskip + + \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/07.pit/timer7.c}\srb\end{minipage}\smallskip %{\eng\url{https://wiki.osdev.org/PIT}} @@ -1178,73 +1282,45 @@ 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.\\ -{\eng c/heap.c}: - - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap1.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap2.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap3.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap4.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap5.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap6.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap7.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap8.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap9.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap10.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap11.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap12.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap13.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap14.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap15.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap16.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap17.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap18.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap19.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap20.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap21.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap22.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap23.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap24.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap25.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap26.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap27.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap28.c}\srb\end{minipage}\smallskip - -\medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap29.c}\srb\end{minipage}\smallskip +{\eng c/heap.c}:\\ + + +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap1.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap2.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap3.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap4.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap5.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap6.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap7.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap8.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap9.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap10.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap11.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap12.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap13.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap14.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap15.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap16.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap17.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap18.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap19.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap20.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap21.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap22.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap23.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap24.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap25.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap26.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap27.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap28.c}\srb\end{minipage} +\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/08.heap/heap29.c}\srb\end{minipage} %{\eng\url{https://wiki.osdev.org/Heap}} \section{{\eng Paging}} \medskip -{\eng c/paging.c}: +{\eng c/paging.c}:\\ \medskip\begin{minipage}{\textwidth}\eng\lstinputlisting[language=C]{include/09.paging/paging1.c}\srb\end{minipage}\smallskip -- cgit v1.2.3