Cuprins
- Introducere 3
- 1 Întreruperi BIOS 4
- 2 Elaborarea boot loader-ului 6
- 3 Elaborarea kernel-ului 8
- 4 Configurarea sistemului 9
- Concluzii 10
- Bibliografie 11
- Anexa A Boot loader- cod sursă 12
- Anexa B Kernel- cod sursă 13
- Anexa C Execuția programului 14
Extras din proiect
Sarcina lucrării
Dezvoltarea nucleului se va efectua conform condițiilor de mai jos:
- sectorul unde va fi înscris nucleul se va seta conform numărului de ordine din registrul grupei;
- se vor utiliza întreruperile: int 10h, 13h, 16h, 20h.
La citirea sectorului de boot de pe dischetă, pe ecran vor fi afișate 2 mesaje ce vor cere efectuarea următoarei operațiuni:
- încărcarea nucelului cu butonul ENTER;
- restartarea sistemului la tastarea butonului ESC.
După evenimentul de încărcare a nucleului, pe ecran vor fi afișate 2-3 mesaje despre sistem, afișarea în video graphical mode.
Mesajul care va afișa denumirea sistemului de operare va fi poziționat pe centrul ecranului (va avea mărimea de 40-60 pixeli) și își va schimba culoarea la un anumit interval de timp (5-10 sec).
Introducere
Nucleul sau kernelul, este o componentă fundamentală a sistemului de operare. Nucleul controlează accesul la diferite resurse ale calculatorului și permite celorlalte componente- hardware și software să interopereze. Nucleul oferă mecanisme de abstractizare a resurselor hardware, în special în ceea ce privește memoria, microprocesoarelor, și transferurile de informație între programe și perifericile materiale. Nucelul autorizează de asemenea și alte abstracțiuni software și facilitează comunicațiile inter-proces.
Nuceul unui sistem de operare este el însuși un program, dar nu poate utiliza mecanismele de abstractizare pe care le oferă celorlalte programe utilizator. Diferite motive justifică această limitare. Printre alte cauze, gestiunea întreruperilor, a spațiului de adresă a momoriei virtuale. Rolul său central îi impune exigențe de performanță ridicate. Aceasta face din nucleu partea cea mai critică a unui sistem de operare și face ca și conceperea și implementarea sa să fie cât se poate de delicată [1].
Nucleul nu este o aplicație în sine, ci este un mediu în cadrul căruia pot rula alte aplicații. Acesta are rolul de gestiune a resurselor fizice și de oferire a unei interfețe comune aplicațiilor. Din punct de vedere tehnic sistemul de operare este însuși nucleul. Din perspectiva utilizatorului sistemul de operare este compus din nucleu și suita programelor de bază. Programele de bază sunt acele aplicații ce permit utilizatorului interacțiunea cu resursele hardware ale sistemului.
1 Întreruperi BIOS
Acțiunea provocată de îndeplinirea unei condiții (internă sau externă în raport cu programul aflat în execuție) prin care se realizează automat transferul controlului unei rutine speciale de tratare se numește întrerupere, iar rutina respectivă se numește rutina de întrerupere. Există 2 clase de întreruperi:
- întreruperi interne: acestea sunt inițiate de starea programului aflat în execuție sau prin executarea unor instrucțiuni speciale de întrerupere, ele se caracterizează prin faptul că sunt sincrone în raport cu programul aflat în execuție;
- acestea sunt inițiate de partea hardware prin intermediul semnalelor de întrerupere trimise către procesor, declanșarea lor semnifică îndeplinirea unor evenimente externe procesorului, ele se caracterizează prin faptul că sunt asincrone în raport cu programul aflat în execuție.
O rutină de întrerupere este asemănătoare unei proceduri în sensul că după execuția ei se revine în programul întrerupt la instrucțiunea imediat următoare celei întrerupte. Deoarece anumite întreruperi sunt inițiate de evenimente externe procesorului, asincrone în raport cu programul aflat în execuție, acesta nu le poate transmite nici un fel de parametrii, comunicațiile de date putând avea loc numai utilizând variabile direct accesibile ambelor secvențe de program: secvența curent executabilă și rutina de întrerupere. Acțiunile ce rezultă în urma apariției unei întreruperi și care determină transferul controlului rutinei de întrerupere poartă numele de secvență de întrerupere [2].
Întreruperea int 10h
Întreruperea int 10h este utilizată pentru accesarea terminalului grafic. Sistemul de afișare are 2 componente de bază: adaptorul video și monitorul. Informația care se afișează pe ecran (text sau imagini grafice) la un momnet dat este păstrată în memoria adaptorului video (memoria ecran). Această memorie poate fi accesibilă fie utilizând funcții BIOS (int 10h), fie direct prin program (prin instrucțiuni de transfer), pentru a înscrie informația ce trebuie afișată.
Întreruperea int 13h
Întreruperea int 13h se utilizează pentru a folosi discul, adică operațiile de intrare/ieșire, formatare etc. Această întrerupere operează direct cu discul, cu toate că funcțiile BIOS nu oferă utilizarea automată a directoarelor sau blocarea, respectiv deblocarea înregistrărilor. INT 13h tratează datele ca dimensiunea unui sector și manipulează adresarea discului folosind numerele efective ale pistei și sectorului. Operațiile int 13h implică inițializarea, citirea, scrierea, verificarea și formatarea discului.
Bibliografie
1 Wikibooks, Operating System Design/ Kernel Architecture [Resursă electronică]. - Regim de acces:
https://en.wikibooks.org/wiki/Operating_System_Design/Kernel_Architecture
2 Octavian Pâlcea, Întreruperi BIOS [Resursă electronică]. - Regim de acces
http://documents.tips/documents/intreruperi-bios.html
3 Aberdeen Baptist Lui Ming Choi College, The list of all interrupts that are currently supported by the 8086 assembler emulator [Resursă electronică]. - Regim de acces: http://www.ablmcc.edu.hk/~scy/CIT/8086_bios_and_dos_interrupts.htm#int10h_0Ch
Preview document
Conținut arhivă zip
- Bios.docx