Cum se configurează smartphone-uri și PC-uri. Portal informativ

Sistem de operare asemănător UNIX: scrierea nucleului în C. Reglarea manuală a nucleului Linux

Cum să compun creează nucleu semantic site-ul corect.


Bună ziua dragi prieteni cititori! Astăzi, în acest articol, vreau să discut problema compilării corecte a nucleului semantic al site-ului și blogului. La urma urmei, un nucleu semantic compus corect este un gaj promovare de succes resursă în motoare de căutare. Este un fapt că nucleul semantic influențează natura promovării.

Înainte de a lua în considerare problema compilării unui nucleu semantic, aș dori să clarific ce este, până la urmă, un nucleu semantic?

Asa de, nucleul semantic al site-ului este o listă de cuvinte cheie care caracterizează tema principală a resursei. Guruii SEO fac astfel încât același site să apară în motoarele de căutare în pozitii de top rezultatele cautarii pentru diverse interogări cheie care au fost compilate și incluse în lista nucleului semantic. Și astfel, înseamnă că compilarea corectă a nucleului semantic este cheia promovare eficientă site în motoarele de căutare pentru diferite interogări de căutare, dar similare tematic.

Compilarea nucleului semantic al site-ului și al blogului este fundamental diferită. În general, nucleul semantic este folosit pentru un blog doar pentru că un alt nume pentru acesta probabil nu a fost încă inventat.

Prin urmare, să analizăm diferențele dintre nucleul unui blog și un site web și să decidem asupra metodologiei de compilare a acestora. Miezul semantic al unui blog nu este o listă de cuvinte cheie care caracterizează subiectul blogului; aceasta este o listă de cuvinte cheie pentru care este planificată promovarea. Simte diferenta? Dacă nu, mai citește asta de câteva ori până înțelegi.

Cum să faci un nucleu semantic

Să intrăm acum în mai multe detalii. Dacă nucleul semantic al site-ului este compilat și inclus în structura site-ului. Acel nucleu semantic al blogului este compilarea cuvintelor cheie în programul notepad sau înscrise într-un caiet, conform cărora bloggerul a decis să treacă pe primele poziții ale motoarelor de căutare. Adică, nucleul blogului poate fi descris ca un plan de promovare în motoarele de căutare și nimic mai mult. Este simplu, probabil specialiștii seo își agresează creierul în mod deliberat cu toți acești termeni, astfel încât un începător în construirea de site-uri web și blogging să fugă de toate astea în iad. Oricum…

Și astfel, nucleul semantic al site-ului este compilat aproximativ după cum urmează! De exemplu, trebuie să promovezi un site dedicat vânzării de pantofi pe Internet în topul rezultatelor căutării. Pentru acest site, cel mai potrivit Cuvinte cheie. De exemplu, folosind serviciul - Wordstat Yandex. Și așa că trimitem o solicitare în serviciu, obținem ceva ca această imagine.

Vânzarea de pantofi va fi inclusă cel mai probabil în titlul titlului site-ului în sine. Iar restul va fi înregistrat în nucleul semantic compilat al site-ului.

De exemplu, dacă site-ul vinde pantofi pentru copii, atunci cuvântul „vânzare de pantofi pentru copii” ar trebui inclus în nucleu, iar dacă site-ul (magazinul online) nu este specializat în vânzarea de pantofi în vrac, atunci nu are sens să includeți cuvântul cheie „pantofi cu ridicata” în nucleu. . La urma urmei, aceasta este o promovare zadarnică interogare de căutare. De fapt, compilarea unui nucleu semantic pentru un site este o activitate foarte complexă care necesită cunoștințe și abilități mari.

Cum să creezi un nucleu de blog semantic

Blogul este o altă chestiune! El nu trebuie să fie de bază atât de categoric. Este suficient să compuneți cuvinte cheie care definesc subiectul blogului și să scrieți articole optimizate pentru acestea.

Nu este necesar ca un blog să promoveze paginile master, pentru că un blog, ca jurnal electronic puteți crea mii de pagini și puteți promova fiecare pagină sub mai multe Cuvinte cheie. Pentru a afla cum să compuneți corect cuvintele cheie, citiți articolul despre selecția cuvintelor cheie. Odată ce ați compilat o listă de cuvinte cheie, începeți să scrieți articole optimizate pentru acestea. Asta e tot selectarea cuvintelor cheie și scrierea articolelor optimizate este compilarea nucleului semantic.

Și totuși, există un plugin pentru blogurile WordPress Pachet SEO All in One care ar trebui scrisă o listă de cuvinte cheie care caracterizează subiectul blogului tău. Acest plugin este foarte util pentru promovarea căutării blogul tau. Deci, asigurați-vă că îl instalați și configurați acest plugin în panoul de administrare.

Unde să prescriu o listă de cuvinte cheie pentru miezul blogului, o voi arăta în imagine. Aici este meniul principal al pluginului, aici trebuie să înregistrați cuvintele cheie pentru care intenționați să le promovați în motoarele de căutare.

Deci, pentru a prescrie corect toate aceste secțiuni, trebuie să urmați un anumit algoritm.

În titlul paginii principale, scrie numele blogului tău și 1 - 2 cuvinte cheie pentru care vrei să mergi în partea de sus.

În descriere, mai trebuie să faci mai multe propoziții în care să indicați și 2-3 cuvinte cheie pentru care doriți să ajungeți în vârf.

Și, de asemenea, în coloana „Cuvinte cheie” trebuie să selectați dintre 10 - 15 cuvinte cheie pentru care doriți și să ajungeți în primele poziții ale rezultatelor căutării.

Vreau să remarc că în această coloană ați configurat promovarea paginii principale. Dacă alegeți cuvintele cheie potrivite, atunci Pagina principală se va muta în sus în motoarele de căutare pentru cuvintele cheie date.

Dar după instalarea pluginului, un câmp similar va fi adăugat la postări, unde puteți deja configura și prescrie diverse cuvinte cheie pentru fiecare pagină în parte.

Cred că astăzi ți-am spus cum să compui nucleul semantic al blogului tău și al site-ului tău.

A compune un nucleu semantic pentru un blog înseamnă a planifica promovarea anumite cuvinte. Nu te lăsa copleșit de cuvinte cheie și scrie articole relevante pentru blogul tău. Aceasta este prima etapă optimizare internă blogul tau.

Ei bine, nu-mi iau rămas bun de la voi dragi prieteni! Ne vedem în articole noi!

În continuare voi scrie din ce în ce mai multe despre optimizarea internă, deoarece este foarte importantă. 80% din promovarea de succes depinde de optimizarea blogului intern și 20% depinde de factori externi. Nu te grăbi să alergi la schimburi și să cumperi link-uri către blogul tău. În schimb, concentrează-te pe personalizarea internă a blogului tău. Pentru a nu rata articole utile despre optimizarea internă, nu uitați

Selectia celor mai buni fapte interesante aruncă o privire și relaxează-te!

Când începeți să citiți manualele de promovare a site-urilor web, totul începe întotdeauna cu crearea unui nucleu semantic. Pentru începători, acest prim pas este cel mai dificil. Pe lângă faptul că nu devine imediat clar care este acest nucleu semantic, nu este clar nici ce scop are și cum să-l creeze corect.

În acest articol, vom vorbi despre cum să creați corect nucleul semantic al site-ului. Și, de asemenea, veți afla despre ce este și de ce este făcut. De fapt, nu este nimic complicat și dificil în conceptul de nucleu semantic. Să ne dăm seama.

Nimeni nu a răspuns încă la întrebarea ce este un nucleu semantic cu așa ceva în cuvinte simple cum o facem acum. Deci, nucleul semantic al site-ului este o listă de fraze cheie prin care acesta va fi promovat. Tot! Întregul sens al conceptului într-o propoziție scurtă și clară. Și nu este nevoie să stârnești nimic cu termeni inteligenți.

Dacă intrați mai adânc în termen, atunci semantica este o știință care se ocupă de conținutul semantic al unităților lexicale. În termeni simpli, semantica este studiul sensului a ceva. LA SEO semantic nucleul clarifică semnificația întregului site, a secțiunii sale sau a unui singur articol luat. Acest lucru devine clar motorului de căutare, vizitatorului, tuturor dezvoltatorilor care vor lucra cu site-ul.

Miezul semantic, fără exagerare, este fundamentul oricărei promovări.

Cum se folosește nucleul semantic și pentru ce este

Funcțiile nucleului semantic includ următoarele aspecte ale promovării site-ului web:

  • Cel mai sarcina principală nucleul semantic este o înțelegere a structurii site-ului și a conținutului acestuia. Privind-o, vă puteți imagina ce secțiuni va avea site-ul și ce articole vor fi în fiecare secțiune. Și astfel, toate deficiențele și inconvenientele structurii sunt imediat vizibile și pot fi eliminate într-un stadiu incipient.
  • Semantica setează vectorul de conținut. Datorită unei mai bune înțelegeri a structurii site-ului, puteți alege cele mai relevante și eficiente fraze cheie.
  • Nucleul semantic este planul de conținut al site-ului pentru mulți ani de acum înainte. De fiecare dată când trebuie să scrii articole, poți să te uiți acolo și să vezi ce conținut a fost planificat și în ce secțiune a site-ului ar trebui să fie.
  • Dacă este planificat promovare plătită site-ul, de exemplu, datorită publicității contextuale, apoi datorită nucleului semantic, puteți calcula costul promovării.

Cum să faci un nucleu semantic

Mai întâi trebuie să decideți unde veți lua frazele cheie pentru nucleu. Cea mai bună sursă pentru începători este serviciul Yandex WordPStat, care arată de câte ori pe lună a fost introdusă această sau acea interogare în căutarea Yandex. WordStat are diverse caracteristici utile, de exemplu, puteți filtra interogări în funcție de regiune sau dispozitiv, puteți vizualiza interogări asociate și multe altele. Și cel mai important, este absolut gratuit. Mai multe despre asta.

De asemenea, puteți folosi diverse programe cu plată, dar pentru începători, WordStat este mai potrivit, având în vedere simplitatea sa. În plus, este potrivit nu numai pentru Runet, unde predomină Yandex. Dacă promovați un site în CSI, atunci îl puteți utiliza în siguranță, iar statisticile Google vor fi aproximativ aceleași.

Esența principală a creării unui nucleu semantic este colecția de fraze cheie care se potrivesc cumva cu tema site-ului. Ele trebuie formalizate cumva, sistematizate. Pentru aceasta, foi de calcul, cum ar fi Excel, tabele în Google Doc sau asemănător.

Și pentru o eficiență mai mare, coloane suplimentare pot fi adăugate la tabelul nucleului semantic:

  • Desigur, ar trebui să existe o coloană cu cea mai mare expresie cheie.
  • Desigur, coloana cu numele titlului site-ului unde va fi folosită această expresie.
  • Puteți adăuga o coloană cu metaetichete de titlu și descriere și puteți scrie imediat un titlu și o descriere pentru articol utilizând cele date fraza cheie. În primul rând, va fi imediat clar despre ce să scrieți articolul și, în al doilea rând, nu va trebui să vă grăbiți și să veniți cu el.
  • Puteți face o coloană pentru a indica numărul de caractere dintr-un articol pentru o anumită expresie cheie pentru a înțelege mai bine planul de conținut.
  • Când vine vorba de promovare publicitate contextuală, trebuie să adăugați costul de publicitate pentru fiecare solicitare.
  • Tot ceea ce ar trebui să fie necesar poate fi scris în siguranță în tabelul nucleului sematic. Nu există un șablon pentru asta, așa că puteți face tot ce doriți și convenabil acolo.

Greșeli frecvente la crearea unui nucleu semantic

Acum știți cum să creați corect nucleul semantic al site-ului. Să ne gândim în sfârșit ce greșeli comune fac optimizatorii începători.

  • Dacă nucleul prevede împărțirea site-ului în categorii, atunci greseala comuna este de a crea niveluri de cuibărire profunde. Al doilea nivel este recomandat și nu mai departe. Adică poți să faci un titlu, un subtitlu și gata, nu îl mai poți împărți în titluri mai mici.
  • Începătorii pot ignora solicitări de joasă frecvență, pentru că ei consideră că este nepotrivit să le folosească, oricum nu vor aduce mult trafic. Dar de fapt este invers. Pentru un site nou, este nevoie de interogări cu frecvență scăzută și competitivitate scăzută.
  • Nu puteți avea încredere completă în serviciul care va fi folosit pentru extragerea frazelor cheie. Și exact asta fac începătorii. Aparatele pot face greșeli și pot alege pe cea greșită pentru tine.
  • Nu este nevoie să creați un articol de dragul unei fraze cheie. Dacă găsiți expresiile „vinde urgent o casă” și „vinde rapid o casă”, atunci nu are rost să le faci două articole diferite.

asemănător UNIX sistem de operare interesant pentru analiza, precum și pentru scrierea propriului nucleu care imprimă un mesaj. Ei bine, scriem?

Sistem de operare asemănător UNIX și pornire a mașinii x86

Ce este un sistem de operare asemănător UNIX? Este un sistem de operare creat sub influența UNIX. Dar înainte de a începe să scriem un nucleu pentru el, să vedem cum pornește mașina și trece controlul nucleului.

Majoritatea registrelor procesorului x86 au valori bine definite după pornire. Registrul indicator al instrucțiunii (EIP) conține adresa de memorie pentru o instrucțiune care urmează să fie executată de procesor. EIP este codificat greu la 0xFFFFFFF0. Astfel, procesorul are instrucțiuni clare la adresa fizică 0xFFFFFFF0, care este, de fapt, ultimii 16 octeți ai unui spațiu de adrese de 32 de biți. Această adresă se numește vector de resetare.

Harta memoriei chipset-ului asigură acum că 0xFFFFFFF0 este mapat o anumită parte BIOS, nu RAM. Între timp, BIOS-ul se copiază în RAM pentru mai multe acces rapid. Aceasta se numește umbrire. Adresa 0xFFFFFFF0 va conține doar o instrucțiune de salt la adresa din memorie unde s-a copiat BIOS-ul.

Astfel, codul BIOS își începe execuția. BIOS-ul caută mai întâi Dispozitiv de pornireîn conformitate cu ordinea configurată a dispozitivului de pornire. Caută un anumit număr magic pentru a determina dacă dispozitivul este bootabil sau nu (octeții 511 și 512 ai primului sector sunt 0xAA55).

După ce BIOS-ul a detectat un dispozitiv bootabil, copiează conținutul primului sector al dispozitivului în Berbec, începând de la adresa fizică 0x7c00; apoi sare la adresa și execută codul tocmai încărcat. Acest cod se numește bootloader.

Bootloader-ul încarcă apoi nucleul la adresa fizică 0x100000. Adresa 0x100000 este folosită ca adresă de pornire pentru toate nucleele mari de pe mașinile x86.

Toate procesoarele x86 pornesc într-un mod simplificat de 16 biți numit adrese reale. Bootloader GRUB trece la modul protejat pe 32 de biți setând bitul scăzut al registrului CR0 la 1. Astfel, nucleul pornește în modul protejat pe 32 de biți.

Vă rugăm să rețineți că dacă găsiți Kernel-urile Linux, GRUB va primi jurnalul de pornire și va încărca kernel-ul Linux în modul real. Și nucleul Linux va trece la modul protejat.

De ce vom avea nevoie?

  • computer x86 (desigur)
  • asamblator NASM
  • ld (GNU Linker)
  • Sursă

Ei bine, ar fi frumos să aveți o idee despre cum funcționează un sistem de operare asemănător UNIX. Codul sursă poate fi găsit în depozitul Github.

Punctul de intrare și pornirea nucleului

Pentru început, vom scrie un fișier mic în asamblatorul x86, care va fi punctul de pornire pentru pornirea nucleului. Acest fișier va apela functie externa la C și apoi opriți fluxul programului.

Cum să vă asigurați că acest cod va servi drept punct de plecare pentru nucleu?

Vom folosi un script de linker care leagă fișierele obiect pentru a crea finalul fisier executabil miezuri. În acest script, afirmăm în mod explicit că fisier binar ar trebui să fie încărcat la adresa 0x100000. Această adresă este locul unde ar trebui să fie nucleul.

Iată codul de asamblare:

;;kernel.asm biți 32 ;directive nasm - secțiune pe 32 de biți .text global start extern kmain ;kmain definit în fișierul C start: cli ;bloc întrerupe mov esp, stack_space ;set stack pointer call kmain hlt ;stop procesor section .bss resb 8192; 8KB per stivă stack_space:

Prima instrucțiune de biți 32 nu este o instrucțiune de asamblare x86. Aceasta este o directivă pentru asamblatorul NASM care specifică că ar trebui să genereze cod pentru a rula pe un procesor care rulează în modul pe 32 de biți. Acest lucru nu este neapărat necesar în exemplul nostru, oricum este bun antrenament– să precizeze astfel de lucruri în mod explicit.

A doua linie începe cu o secțiune de text. Aici vom plasa tot codul nostru.

global - o altă directivă NASM, folosită pentru a seta simboluri cod sursa ca globală.

kmmain este o funcție nativă care va fi definită în fișierul nostru kernel.c. extern declară că o funcție este definită în altă parte.

Funcția de pornire apelează funcția kmin și oprește CPU cu comanda hlt. Întreruperile pot trezi CPU de la executarea instrucțiunii hlt. Prin urmare, mai întâi dezactivăm întreruperile folosind instrucțiunea cli.

În mod ideal, ar trebui să alocați puțină memorie pentru stivă și să indicați spre ea folosind indicatorul de stivă (în special). Cu toate acestea, GRUB o face pentru noi, iar indicatorul de stivă este deja setat. Cu toate acestea, pentru a fi sigur, vom aloca ceva spațiu în secțiunea BSS și vom plasa indicatorul de stivă la începutul memoriei alocate. Pentru a face acest lucru, folosim comanda resb, care rezervă memorie în octeți. După aceea, se lasă o etichetă care indică marginea fragmentului de memorie rezervat. Înainte de a apela kmmain, indicatorul de stivă (esp) este folosit pentru a specifica acest spațiu folosind comanda mov.

Kernel în C

În kernel.asm am făcut un apel la funcția kmmain(). Astfel, codul C va începe să se execute în kmmain():

/* * kernel.c */ void kmmain(void) ( const char *str = "primul meu nucleu"; char *vidptr = (char*)0xb8000; //memoria video începe aici unsigned int i = 0; unsigned int j = 0; /* această buclă șterge ecranul */ while(j< 80 * 25 * 2) { /* пустой символ */ vidptr[j] = " "; /* байт атрибутов */ vidptr = 0x07; j = j + 2; } j = 0; /* в этом цикле строка записывается в видео память */ while(str[j] != "\0") { /* ascii отображение */ vidptr[i] = str[j]; vidptr = 0x07; ++j; i = i + 2; } return; }

*kernel.c

void kmmain(void )

const char * str = "primul meu nucleu" ;

unsigned int i = 0 ;

unsigned int j = 0 ;

/* această buclă șterge ecranul */

în timp ce (j< 80 * 25 * 2 ) {

/* caracter gol */

vidptr[j] = "";

/* octet de atribut */

vidptr[j + 1] = 0x07;

j = j + 2

j = 0

/* această buclă scrie șirul în memoria video */

în timp ce (str [ j ] != "\0" ) (

/* mapare ascii */

vidptr [ i ] = str [ j ] ;

vidptr [ i + 1 ] = 0x07 ;

i = i + 2 ;

întoarcere;

Nucleul nostru va șterge ecranul și va afișa șirul „primul meu nucleu” pe el.

Mai întâi, creăm un pointer vidptr care indică adresa 0xb8000. Această adresă este începutul memoriei video în modul protejat. Memoria text de pe ecran este doar o bucată de memorie din spațiul nostru de adrese. I/O pentru ecranul de pe cardul de memorie începe de la 0xb8000 și acceptă 25 de linii de 80 caractere ascii fiecare.

Fiecare element de caracter din această memorie de text este reprezentat de 16 biți (2 octeți), nu de cei 8 biți (1 octet) cu care suntem obișnuiți. Primul octet trebuie să aibă o reprezentare de caractere, ca în ASCII. Al doilea octet este octetul de atribut. Descrie formatarea unui caracter, inclusiv diverse atribute, cum ar fi culoarea.

Pentru a imprima un caracter cu în verde pe un fundal negru, stocăm caracterul s în primul octet al adresei memoriei video și valoarea 0x02 în al doilea octet.

0 este fundal negru și 2 este verde.

Mai jos este un tabel de coduri pentru diferite culori:

0 - Negru, 1 - Albastru, 2 - Verde, 3 - Cyan, 4 - Roșu, 5 - Magenta, 6 - Maro, 7 - Gri deschis, 8 - Gri închis, 9 - Albastru deschis, 10/a - Verde deschis, 11/b - Cyan deschis, 12/c - Roșu deschis, 13/d - Magenta deschis, 14/e - Maro deschis, 15/f - Alb.

0 - Negru , 1 - Albastru , 2 - Verde , 3 - Cyan , 4 - Roșu , 5 - Magenta , 6 - Maro , 7 - Gri deschis, 8 - Gri închis, 9 - Albastru deschis , 10 / a - Verde deschis , 11/b - Cyan deschis, 12/c - Roșu deschis, 13/d - Magenta deschis, 14/e - Maro deschis, 15/f –Alb.

În nucleul nostru, vom folosi caractere gri deschis pe un fundal negru. Deci, octetul nostru de atribut ar trebui să fie 0x07.

In primul buclă while programul scrie un caracter gol cu ​​atributul 0x07 pe toate cele 80 de coloane de 25 de rânduri. Astfel, ecranul este șters.

În a doua buclă while, caracterele șirului „primul meu nucleu” sunt scrise într-o bucată de memorie video. Pentru fiecare caracter, octetul de atribut conține valoarea 0x07.

Astfel, linia va fi afișată pe ecran.

Piesa de conectare

Construim kernel.asm și NASM într-un fișier obiect și apoi folosim GCC pentru a compila kernel.c într-un alt fișier obiect. Acum sarcina noastră este să asociem aceste obiecte cu nucleul de boot executabil.

Pentru a face acest lucru, folosim un script de linker explicit care poate fi transmis ca argument la ld (linkerul nostru).

/* * link.ld */ OUTPUT_FORMAT(elf32-i386) ENTRY(start) SECTIONS ( . = 0x100000; .text: ( *(.text) ) .data: ( *(.data) ) .bss: ( *( .bss) ))

*link.ld

OUTPUT_FORMAT (elf32 - i386)

INTRARE (început)

SECȚIUNI

0x100000;

Text: (* (. text))

Date : ( * (. date ) )

Bss : ( * (.bss ) )

Mai întâi, setăm formatul de ieșire al executabilului la executabil pe 32 de biți (ELF). ELF- format standard fișier binar pentru Sisteme asemănătoare Unix pe arhitectura x86.

ENTRY are un singur argument. Specifică numele simbolului care ar trebui să fie punctul de intrare al executabilului nostru.

SECȚIUNI este cea mai importantă parte în care definim marcajul fișierului executabil. Acesta specifică cum ar trebui combinate diferitele secțiuni și unde vor fi amplasate.

LA acolade urmând instrucțiunea SECȚIUNI, caracterul punct (.) reprezintă contorul de locație.

Contorul de locație este întotdeauna inițializat la 0x0 la începutul blocului SECȚIUNI. Acesta poate fi modificat prin atribuirea unei noi valori.

După cum sa menționat deja, codul kernel-ului trebuie să înceapă la adresa 0x100000. Deci am setat contorul de locație la 0x100000.

Uita-te la rândul următor .text: (*(.text))

Asteriscul (*) este un caracter special care se va potrivi cu orice nume de fișier. Adică, expresia *(.text) înseamnă toate secțiunile input.text din toate fișierele de intrare.

Astfel, linkerul îmbină toate secțiunile text ale fișierelor obiect în secțiunea text a fișierului executabil la adresa stocată în contorul de locații. Secțiunea de cod a executabilului începe la 0x100000.

După ce linkerul plasează secțiunea de ieșire a textului, valoarea contorului de locație este setată la 0x1000000 + dimensiunea secțiunii de ieșire a textului.

La fel, secțiunile de date și bss sunt combinate și plasate pe valorile contorului de locație.

grub și multiboot

Acum toate fișierele necesare pentru a construi nucleul sunt gata. Dar din moment ce intenționăm să pornim kernel-ul de la GRUB, mai e nevoie de un lucru.

Există un standard pentru pornirea diferitelor nuclee x86 folosind un bootloader numit specificația Multiboot.

GRUB va încărca nucleul numai dacă îndeplinește specificația Multiboot.

Potrivit ei, nucleul trebuie să conțină antetul în primii 8 kiloocteți.

În plus, acest antet trebuie să conțină 3 câmpuri suplimentare:

  • câmp de număr magic: conține numărul magic 0x1BADB002, pentru a identifica antetul.
  • câmp flags: nu avem nevoie de el acum, doar setați valoarea lui la zero.
  • câmpul sumă de control: atunci când este dat, trebuie să returneze zero pentru suma cu primele două câmpuri.

Deci, kernel.asm va arăta astfel:

;;kernel.asm ;directiva nasm - 32 biți biți 32 secțiune .text ;multiboot spec align 4 dd 0x1BADB002 ; numere magice dd 0x00 ;dd steaguri - (0x1BADB002 + 0x00) ; verifica suma. mh+f+ks trebuie să fie zero global start extern kmain ;kmain definit în fișierul extern start: cli ;block întrerupe mov esp, stack_space ;stack pointer call kmmain hlt ;stop procesor section .bss resb 8192 ;8KB per stack stack_space:

; ; nucleu. asm

; directiva nasm - 32 de biți

biții 32

secțiune. text

; specificații multiboot

aliniază 4

dd 0x1BADB002 ; numere magice

dd 0x00; steaguri

dd - (0x1BADB002 + 0x00); verifica suma. mh+ f+ ksar trebui să fie zero

început global

extern kmmain ; kmmain este definit într-un fișier extern

start :

cli ; blocarea întreruperilor

mov esp , stivă _ spațiu; indicator de stivă

apelați kmmain

hlt ; oprirea procesorului

Top articole similare