Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
V principu jde (i OS je pouha smecka programu a knihoven sikovne zorganizovanych a teoreticky by sla…
gilhad 31.08.2015 11:13
gilhad
ono sú programi ktoré bežia bez OS, bez MBR na disku atd (áno napríklad jeden program za ktorého men…
Mlocik97 31.08.2015 13:55
Mlocik97
Kdyz pomineme legrace uvnitr v CPU (on takovy klasicky CISC jako X86 uz je v soucasnosti emulovan uv… poslední
gilhad 31.08.2015 23:14
gilhad

V principu jde (i OS je pouha smecka programu a knihoven sikovne zorganizovanych a teoreticky by sla napsat v tom C++), ale prakticky to, co ti vypadne z Visual studia (i jednoduchy Hello World) predpoklada pritomnost OS kazdym krokem, od samotneho zavedeni do pameti, prez nahrani knihoven az po prima volani OS pro vsechny sluzby.

Pokud se musis takto ptat, tak si muzes byt takrka jist, ze cokoli napises ti bez OS nepobezi, natoz spravne, nemluve o tom, ze by to bez nej neco delalo.

ono sú programi ktoré bežia bez OS, bez MBR na disku atd (áno napríklad jeden program za ktorého meníš velkosť particií na disku "partition magic pro" je vlastne program ktory sa bootuje,...) ale musia mať vlastné "microjadro" DOSu,... proste ak nemá zavádeč tak nemá ho jak spustiť.

Kdyz pomineme legrace uvnitr v CPU (on takovy klasicky CISC jako X86 uz je v soucasnosti emulovan uvnitr RISCu pomoci mikroinstrukci ...),

tak po zapojeni pocitace CPU je "zadratovane" tak, ze skoci na dane misto v pameti, kde je obvykle ROM s programem, kteremu se se casto rika BIOS (nebo noveji UEFI) a zacne tam provadet nejake instrukce.
Tento program vetsinou otestuje spoustu veci, jako treba jestli je nejaka dostupna RAM, disky, klavesnice, graficke adaptery a jine veci, ktere muzou a nemusi byt a muzou se lisit a kdyz ma o tom nejakou predstavu (a co je potreba, tak tomumu poslal nejake instrukce, co to ma jako udelat, terba iniciovat tu grafiku, pokud je), tak se bud zacne venovat pozadavkum u8zivatele (setup screen), nebo si nekde (dle nastaveni na disku, siti, ...) najde nejekay jiny program, ktery natahne do pameti a preda mu rizeni (MBR, bootloadery a tak)
Takovy bootloader se treba podiva na dalsi mista na disku, neco si odtamtud natahne do pameti (sve pokracovani), necim se zkonfiguruje, pocka si, jetli uzivatel treba neco nechce a kdyz ne, tak si najde neco dalsiho (nejaky vhodny program) ke spusteni, treba takovy memtest, nebo operacni system, nebo tak neco, zase to nahraje do pameti a preda tomu rizeni
Takovy OS si zase precte nejruznejsi konfigurace, osaha pocitac zevnitr a rozvrhne treba spravu pameti a tak, pospousti nejake programy z disku nebo odjinud a trebe se i casem podiva, jestli uzivatel neco nechce, treba spustit nejake dalsi programy ...

Ovsem nikde neni psano, ze bootloader musi spustit OS (treba takovy memtest OS vlastne nepouziva), ba dokonce, ze vubec musi spustit neco - klidne si muze bezet az do vypnuti stroje, psat po obrazovce, cist klavesy, reagovat na sit, cist disk (stejne tohle vsechno v ruzne mire dela) a pak treba vynout pocitac, aniz by vubec nejaky OS spustil.

Ostatne to muze klidne i BIOS, vubec nemusi spoustet nejake bootloadery. A neni problem si "vypalit" vlastni pamet s nejakym programem a dat ho misto BIOSu, takze se po zapnuti pocitace spusti tento program. (muze byt problem takovy program napsat, aby byl spravne a zajimavy a tak dal, stejne jako u jakehokoli jineho programu - stejne to nakonec jsou jen nejake nuly a jednicky kdesi)

Sam si ted nejake takove programky pisu (sice ne pro X86, ale pro jine pocitace, principialne zadny rozdil), a ty fakt bezi na holem zeleze a zadny OS, ani mikrojadro neobsahuji.

Kde je podle tebe mikrojadro v nasledujicim programu:

.DEF mp=R16

ldi	mp,0b11111111
out	DDRB,mp

loop:
	ldi	mp,0x00
 	out	PORTB,mp

	ldi	mp,0xFF
 	out	PORTB,mp

 	rjmp	loop

nepouziva zadne knihovny, zadne rutiny ulozene kdekoli jinde, da se do nej primo nabootovat, neco malo dela a krome nej tam nebezi uz nic jineho

Zpět do poradny Odpovědět na původní otázku Nahoru