Ako naprogramovat os?

Programovacie jazyky, rady, poradňa...
©_ME
Light Star
Light Star
Príspevky: 282
Registrovaný: 27 apr 2011, 19:33

Re: Ako naprogramovat os?

Príspevok od používateľa ©_ME »

Takže mi stačí urobiť si boota a potom spojiť c s asm?

//autoeditácia príspevku (21 Júl 2011, 11:10)
no vlastne tak ze si dam neco ako:

Kód: Vybrať všetko

__asm
{
  boot
}
a dalej pisem c++ kod? a potom to ulozim v ako formate? Keby som dal boota do mobilu v asm, fungoval by mi?
exploited154
Medium Expert
Medium Expert
Príspevky: 123
Registrovaný: 05 sep 2010, 19:32

Re: Ako naprogramovat os?

Príspevok od používateľa exploited154 »

ked sa mozem opytat...viem ze ja asi OS nenaprogramujem.....len tak rozmyslam.. je mozne naprogramovat operacny system v C++??.... ja len nahlas rozmýšľam :)
©_ME
Light Star
Light Star
Príspevky: 282
Registrovaný: 27 apr 2011, 19:33

Re: Ako naprogramovat os?

Príspevok od používateľa ©_ME »

No .cpp súbory ti nepobežia, ale skús sa zamyslieť, aké dáta príma processor? 0 a 1, čiže .bin súbory. Ak dáš .cpp do bin, tak sa ti to podarí, ale ako záchytný bod musíš použiť .o . A potom už len v boote zavoláš:

Kód: Vybrať všetko

[BITS 16]   
[ORG 0x7C00]
[global start]
[extern _main]
start:
call _main
cli 
hlt
čiže budeš mať cpp súbor, asi takto:

Kód: Vybrať všetko

int main(){
//tu sa pracuje

}
ten dáš do .o súboru, potom vyššie uvedený asm kód dáš taktiež do .o súboru, a pomocou .ld súboru a linkovania v kompilátoroch obidva súbory zlinkuješ do .bin súboru. Nezabudni ale, že sú tu taktiež knižnice a tie musíš zlinkovať tiež, napr iostream.
Viac tu:
http://wiki.osdev.org/Main_Page
máš tam aj čo sa týka pascalu a toto, čo som ti povedal.
paralen
Light Star
Light Star
Príspevky: 267
Registrovaný: 02 máj 2006, 15:15

Re: Ako naprogramovat os?

Príspevok od používateľa paralen »

exploited154 napísal:ked sa mozem opytat...viem ze ja asi OS nenaprogramujem.....len tak rozmyslam.. je mozne naprogramovat operacny system v C++??.... ja len nahlas rozmýšľam :)
Ano je to mozne , windows je zvacsa v C++
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Ako naprogramovat os?

Príspevok od používateľa failExperiment »

Prepacte ze to tu znovu otvaram, ale skusal som example z http://wiki.osdev.org/Bare_bones
a rad by som vedel ako z kernel.bin spravit bootovacie ISO image napriklad pomocou grub
©_ME
Light Star
Light Star
Príspevky: 282
Registrovaný: 27 apr 2011, 19:33

Re: Ako naprogramovat os?

Príspevok od používateľa ©_ME »

pocuvaj, radsej si sprav .cue a daj do binu, s iso je dost makacka.... alebo si zozen VMWare player, tam myslim bere .bin subory. Ale osobne ti radsej odporucam na tvorbu OS Alps IDE , alebo cosmos....
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Ako naprogramovat os?

Príspevok od používateľa failExperiment »

na co je dobry .cue ?
ja pouzivam linux a chcel by som to vyskusat aj v relnych podminkach takze USB alebo CD
nevadi ze je to makacka ja mam cas
©_ME
Light Star
Light Star
Príspevky: 282
Registrovaný: 27 apr 2011, 19:33

Re: Ako naprogramovat os?

Príspevok od používateľa ©_ME »

prazdniny? :D casu dost... .cue slúži ako urýchľovač napaľovania, takže si zožeň CD-RW a napaľovač, vytvor si cue(napr.http://www.shivaranjan.com/2007/01/03/h ... n-5-steps/) alebo si najdi nejaky iny tut. Napr na how to geek, tam som jeden dobrý videl. Ale pochybujem ze ovladas dtors ctors, ak robis v c++ a vse okolo kym zacnes kodit + bavkat sa (asi sám) s hlavickami alebo asm na toľko, aby si mal niečo poriadne..... Na OS sa radšej vykašli, sám ho neurobíš. S pomocu COSMOS-u a MSIL by to šlo lepšie... Alebo si na nejakych najdi tym, ci sa k nejakemu pridaj. Tak dvaja ludia maju vacsiu sancu ako jeden.

//autoeditácia príspevku (10 Aug 2011, 20:54)
failExperiment, ake mas vobec skusenosti s programovanim vseobecne? (pocet rokov co sa ucis programovat, v com, co asi vies, )
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Ako naprogramovat os?

Príspevok od používateľa failExperiment »

v C kodim uz vyse roka, asm par meiacov a mam plno tutorialov.
Mojim cielom je naprogramovat worma ako operacny system.
Na COSMOS som pozeral ale to je microsoftacka zalezitost, to nechcem.
Ako radu som cakal dva riadky ktore by som napisal do konzoly, daco z grub alebo mkisofs, daco som videl ale nic nefunguje, sice iso vyvory ale kernel.bin nenabotuje.
©_ME
Light Star
Light Star
Príspevky: 282
Registrovaný: 27 apr 2011, 19:33

Re: Ako naprogramovat os?

Príspevok od používateľa ©_ME »

Nieje to microsoftacka zaležistosť, ani si si to poriadne nepozrel, je to voľný projekt, a funguje aj na MonoDevelop, nie len na VS.A na co ti je kernel.bin? Vsak ono ti vygeneruje aj asm, aj .o a ty si ho už len cez NASM strčíš do binu.
v C kodim uz vyse roka, asm par meiacov a mam plno tutorialov.
No tak poto veľa štastia, lebo neviem kam sa s týmito skúsenosťami dostaneš. je pravda, že sa môžeš naučiť tie veci a urobiť si kernel.bin, nieje to ani tak zložité, ale keď sa budeš chcieť pustit do grafiky, narazíš na stenu VGA, a napokon sa ti to nepodarí. Pozri sa na prvú verziu linuxu. Šupná, a navzdory tomu to Torvaldovi trvalo zopár rokov(a je to vyučený programátor ktorý mal v tedy za sebou viac ako 5 rokov programovania). Viac ako malú konzolu s pár príkazmi za prázdniny sám neurobíš. Nájdi si niekoho kto vie robiť s C a ASM, a máš projekt na zopár rokov. Mám už s tvorbou OS skúsenosti, takže viem, rok programovania v C a zopár mesiacov v ASM ti nepomôže. Ak budeš chcieť pracovať s niekým, budeš si musieť prečítať ešte zopár teoretických kního o programovaní a týmovej práci.... Alebo ti navrhujem, urobiť si vo vyššom jazyku vlastný programovací jazyk, a používať kompilátor nasm alebo podobný. Systém bude jednoduchý. C program prečíta súbor v ktorom je kód v tvojom programovacom jazyku, a do druhého vypíše ASM kód, potom pustí kompilátor a máš .o a .bin súbor. Už som programovací jazyk robil (pre vlastnú potrebu na vlastný OS), a prvé príkazy a začiatky ma vyšli na asi 500 riadkov kódu. Ďalšie pokročilé príkazy už na viac riadkov... Neradím ti robiť os čisto v ASm. Aj torvald použil python, ktorý si sám vytvoril. Inak by mu to trvalo ešte viac.
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Ako naprogramovat os?

Príspevok od používateľa failExperiment »

Viac ako malú konzolu s pár príkazmi za prázdniny sám neurobíš.
Ja ani nic vetcie nechcem spravit, chcem si psravit v textovom rezime worma,, kedisi som ho spravil v Pascale, a zdrojaky mam uz v podtstae hotove, len chcem vediet ako s toho spravit bootovacie medium, ktore nie je disketa.

A ti tu hovoris iba ako sa to neda nic ine.
©_ME
Light Star
Light Star
Príspevky: 282
Registrovaný: 27 apr 2011, 19:33

Re: Ako naprogramovat os?

Príspevok od používateľa ©_ME »

zadal som do googlu iso from bin, a vyhodilo mi kopec programov, shareware, i freeware. To je až taký problém napísať do googlu zopár slov? Takže ty máš veci už v pascale... no dobre, počkám si na výsledok. (zaujímavé, vedieť programovať, nevedieť hľadať. Asi nie si veľmi dobrým samoukom. Ako to že hľadať nevieš sa ukázalo už pri COSMOSe. Povedal si microsofťácka záležitosť. Pozrel si sa na pätičku codeplexu a už si mal všetko prečítané?)
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Ako naprogramovat os?

Príspevok od používateľa failExperiment »

ked ti tak dobre ide hladanie mozes sa predviest.
Hej skusal som a nic pouzitelne.
FrewCen
Light Expert
Light Expert
Príspevky: 75
Registrovaný: 11 aug 2011, 10:30

Re: Ako naprogramovat os?

Príspevok od používateľa FrewCen »

Ja som použil magicISO, trial, a vytvorilo mi ISO... Bez chyby.... Magic ISO, síce slabšie prostredie, platené, ale odporúčam.

//autoeditácia príspevku (11 Aug 2011, 10:50)
failExperiment: Niečo som už o tom niekde čítal, ale je to pravda?
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Ako naprogramovat os?

Príspevok od používateľa failExperiment »

FrewCen napísal: failExperiment: Niečo som už o tom niekde čítal, ale je to pravda?
O com?

Ozaj kde moze byt prbobem?
Su to len utrzky kodu
asm

Kód: Vybrať všetko

getchar:
 mov al,0x01
 int 0x16
 ret
C:

Kód: Vybrať všetko

 extern int getchar();

 void k_main(void *param)
{
  unsigned char *vga = (unsigned char*)0x8000;
  vga[0]=' ';
  vga[1]=0x07;
  for(;;)  vga[0]=(unsigned char) getchar() &0xFF;
}
kernell sa mi vzdy zosipe ked sa prvakrat zaviola getchar, je to spravne zlinkovane aj to vypisuje co ma, len funkcia getchar mi robi problem, ma citat z klavesnice.
FrewCen
Light Expert
Light Expert
Príspevky: 75
Registrovaný: 11 aug 2011, 10:30

Re: Ako naprogramovat os?

Príspevok od používateľa FrewCen »

Pomohol magic iso? Inac nieje to nahodou kernel bez ll? A dalej co ak nieje chyba v tychto kodoch. Skus sem dat vse. (Hadam nemas getchar v bootovi...)
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Ako naprogramovat os?

Príspevok od používateľa failExperiment »

no mam, je to problem ?
Nie enpacil sa mi,
nakoniec som prisl nato preco mkisofs nesiel, lebo zavaduazc musi byt v pridinku root/boot.

Tu su subory aj zo kompilacnmy skriptami.
Prílohy
os.zip
(143.39 KiB) 97 stiahnutí
FrewCen
Light Expert
Light Expert
Príspevky: 75
Registrovaný: 11 aug 2011, 10:30

Re: Ako naprogramovat os?

Príspevok od používateľa FrewCen »

Prečo sa mi zdá, že to máš s niekadiaľ stiahnuté? je to písané štýlom tutoša...
512 bytes.....
failExperiment
Expert
Expert
Používateľov profilový obrázok
Príspevky: 191
Registrovaný: 10 aug 2011, 14:19

Re: Ako naprogramovat os?

Príspevok od používateľa failExperiment »

Lebo:
failExperiment napísal:Prepacte ze to tu znovu otvaram, ale skusal som example z http://wiki.osdev.org/Bare_bones
a rad by som vedel ako z kernel.bin spravit bootovacie ISO image napriklad pomocou grub
Iba som tam doplnil getchar, skrypty, multyboot atd.
Takze preco to nejde?
FrewCen
Light Expert
Light Expert
Príspevky: 75
Registrovaný: 11 aug 2011, 10:30

Re: Ako naprogramovat os?

Príspevok od používateľa FrewCen »

Je dost mozne ze je to v tvojom compe, alebo v tvorici ISO, ale podla mna je to v tvorici ISO, vygenerovane ISO je pravdepodobne zle. SKus ho dat niekomu na iny comp, nech ho vyskusa, alebo to vyskusaj cez nejaky soft, napr. virtual pc ci virtual machine (kludne aj vo viacerych). Musis sa pokusit chybu analizovat sam, aby sme vedeli kde zacat. Mozno je chyba v tvojom compe, mozno v CDcku, mozno v testovacom softe, mozno v procaku.

//autoeditácia príspevku (12 Aug 2011, 17:57)
Poradim ti, tu ti takuto vec asi nepomoze viriesit zopar ludi, chod na ine forka, alebo na Q&A (napr. stackoverflow.com) Stack odporucam, su tam fakt makaci, mne pomohli s chybami do hodiny, niekedy do 12 hodín. Ale najprv posurfuj google a stack, ci tam neje neco podne...

OS som sa uz pokusal vytvorit, robil som ho cisto v ASM, ale doslo mi, ze bez väčšieho (a schopného) týmu a bez nových myšlienok sa ho nikdy nepodarí presadiť, a nemá teda ani zmysel nahovárať si že skúsenosti z tejto časti programovania sa mi v tvorbe normálneho softu veľmi zídu. (V mojom prípade myšlienok bolo, ale týmu [a to už vôbec nie schopného] nebolo).
Napísať odpoveď