LinuxでのDOSアプリケーションの実行

LinuxでDOSアプリケーションを実行する必要は一般的ではありません実際には必要です。 だからどういうわけかそれは私に起こった、私は私の経験を共有することを決めた、多分誰かが役に立つでしょう。

また、かつてはクリニック向けに作成されたアプリケーションで、DOSでFoxpro、Linuxで実行されていた人が実行する必要がありました。 Windowsライセンスを購入するお金はありませんでした。

ソースデータ:
Suse Linux Enterprise Desktop 10.3-ワークステーション。
Suse Linux Enterprise Server 10.3、Sambaにボールがあります(Win-serverのライセンスにもお金がなかったため、以前Windowsで動作するワークステーションを共有していました)、ボールの名前は、奇妙なことに、SHAREです。
すべてが2〜3年前に発生したため、インストール時のSLEDとSLESのバージョンはそれほど古くありませんでした。

なぜなら サーバーはすでに構成されているため、以下で説明するすべての操作はデスクトップで実行されます。
リポジトリから置くか、 dosemu-xxx.rpmを個別にダウンロードします

キリル文字フォント(以下、 XFontsフォルダーと呼びます)も必要です。どこで入手したか覚えていません。アーカイブの記事に添付します。

ボールをマウントするフォルダーを作成し、マウントをfstabに登録してマウントします。
su mkdir /mnt/dos chmod 777 /mnt/dos echo "//192.168.0.130/SHARE /mnt/dos cifs iocharset=utf8,codepage=cp866,noperm,forcemand,direct,nounix,nolock,username=user,password=userpassword,rw 0 0" >> /etc/fstab mount /mnt/dos 
簡単な説明:192.168.0.130-サーバーIP、ユーザー、およびユーザーパスワードは、Sambaボールへのアクセスを許可されているサーバー上のユーザーから取得されます。

次に、フォントをコピーします。
 cp -rf XFonts /usr/X11R6/lib/X11/fonts/ 
/etc/X11/xorg.confファイルの残りのフォントと同様にフォルダーを登録し、コマンドでシステムに追加します。

 /usr/sbin/fonts-config 


/etc/dosemu.confでは、適切なセクションで次のオプション追加または変更します(これらのオプションのみが残ってしまいました)。

 ## Terminal related settings # Character set used externally to dosemu $_external_char_set = "utf8" #  Linux # Character set used by dos programs $_internal_char_set = "cp866" #  DOS ## Keyboard related settings $_layout = "ru" #  ## Printer and parallel port settings $_lpt1 = "lp -o media=a4 -o cpi=11" # ,      LPT  # #$_lpt1 = "iconv -f cp866 -t utf8 | lp -o media=a4 -o cpi=11 -d printername" ## Setting specific to the X Window System (xdosemu, dosemu -X) $_X_font = "vgacyr" #   


/ usr / share / dosemu / drive_zフォルダーにあるautoexec.batファイルに、次のよう記述します(#をコピーして説明を削除する場合は!!!)。

 @echo off rem autoexec.bat for DOSEMU + FreeDOS path z:\bin;z:\gnu;z:\dosemu;p:\ovl1;p:\ovl;p:\prv # ovl1;p:\ovl;p:\prv -     DOS; set HELPPATH=z:\help set TEMP=c:\tmp blaster prompt $P$G unix -s DOSDRIVE_D if "%DOSDRIVE_D%" == "" goto nodrived lredir d: linux\fs%DOSDRIVE_D%:nodrived lredir p: linux\fs/mnt/dos #    Linux  DOS unix -s DOSEMU_VERSION echo "Welcome to dosemu %DOSEMU_VERSION%!" unix -e xmode -fullscreen on #  Dosemu    lin.bat #     DOS 


わかりやすくするために、 lin.batの内容を以下に示します (#をコピーして説明を削除する場合は!!!)。

 @ echo off p: #    p: cd ovl1 #     p:\ovl1\reg01.fxp #   ( .fxp  ,      .exe,   Foxpro) xmode -fullscreen off #         exitemu #    


次のコマンドで最初の起動を行います。
 dosemu 
lin.batファイルがないため、figsに到達します。上記の内容の.dosemu / drive_cフォルダー(エミュレーターの初回起動時にフォルダーが作成されます)にホームディレクトリを作成することで修正します。

dosemuとvoilaを再び起動すると、dosプログラムが動作し、テキストがロシア語で表示され、Linuxでも印刷されます。

私の喜びは特定のプログラムに関連していますが、この方法では、パスとファイル名をすべてではなくとも置き換えれば、DOSで実行されている多くのアプリケーションが起動します。

PS
dosemuを開始するときに、以下をキャッチした場合:

 >LOWRAM mmap:   


次に/etc/sysctl.confに追加します

 vm.mmap_min_addr=0 


さて、リブートします。
約束のアーカイブ。

Source: https://habr.com/ru/post/J268529/


All Articles