Operační systém Pascalu – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Operační systém Pascalu – Pascal – Fórum – Programujte.comOperační systém Pascalu – Pascal – Fórum – Programujte.com

 

Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
18. 8. 2008   #1
-
0
-

NEvite někdo o zdrojácích nějakýho OS, ktrejej je dělanej v Pascalu??

Nahlásit jako SPAM
IP: 88.101.102.–
KIIV
~ Anonymní uživatel
8632 příspěvků
18. 8. 2008   #2
-
0
-

pascal neni moc vhodnej na tvorbu OS... samy kontroly a meze a zase kontroly :D
abych to shrnul... nevim o zadnym systemu v pascalu... nejcasteji je na system jazyk C nebo assembler

Nahlásit jako SPAM
IP: 80.188.94.–
imcold0
Newbie
18. 8. 2008   #3
-
0
-

Na sourceforge.net ich zopár je, stačí vybrať kategóriu, kľúčové slovo a hľadať.
KIIV: nejaké konkrétne kontroly, čo sa ti nepáčia? :P

Nahlásit jako SPAM
IP: 85.216.167.–
Amos0
Newbie
20. 8. 2008   #4
-
0
-

Ja sem OS v pascalu jednou programoval, nedokoncil jsem to, ale nebylo to tak hrozny.Je sice pravda že C a Assembler je pro programování OS typičtější, ale v packalu te do taky.

Nahlásit jako SPAM
IP: 88.101.102.–
Amos
Amos0
Newbie
20. 8. 2008   #5
-
0
-

na sourceforge.net jich moc není, ale o jíný adrese nevim, takže nepomůžu.

Nahlásit jako SPAM
IP: 88.101.102.–
Amos
Zelenáč0
Posthunter
20. 8. 2008   #6
-
0
-
Nahlásit jako SPAM
IP: 62.24.71.–
Petran
~ Anonymní uživatel
2 příspěvky
28. 8. 2008   #7
-
0
-

taky ted delam jeden OS v pascalu a potrebuju, aby když disketu vložim do mechaniky restartuju PC aby to četlo exe soubor s diskety jde to nějak??

Nahlásit jako SPAM
IP: 88.101.102.–
28. 8. 2008   #8
-
0
-

To Petran : Hm, promiň, že to říkám tak na rovinu, ale ty nejsi schopen tvořit operační systém. Operační systém nefunguje tak, že by BIOS nabootova *.exe soubor, je to o tisíci jiných věcí, loader, kernel, nevímcoještě, navíc ze začátku musí být psané vše v Assembleru, pak zápis do nultého sektoru média (aby bios věděl, co má bootovat), jakmile se dostaneš k programování prostředí (IMHO to co máš ty), měl bys být už tak ve třech čtvrtinách programování OS. OS to není je jeden *.exe soubor, kterej se spustí (už jenom proto, že je to *.exe je odsouzen pracovat "pouze" pod jiným operačním systémem (Woknows)), to je spousta hodin dřiny, studování naprosto nepochopitelných věcí, spousta hodin s dokumentací k architektuře tvého procesoru, nekonečné hodiny studování assembleru, přesouvání bloků paměti, než se konečně dostaneš k tomu, abys mohl udělat nějaké prostředí. Být tebou se nejdřív pořádně Pascal naučím a jestli stále ještě budeš chtít programovat operační systém (navíc svůj vlastní), tak začít s C nebo C++ a Assemblerem. A taky toho hodně nastudovat o architektuře procesorů (to kvůli assembleru) a stejně ti nakonec nezbyde nic jiného, než použít spoustu knihoven někoho cizího (i kdybys' byl sám Tao programování, chtěl bych vidět, jak budeš dělat například souborový systém apod.). Doporučuji nastudovat http://cs.wikipedia.org/wiki/Opera%C4%8Dn%C3%AD_syst%C3%A9m, a http://programujte.com/index.php?akce=clanek&cl=2008030201-jamesm-s-kernel-development-tutorials-1-dil.

Nahlásit jako SPAM
IP: 83.240.78.–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
petran
~ Anonymní uživatel
2 příspěvky
29. 8. 2008   #9
-
0
-

To Garret Raziel : Ten exe soubor je instalace. A potrebuju ji nějak spustit.

Nahlásit jako SPAM
IP: 88.101.102.–
29. 8. 2008   #10
-
0
-

To petran : Nespustíš instalaci. Nejde to. Když chceš bootovat (->to znamená chceš načíst operační systém při startu počítače), a máš ten OS na nějakém médiu, bios (systém, který bude ten OS načítat) spustí JENOM (opakuji JENOM) pokud máš na nějakém určitém místě (to znamená, že musíš nějakým způsobem zapsat na určité paměťové místo toho CD, myslím že to je adresa 0xFFFFFF, ale nevím to jistě) program (ne *.exe, *.exe se smí pouštět jenom pod Windows (či v emulátoru, puristé jděte do *)), který MUSÍ (opakuji MUSÍ) být napsán v Assembleru (má to být bootloader), který spoustama různých operací spustí Kernel (jádro systému, základ také musí být v Assembleru) a ten teprve může spouštět nějaké programy (ale zatím pouze jednoduché, pouze v konzoli, určitě to nemůže být instalace a rozhodně ne jako *.exe). Tvoje instalace, kterou ty máš na mysli, ta IMHO funguje pouze pokud je spuštěn Windows, určitě ji nemůžeš bootovat.

Nahlásit jako SPAM
IP: 83.240.78.–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
bukaj0
Věrný člen
29. 8. 2008   #11
-
0
-

petran
Doporučuji ti si pustit video o bootování linuxového kernelu na x86[1], u ostatních kernelů to bude pracovat na podobném principu. Pak snad pochopíš, co se ti Garret Raziel snaží říct.

Pokud jsi zkompiloval na Windows nějaký zdroják do spustitelné binárky (*.exe), s největší pravděpodobností se jedná o binárku formátu PE[2]. A k jejímu spuštění nejdříve musíš nabootvat nějaký kernel (ať se jedná o její spouštění přímo, či pomocí emulátoru).

To místo na disku, o kterém Garret Raziel mluví, se říká MBR (Master boot record)[3]. Jsou tam uloženy čistě a jenom zkompilované instrukce (tzn. že binárku formátu PE tam dát nemůžeš ;o)). Snad každý operační systém má svůj vlastní bootloader, ale existují i „samostatné bootloadery“, např. GRUB[4]. GRUB se zoděluje na dvě tzv. „stage“, kdy první, jak můžeš vidět v tom videu, se umisťuje do toho MBR, je malá kompaktní, musí být v Assembleru, druhá se stará o věci jako jsou video, filesystémy atd., ta už může být v Céčku (či nějakém vyšším-nižším jazyku). Stage2 tedy načte jádro operačního systému a to by teoreticky teprve pak mohlo načíst tvůj zkompilovaný kód ve formátu PE.

[1] http://excess.org/article/2008/08/oclug-august-kernel-walkthrough-boot-process/
[2] http://en.wikipedia.org/wiki/Portable_Executable
[3] http://en.wikipedia.org/wiki/Master_boot_record
[4] http://en.wikipedia.org/wiki/GRUB

Nahlásit jako SPAM
IP: 85.70.13.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
29. 8. 2008   #12
-
0
-

To bukaj : Děkuji :-)

Nahlásit jako SPAM
IP: 83.240.78.–
Podpis: Do podpisu nelze vložit obrázky ani HTML kód. Je podporován nový řádek tagem
.
Laaca0
Stálý člen
30. 8. 2008   #13
-
0
-

V pascalu samozřejmě operační systém napsat jde. Potíž může být, že Pascal 7.0 dělá jenom EXE soubory a ne COM soubory, ale v případě, že bys z nějakého důvodu opravdu chtěl .COM soubor, tak ho můžeš přeložit v Turbo pascalu 4.0 nebo nižším, který právě COM soubory tvoří. Co se týče bootování, souborových systémů nebo jiných hodně nízkoúrovňových věcí, tak se tomu elegantně vyhneš tím, že uděláš hybridní operační systém DOS-PascalOS. Zkrátka můžeš nechat nabootovat DOS a z něho ihned spustit svůj systém, který převezme funkce DOSu. Tedy něco jako Windows 95(98,Me). Díky tomu, že DOS běží v reálném módu je dokonce možné ho ukončit a ponechat v paměti jenom tvůj program. (takhle to dělala třeba česká Linuxová distribuce Monkey Linux)
Pro inspiraci doporučuju kouknout se na stránky operačního systému PCOS.
http://www.geocities.com/mercury0x000D/

Nahlásit jako SPAM
IP: 81.0.253.–
DOS-u-akbar
Wimby
~ Anonymní uživatel
50 příspěvků
15. 10. 2008   #14
-
0
-

To KIIV : V Pascalu neni o tolik víc kontrol oproti C nebo dokonce Assembleru... Co se týče třeba ukazatelů, tak v C se musí stejně tak kontrolovat jako v Pascalu, a obecně: čim nižší jazyk, tim víc kontrol, takže v Assembleru si je budeš muset tuplem hlídat. Totéž platí třeba u indexů polí. Dle mýho názoru Assembler na tvorbu OS neni úplně to pravý ořechový. Je lepší mít OS napsanej v abstraktnim kódu, než v konkrétnim. Třeba pokud budeš chtít z 32-bitovýho kódu udělat 64-bitovej, tak to co změníš v abstraktnim kódu je oproti tomu Assemblerovskýmu velikej rozdíl. Většinou stačí jenom upravit pár funkcí, nejlépe jednu knihovnu a zkompilovat 64-bitovým kompilerem, kdežto v Assembleru je to většinou přepsat hafo kódu.
A co se týče toho jestli se C hodí víc na tvorbu OS než Pascal, tak si myslim, že je to jedno... Mezi Pascalem a C je tak málo odlišností oproti těm velkým podobnostem (procedurální programování, objekty, strukturovanej jazyk, téměř stejná úroveň...), že neni nutný se tim moc zabývat. Mě osobně vyhovuje víc Pascal. Spíš je tady problém absence kompileru na Pascal, protože Turbo Pascal je už trochu out a ten opravdu neni na tvorbu OS psanej... Ale Pascal jako jazyk je "stejnej" jako C jako jazyk, stejně jako Object Pascal jako C++, viz třeba Delphi 7.

Nahlásit jako SPAM
IP: 83.208.196.–
Matrix17
~ Anonymní uživatel
300 příspěvků
15. 10. 2008   #15
-
0
-

To Wimby : To cos napsal myslíš vážně nebo si děláš srandu? Vždyť to je naprostej nesmysl. Pascal byl vytvořenej jako jazyk na výuku programování! Ano dá se v něm udělat lecos ale to je všechno. V postscriptu se taky dá napsat http server ale proč se s tím babrat v něm když to můžeš udělat jinak a mnohem líp? A ještě k tomu to srovnání Object Pascalu s C++ no tak to snad ne.

Nahlásit jako SPAM
IP: 90.176.235.–
Laaca0
Stálý člen
17. 10. 2008   #16
-
0
-

Už mě prudí, jak se všude omílá mýtus, že pascal byl vymyšlený na výuku programování a tudíž v něm není možné tvořit seriózní projekty.
Niklaus Wirth, tvůrce pascalu vymyslel tři jazyky: pascal, modulu a oberon. Pascal byl nejjednodušší a byl opravdu určen na výuku s tím, že by programátor mohl přejít právě na modulu nebo oberon. Nicméně když se obrátil na Borland, aby mu napsali překladač, tak mu to rozmluvili s tím, že je to moc drahé a prostě do pascalu přidali profesionální konstrukce právě z moduly a vznikl turbo pascal. Turbo pascal byl tedy hned od počátku myšlen jako seriózní programovací jazyk.
Kromě toho, už do verze 5.5 byla přidána podpora objektů. Proto poznámky, že pascal je vhodný jen jako výukový nástroj jsou úplně mimo mísu. Nejen Object pascal, ale i klasický turbo pascal jsou s C++ plně srovnatelné.

Nahlásit jako SPAM
IP: 81.0.253.–
DOS-u-akbar
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
17. 10. 2008   #17
-
0
-

Že byl Pascal původně navrženej jako jazyk na výuku strukturovanýho programování vůbec neznamená, že se v něm nedá naprogramovat něco pořádnýho, stějně tak, jako to neznamená, že v něm jde udělat všechno... Jsou věci na který Pascal ani C nestačí, jako třeba BootLoader nebo internetová stránka nebo něco na co se používá funkcionální programování.
Nechci tady vyvolat další válku na téma Pascal vs. C, podle mě jsou to velice podobné jazyky u kterých spíš než na návrhu jazyka samotnýho závisí na samotných překladačích. Opravte mě jestli se mýlím, ale nějak šetrně, protože už půl roku programuju kompiler na Pascal :-)
P.S.: Slova jako NESMYSL a jim podobná jsou bez podložení BEZ VÝZNAMU, jenom vypadaj drsně. Například Pascal má typ String nebo má přepínač pro záznam, což nevim jestli má C...
P.S.2: Jeden operační systém jsem myslim viděl v Pascalu, jmenoval se Glider nebo tak nějak

Nahlásit jako SPAM
IP: 83.208.196.–
Matrix17
~ Anonymní uživatel
300 příspěvků
17. 10. 2008   #18
-
0
-

To Anonymní uživatel : No nevím jestli to že má pascal string je nějakej argument... To bych mohl říct že v C si můžeš určit jaký má mít číslo výstupní formát např. hex, nebo oktálovej kdež to v pascalu si musíš na konverzi napsat funkci. Navíc se mi zdá hloupé rozdělení deklarace funkcí a procedur. V C to je řešeno elegantněji. Ale diskuze na téma C vs pascal tu už byla. viz.
[url]
http://programujte.com/index.php?akce=diskuze&kam=vlakno&tema=6435-c++-vs-pascal
[/url]

Tady je srovnání C a pascalu
[url]
http://silver.sucs.org/~manic/humour/languages/cpascal.htm
[/url]
[url]
http://users.iafrica.com/r/ra/rainier/cpas.htm
[/url]
[url]
http://www.experiencefestival.com/pascal_and_c_-_c_vs_pascal_a_language_comparison
[/url]
Vážně si nemyslím že by tahle diskuze vedla k nějakému závěru jen k jejímu zbytečnému prodlužování...

Nahlásit jako SPAM
IP: 78.156.128.–
Laaca0
Stálý člen
17. 10. 2008   #19
-
0
-

Bootloader by v pascalu vůbec nebyl problém.

Nahlásit jako SPAM
IP: 81.0.253.–
DOS-u-akbar
Wimby
~ Anonymní uživatel
50 příspěvků
18. 10. 2008   #20
-
0
-

To Matrix17 : Tak Vám nevím, ale všechny diskuse na téma Pascal vs. C mi přijdou na jedno brdo. Zohledňuje se jenom to jestli je blbý psát "BEGIN" místo "{" a "END" místo "}" nebo jestli je pohodlnější psát "VOID" a "FUNCTION" místo "PROCEDURE" atp.
Pokud píšu třeba KOMPILER, WEBOVEJ PROHLÍŽEČ nebo OPERAČNÍ SYSTÉM, pak je mi jedno jestli jsem musel napsat 5 písmenek pro začátek bloku kódu a 4 znaky pro napsání END se středníkem. Taky je mi jedno jestli píšu funkci u který nechci, aby něco vracela jako PROCEDURE nebo jinak... tohle je věc programátorskýho stylu a stejně tak jako jiní, i já v tom mám systém a ve svém kódu se velice dobře vyznám. Jde spíš o ZVYK. V celkové době psaní operačního systému je zanedbatelných nějakých pět písmen na každej begin, protože tam nejde o to to NADATLIT do nějakýho štrůdlu kódu, kterej se pak nějak bude chovat. Jde tam o strukturu, o algoritmy, o celkový řešení problému. Ne nějaký blbý beginy. A z celkovýho hlediska knihoven: :-)
knihovna NEPATŘÍ k jazyku! Je hloupé tvrdit, že Pascal má jednotku CRT a C může mít jinou, ale třeba i mnohem lepší... to koneckonců může mít Pascal taky... a pokud jde o práci s GUI nebo API, tak pravděpodobně JEDINEJ rozdíl je tam mezi klíčovýma slovama USES a INCLUDE :-)
Dál už sem tu diskusi na téma Pascal vs. C nečetl... četl sem jiné téhle podobné. Bohužel nikdo nedokázal C obhájit nějakym konkrétnim příkladem, kterej by v Pascalu nešel vyřešit. A na druhou stranu nikdo nedokázal Pascal obhájit nějakym konkrétním příkladem, kterej by v C nešel vyřešit :-)

Pokud se na to podívám z větší vejšky než ze svojí židle, tak ZÁSADNÍ rozdíl nevidim. Vidim rozdíl mezi Javou a C, vidim rozdíl mezi Prologem a Pascalem, a vidim rozdíl mezi Assemblerem a Fortamen. Ale nevidim rozdíl mezi C a Pascalem, když pominu rozdíly v klíčových slovech a minimální odlišnosti, který se daj snadno nahradit v obou jazycích... Je to individuální jestli programovat v C nebo v Pascalu... Pravděpodobně si mnoho lidí k Pascalu vytvořilo nechuť právě kvůli tomu, že se to učí na školách... něco jako povinná četba... :-)

Myslím si, že jádro Linuxu by šlo přepsat do Pascalu bez změn v kódu. :-)

To Laaca : Je pravda, že sem to trochu přehnal tim slovem nestačí... ale i tak bych to asi raději psal v assembleru... i když, když nad tim tak přemejšlim, tak Filesystem, případně i to TUI bych řešil Pascalem. :-)

Nahlásit jako SPAM
IP: 83.208.196.–
Yety0
Stálý člen
29. 6. 2009   #21
-
0
-

Amos napsal:
Ja sem OS v pascalu jednou programoval, nedokoncil jsem to, ale nebylo to tak hrozny.Je sice pravda že C a Assembler je pro programování OS typičtější, ale v packalu te do taky.



JJ. Já jsem taky OS v Pascalu kedysi programoval, ale taky jsem ho nedodělal, dělala mi problém rychlost grafického režimu a když jsem přišel na to jak to řešit, tak už jsem dělal na něčem jiným. Avšak už delší dobu uvažuju na tom, že to dodělám, ale zatím nějako nemám čas.

Nahlásit jako SPAM
IP: 94.113.49.–
Kapitán A. J. Rimmer vesmírný dobrodruh
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

Operační systém C — založil Jenkings

Operacni system — založil Maxik

Operační systém v C# ? — založil Algon

Operacni system na serveru — založil tobik

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý