Nincs kedvetek Dos-t fejleszteni?





#49
"Lopj mások kódjából lehetőleg minél kevesebbet."
Ha egy kódot open source licenc alatt tettek közzé (pl. MIT, Apache, GPL), akkor szabadon felhasználható, ameníg az a fejlesztő betartja az adott licenc feltételeit.





Miért lesz egy csomó kérdés alatt ilyen idióta ovis szájkarate?
Mert, ha még normális veszekedés lenne érvekkel, szakmai dolgokkal...
De itt a személyeskedés, sértegetés, ovis hajhúzogatás, nagypofáskodás...





Me:
Milyen technikai és tárgyi tudás, felkészültség kell egy DOS színvonalú operációs rendszer megírásához?
ChatGPT:
Egy DOS-szintű operációs rendszer megírása alapos Assembly tudást, a BIOS és hardver interfészek ismeretét, valamint nagyon erős elméleti hátteret igényel. Ehhez szükséged lesz megfelelő fejlesztői eszközökre, például assemblerekre, fordítókra, emulátorokra és debugger-ekre.
Bár a DOS viszonylag egyszerű felépítésű volt, mégis egy komplett rendszer megírása komoly projekt. Érdemes lépésről lépésre haladni: bootloader → kernel alapok → fájlkezelés → shell, miközben tanulmányozod a működő rendszereket.
1. Technikai tudás
a) Architektúra és hardverismeret
x86 architektúra alapjai: A DOS a 16 bites Intel x86 architektúrán (8086/8088, 80286) futott. A regiszterek, memóriacímzés, és a szegmens:offset memóriaelérés megértése kritikus.
BIOS szolgáltatások: A DOS nagymértékben a BIOS megszakításokra támaszkodik (INT 0x10, INT 0x13, stb.) a perifériák (képernyő, billentyűzet, lemez) kezeléséhez.
Hardver perifériák:
Billentyűzet és képernyő kezelés (pl. karakterek kiírása text módban).
Tárolóeszközök (floppy, merevlemez) kezelése.
Időzítő (PIT) és egyéb hardverelemek működése.
b) Assembly nyelv ismerete
16 bites x86 Assembly: A DOS alapvetően 16 bites real mode környezetben fut. Ismerni kell az 8086 utasításkészletet, a regisztereket, az utasítások működését.
BIOS és DOS megszakítások használata:
Például:
INT 0x10: Képernyővezérlés.
INT 0x13: Lemezkezelés.
INT 0x16: Billentyűzetkezelés.
Bootloaderek írása: Megérteni, hogyan indul a gép, hogyan lehet betölteni a saját kódot a memóriába.
c) C, C++ vagy Pascal nyelv ismerete
Bár a DOS kernelének egy része Assembly-ben készült, később egyes részeit C nyelven írták meg.
Ha bonyolultabb modulokat szeretnél, a C nyelv nagyobb absztrakciót és sebességet nyújt.
A Pascal is hasznos lehet, mivel könnyebben használható mint a C vagy a C++.
d) Operációs rendszer elméleti alapjai
Boot folyamat: Hogyan indul a rendszer, hogyan töltődik a kernel a memóriába.
Fájlkezelés: A FAT12/16 fájlrendszer alapjai, mivel a DOS ilyen fájlrendszert használ.
Memóriakezelés: Real mode címzés és memória kiosztás.
Parancsértelmező (shell): Hogyan írjunk egy egyszerű parancsértelmezőt (pl. COMMAND.COM stílusút).
Task és process kezelés: Bár a DOS nem támogat multitaskingot, egyszerre egy program kezelése szükséges.
2. Eszközök és felkészültség
a) Fejlesztői eszközök
Assembler fordító: Pl. NASM, MASM vagy TASM (Turbo Assembler).
C fordító: Például Turbo C, GCC (cross-compiler).
Hex editor: A bináris fájlok ellenőrzésére és manipulálására.
Lemez image kezelő: A kódot bootolható floppy image-re írni. Pl.: dd, WinImage.
Emulátor: Virtuális gépen teszteléshez:
QEMU, Bochs, DOSBox, VirtualBox.
Debugger: Pl. DOS DEBUG, GDB, vagy Bochs Debugger.
b) Hardver és környezet
Régi PC vagy egy emulátor: A fejlesztést emulátorokon is lehet végezni, de egy régi x86-os PC-n való futtatás hitelesebb.
Boot szektor írása: Képesnek kell lenned egy 512 byte-os boot szektort írni és floppy vagy HDD image-re helyezni.
Floppy/Merevlemez képek kezelése: A fejlesztés során fájlokat kell olvasni és írni a képfájlokra.
3. Fejlesztési lépések
Bootloader megírása
Létre kell hozni egy boot szektort, amely betölti a kernelt a memóriába és átadja neki a vezérlést.
Kernel alapfunkciók implementálása
Képernyőkezelés: Szöveg kiírása.
Billentyűzet input kezelése.
Alapvető hibakezelések.
Fájlkezelés megvalósítása
A FAT12 fájlrendszer támogatása az egyszerű fájlolvasáshoz.
Parancsértelmező (shell)
Egy egyszerű parancssori kezelő, amely képes fájlokat futtatni.
Programbetöltő (executive)
Programok betöltése a memóriába és futtatása.
Fájlműveletek
Fájlok olvasása, írása, listázása, törlése.










"Nem mindenki más, hanem ti. Ti, akik nem képesek lenyelni a békát, elfogadni a valóságot, tudomásul venni a semmit érő mivoltotokat,
legalábbis ezen a területen."
Fogadni mernék, hogy valójában te semmilyen normális helyen programozói munkakörben nem dolgoztál de még rendszergazdának se tudlak elképzelni. Olyan pökhendi, nagyképű mindenki birka csak én nem stílusod, hogy ezt már egy interjún is kiszűrik majd megköszönik a jelentkezésedet.










""Elég sokan szerettek volna a 2005-2010 közötti időkben oprendszert fejleszteni. A legtöbb persze addig sem jutott el, hogy bebootoljon és védett módba lépjen."
És most őszintén: ez az érzékeny kis lelkecskédnek miért is fáj ennyire?"
Nekem? Miért is fájna?
Ez annak fog fájni, aki figyelmeztetés ellenére beleáll a szarba, derékig.
Az operációs rendszer fejlesztés ebben a szakmában a legbrutálabb dolog, amit csak el lehet képzelni. Ma még csak hagyján, mert van elég sok emulátor, segédeszköz, ott az osdev.org ami tele van anyaggal, doksival, példa projektekkel is.
Mindemellett, aki ilyesmibe akar beleállni, az bizony szívni fog. Hogy milyen sokat, az csak az Ő kitartásán múlik.
A permanens szemétkedő, a kivénhedt birge, a sok más baromsága mellett mit is állított? Hogy 3 nap alatt, meg, hogy vannak könyvek. Hát igen, vannak, de ez egy olyan buli, ahol mindent annak kell megvalósítani, aki ebbe belefog. Ha egy gép billentyűzetén az egyik gomb lenyomódik, akkor történik valami. Na de mi? És mit lehet azzal kezdeni? Ezt ki kell deríteni, ahogy azt is, hogy miképpen kell kezelni a képernyőt, hogy kell szöveget, vagy számot kiírni, scrollozni. Ezeket meg kell tervezni és meg is kell írni. A fájlokkal való műveletek, a particionálás, formázás, file létrehozás, törlés, hozzáírás, ezek mögött olyan történések vannak, hogy a vállalkozó maga alá huggyant, ha csak tudomást szerez a feladat körülbelüli méretéről és persze ha elég okos, ha fel is képes fogni azt.
És nem kell itt valami hiper-szuper, ultra dögös journaling mindent tudó, naplózó filerendszerre gondolni. Elég csak egy szimpla FAT32 vagy egy ext2.
Még a szükséges hozzávalók megértése sem könnyű feladat, hát még a megvalósítás. Nem csoda, hogy tőkeerős cégek, ütőképes szellemi kapacitás birtokában sem álltak, állnak bele ilyesmibe. Még a Google - ami a nap 24 órájában szarja a pénzt - is megelégedett az Android nevű cég linuxra épülő, termékének a felvásárlásával. Pedig nála aztán van pénz-paripa-fegyver dögivel.
Aki ilyesmit tervez, az, ha elég kitartó, úgy fog frusztrálódni, hogy nem ismer majd magára. Ha meg nem elég kitartó, akkor nem fog ő csinálni semmiféle operációs rendszert, de még annak halvány paródiáját sem. Hobbi szinten bele lehet nyalni ebbe a fagyiba is. Miért ne? Csak tudni kell, hol a határ, met aki nem tudja, az vagy beleőrül a feladatba, vagy olyan picire megy össze a "szakmai" egója, hogy elektronmikoszkóppal kell majd keresgélni.
Nekem ugyan totál mindegy, mindenki azt csinál az idejével amit akar,
én szóltam.





1./ "A permanens szemétkedő, a kivénhedt birge, a sok más baromsága mellett mit is állított?" -> Tükörbe néztél megint bátyja?
2./ Hobby projektről hallottál már? Emberek sok dolgot csinálnak hobbyból. Elképesztően sötét vagy.





"Nem mindenki más, hanem ti. Ti, akik nem képesek lenyelni a békát, elfogadni a valóságot, tudomásul venni a semmit érő mivoltotokat,
legalábbis ezen a területen." -> És Te mennyit érsz? Most őszintén bármely területen. Aki így tud csak kommunikálni? Nézz már körbe egy picit.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!