DOS a od koho opisoval [Was:Re: OT: pomoc]

Ing. Pavel PaJaSoft Janousek janousek na fonet.cz
Čtvrtek Leden 31 09:02:35 CET 2002


"Ing. Miloslav Ponkrác" wrote:
> >"Ing. Miloslav Ponkrác" wrote:
> >> b) Díky znalostem MS-DOSu. Nezlobte se na mě, ale MS-DOS jednak něco z
> Unixu
> >> ukradl, a jednak princip ovládání MS-DOSu je velmi podobný příkazové
> řádce v
> >> Unixu.
> >
> > Prominte, ale pokud klony DOSu neco ukradly, tak to nebylo z OS typu
> >UNIX, ale z OS CP/M, ostatne, pozustatky jsou tam do dnes (JMP 5), COM
> >nahravan od adresy 100 hexa apod. - verim, ze tento system melo spousta
> >nadsencu na osmibitovych mikropocitacich...
> 
> Z Unixu se do DOSu převzala adresářová struktura, přesměrování vstupů a
> výstupů, roury, ovládání souborů přes handle, a ne přes FCB bloky, trochu
> napodobení principů ovladačů zařízení, a možná ještě řadu dalších věcí, na
> které si nevzpomenu.

	Ale kdeze: 
- adresarova struktura - CP/M verze 2 ma jednourovnovou, verze 3
viceurovnovou (mam pocit, ze do 8 zanoreni, ostatne, i delka prikazoveho
radku na 64 znaku (jinak je treba pouzit davkovy soubor) je prave ze
CP/M)
- presmerovani - v CP/M verze 2 naprosto funkcni, jak presmerovani
vstupu, tak vystupu (na stderr si nepamatuju a ani v MS DOSu je
standardne nepresmerujete)
- roury - ty nema ani DOS poradne do dneska...
- pouziti logickych zarizeni jako LPT, PRN, CON atd. je rovnez prevzato
ze CP/M verze 2, v UNIXu se s nicim takovym nesetkate
- ovladace zarizeni - a jak jinak nej ovladacem nazvete submodul
(volitelny), ktery dokazal strankovat pamet (skutecne strankovat, ne
virtualizovat), protoze konkretni implementace na procesor Z80(A-H)
mohla adresovat linearne az 64kB (pravda, na konci byl zasobnik a OS, na
zacatku pro zmenu systemove udaje), ale strankovanim jsme se mohli
dostat jiz na zacatku 80. let (mozna drive) na megabajtove hranice (je
Vam zrejme znam pocitac od TNS Slusovice se 256kB RAM a genialnim
Pascalem verze 3.3 - starsi generace si zrejme vzpomene?)

	Takze z Vasich namitek zustalo pouze ovladani souboru pres HANDLE, coz
si troufam tvrdit, je daleko novejsi vec, navic predtim odstinena (napr.
v jazyce C) knihovnou, ktera ma standardizovane rozhranni (nejsem si
vedom, ze by K&R C definovalo veci jako read, write pro soubory apod.,
to je zalezitost (az) ANSI C89). Nevidim zadne podobnosti ci logicke
vazby na OS typu UNIX.

	Mel jsem tu cest videt na vlastni oci MS DOS verze 1.0 (vnitrnosti -
neveril byste v kolika jazycich lze dohromady napsat operacni system -
od ASM, pres Fortran, Pascal, C az po BASIC - pokud neverite, treba to
bude jednou vec verejna a pak se presvedcite) a mohu rici, ze to nebylo
'temer' nic jineho nez CP/M pro Z80 preportovane pro I8086 (zajimave, ze
nevysli z verze pro I8080 - copak neexistovalo?). Navic mozna ze bych
jeste nekde doma vyhrabal komentovane source CP/M verze 2.2 pro procesor
Z80. Kdyz jsem si osobne delal srovnani techto dvou implementaci,
shodnost byla vice jak 80% (s ohledem na pouzitou architekturu CPU, z
ficur I8086 toho pouzivalo zalostne malo - je logicke, ze napr. nahrada
Interupt modu 2 (klasicka IM2 na Z80) musela byt delana jinak, tezko se
nahradi registrem, kdyz chybi cely mechanismus).

	Nerikam, ze jednotlive OS od sebe 'neopisuji', nicmene je treba si
ovedomit, ze stejne jako GUI, tak ani tyto ficury, o kterych se bavime,
se neobjevily z cista jasna v nejakem komercnim OS, ale ze jsou
vysledkem vyzkumne prace, ktera NEBYLA vazana na zadny OS. A tvrdim, ze
MS DOS je operacni system, ktery krome nekolika bastlu jako EMS/LIM a
jinych podobnych a v praxi VELICE PROBLEMATICKYCH (normovane rozhranni
bylo v dobe, kdy jiz MS DOS byla vykopavka, udrzovana z historickych
duvodu) features (a Buh vi, zda-li je to jeho prace) neprisel naprosto s
nicim revolucnim ci alespon originalnim. Ostatne, to Microsoft nedela
ani v soucasnosti, ze...

	Aby se to tykalo i Linuxu a nebylo to prilis OT, podobne je na tom
Linux - jednak spoustu veci proste 'opsal' (ano, naprogramovalo se to
treba znovu, kdyz to neslo prevzit z duvodu licence), puvodne z MINIXu,
pozdeji zejmena z BSD vetve, neb je stale vesmes akademicka, jedine co
mne napada jsou veci okolo CBQ & routingu vyssi tridy ala Kuznecov
(nejsem si jist, zda-li pote nebyl port do *BSD), naopak takove PPP jsme
mohli (mozna stale muzeme) BSDckarum jen zavidet (kdyz nic jineho sbohem
diald, kdo vi co dela, je mu to jasne) a co jsem nevidel v jinem OS v
takovem tvaru je DRI (pravda, v profesionalnich grafickych studiich se
nepohybuji, tudiz nevim, co dela interne napr. 4DWM a jine desktopy pod
X-Window na grafickych stanicich, vim, ze SGI ma specificke rozsireni do
X-serveru, ktery 'nema' nikdo jiny). Nic jineho mne nenapada at uz
moznosti (je hezke, ze jako prvni budeme moci mapovat uzasne obrovske
soubory, skutecne to vyuzijeme, kdyz nemam podporu v Interface
(knihovne) mezi OS a nasim programem) ci features, experimentuje se s
ruznymi teoretickymi modely apod., ale to nejsou vlastnosti, to jsou
konkretni implementace vlastnosti (napr. VM, cache), ktere najdeme v
kazdem OS - zajimave, ze urcite implementace maji bobmastickou latenci
(mysleno nizkou) v Linuxu oproti BSD, jine veci jsou na tom presne
opacne (ostatne proto se tvrdi, ze z hlediska ciste sitoveho aplikacniho
provozu je vykonnejsi FreeBSD, z hlediska prace na 'WorkStation'
Linux)...

-----------------------------------------------------------------------
Ing. Pavel Janousek (PaJaSoft)                 FoNet, spol. s r. o.
Vyvoj software, Intranet / Internet          Sokolova 67, 619 00 Brno
E-mail: mailto:Janousek na FoNet.Cz             Tel.: +420  5  4324 4749
SMS:    mailto:P.Janousek na SMS.Paegas.Cz      Fax.: +420  5  4324 4751
WWW:    http://WWW.FoNet.Cz/               E-mail: mailto:Info na FoNet.Cz
-----------------------------------------------------------------------


Další informace o konferenci Linux