MSDOS.SYS'nin [Yollar] bölümünde neden üç farklı ayar var?

Aug 17 2020

Windows 9x'te, MSDOS.SYS yapılandırma dosyası [Paths], içeriği genellikle aşağıdaki gibi görünen bir bölüm içerir :

[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C

Her ikisi de WinDirve WinBootDirgenellikle olan C:\WINDOWSve HostWinBootDrvonu içeren sürücü harfini gösteren Windows kurulum dizinini işaret edin. Farklı ayarlara sahip olmak, bunların potansiyel olarak farklı olabileceğini gösterir. Durumun böyle olduğu durumlar var mı? Neden üç farklı ayar var? Zaten amaçları ne?

Yanıtlar

9 user3840170 Aug 17 2020 at 14:22

HostWinBootDrvaçıklaması en kolay olanıdır: Disk sıkıştırmasıyla ilgilidir, yani DoubleSpace / DriveSpace. DriveSpace'in yaptığı şey , diskin sıkıştırılmış içeriğini içeren DRVSPACE.nnn( nnnüç basamaklı bir sayı olan) gibi bir ada sahip bir dosya oluşturmaktır . Sıkıştırılmış dosya sistemine, dosyayı içeren bölümün sürücü harfi atanır ve ikincisine ( bu bağlamda ana bilgisayar sürücüsü adı verilir ) başka bir sürücü harfi atanır veya bazen tamamen gizlenir. Windows'un başladığı bölüm sıkıştırılmışsa, diğer ayarlar sıkıştırılmış dosya sistemini gösterirken, HostWinBootDrvvarsayılan olarak bu bölümün ana bilgisayar sürücüsünü gösterir H.


Gelince WinDirve WinBootDir, ne yaptıklarını nispeten kolay keşfetmektir. Bazı deneyler şunları ortaya çıkarır:

WinDirWindows'un yüklü olduğu dizini gösterir. Varlığı WinDirhalinde MSDOS.SYStalimat budur IO.SYS(gibi acil önyükleme disket, bir komut istemine sadece önyükleme aksine) o başlatmak için hazırlanması gerektiğini bir Windows yükleme mevcut olduğunu (Windows Me önce). Ayarlandıysa WinDir, gerçek mod çekirdeği şunları yapacaktır:

  • PATHOrtam değişkenine iki giriş koyun : ile gösterilen dizin WinDirve onun alt dizini COMMAND;
  • TEMPBu dizin altında bir alt dizin oluşturun ve ortam değişkenlerini TEMPve TMPona işaret edin ;
  • İşlemden sonra başlatılıp başlatılmayacağına karar veren BL yazmacı bit 5'teki kesme 0x2fhizmeti tarafından döndürülen bir bayrağı temizleyin ;0x1611COMMAND.COMWIN.COMAUTOEXEC.BAT
  • İşlemden önce cihaz konfigürasyon yöneticisini başlatın CONFIG.SYS(bu SystemReg=0, [Options]bölümdeki ayar ile bastırılabilir )
  • Dahil olmak üzere bu dizinde belli kritik dosyalar için bak SYSTEM.DAT(Registry), COMMAND.COM(kök dizinine geri düşecek eğer devamsızlık) gibi ve gerçek mod sürücüler HIMEM.SYSve IFSHLP.SYS(ayarlayarak baskı altına alınabilir DOS=NOAUTOiçinde CONFIG.SYS);
  • Dizinin kendisini winbootdirortam değişkeninde saklayın (tümü küçük harf!).

Bunların son ikisi, ayarlanarak geçersiz kılınabilecek olan şeydir WinBootDir: eğer bu ayar da mevcutsa, WinBootDirbunun yerine bu dosyalar aranacak ve tabii ki bu, winbootdirortam değişkeninde sona erecek olan dizindir .

Ancak burada bazı kırışıklıklar var, örneğin ile ilgili olarak WIN.COM. Ne zaman AUTOEXEC.BATdosya yoktur, boş veya varlık, (güvenli modda örneğin gibi) atlanır COMMAND.COMyüklü değil ve bunun yerine doğrudan çalıştırır gerçek mod kernel WIN.COMden WinBootDir. Ancak, eğer AUTOEXEC.BATmevcutsa, COMMAND.COMonu işlemek için başlatılacak ve daha sonra komutu çalıştıracak WIN, başlatacak WIN.COM... içeriye bakarak PATH, ki bu varsayılan olarak işaret eder WinDir.


Peki, harika, ama neden WinDirve WinBootDirayrı ayarlar var? Hala benim için tam olarak net değil, ancak toplayabildiğim kadarıyla, muhtemelen Windows'un bir LAN üzerinden başlatılmasını desteklemek anlamına geliyordu. Böyle bir yapılandırmada, DOS ilki gibi gerekli sürücüler yüklemek, normal bir dosya sisteminden yüklenen (ya da hatta kendisi disk görüntüsünden ağ üzerinden indirilen) olacağını HIMEM.SYSden WinBootDiraynı dosya sistemi üzerinde bulunan, daha sonra bir paylaşım haritasına, DOS ağ sürücüleri yüklemek (içerir WinDir) sürücü harfine girin ve ardından oradan önyüklemeye devam edin. Amaçlanan senaryo buysa, WIN.COMtuhaflık bile şimdi mantıklı olmaya başlar: Normal olarak önyükleme yapılırken başlatılan bir 'ana' Windows kopyası olabilir WinDirve WinBootDirağ önyüklemesi başarısız olduğunda Güvenli Modda başlatılan başka bir minimum 'acil durum' kopyası olabilir .

Her durumda, bu senaryonun gereksinimleri bu iki ayarın farklı değerlere sahip olmasını kolaylıkla gerektirebilir. İşte tam da böyle bir yapılandırmayı açıklayan bir belgeden kısa bir bölüm :

D-2. MSDOS.SYS Sample File for DM9102 :
=======================================

      [Paths]
      WinDir=g:\client1
      WinBootDir=d:\winboot     <== According to RAMDRIVE.SYS assign
      HostWinBootDrv=c              Virtual Drive (D: or E:)

Ayrıca Micho Durdevich'in ( bölüm 1 , 2 , 3 , 4 , 5 ve 6 ) yazdığı ve Windows 9x ile ağ önyüklemesinin nasıl gerçekleştirileceğini açıklayan bir makale ve bir dizi makale var .

Bunların hepsinin nasıl çalıştığının ayrıntıları konusunda biraz yetersizler, ancak her iki kaynak SETMDIRda Windows 95'in bir parçası olarak dağıtılan bir yardımcı programdan bahsediyor. Bu, ağ önyüklemesinin muhtemelen Microsoft tarafından tasarlanan bir kullanım durumu olduğu anlamına geliyor.

2 wendy.krieger Sep 22 2020 at 19:34

Winbootdir, DOS başlangıç ​​dosyalarının bulunduğu dizini gösterir. Windir'den farklı olabilir.

Windir, kullanıcının kayıt defterinin bulunduğu dizine işaret eder. Bir ağda bu, pencerelerin kurulduğu yerden farklı olabilir.

Winbootdir, config.sys / autoexec.bat yoksa himem.sys, ifs $ hlp.sys ve co gibi sürücüleri yüklemek için kullanılır. Örneğin, ağ üzerinden gönderilen bir önyükleme görüntüsünde olabilir.

3.0'da olduğu gibi Windir'in win.com'u içermesi gerekir, ancak daha sonra pencereleri başlatmaktan win.com sorumludur (win32.vxd veya başka bir şey çalıştırarak).

== Düzenle ==

http://reboot.pro/topic/22047-dual-boot-msdos-710-and-630/

Bu gönderi, Win98se'den DOS ve biraz değiştirilmiş bir MS-DOS 6.22 kullanılarak minimal bir DOS kurulumunun oluşturulmasını açıklar.

Winbootdir ve windir değiştiğinde ne olacağına dair örnekler. Setmdir komutu, sistem başlatıldıktan sonra windir'i değiştirir, burada kullanmıyoruz.

http://reboot.pro/topic/18130-ms-dos-7-help-file/

Bu konu, DOS 5 ila 7 için bir qbasic yardım dosyası oluşturmak için çalışma açıklamalarını içerir (yani, CDROM'da bulunanların yerine geçecek şekilde).

https://www.betaarchive.com/forum/viewtopic.php?f=72&t=34798&p=401645#p401645

Config.sys'de seçenek olarak birden çok Windows 9x sürümünü çalıştırdığımızı belgelediğimiz yer burasıdır. Şimdiye kadar, Win95'i DOS98SE'den başlatırken karşılaşılan sorunların çoğunun üstesinden geldik.

https://www.betaarchive.com/forum/viewtopic.php?f=60&t=41489

Bu, Windows 95 ve ME'yi DOS98SE'den çalıştırma sürecidir. Deneylerde kullanılan DOS dosyalarına bir bağlantı vardır.

Tüm bu deneyler, anlatılanları yapan VPC oturumlarına dayanmaktadır. Örneğin, Offer c: \ MSDOS7 yapısını yayınladıktan sonra, deneyi birkaç NT5x ile farklı Win98 ve ME kurulumlarının üstünde İngilizce ve Almanca olarak çalıştırdım. Buradan c: \ msdos7 kullanma fikrini edindim.