Provided by:
manpages-pl_20051117-1_all 
NAZWA
dos, xdos, dosexec, dosdebug - uruchamianie MS-DOS-u i programów DOS-
owych w Linuksie
SKŁADNIA
dos [ -ABCcdkVNXtsgKm234OU ] [ -h poziom ] [ -F plik ] [ -f plik ] [ -L
plik_dexe ] [ -u zmienna ] [ -D opcje ] [ -M rozmiar ] [ -e rozmiar ] [
-x rozmiar ] [ -P plik ] [ -o plik ] [ 2> plik_diagnostyczny ] [ -I
opcje_konfiguracyjne ] [ -U potok_wejsciowy[:potok_wyjsciowy] ]
dosexec [ -ABCcdkVNXtsgKm234OU ] [ -h poziom ] [ -H opcje_diagnostyczne
] [ -F plik ] [ -u zmienna ] [ -D opcje ] [ -M rozmiar ] [ -e rozmiar ]
[ -x rozmiar ] [ -P plik ] [ -o plik ] [ 2> plik_diagnostyczny ] [ -I
opcje_konfiguracyjne ] plik_dexe [ -U potok_wejsciowy[:potok_wyjsciowy]
]
dosdebug
xdos [ -ABCbdNtsK234O ] [ -h poziom ] [ -H opcje_diagnostyczne ] [ -F
plik ] [ -f plik ] [ -L plik_dexe ] [ -u zmienna ] [ -D opcje ] [ -M
rozmiar ] [ -e rozmiar ] [ -x rozmiar ] [ -P plik ] [ -o plik ] [ 2>
plik_diagnostyczny ] [ -U potok_wejsciowy[:potok_wyjsciowy] ]
OPIS
dos uruchamia emulator DOS-u, znany również jako DOSEMU.
plik_diagnostyczny jest opcjonalnie podawanym plikiem, do którego będą
kierowane wszelkie komunikaty diagnostyczne.
dosdebug służy do sterowania i odpluskwiania właśnie działającego
DOSEMU.
xdos uruchamia DOSEMU w oddzielnym okienku X. Jest to równoważne
poleceniu dos -X
dosexec uruchamia DOSEMU i wykonuje plik DEXE. Jest to równoważne
poleceniu dos -L
Chociaż ten program znany jest jako emulator DOS-u, jest on w
rzeczywistości wirtualną maszyną dla MS-DOS-u, która pozwala DOS-owi i
programom dla niego napisanym działać w środowisku przypominającym
komputer IBM PC/AT z procesorem Intel 80x86 w trybie rzeczywistym.
DOSEMU emuluje takie usługi, jak obsługa karty graficznej przez BIOS,
dyski, klawiatura, port szeregowy i równoległy (drukarka), pamięć CMOS
zawierająca informacje o konfiguracji komputera, zegar czasu
rzeczywistego, alokacja pamięci przez standard XMS 3.0, EMS 4.0 oraz
DPMI 0.9.
Ponieważ w rzeczywistości DOSEMU nie jest emulatorem DOS-u, do pracy
wymagana jest kopia systemu MS-DOS 3.3-7.00. (Przyszłe wersje DOS-u
przypuszczalnie będą działać, choć oczywiście nie zostało to
sprawdzone. DR-DOS 6.0 również współpracuje z tym programem).
Przeczytaj pliki QuickStart, ChangeLog, doc/announce, oraz Makefile
zawarte w dystrybucji źródeł, aby dowiedzieć się, jak skonfigurować,
skompilować i uruchomić DOSEMU.
WYMAGANIA W STOSUNKU DO KERNELA
Obecnie wymagany jest Linux w wersji 2.0.28 lub wyższej z wkompilowaną
obsługą SYSV IPC (System V InterProcess Communication - komunikacja
między procesami zgodna z Systemem V, przeczytaj ipc(2)). SYSV IPC
jest opcją, którą można ustawić podczas kompilacji jądra.
Poczynając od wersji dosemu 0.64.3 domyślną wersją jest kompletna
dystrybucja dosemu. Szczegóły znajdują sie w pliku
doc/README.vm86plus. Aby skompilować niepełną wersję powinieneś
uruchomić configure z opcją --enable-novm86plus.
Jeżeli używasz jądra w wersji 1.2.13 postaraj się o ostatnią stabilną
wersję. Podczas pisania tego opisu dostępną wersją był Linux 2.0.28
dostępny przez anonimowe ftp z ftp.funet.fi w katalogu
/pub/Linux/kernel/linux/v2.0/ oraz w wielu mirrorach na całym świecie.
OPCJE
-A uruchomienie z dyskietki A (nie musi to być prawdziwa stacja
dysków - patrz niżej)
-B uruchomienie z dyskietki B (nie musi to być prawdziwa stacja
dysków - patrz niżej)
-C uruchomienie z dysku twardego C (nie musi to być prawdziwy napęd
ani nawet system plików typu msdos - patrz niżej)
-c użycie bezpośredniego zapisu do pamięci konsoli (program musi
być uruchomiony na konsoli z ustawionym bitem suid na roota)
-d odłączenie od bieżącej konsoli wirtualnej lub tty i przyłączenie
do pierwszej dostępnej konsoli wirtualnej
-V użycie optymalizacji wideo charakterystycznej dla VGA
-k użycie bezpośredniego odczytu klawiatury (program musi być
uruchomiony na konsoli)
-F Pobieranie opcji z podanego pliku konfiguracyjnego zamiast z
/etc/dosemu.conf (trzeba mieć uprawnienia roota lub program musi
mieć ustawiony bit suid na roota)
-f Pobieranie opcji z podanego pliku konfiguracyjnego zamiast z
.doserc
-u zmienna
ustawia zmienną konfiguracyjną dla użytjkownika, której
istnienie może być sprawdzone w plikach /etc/dosemu.conf i
/var/lib/dosemu/global.conf w celu uzykania specyficznej
konfiguracji. Do podanej nazwy zmiennej zostanie dodany
przyrostek u_, aby uniknąć konfliktu nazw.
-L Ładuje i uruchomia plik DEXE (specjalny obraz dysku sytemowego
zawierający tylko jeden program DOS-owy)
-I analizuje ciąg opcji wystepujący po -I mający tę samą składnię,
co pliki /etc/dosemu.conf i .dosrc, np.
dos ... -I 'video { mda }'
Ta opcja jest przydatna do tymczasowej zmiany ustawienia jakiejś
opcji konfiguracyjnej. Możesz również uruchamiać dosemu z własną
konfiguracją za pomocą skryptu, np.
dos ... -I "`mojakonfiguracja.sh`"
gdzie mojakonfiguracja.sh jest skryptem wypisującym opcje
konfiguracyjne na standardowe wyjście. Jeżeli użytkownik oprócz
.dosrc posiada jeszcze inny plik konfiguracyjny, może go użyć w
następujący sposób:
dos ... -I "`cat innakonfiguracja.conf`"
Należy pamiętać o dodatkowym ujęciu parametru po -I w
cudzysłowy, ponieważ ma to być pojedynczy argument.
-D określa, jakie komunikaty diagnostyczne mają się pojawiać/nie
pojawiać
-h wypisuje konfigurację na stderr (standardową diagnostykę) i
kończy pracę (ustawia -D+c). Ta opcja jest przydatna do
odpluskwiania plików konfiguracyjnych. Zalecane jest użycie
również -O, aby przekierować komunikaty typu +c na stderr.
`poziom' może wynisić 0, 1 lub 2 i steruje ilością informacji
uruchomieniowych wypisywanych przez analizatora konfiguracji:
brak informacji uruchomieniowych (0), informacje uruchomieniowe
o pętlach (1), informacje uruchomieniowe dla if_else_endif (2).
-H podanie opcji obsługi dosdebug, aktualnie obsługiwana jest
jedynie `1'. Za pomocą -H1 można zmusić dosemu do czakania aż
terminal programu terminal zostanie podłączony. Aby analizować
sesję DOS-ową od samego początku, należy najpierw uruchomić
dosemu z opcją -H1, a następnie uruchomić dosdebug. Wówczas,
DOSEMU zatrzyma się przed skokiem do załadowanego sektora
startowego oczekując na podłączenie się dosdebuga. Po
podłączeniu znajdzie się on w stanie `stopped', co umożliwi
ustawienie pułapek lub wykonywanie krok po kroku dla kodu
inicjującego.
-O wysyłanie komunikatów diagnostycznych na standardową diagnostykę
-o wysyłanie komunikatów diagnostycznych do podanego pliku
-M ustawienie pamięci podstawowej na rozmiar kilobajtów
-m włączenie wewnętrznej obsługi myszy
-P wysyłanie kopii komunikatów diagnostycznych również do podanego
pliku
-2,3,4 wybiranie emulowanego procesora: 286, 386 lub 486 (OSTROŻNIE:
DOSEMU jest nie w pełni działa 32-bitowe, więc jeżeli program
wykrywając procesor 386 lub 486 używa 32-bitowych rejestrów i
funkcji BIOS-u, to może działać niewłaściwie. Jeżeli wydaje się,
że to właśnie jest przyczyną problemów, należy użyć opcji -2 by
wymusić na DOSEMU tryb 286)
-U definiuje potoki: wejściowy i wyjściowy dla asynchronicznego
sterowania DOSEMU z innego procesu. Format ma postać (bez
białych znaków pomiędzy)
potok_wejsciowy:potok_wyjsciowy
gdzie `:potok_wyjsciowy' można pominąć. Jednak w tym przypadku
żadnego sprzężenia zwrotnego ze strony DOSEMU nie należy
oczekiwać.
Ze względów bezpieczeństwa DOSEMU nie tworzy samodzielnie
nazwanych potoków, więc za nadanie prawidłowych uprawnień
potokom odpowiedzialny jest użytkownik. Należy zwrócić uwagę, że
w przypadku użycia tej opcji, obcy proces może sterować sesją
DOSEMU (np. powodując naciśnięcia klawiszy). Zatem ta opcja
powinna być używana wyłącznie przez nakładki (takie jak kdos),
które najpierw tworzą odpowiednie nazwane potoki, a następnie
odpalają DOSEMU. Aby zmusić DOSEMU do zwracania poprzez potok
znaczników uzgadniających informujących nakładkę o chwili
uruchomienia lub zakończenia polecenia sterującego i czy
zakończyło się ono pomyślnie można użyć specjalnego polecenia
sterującego ( ack on ). Format takiego znakowania jest
następujący
SYN: <polecenie>
<dowolny wynik polecenia>
ACK: code=n
gdzie n jest równe 0 w przypadku pomyślnego zakończenia.
Prostym terminalem sterujacym, mogącym służyć za przykład jest
dołączony program dosctrl. Pobiera on dwa potoki jako argumenty
i umożliwia podawanie poleceń sterujących, wśród których `help'
jest najważniejszym;-) Należy zwrócić uwagę, że dosctrl nie
odpala DOSEMU, trzeba to zrobić samodzielnie.
DYSKI TWARDE
DOSEMU obsługuje cztery metody udostępniania DOS-owi twardego dysku:
1. plik zawierający obraz dysku spoczywający w systemie plików
Linuksa, emulujący twardy dysk.
2. bezpośredni dostęp do dysku z partycją DOS-ową przez plik
urządzenia dysku (np. /dev/hda, /dev/hdb, /dev/sdX).
3. bezpośredni dostęp do partycji DOS-owej przez dostęp do
urządzenia pojedynczej partycji (np. /dev/hda1, /dev/hdb2,
/dev/sdxx). Należy uruchomić program mkpartition by DOSEMU mógł
miec dostęp do partycji DOS-owych przez SPA.
4. dostęp do systemu plików Linuksa jako do dysku "sieciowego"
przez użycie sterownika emufs.sys dostarczanego z programem
DOSEMU w katalogu commands/emufs.sys.
Te motody są wyjaśnione dokładniej w pliku QuickStart.
Konfiguracja zasobów dyskowych DOSEMU jest określona w pliku
/etc/dosemu.conf przed uruchomieniem programu. Zajrzyj do
doc/README.txt.
DYSKIETKI
DOSEMU obsługuje dwie metody udostępniania DOS-owi dostępu do
dyskietek:
1. obraz dyskietki w pliku spoczywającym w systemie plików Linuksa,
emulujący napęd dyskietek.
2. bezpośredni dostęp do urządzenia reprezentującego napęd
dyskietek (np. /dev/fd0, /dev/fd1).
Te opcje również są wyjaśnione dokładniej w pliku QuickStart.
Sposób korzystania przez DOSEMU z dyskietek określa się w pliku
/etc/dosemu.conf przed uruchomieniem programu. DOSEMU.
EKRAN
DOSEMU może być uruchomiony na dowolnym typie terminala, jednak
korzystanie z niego na konsoli Linuksa umożliwia wykorzystanie
zwiększonej funkcjonalności oraz szybkości działania. Uruchamiając
DOSEMU na konsoli, warto przeczytać opis opcji -c, -k, i -V w pliku
QuickStart. Istnieje również skrócona wersja dokumentacji w pliku
etc/config.dist, którą można skopiować do /etc/dosemu.conf i dopasować
do własnych potrzeb.
Krótko mówąc, odpowiednio użyta konsola oraz właściwe opcje pozwalają
uruchamiać programy DOS-owe z oryginalnym kolorami i czcionkami, bez
problemów z odświeżaniem ekranu, które występują przy uruchamianiu na
zwykłym terminalu.
KLAWIATURA
Uruchamiając DOSEMU na konsoli, warto też użyć bezpośredniego dostępu
do klawiatury. Ten tryb pracy, uruchamiany opcją -k, pozwala
użytkownikowi na dostęp do całej klawiatury. Dowolna kombinacja
klawiszy CTRL, ALT i SHIFT może być użyta do generacji najdziwniejszych
kombinacji wymaganych przez programy DOS-owe.
DRUKOWANIE
Obsługa drukowania przez BIOS jest emulowana poprzez pisanie do plików
dosemulpt1, dosemulpt2, i dosemulpt3, odpowiadających DOS-owym
oznaczeniom portów LPT1, LPT2 i LPT3. Wszytkie znaki wysyłane do LPTx
będą przekierowane do plików dosemulptx w bieżącym katalogu.
OSTRZEŻENIE! DOSEMU nie zapisuje na dysk zawartości buforów dyskowych.
Stan tych plików jest niezdefiniowany przed zakończeniem pracy
emulatora. Przykro nam z powodu tej niedogodności.
KOMUNIKATY DIAGNOSTYCZNE
Emitowanie komunikatów diagnostycznych może być kontrolowane poprzez
opcje linii poleceń bądź też w pliku konfiguracyjnym. Zajrzyj do
dokumentacji w pliku config.dist zawartym w dystrybucji DOSEMU w
podkatalogu z przykładami, aby znaleźć opis opcji diagnostycznych. W
linii poleceń można określić, jakie kategorie komunikatów mają być
emitowane przez dos. Składnia jest następująca: po opcji -D następują
litery reprezentujące kategorie komunikatów. DOSEMU analizuje ciag
znaków od lewej do prawej.
+ włącza następującą po nim kategorię (stan domyślny)
- wyłącza następującą po nim kategorię
a włącza lub wyłącza wszystkie kategorie (zależnie od parametru)
0 wyłącza wszystkie kategorie
1-9 ustawia poziom diagnostyczny, im wyższy, tym więcej komunikatów
# gdzie # jest literą z listy kategorii
włącza lub wyłącza daną kategorię zależnie
od stanu przełącznika +/-.
Kategorie komunikatw:
d dysk R odczyt dysku
W zapis na dysk D przerwanie 21h
C cdrom v ekran
X obsługa X k klawiatura
i porty WE/WY s port szeregowy
m mysz # domyślne przerwania
p drukarka g ogólne
c konfiguracja w ostrzeżenia
h sprzęt I IPC
E EMS x XMS
M DPMI n sieć IPX
P Pkt-driver S dźwięk
r PIC T śledzenie WE/WY
Z BIOS PCI A sterownik ASPI
Q rozmieszczenie sterowników
Wszystkie kategorie występujące po znaku + aż do znaku - będą włączone.
Wszystkie po znaku - aż do znaku + będą wyłączone. Znak a działa jak
ciąg wszystkich kategorii, więc +a włącza wszystkie komunikaty, a -a je
wyłącza. Znaki 0 i 1-9 też mają specjalne znaczenie: 0 wyłącza
wszystkie komunikaty, a 1-9 je włącza ustawiając jednocześnie poziom
diagnostyczny.
Na początku ciągu znaków kategorii zakłada się działanie znaku +.
Niektóre kategorie, np. błędy nie mogą zostać wyłączone. Jeżeli
standardowa diagnostyka nie została przekierowana, prawie wszystkie
komunikaty idą do /dev/null.
Przykłady:
"-D+a-v" or "-D1-v" : wszystkie komunikaty oprócz ekranu
"-D+kd" : domyślne + klawiatura i dysk
"-D0+RW" : tylko zapis i odczyt z dysku
Każda litera może się pojawić w dowolnym miejscu, nawet bezsensowne
kombinacje, jak -D01-a-1+0, będą zaakceptowane, więc należy być
ostrożnym. Niektóre opcje są standardowo włączone, a niektóre nie.
Jest to zupełnie arbitralna decyzja autora i może to ulec zmianie w
następnych wersjach. Aby mieć pewność, że opcja jest włączona, należy
ją jawnie włączyć.
SPECJALNE KLAWISZE
W trybie bezpośredniego dostepu do klawiatury (opcja -k) DOSEMU reaguje
na pewne kombinacje klawiszy.
ctrl-scrlock = pokazuje wektor przerwania 0x32
alt-scrlock = pokazuje rejestry vm86
rshift-scrlock = generuje przerwanie 8 (timer)
lshift-scrlock = generuje przerwanie 9 (klawiatura)
ctrl-break = ctrl-break jak w DOS-ie.
ctrl-alt-pgup = restart DOS. Ta opcja może być niebezpieczna.
ctrl-alt-pgdn = koniec pracy.
Do przełączania na inną konsolę wirtualną należy Używać <LEFT
CTRL>-<LEFT ALT>-<klawisz funkcyjny>.
PAMIĘĆ
Obsługa pamięci XMS w DOSEMU jest zgodna ze specyfikacją opracowaną
przez firmy Lotus/Intel/Microsoft/AST w wersji 3.0. Zaimplementowano
wszystkie funkcje oprócz 0x12 (realokacja bloku UMB).
Wszystkie funkcje UMB sa na razie niedopracowane. W kolejnej wersji
zostanie to poprawione.
DOSEMU 0.97 obsługuje też standard EMS 4.0 oraz DPMI 0.9 (częściowo
1.0).
LOGI SYSTEMOWE
DOSEMU może logować wszystkie operacje poprzez email lub syslogd(8).
Plik /etc/dosemu.loglevel zawiera informacje o tej funkcji. Przeczytaj
też plik doc/README.txt.
AUTOR
DOSEMU (składający się z plików dos i libdosemu ) opiera się na wersji
0.4 oryginalnego programu napisanego przez Matthiasa Lautnera (nie znam
jego aktualnego adresu).
Robert Sanders <gt8134b@prism.gatech.edu> sprawuje opiekę nad wersją
DOSEMU, z którą ukazał się ten opis (strona podręcznika man). Przez
cztery lata James B. MacLean <macleajb@ednet.ns.ca> bez chwili
odpoczynku kierował rozwijaniem DOSEMU, implementacją DPMI (dzięki
któremu można uruchomić m.in. Windows 3.1, dos4gw, djgpp)
doprowadzając go niemal do wersji beta. Teraz program jest rozwijany
przez Hansa Lermena <lermen@fgan.de>.
PROBLEMY
Jest ich zbyt dużo, by wszystkie wyliczyć, jednak dużo mniej się
zamanifestowało.
Zgłaszaj problemy do autora. Chciałby on też wiedzieć, które programy
DZIAŁAJĄ. Po prostu wyślij mu informację jakiego programu używasz, w
jakiej wersji; co działa, a co nie itd.
DOSTĘPNOŚĆ
Najnowsza publiczna wersja DOSEMU może byc pobrana przez ftp z
tsx-11.mit.edu w katalogu /pub/linux/ALPHA/dosemu Jeżeli chcesz mieć
dostęp do wersji rozwojowych, dołącz do zespołu DOSEMU - przydadzą ci
się nawet raporty o zauważonych błędach.
PLIKI
/usr/bin/dos
Główny plik programu.
/usr/bin/xdos
Wersja do X Window.
$HOME/dosemu
lokalny katalog DOSEMU użytkownika. Zostanie on po cichu
utworzony, jeśli nie istnieje.
$HOME/dosemu/tmp
Wszystkie pliki tymczasowe są tworzone w tym katalogu, katalog
/tmp nie jest już używany.
/var/run/dosemu.*
lub
$HOME/dosemu/run
Rozmaite pliki używane przez DOSEMU włączając potoki używane do
śledzenia.
lub
$HOME/dosemu/lib
Rozmaite pliki używane przez DOSEMU włącznie z obrazami
dysków i plikami konfiguracyjnymi do obsługi tychże. W
tym katalogu znajduje się również główny plik
konfiguracyjny dla DOSEMU global.conf, który włącza
/etc/dosemu.conf. Jeśli /etc/dosemu.users danemu
użytkownikowi na to pozwala (o ile program nie jest suid
root), to zamiast /var/lib/dosemu/* może być używany
$HOME/dosemu/lib. Użytkownik może wówczas mieć swoją
całkowicie własną konfigurację.
/etc/dosemu.conf
Główny plik konfiguracyjny DOSEMU, włączony w
global.conf.
/etc/dosemu.users
Określa prawa dostępu do DOSEMU dla poszczególnych
użytkowników i ustawia pewne żywotne opcje
konfiguracyjne. Jest to jedyny plik konfiguracyjny o
ustalonej lokalizacji, DOSEMU najpierw szuka
/etc/dosemu.users a, gdy go nie znajdzie,
/etc/dosemu/dosemu.users . Przy użyciu słowa kluczowego
default_lib_dir= w dosemu.users można przenieść katalog
systemowy /var/lib/dosemu gdziekolwiek. Więcej informacji
na ten temat znajduje się w ./doc/README.txt.
/etc/dosemu/dos.ini
Plik konfiguracyjny IPX.
doc/DPR
Zespół DOSEMU: kto co robi przy programie.
doc/DANG
Pomoc w poprawianiu kodu źródłowego. DOSEMU.
doc/README.*
Pliki dokumentacyjne.
QuickStart
Szybkie wprowadzenie do DOSEMU.
ChangeLog
Zmiany w programie od ostatniej wersji.
Lista pocztowa MS-DOS -
wyślij list do linux-msdos@vger.rutgers.edu aby uzyskać
więcej informacji.
ZOBACZ TAKŻE
mkfatimage16(1), mtools(1)