Hlavní navigace

Názor k článku Podpora 32 bitů v distribucích? Možná už zbytečný luxus od xxxxx - Díky moc za opravu. Kaji se, dynamické knihovny...

  • Článek je starý, nové názory již nelze přidávat.
  • 6. 2. 2016 3:01

    xxxxx (neregistrovaný)

    Díky moc za opravu. Kaji se, dynamické knihovny podporované "OS" opravdu byly už (minimálně) ve windows 3,x a tuším už i menší (w2x už byly určeny pro 286 a podporovaly chráněný režim, tak možná i tam).

    Jen si vzpomínám, že se s .dll muselo nějak hodně opatrně, protože W3x už běžně běžely v protect režimu a zároveň (jak jsem zmiňoval) mohly mít po rozšíření i omezený 32 bit režim, základ však byl stále 16 bit. Nějak mi ten mix a ochrany nedělaly dobrotu pro sdílené věci, tak linkovat staticky byla jistota (ostatně ještě u w95 to bývalo lepší staticky - tam kvůli hw výjimkám /typicky koprocesoru/ kde mi to jinak z .dll padlo natvrdo - ale to mohl být problém Borladnu, protože obsluha hw výjimek (pozor, myslím na úrovni už přeloženého kódu - strojáku) nebyla sjednocena a MS ji měl maximálně jako nedokumentovanou, pokud vůbec jednotnou).

    Pod DOS samozřejmě šel napsat a přeložit program (code i data) i pro větší velikost než 64K. Jen se s tím muselo opatrně. Data se dala ošéfovat už na straně kompilátoru a linker to většinou zchroustal ok (i statická data, když si dal člověk pozor). Ale u code mi to fungovalo jen pokud jednotlivé zdrojové soubory (např. .c) v přeloženém stavu nepřesáhly 64K. Totéž knihovny. Jinak měl problémy linker. Mluvím o situaci, kdy bylo odděleno linkování a překlad a použit třeba mix zdrojů a různých překladačů (c + samostatný asm přeložený bokem /ne v rámci c/, ...). Tam býval ten limit 64K code na každý z linkovaných objektů (a tuším to nešlo obejít).

    Dynamické loadování "knihoven" (tedy myslím úseků programu samotného) pod DOS (ne pro w3x, díky za opravu) na úrovni OS nebylo vůbec. Pochopitelně si člověk mohl něco udělat po svém /a často dělal/ a někdy to podporoval přímo překladač+linker (např. pozdější Turbo Pascal tuším umožňoval). Ale pak bylo bez šance použít samostatný překlad a pokusit se linkovat .obj pod jiným linkerem než co přišel s daným překladačem a danou verzí překladače. Neexistoval sjednocený přístup.