Przypisanie litery dysku — Drive letter assignment

Wiersz poleceń MS-DOS z literą dysku C jako częścią bieżącego katalogu roboczego .
Menedżer plików wyświetlający zawartość dysku C .

W pamięć komputerowa , przypisanie litera dysku jest procesem przypisywania identyfikatorów alfabetycznym tomów . W przeciwieństwie do koncepcji punktów instalacji systemu UNIX , w której woluminy są nazywane i umieszczane arbitralnie w pojedynczej hierarchicznej przestrzeni nazw, przypisanie litery dysku umożliwia wiele przestrzeni nazw najwyższego poziomu. Przypisanie litery dysku jest zatem procesem używania liter do nazywania korzeni „lasu” reprezentującego system plików; każdy wolumin zawiera niezależne „drzewo” (lub, w przypadku niehierarchicznych systemów plików, niezależną listę plików).

Początek

Koncepcja liter napędów, stosowane dziś, prawdopodobnie zawdzięcza swoje początki na IBM „s VM rodziny systemów operacyjnych, sięga do CP / CMS w 1967 roku (i jego poprzednika badawczy CP-40 ), w drodze Digital Research ” s ( DRI) CP/M . Koncepcja ewoluowała w kilku krokach:

  • CP/CMS używa liter dysków do identyfikacji minidysków dołączonych do sesji użytkownika. Pełne odniesienie do pliku ( ścieżka w dzisiejszym żargonie) składa się z nazwy pliku , typu pliku i litery dysku nazywanej trybem pliku (np. A lub B ). Minidyski mogą odpowiadać fizycznym napędom dysków, ale częściej odnoszą się do dysków logicznych, które są automatycznie mapowane na współużytkowane urządzenia przez system operacyjny jako zestawy wirtualnych cylindrów .
  • CP/CMS zainspirował wiele innych systemów operacyjnych, w tym mikrokomputerowy system operacyjny CP/M, który używa litery dysku do określenia fizycznego urządzenia pamięci masowej. Wczesne wersje CP/M (i innych mikrokomputerowych systemów operacyjnych) implementowały płaski system plików na każdym dysku, w którym pełne odniesienie do pliku składa się z litery dysku , dwukropka, nazwy pliku (do ośmiu znaków ) i typu pliku (trzy postacie); na przykład A:README.TXT. (Była to era 8-calowych dyskietek , gdzie tak małe przestrzenie nazw nie nakładały praktycznych ograniczeń.) Na to użycie wpłynęły prefiksy urządzeń używane w systemie operacyjnym TOPS-10 firmy Digital Equipment Corporation (DEC) .
  • Składnia litery dysku wybrana dla CP/M została odziedziczona przez Microsoft dla swojego systemu operacyjnego MS-DOS za pośrednictwem Seattle Computer Products (SCP) 86-DOS , a zatem również przez wersję OEM PC DOS firmy IBM . Początkowo litery dysków zawsze reprezentowały woluminy fizyczne, ale w końcu pojawiła się obsługa woluminów logicznych .
  • Dzięki ich wyznaczonej pozycji jako następcy DOS, koncepcja liter dysku została również odziedziczona przez OS/2 i rodzinę Microsoft Windows .

W tych systemach początkowo brakowało ważnych możliwości katalogów hierarchicznych w ramach każdej litery dysku. Była to główna cecha UNIXa i innych podobnych systemów operacyjnych, w których dyski twarde zawierały tysiące (a nie dziesiątki czy setki) plików. Zwiększenie pojemności pamięci masowej mikrokomputerów doprowadziło do ich wprowadzenia, a ostatecznie do długich nazw plików . W systemach plików pozbawionych takich mechanizmów nazewnictwa przypisywanie litery dysku okazało się użyteczną, prostą zasadą organizacji.

Systemy operacyjne korzystające z przypisywania litery dysku

Kolejność cesji

MS-DOS/PC DOS od wersji 5.0 i nowszych systemów operacyjnych przypisuje litery dysków zgodnie z następującym algorytmem:

  1. Przypisz literę A: do pierwszej stacji dyskietek (napęd 0), a B: do drugiej stacji dyskietek (napęd 1). Jeśli obecna jest tylko jedna fizyczna dyskietka, dysk B: zostanie przypisany do pozornej stacji dyskietek zmapowanej na ten sam dysk fizyczny i dynamicznie przypisany do A: lub B: w celu ułatwienia operacji na plikach dyskietek. Jeśli nie ma fizycznej stacji dyskietek, DOS 4.0 przypisze zarówno A :, jak i B: do nieistniejącego napędu, podczas gdy DOS 5.0 i wyższy unieważni te litery dysków. Jeśli obecne są więcej niż dwa fizyczne dyskietki, wersje DOS starsze niż 5.0 przypiszą kolejne litery dysków, podczas gdy DOS 5.0 i nowsze przypiszą te dyski do wyższych liter na późniejszym etapie; patrz poniżej.
  2. Przypisz literę dysku do pierwszej aktywnej partycji podstawowej rozpoznanej na pierwszym fizycznym dysku twardym . DOS 5.0 i nowsze wersje zapewnią, że stanie się to dyskiem C: , tak że dysk rozruchowy będzie miał dysk A: lub C: .
  3. Przypisz kolejne litery dysków do pierwszej partycji podstawowej na każdym kolejnym fizycznym dysku twardym (wersje DOS starsze niż 5.0 będą sprawdzać tylko dwa fizyczne dyski twarde, podczas gdy DOS 5.0 i nowsze obsługują osiem fizycznych dysków twardych).
  4. Przypisz kolejne litery dysków do każdej rozpoznanej partycji logicznej znajdującej się na pierwszej partycji rozszerzonej, zaczynając od pierwszego dysku twardego i przechodząc przez kolejne fizyczne dyski twarde.
  5. DOS 5.0 i nowsze: przypisz litery dysków do wszystkich pozostałych partycji podstawowych, zaczynając od pierwszego dysku twardego i przechodząc przez kolejne fizyczne dyski twarde.
  6. DOS 5.0 i nowsze: przypisz litery do wszystkich fizycznych stacji dyskietek poza drugą fizyczną dyskietką.
  7. Przypisz kolejne litery dysków wszystkim sterownikom urządzeń blokowych załadowanym do CONFIG.SYS za pomocą instrukcji DEVICE , np . dyskom RAM .
  8. Przypisuj kolejne litery napędom dynamicznie ładowanym napędom za pomocą instrukcji CONFIG.SYS INSTALL w AUTOEXEC.BAT lub nowszym, tj. dodatkowych napędów dysków optycznych ( MSCDEX itp.), napędów PCMCIA / PC Card, napędów USB lub Firewire lub napędów sieciowych .
  • Tylko partycje o rozpoznanych typach partycji mają przypisane litery. W szczególności „ukryte partycje” (te z identyfikatorem typu zmienionym na nierozpoznaną wartość, zwykle przez dodanie 10h) nie są.

MS-DOS/PC DOS wersje 4.0 i wcześniejsze przypisują litery do wszystkich napędów dyskietek przed rozważeniem dysków twardych, więc system z czterema napędami dyskietek nazwałby pierwszy dysk twardy E: . Począwszy od DOS 5.0, system zapewnia, że ​​dysk C: jest zawsze dyskiem twardym, nawet jeśli system ma więcej niż dwa fizyczne dyskietki.

Chociaż bez celowego ponownego mapowania, przypisania liter dysku są zazwyczaj ustalane do następnego ponownego uruchomienia, jednak Zenith MS-DOS 3.21 zaktualizuje przypisania liter dysku podczas resetowania dysku. Może to spowodować zmianę liter dysków bez ponownego uruchomienia, jeśli zmieniono partycjonowanie dysku twardego.

MS-DOS na komputerze Apricot przypisuje litery do dysków twardych, zaczynając od A: , przed rozważeniem napędów dyskietek. System z dwoma dyskami z każdego dysku nazwałby dyski twarde A: i B: , a dyskietki C: i D: .

Niektóre wersje systemu DOS nie przypisują litery dysku, rozpoczynającej się od C: , do pierwszej aktywnej partycji podstawowej rozpoznanej na pierwszym fizycznym dysku twardym, ale do pierwszej rozpoznanej partycji podstawowej pierwszego dysku twardego, nawet jeśli nie jest ona ustawiona jako aktywna .

Jeśli w tabeli partycji znajduje się więcej niż jedna partycja rozszerzona, przetwarzane są tylko dyski logiczne z pierwszego rozpoznanego typu partycji rozszerzonej.

Niektóre późne wersje DR-DOS IBMBIO.COM zapewniają strukturę konfiguracji przed uruchomieniem, przechowującą flagi bitowe do wyboru (oprócz innych) między różnymi strategiami przypisywania liter dysku. Strategie te mogą być wstępnie wybrane przez użytkownika lub OEM lub zmienione przez program ładujący w locie podczas uruchamiania DR-DOS. W przypadku tych problemów dysk rozruchowy może również różnić się od A: lub C :.

Kolejność liter dysku może zależeć od tego, czy dany dysk jest zarządzany przez sterownik w czasie rozruchu, czy przez dynamicznie ładowany sterownik. Na przykład, jeśli drugi lub trzeci dysk twardy jest typu SCSI i w systemie DOS wymaga sterowników ładowanych przez plik CONFIG.SYS (np. karta kontrolera nie oferuje wbudowanego BIOS-u lub użycie tego BIOS-u jest niepraktyczne), to pierwsza partycja podstawowa SCSI pojawi się po wszystkich partycjach IDE w systemie DOS. Dlatego DOS i na przykład OS/2 mogą mieć różne litery dysków, ponieważ OS/2 wcześniej ładuje sterownik SCSI. Rozwiązaniem było nieużywanie partycji podstawowych na takich dyskach twardych.

W systemie Windows NT i OS / 2 , system operacyjny używa wspomnianego algorytmu do automatycznego przypisywania liter do stacji dyskietek , napędów optycznych , z dyskietki startowej i innych uznanych woluminów, które nie są w inny sposób tworzone przez administratora w systemie operacyjnym. Woluminy tworzone w systemie operacyjnym są określane ręcznie, a niektóre automatyczne litery dysków można zmieniać. Nierozpoznanym woluminom nie przypisuje się liter i zwykle system operacyjny pozostawia je nietknięte.

Częstym problemem występującym podczas przypisywania litery dysku jest to, że litera przypisana do dysku sieciowego może kolidować z literą woluminu lokalnego (takiego jak nowo zainstalowany dysk CD/DVD lub pamięć USB). Na przykład, jeśli ostatni dysk lokalny to dysk D:, a dysk sieciowy zostałby przypisany jako E: , to nowo podłączonemu urządzeniu pamięci masowej USB zostanie również przypisany dysk E: powodując utratę łączności z udziałem sieciowym lub Urządzenie USB. Użytkownicy z uprawnieniami administracyjnymi mogą ręcznie przypisywać litery dysków, aby rozwiązać ten problem. Innym stanem, który może powodować problemy w systemie Windows XP, jest zdefiniowanie dysków sieciowych, ale w stanie błędu (tak jak w przypadku laptopa działającego poza siecią). Nawet jeśli niepodłączony dysk sieciowy nie jest następną dostępną literą dysku, system Windows XP może nie być w stanie zmapować dysku, a ten błąd może również uniemożliwić zamontowanie urządzenia USB.

Wspólne zadania

Zastosowanie schematu omówionego powyżej w dość nowoczesnym systemie Windows zwykle skutkuje następującymi przypisaniami liter dysku:

  • A:Napędy dyskietek , 3+1 / 2 "lub 5+14 ″ i ewentualnie inne typy napędów dysków, jeśli są obecne.
  • B: — Zarezerwowane dla drugiego napędu dyskietek (który był obecny w wielu komputerach).
  • C: — Pierwsza partycja dysku twardego.
  • D: do Z: — Tutaj są oznaczane inne partycje dyskowe. System Windows przypisuje następną wolną literę dysku do następnego napotkanego dysku podczas wyliczania dysków w systemie. Dyski można podzielić na partycje, tworząc w ten sposób więcej liter dysków. Dotyczy to MS-DOS, a także wszystkich systemów operacyjnych Windows. System Windows oferuje inne sposoby zmiany liter dysków, za pomocą przystawki Zarządzanie dyskami lub diskpart. MS-DOS zazwyczaj używa parametrów w sterownikach urządzeń ładujących wiersz w pliku CONFIG.SYS .

Litery dysków w zależności od przypadku:

  • F: — Pierwszy dysk sieciowy w przypadku korzystania z systemu Novell NetWare .
  • G: — „Transmisja plików z Dysku Google” w przypadku korzystania z Dysku Google .
  • H: — Katalog „domowy” na serwerze sieciowym.
  • L: — Dynamicznie przypisywany dysk obciążenia w trybie współbieżnym DOS, wieloużytkownikowym DOS, Menedżerze systemu i REAL/32.
  • M: — Litera dysku dla opcjonalnego dysku pamięci MDISK w trybie współbieżnego systemu DOS.
  • N: , O: , P: — Przypisywalne dyski pływające w ramach CP/M-86 4.x, Personal CP/M-86 2.x, DOS Plus 1.1-2.1 (poprzez wywołanie BDOS 0Fh), koncepcja później rozszerzona na dowolne nieużywane litery dysków w Concurrent DOS, Multiuser DOS, System Manager, REAL/32 i DR DOS do 6.0.
  • P: — Wirtualizacja Microsoft Office Szybka instalacja.
  • U:Ujednolicony system plików podobny do Uniksa z wirtualnym katalogiem \DEVdla plików urządzeń pod MiNT , MagiC i MultiTOS .
  • Z: — Pierwszy dysk sieciowy w przypadku korzystania z Banyan VINES oraz początkowe przypisanie litery dysku dla sieci dysków wirtualnych w emulatorze DOSBox x86 . Jest to również pierwsza litera wybrana przez Windows dla zasobów sieciowych, ponieważ automatycznie wybiera od Z: w dół. Domyślnie Wine mapuje Z: do katalogu głównego drzewa katalogów UNIX.

Gdy nie ma drugiej fizycznej stacji dyskietek, dysk B: może być używany jako „wirtualna” stacja dyskietek zmapowana na fizyczny dysk A: , dzięki czemu użytkownik będzie proszony o przełączenie dyskietek za każdym razem, gdy wymagany jest odczyt lub zapis najmniej ostatnio używane z A: lub B: . Pozwala to na korzystanie z większości funkcji dwóch stacji dyskietek na komputerze, który ma tylko jeden. Ta koncepcja wielu liter dysków współdzielących jedno urządzenie fizyczne (opcjonalnie z różnymi „widokami” na nie) nie ogranicza się do pierwszej stacji dyskietek, ale można ją wykorzystać również w przypadku innych dysków, konfigurując dla nich dodatkowe urządzenia blokowe za pomocą standardowego DOS DRIVER.SYS w CONFIG.SYS .

Dyskom sieciowym często przypisywane są litery na końcu alfabetu. Często ma to na celu odróżnienie ich od dysków lokalnych: użycie liter na końcu zmniejsza ryzyko konfliktu przypisania. Jest to szczególnie ważne, gdy przypisanie jest wykonywane automatycznie przez sieć (zwykle za pomocą skryptu logowania).

W większości systemów DOS nie jest możliwe zamontowanie więcej niż 26 dysków. Atari GEMDOS obsługuje 16 liter dysków A: do P: tylko. Stos sterowników PalmDOS PCMCIA obsługuje litery napędów 0: , 1: , 2: , ... w celu adresowania gniazd napędów PCMCIA.

Niektóre sterowniki sieciowe Novella dla systemu DOS obsługują do 32 liter dysków w zgodnych wersjach systemu DOS. Ponadto Novell DOS 7, OpenDOS 7.01 i DR-DOS 7.02 rzeczywiście obsługują LASTDRIVE=32dyrektywę CONFIG.SYS w celu przydzielenia do 32 liter dysków, nazwanych od A: do Z: , [: , \: , ]: , ^: , _: i `: . (DR-DOS 7.02-7.07 obsługuje również HILASTDRIVEi LASTDRIVEHIGHdyrektywy w celu przeniesienia struktur napędów do pamięci górnej.) Niektóre programy użytkowe DOS nie oczekują liter dysków poza Z: i nie będą z nimi współpracować, dlatego zaleca się ich używanie do specjalnych celów lub napędów wyszukiwania.

Procesor wiersza poleceń 4DOS firmy JP Software obsługuje litery dysków poza Z: ogólnie, ale ponieważ niektóre litery kolidują z rozszerzeniami składniowymi tego procesora wiersza poleceń, należy je zmienić, aby użyć ich jako liter dysków.

Windows 9x (MS-DOS 7.0/MS-DOS 7.1) dodał obsługę LASTDRIVE=32i LASTDRIVEHIGH=32również.

Jeśli w systemie Windows NT wymagany jest dostęp do większej liczby systemów plików niż Z :, należy użyć punktów montowania woluminów . Jednak możliwe jest montowanie dysków niebędących literami, takich jak 1: , 2: lub !: za pomocą SUBSTnarzędzia wiersza poleceń w systemie Windows XP lub nowszym (tj. SUBST 1: C:\TEMP), ale nie jest to oficjalnie obsługiwane i może zepsuć programy, które zakładają, że wszystkie dyski mają litery od A: do Z: .

ASSIGN, JOIN i SUBST w DOS i Windows

Litery dysków nie są jedynym sposobem uzyskania dostępu do różnych woluminów. DOS oferuje polecenie JOIN, które umożliwia dostęp do przypisanego woluminu przez dowolny katalog, podobnie jak polecenie montowania uniksowe . Oferuje również polecenie SUBST, które umożliwia przypisanie litery dysku do katalogu. Jedno lub oba z tych poleceń zostały usunięte w późniejszych systemach, takich jak OS/2 lub Windows NT , ale począwszy od Windows 2000 , oba są ponownie obsługiwane: Polecenie SUBST istnieje jak poprzednio, podczas gdy funkcja JOIN jest zawarta w LINKD (część zasobów systemu Windows Zestaw ). W systemie Windows Vista można do tego celu użyć nowego polecenia MKLINK . Ponadto system Windows 2000 i nowsze obsługują punkty montowania, dostępne z Panelu sterowania .

Wiele systemów operacyjnych wywodzących się z Digital Research zapewnia środki do niejawnego przypisywania dysków zastępczych, zwanych dyskami pływającymi w terminologii DRI, za pomocą polecenia CD/CHDIR w następującej składni:

CD N:=C:\SUBDIR

DOS Plus obsługuje to dla liter dysków N: , O: i P: . Ta funkcja jest również obecna w Concurrent DOS , Multiuser DOS , System Manager 7 i REAL/32 , jednak systemy te rozszerzają tę koncepcję na wszystkie nieużywane litery dysków od A: do Z:, z wyjątkiem zarezerwowanej litery dysku L:. DR DOS 3.31 - 6.0 (do aktualizacji 1992-11 tylko z BDOS 6.7) obsługuje to również, w tym literę dysku L:. Ta funkcja nie jest dostępna w DR DOS 6.0 (aktualizacja z 1992 r.), PalmDOS 1.0, Novell DOS 7, OpenDOS 7.01, DR-DOS 7.02 i nowszych. Napędy pływające są zaimplementowane w jądrze BDOS, a nie w powłoce wiersza poleceń, dzięki czemu mogą być używane i przypisywane również z poziomu aplikacji, gdy używają wywołania systemowego „zmień katalog”. Jednak większość aplikacji DOS nie wie o tym rozszerzeniu i w konsekwencji odrzuci takie ścieżki katalogów jako nieprawidłowe. Interpreter wiersza poleceń 4DOS firmy JP Software obsługuje dyski pływające w systemach operacyjnych, które również go obsługują.

W podobnej funkcji, Concurrent DOS, Multiuser DOS, System Manager i REAL/32 dynamicznie przypiszą literę dysku L: do ścieżki ładowania ładowanej aplikacji, umożliwiając w ten sposób aplikacjom odwoływanie się do plików znajdujących się w ich katalogu ładowania na standardowym dysku list zamiast pod bezwzględną ścieżką. Ta funkcja ładowania dysku ułatwia przenoszenie instalacji oprogramowania na i między dyskami bez konieczności dostosowywania ścieżek do nakładek, plików konfiguracyjnych lub danych użytkownika przechowywanych w katalogu ładowania lub kolejnych katalogach. (Z podobnych powodów dodatek do bloku środowiska związanego z ładowanymi aplikacjami pod DOS 3.0 (i nowszymi) zawiera również odniesienie do ścieżki ładowania pliku wykonywalnego, jednak zużywa to więcej pamięci rezydentnej i aby to wykorzystać, jego obsługa musi być zakodowana w pliku wykonywalnym, podczas gdy rozwiązanie DRI działa z dowolnymi aplikacjami i jest również w pełni transparentne dla użytkowników.) W niektórych wersjach DR-DOS ścieżka ładowania zawarta w dodatku do środowiska jest przekazywana do sterowników można skrócić do tymczasowego napędu zastępczego (np. SUBST B: C:\DIR) poprzez opcję INSTALL[HIGH]/ (dla zamiast powiedzmy ). Można to wykorzystać do zminimalizowania efektywnego zużycia pamięci przez sterownik, jeśli plik wykonywalny znajduje się w głębokim podkatalogu, a sterownik rezydentny nie potrzebuje już swojej ścieżki ładowania po instalacji. LOADHIGH/D[:loaddrive]B:TSR.COMC:\DIR\TSR.COM

Zobacz też

Bibliografia

Zewnętrzne linki