aa 4e8Delta 2 Docent 3a8(Delta) 2f Oto artykuî z MA 9/96 (strona 36) 2fpisany przez Docenta/UNION. Jest to 2fwîaôciwie dialog pomiëdzy 2fuûytkownikami internetu. W caîym 2ftym sporze poszîo o to jak duûy moûe 2fbyê twardy do Amigi. 3f "Jeôli dysk ma 63 sektory na 3fôcieûce i 16 gîowic (chodzi o 3fparametry logiczne), to moûe mieê 3fmax. 4162 cylindry. Jeôli w 3fHDToolbox wpisze sië w pole 3f'Cylinders' liczbë 4163 to w polu 3f'Size' zobaczymy liczbë' - 2047 Meg' 4f Tak wiëc po przemyôleniu wyników 4fnasuwa sië wniosek, ûe maksymalnie 4fmoûna wykorzystaê tylko 2 GB, bez 4fwzglëdu na to jak duûy jest dysk. A 4fmoûe sië mylë?" 1f Na co boski Docent odpowiedziaî 1fnastëpujâco: 2f "Mylisz sië. Oficjalnie pojemnoôê 2fpartycji, zdefiniowana w RDB moûe 2fwynosiê nawet 4 294 967 295 bloków o 2fdefiniowanej wielkoôci od 1 do 4 294 2f967 295 bajtów... Niestety, 2fograniczenie jest nakîadane przez 2fsystem i wynosi 4 294 967 295 2fbajtów, czyli 4 GB, ale juû przy 2 2fGB zachowanie niektórych programów 2fmoûe byê niepoprawne. Problem leûy 2fw dos.library w filesystemie ze 2fwzglëdu na zgodnoôê ze starymi 2fwersjami DOS'u, napisanymi w bcpl, 2fwiëkszoôê funkcji ma parametry typu 2flong. Takûe wiëkszoôê pól w 2fstrukturach np. FileInfoBlock i 2fInfoData jest tak samo zdefiniowana. 2fO ile w InfoData nie ma to wiëkszego 2fznaczenia [...] o tyle w wypadku 2fFileInfoBlock jest problem - 2ffib_Size (rozmiar pliku) nie moûe 2fbyê wiëkszy niû 2 GB. Ten sam 2fproblem bëdzie z Seek) - offset jest 2fzdefiniowany jako long - i wiëkszoôê 2finnych funkcji dos.library. Mimo ûe 2fod wersji 2.04 DOS jest juû w C, to 2fze wzglëdu na kompatybilnoôê 2fpozostaîy stare deklaracje np. LONG 2fczy MAXINT = $7fffffff (pozostaîoôê 2fbcpl). Limit wielkoôci partycji 2fwynosi 4 294 967 295 bajtów - jest 2fto maksymalny rozmiar zmiennej typu 2funsigned long, wykorzystywanej w 2fIOStdReq. Ze wzglëdu na artefakty 2fbcplu, przy takich partycjach 2fniektóre funkcje DOS' u mogâ úle sië 2fzachowywaê [...]. Np. przy 2fpartycji wiëkszej niû 2 GB komenda 2fbëdzie zracaîa ujemnâ wartoôê 2fpartycji. To samo dzieje sië w 2fHDToolboxie. Zresztâ Commodore sam 2finformowaî ûe partycje wiëksze niû 2 2fGB nie sâ "reliable". Powstaje 2fpytanie, czy da sië standardowo 2fzainstalowaê np. 8 GB, dwie 2fpartycje... Teoretycznie powinno 2fsië daê. Ale w rzeczywistoôci nie 2fjest to moûliwe. Problem polega na 2ftym, ûe filesystem korzysta z device 2fdo czytania z dysku, np. 2fscsi.device. Niestety, uûywa do 2ftego struktury IOStdReq, w której 2fpole io_Offset jest zdefiniowane 2fjako ULONG. Poniewaû device wymaga, 2faby w tym polu byîa podawana wartoôê 2fw bajtach, w rezultacie moûna z 2fdysku wykorzystaê maksymalnie 4GB. 2fI nie pomoûe tu pomysî z PC 2fzwiëkszania rozmiaru bloków... 3f Sâ trzy rozwiâzania tego problemu: 3fjedno to napisanie na nowo 3ffilesystemu, który bëdzie np. 3fio_Offset ustawiaî w blokach oraz 3fprzepisanie wszystkich devices (co 3fjest nie do zrobienia jeûeli chce 3fsië zachowaê kompatybilnoôê). 3fDrugie rozwiâzanie to przepisanie 3ffilesystemu tak, aby przy offsetach 3fwiëkszych niû 4 GB wywoîywaê przez 3fdevice funkcjë SCSI - direct i 3finterpretowaê dane... To 3frozwiâzanie bëdzie dziaîaê TYLKO z 3fdyskami SCSI... [...] Trzecie 3frozwiâzanie to pomysî zrealizowania 3fw giga.device. Pozwala on tylko na 3fwykorzystywanie duûych pojemnoôci, 3fale nie jako JEDNEJ partycji. Jeôli 3fktoô chce uûywaê wiëkszych dysków 3fSCSI, to moûe zainstalowaê sobie ten 3fdevice (na 3fAminecie/disk/mics/giga171.lha) 3fktóry pozwala na uûywanie wiëkszych 3fpartycji. [...] 4f W skrócie nie widzë moûliwoôci 4fîatwego przeskoczenia limitu 4 GB 4f[...]. Chyba tylko rozwiâzanie w 4fgiga.device jest îatwe do 4fzaimplementowania w nowej wersji 4fsystemu (jeôli bëdzie...). Ale czy 4fktoô widziaî dyski AT-Bus wiëksze 4fniû 4 GB ? 1b DOCENT/UNION 1b MA 9/96 2a Delta / Opium^HV