A Microsoft megnyitotta (MIT licenc alatt) az MS-DOS 4.0 forráskódját

A Microsoft 10 évvel ezelőtt megnyitotta az MS-DOS 1.25 és 2.0 forráskódját. Tegnap pedig (az IBM-mel egyeztetve és vele egyetértésben) publikálta MIT licenc alatt az MS-DOS 4.0 forrását is. Részletek a bejelentésben. A forráskód megtalálható a Microsoft/MS-DOS alatt a GitHub-on.

Hozzászólások

2057-re a Win 11 forrása is kint lesz!

trey @ gépház

Egyetértek. Persze, örülni kell, hogy kiadják egyáltalán, de nagyon lassan megy nekik. 43 év alatt annyira jutottak, hogy az 1.25, 2.0, 4.0 ki van adva.

Amit nem értek, hogy miért a 4.0 kódját adták ki, az egy kb. senki által nem használt kiadás. MS-DOS-ból a 3.30, az 5.0 és a 6.22 volt jelentős, a többi felejtős, nincs használati köre. A 3.30-as XT-kre, meg 8088-as, 8086-os klónokra a legjobb, az 5.0 286-osra, 386-ostól felfelé meg kb. semmi értelme nincs mást használni, mint 6.22 (hacsak nem licencokból FreeDOS-t, Caldera OpenDOS-t, vagy hasonlót).

Egyébként nekem mindig is az volt az elméletem, hogy sok fejlesztő cég azért nem nyitja meg a forrást, mert tele van a kód gányolással, mástól lopott részletekkel, és nyilvánosság előtt nem merik vállalni. Át kéne írniuk, de az meg munka, pénz, azt nem teszik bele, hogy aztán ingyen elosztogassák.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Nem ez a gond. A megnyitással meg utána a karbantartással is rengeteg meló van.

Ha a szándék meg is van - a legnagyobb gond a több ezer (több tízezer? százezer?) beszállítótól/jogtulajdonostól  származó mindenféle dolog - hatalmas erőfeszítés lenne a szükséges engedélyeket megszerezni/kigyomlálni/újraírni, stb.

Szerintem a DOS forráskód igazi jelentősége oktatási célú.
Ha a Minix az állatorvosi ló, amin meg lehet mutatni az alapelveket, a buktatókat és a helyes elvi megoldásokat, valamint hogyan kell megtervezni egy oprendszert; akkor a DOS kiváló kontraszt, ami megmutatja, hogyan lehet egyszerűen, takarékosan megvalósítani egy oprendszert. Amikor csak az a cél, hogy működjön és egyszerű legyen.

Hát nem tudom, nem ismerem azt a világot, de aki firmware-t ír, annak szerintem nem kell fájlrendszer, betölthető driverek, meg parancsértelmező - aki meg mást, annak most már van egy minimum a segge alatt alapból (linux vagy akármi?), amit hasznosabb ismerni. Én nem látom a dos jelentőségét a mai világban már.

de aki firmware-t ír, annak szerintem nem kell fájlrendszer, betölthető driverek, meg parancsértelmező

Mar miert ne kellhetne? :) En is irok ilyeneket (van rajta filerendszer, shell, frissitheto driverek/komponensek), mereteben nagyjabol pont ugyanakkora mint amekkora a DOS volt anno igy rezidensen (30-40-50k). Persze mindez beagyazott, headless rendszereken.  Azaz a monitor + billentyuzet helyett csak kulonbozo fajta halozati interface-eken keresztul elerheto konzol(ok) vannak a firmware-cuccmanyon. 

Szoval ehhez manapsag sem kell linux a seggunk ala, bar egy jol osszerakott RTOS vagy hasonlo keretrendszer nagyon sokat segit. 

Én nem látom a dos jelentőségét a mai világban már.

Ez viszont a fentiek mellett is tokeletesen igaz! Akar erosen beagyazott, akar application-driven rendszerekben egyarant semmi szukseg ilyesmire. Persze azon kivul ahogy pink kollega is mondja, a DOS az egyszeru volt es takarekos, nem biztos hogy abbol kiindulva barmi korszeru, hordozhato, fenntarthato dolgot erdemes is lenne letrehozni.

Én sem tudom elképzelni, hogy a mai lehetőségek közepette pont DOS-szal akarnék bármit megvalósítani. Történelmi jelentősége van talán, de haszna nincsen.

Az érdekes, hogy az akkori fordítók gyengébb optimalizálása és a nagyon szűkös erőforrások miatt agyon kellett optimalizálni, de ma ilyet még beágyazott mikrovezérlőkön se csinál senki, X86-ra meg tuti nem lesz ilyenre szükség. Mivel állítólag a kód jelentős része X86 ASM, másra nem jó, kivéve persze ha emuláljuk, vagy átírjuk másik procira.

Jelentősége valóban nincs ma már. Legacy programokhoz készített emulátorokhoz felhasználható, meg retrózásra. Esetleg egy kis rekreációs bare metal programozásra még jó, mivel egyszerű. Van, aki ezt élvezi, hogy egy nagyon minimalista, korlátozott, könnyen áttekinthető platformra fejleszthet, aminek még sokkal kisebb a komplexitása, belépési nehézsége, mint a mai, végletekig bonyolított és absztrahált rendszereké.

Ezért sem értem, hogy pl. a 6.22-8.0-s DOS kódján miért ül a MS. Őrzik, mint egy kincset, csak kinek. Ők nem nyernek a rejtegetésen semmit, a DOSBox, FreeDOS, dosemu, 86box, PCem projektnek viszont segítene.

Nyilván daily driver gyanánt senki nem fogja használni. Szerverhez sem. Maximum valami gyártási vezérlőhöz, de ahhoz most is tudják, forráskód nélkül. Amit még nem értettem, hogy minek mellékelték sokáig a legtöbb OS nélküli gépre, miért nem Linuxot tettek fel azokra, ami épp úgy ingyenes, de legalább több mindenre használható.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Karbantartani nem kell. Kiadják, kiadják, kint van a kód. Így is elszarták, mert a git-es tárolóba unixos sorvégekkel és UTF-8-ban tették ki, emiatt régi rendszereken nem fordul, kozmetikázni kell, a FreeDOS csatorna tett ki erről videót a YouTube-on.

A többi részében ezt mondom én is, hogy másoktól származó kód, ezért se jó ötlet másoktól átvenni kódokat ész nélkül. AI sem a legjobb ötlet, mert később jogi probléma lehet belőle. Ötletelésre jó az AI, meg a Stackexchange és társai, irányt lehet vele keresni, de a kódokat nem szabad 1:1-ben illesztgetni belőlük.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Hiánypótló.
Anno a DOS 4.0 vmiért kimaradt. 3.3 után 5.0 következett.

Nem te vagy az egyedüli. A 4.0 szinte mindenkinek kimaradt. Egy kísérleti, korábbi verziókkal a gyakorlatban nem egészen kompatibilis, multitasking kiadás volt, sokan panaszkodtak rá, nem működött megfelelően. Így mindenki a 3.30-ason maradt, onnan meg az 5.0-ra upgrade-elt.

Ha már MS-DOS 5.0, annak a reklámja is nagyon durva, a MS már akkoriban a trollkodás magas fokán volt, pedig még csak 1991-et írtunk.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

komment a bios/msbio1.asm-ben:

BECAUSE IBM IS FUNDAMENTALY BRAIN DAMAGED

A Windows-nak is nagyon jót tenne. Legalább ki lennének javítva a hibák. Igaz, hogy elsőre kb. a kódbázis 70%-át kukázni kellene. Szar a hálózat kezelés, szar a nyomtatási rendszer, az UI egyre inkább szétesik. Mióta tákolják a sz@r gépházat? Vagy hagyták volna meg a vezérlőpultot, vagy ennyi idő alatt átrakhatták volna a beállításokat. A registry egy feneketlen kút. Az NTFS is egy hulladék a mai modern fájlrendszerek tükrében.

...niche operating system for video games and stuff like that...

Az NTFS is egy hulladék a mai modern fájlrendszerek tükrében.

Mely modern fájlrendszerekre gondolsz? Én azt látom, hogy pl. a Linuxos fájlrendszerek kacskaringós történelme pont ellent mond ennek. Reiser4 szó szerint meg lett gyilkolva, ZFS licencmizéria, Btrfs hol ajánlott, hol nem. Ezek mind arra való kísérletek voltak, hogy funkcionális paritást érjenek el az NTFS-szel.

Szerintem a Gépházat csak a mobilos és tabletes felhasználás miatt kezdték el egyáltalán fejleszteni és azon dolgokat, amik ilyen eszközön beállíthatóak, be is lehet állítani, azóta meg hogy leáldozott a mobil biznic, már nem éri meg nagyon piszkálni.

Ah, regi szep idok! Csupa nagy betus, max 8+3-as filenevek, szepen olvashato assembly, CL.EXE & LLIBCE.LIB, char far * pointerek! :) Az mondjuk erdekes, hogy a *.c es *.asm (bocsanat, *.C es *.ASM) forrasok aranya kb 1:10-hez (mind modulok szamaban, mind LoC-ban). Pedig a C-t arra talaltak ki hogy oprendszereket irjanak, es az x86 is igencsak C-barat architektura. Ilyet viszont meg nem remlik hogy lattam volna anno, erdekes szintaktika:

MOV     AL,BYTE PTR DS:[BX].CMD

De igen, valoban az 5.0 lesz majd az igazi. Marcsak evtizedek kerdese.

Ebben megvédeném a MS-ot. Anno rákényszerültek erre, hogy ASM-ben írják, mivel akkor még a fordítók nem tudtak nagyon magas szinten optimalizálni, azt a fejlesztő végezte kézzel, meg az erőforrásokkal is nagyon kellett küzdeni. Egy 20 címbites x86-oson tényleg csak max. 640 KB volt használható (sőt, az első PC-k még csak 64 KB RAM-ot tartalmaztak), nagyon figyeltek rá, hogy a kód minden bájtra optimalizálva legyen, minél több memória maradjon a felhasználói programoknak. Így ez erőteljes kényszer volt, hogy lehetőleg mindent ASM-ben írni, ami vagy memória- vagy CPU igényes. Amihez elmegy a C, azok a kisebb utility-k, pl. bin2exe, ed, format, fdisk, stb..

Azt is vedd figyelembe, hogy akkoriban a C fordítók, amik DOS-ra voltak elérhetők, elég ergyák voltak, viszonyítva a többi platformon elérhető fordítókhoz képest is. Igen, a C-t arra találták ki, hogy OS-t írjanak benne, és el is ment a Unix esetében, mert azok eleve combosabb gépekre voltak szánva. A piszlicsáré korai PC-ken viszont ez nem ment, a Xenix is nagyon csúnyán nyögött ezeken, kb. használhatatlanul futott. A PC, mint platform, egészen a 386-ig nagyon limitált volt, onnan volt csak, hogy volt rendes védett mód, 32 bites memóriacímzés, multitasking, stb.. Nem véletlen, hogy a jelentős, modern OS-ek a 386-os után jelentek meg (sőt, még inkább a 486-os korszakban), WinNT, Linux, 386BSD, NetBSD, FreeBSD. Kompromisszumosan a 286-on elment volna még a történet, de ott voltak limitációk még, a 286 balszerencséje, hogy röpke időt volt a piacon legjobb alternatíva, akkor se terjedt el, mert a legtöbb user kihúzta az XT-jével, és a 286-ot (amit az IBM egyébként is nagyon későn vezetett be, nem 82-ben, a megjelenésekor, hanem csak 1984-ben az AT megjelenésével) mindössze 2 évre rá követte is a 386-os, ami a klóngyártók előbb kihoztak, nem vártak vele a 1987-ig, mire az IBM végre piacra dobta a 386-os gépeket is (PS/2-vonal). Az IBM el is kezdett szétesni a 186-os, 286-os korszakban, mire meg a 386-osokkal összeszedte volna magát, addigra a klóngyártók előzték be.

Ahol a C nagy előnyt ad, az a portolhatóság, de a MS-nál ez nem volt szempont, főleg akkoriban nem, eleve úgyis csak PC-kre volt szánva a DOS. Az MS-DOS 4.0 hiába jelent meg 1986-ban, a MS minden DOS verzióval törekedett rá, hogy akár a leggyengébb kiépítésű PC-n is fusson, pl. egy 1981-es 4,77 MHz-es 8088-as IBM PC-n (ez még nem is XT volt), 64 KB RAM, stb.. Ezt tartotta is a 6.22-ig, bár 5.0-tól felfelé nem érte meg ezeken a gépeken újabb DOS-t futtatni, mivel bloat volt ezekre, kevés szabad memóriát hagyott, és ami az újabb DOS verziók előnye volt (EMS, XMS, nagyobb partíciók, nagyobb floppy-k támogatása), azt úgyse tudtad használni ezeket a gépeken, úgyhogy ezekre a mai napig 3.30-as DOS ajánlott inkább.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Csak az a baj, hogy
1) ez nem a végleges, hanem béta
2) ahogy írja is az oldal, hiányoznak belőle kódrészek, amiket újra kell írni
3) mivel kiszivárgott, a licence nem FOSS, így jogilag nem használhatja fel senki, mert megüti érte a bokáját.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)