Alocarea scrisorilor de conducere - Drive letter assignment

Promptul de comandă MS-DOS cu litera C ca unitate a directorului de lucru curent .
Managerul de fișiere afișează conținutul unitatea C .

În stocarea datelor pe computer , atribuirea literelor de unitate este procesul de atribuire a identificatorilor alfabetici volumelor . Spre deosebire de conceptul de puncte de montare UNIX , unde volumele sunt denumite și amplasate în mod arbitrar într-un singur spațiu de nume ierarhic, atribuirea literelor de unitate permite mai multe spații de nume de cel mai înalt nivel. Alocarea literelor de unitate este astfel un proces de utilizare a literelor pentru a denumi rădăcinile „pădurii” care reprezintă sistemul de fișiere; fiecare volum conține un „arbore” independent (sau, pentru sistemele de fișiere neierarhice, o listă independentă de fișiere).

Origine

Conceptul de litere de unitate, ca și utilizat în prezent, își datorează probabil originile în IBM e VM familie de sisteme de operare, datând CP / CMS în 1967 (și predecesorul său de cercetare CP-40 ), prin intermediul Digital Research 's ( DRI) CP / M . Conceptul a evoluat prin mai mulți pași:

  • CP / CMS folosește litere de unitate pentru a identifica minidiscurile atașate la o sesiune de utilizator. O referință completă a fișierului ( numele de cale în limbajul de astăzi) constă dintr-un nume de fișier , un tip de fișier și o literă pe disc numită mod de fișier (de exemplu, A sau B ). Minidiscurile pot corespunde unităților de disc fizice, dar mai de obicei se referă la unitățile logice, care sunt mapate automat pe dispozitivele partajate de sistemul de operare ca seturi de cilindri virtuali .
  • CP / CMS a inspirat numeroase alte sisteme de operare, inclusiv sistemul de operare cu microcomputer CP / M, care utilizează o literă de unitate pentru a specifica un dispozitiv de stocare fizică. Versiunile timpurii ale CP / M (și ale altor sisteme de operare ale microcomputerelor) au implementat un sistem de fișiere plat pe fiecare unitate de disc, unde o referință completă a fișierului constă dintr-o literă de unitate , două puncte, un nume de fișier (până la opt caractere ) și un tip de fișier (trei personaje); de exemplu A:README.TXT. (Aceasta a fost epoca dischetelor de 8 inch , unde astfel de spații de nume mici nu impunea constrângeri practice.) Această utilizare a fost influențată de prefixele dispozitivelor utilizate în sistemul de operare TOPS-10 al Digital Equipment Corporation (DEC) .
  • Sintaxa literei de unitate aleasă pentru CP / M a fost moștenită de Microsoft pentru sistemul său de operare MS-DOS prin intermediul 86-DOS al Seattle Computer Products (SCP) și, prin urmare, și de versiunea OEM PC DOS a IBM . Inițial, literele de unitate reprezentau întotdeauna volume fizice, dar în cele din urmă a apărut suportul pentru volume logice .
  • Prin poziția lor desemnată ca succesor DOS, conceptul de litere de unitate a fost, de asemenea, moștenit de OS / 2 și de familia Microsoft Windows .

Capacitatea importantă a directoarelor ierarhice din cadrul fiecărei litere de unitate a fost inițial absentă din aceste sisteme. Aceasta a fost o caracteristică majoră a UNIX și a altor sisteme de operare similare, unde unitățile de hard disk dețineau mii (mai degrabă decât zeci sau sute) de fișiere. Creșterea capacităților de stocare a microcomputerelor a dus la introducerea lor, urmată în cele din urmă de nume de fișiere lungi . În sistemele de fișiere lipsite de astfel de mecanisme de denumire, atribuirea literelor de unitate s-a dovedit un principiu de organizare util, simplu.

Sisteme de operare care utilizează atribuirea literelor de unitate

Ordinea atribuirii

MS-DOS / PC DOS de la versiunea 5.0 și sistemele de operare ulterioare, atribuie litere de unitate în conformitate cu următorul algoritm:

  1. Alocați litera unității A: la prima unitate de dischetă (unitatea 0) și B: la a doua unitate de dischetă (unitatea 1). Dacă este prezentă doar o dischetă fizică, unitatea B: va fi atribuită unei unități de dischetă fantomă mapată pe aceeași unitate fizică și alocată dinamic fie A: fie B: pentru operații mai ușoare de fișiere de dischetă. Dacă nu este prezentă nici o unitate de dischetă fizică, DOS 4.0 va atribui atât A: cât și B: unității inexistente, în timp ce DOS 5.0 și versiunile ulterioare vor invalida aceste litere de unitate. Dacă sunt prezente mai mult de două unități de dischetă fizice, versiunile DOS anterioare versiunii 5.0 vor atribui litere de unitate ulterioare, în timp ce DOS 5.0 și versiunile ulterioare vor remapa aceste unități cu litere de unitate mai mari într-o etapă ulterioară; Vezi mai jos.
  2. Atribuiți o literă de unitate primei partiții primare active recunoscute pe primul hard disk fizic . DOS 5.0 și mai mare se va asigura că acesta va deveni unitatea C: , astfel încât unitatea de pornire va avea fie unitatea A: sau C: .
  3. Atribuiți literele de unitate ulterioare primei partiții primare pe fiecare unitate de disc fizică succesivă (versiunile DOS anterioare versiunii 5.0 vor testa doar două discuri fizice, în timp ce DOS 5.0 și versiunile superioare acceptă opt discuri fizice).
  4. Alocați litere de unitate ulterioare fiecărei partiții logice recunoscute prezente în prima partiție extinsă, începând cu prima unitate de disc și continuând prin unități de discuri fizice succesive.
  5. DOS 5.0 și versiuni ulterioare: Atribuiți litere de unitate tuturor partițiilor primare rămase, începând cu primul hard disk și trecând prin unități de hard disk fizice succesive.
  6. DOS 5.0 și versiuni ulterioare: Atribuiți litere de unitate tuturor dischetelor fizice dincolo de a doua unitate de dischetă fizică.
  7. Atribuiți literele de unitate ulterioare oricărui driver de dispozitiv bloc încărcat în CONFIG.SYS prin instrucțiuni DEVICE , de ex . Discuri RAM .
  8. Atribuiți literele de unitate ulterioare oricăror unități încărcate dinamic prin instrucțiunile CONFIG.SYS INSTALL , în AUTOEXEC.BAT sau mai târziu, adică unități de disc optice suplimentare ( MSCDEX etc.), unități PCMCIA / PC Card , unități USB sau Firewire sau unități de rețea .
  • Numai partițiile din tipurile de partiții recunoscute au litere atribuite. În special, „partițiile ascunse” (cele cu ID-ul de tip modificat la o valoare nerecunoscută, de obicei prin adăugare 10h) nu sunt.

MS-DOS / versiunile pentru PC DOS 4.0 și scrisori anterioare le atribuiți toate unitățile floppy disk - uri inainte de a examina hard, deci un sistem cu patru unități floppy ar suna prima unitate hard E: . Începând cu DOS 5.0, sistemul asigură că unitatea C: este întotdeauna un hard disk, chiar dacă sistemul are mai mult de două unități de dischetă fizice.

Deși fără o remapare deliberată, atribuirea literelor de unitate este de obicei fixată până la următoarea repornire, cu toate acestea, Zenith MS-DOS 3.21 va actualiza atribuirea literelor de unitate la resetarea unei unități. Acest lucru poate face ca literele de unitate să se schimbe fără repornire dacă a fost modificată partiționarea hard diskului.

MS-DOS de pe computerul Apricot atribuie litere unităților de disc, începând cu A :, înainte de a lua în considerare unitățile floppy. Un sistem cu două din fiecare unitate ar suna hard drive A: și B: și dischetele C: și D: .

Unele versiuni ale DOS nu atribuie litera unității, începând cu C:, la prima partiție primară activă recunoscută pe primul hard disk fizic, ci la prima partiție primară recunoscută a primului hard disk, chiar dacă nu este activată .

Dacă există mai multe partiții extinse într-o tabelă de partiții, sunt procesate doar unitățile logice din primul tip de partiție extinsă recunoscut.

Unele versiuni târzii ale DR-DOS IBMBIO.COM oferă o structură de configurare de preîncărcare, ținând semnalizatoare de biți pentru a selecta (alături de altele) între diferitele strategii de atribuire a literelor de unitate. Aceste strategii pot fi preselectate de către un utilizator sau OEM sau pot fi modificate de un încărcător de încărcare în timp ce lansează DR-DOS. Sub aceste probleme, unitatea de boot poate fi diferită de A: sau C: de asemenea.

Ordinea literelor de unitate poate depinde de faptul dacă un anumit disc este gestionat de un driver de pornire sau de un driver încărcat dinamic. De exemplu, dacă al doilea sau al treilea hard disk este de tip SCSI și, pe DOS, necesită drivere încărcate prin fișierul CONFIG.SYS (de exemplu, placa de control nu oferă BIOS la bord sau utilizarea acestui BIOS nu este practică), atunci prima partiție primară SCSI va apărea după toate partițiile IDE de pe DOS. Prin urmare, DOS și, de exemplu, OS / 2 ar putea avea litere de unitate diferite, deoarece OS / 2 încarcă driverul SCSI mai devreme. O soluție nu a fost utilizarea partițiilor primare pe astfel de discuri.

În Windows NT și OS / 2 , sistemul de operare folosește algoritmul menționat mai sus pentru a atribui automat litere unităților de dischetă , unităților de disc optic , discului de încărcare și altor volume recunoscute care nu sunt create altfel de un administrator în cadrul sistemului de operare. Volumele create în cadrul sistemului de operare sunt specificate manual, iar unele dintre literele automate ale unității pot fi modificate. Volumelor nerecunoscute nu li se atribuie litere și, de obicei, sunt lăsate neatinse de sistemul de operare.

O problemă obișnuită care apare cu atribuirea literei unității este aceea că litera atribuită unei unități de rețea poate interfera cu litera unui volum local (cum ar fi o unitate CD / DVD nou instalată sau un stick USB). De exemplu, dacă ultima unitate locală este unitatea D: și o unitate de rețea ar fi fost atribuită ca E:, atunci unui dispozitiv de stocare în masă USB nou atașat i se va atribui și unitatea E: cauzând pierderea conectivității fie cu partajarea de rețea, fie cu Dispozitiv USB. Utilizatorii cu privilegii administrative pot atribui manual litere de unitate pentru a depăși această problemă. O altă condiție care poate provoca probleme pe Windows XP este atunci când există unități de rețea definite, dar într-o stare de eroare (așa cum ar fi pe un laptop care funcționează în afara rețelei). Chiar și atunci când unitatea de rețea neconectată nu este următoarea literă de unitate disponibilă, este posibil ca Windows XP să nu poată mapa o unitate și această eroare poate împiedica și montarea dispozitivului USB.

Sarcini comune

Aplicarea schemei discutate mai sus pe un sistem destul de modern bazat pe Windows are ca rezultat de obicei următoarele atribuiri de litere de unitate:

  • A: - Unități de dischetă , 3+12 ″ sau 5+14 ″ și, eventual, alte tipuri de unități de disc, dacă există.
  • B: - Rezervat pentru a doua unitate de dischetă (care a fost prezentă pe multe computere).
  • C: - Prima partiție a hard diskului .
  • D: până la Z: - Alte partiții de disc sunt etichetate aici. Windows atribuie următoarea literă de unitate gratuită următoarei unități pe care o întâlnește în timp ce enumeră unitățile de disc de pe sistem. Unitățile pot fi partiționate, creând astfel mai multe litere de unitate. Acest lucru se aplică MS-DOS, precum și tuturor sistemelor de operare Windows. Windows oferă alte modalități de a schimba literele de unitate, fie prin snap-in-ul de gestionare a discului, fie diskpart. MS-DOS folosește de obicei parametri pe driverele de dispozitiv de încărcare a liniei din fișierul CONFIG.SYS .

Litere de unitate specifice cazului:

  • F: - Prima unitate de rețea dacă utilizați Novell NetWare .
  • G: - „Google Drive File Stream” dacă utilizați Google Drive .
  • H: - Directorul „Acasă” pe un server de rețea.
  • L: - Unitate de încărcare atribuită dinamic sub DOS simultan, DOS multi-utilizator, System Manager și REAL / 32.
  • M: - Litera unității pentru opțional unitatea de memorie MDISK sub DOS simultan.
  • N: , O: , P: - Repartizabile unități plutitoare sub CP / M-86 4.x, CP Personal / M-86 2.x, DOS Plus 1,1-2,1 (prin BDOS apel 0Fh), un concept extins ulterior la orice litere de unitate neutilizate sub DOS simultan, DOS multiusor, System Manager, REAL / 32 și DR DOS până la 6.0.
  • Î: - Virtualizare Microsoft Office Click-to-Run.
  • U: - Sistem de fișiere unificat de tip Unix cu director virtual \DEVpentru fișiere de dispozitiv sub MiNT , MagiC și MultiTOS .
  • Z: - Prima unitate de rețea dacă utilizați Banyan VINES și atribuirea inițială a literelor de unitate pentru rețeaua de disc virtual în emulatorul DOSBox x86 . Este, de asemenea, prima literă selectată de Windows pentru resursele de rețea, deoarece selectează automat din Z: în jos. În mod implicit, Wine mapează Z: la rădăcina arborelui director UNIX.

Când nu există o a doua unitate de dischetă fizică, unitatea B: poate fi utilizată ca o unitate de dischetă „virtuală” mapată pe unitatea fizică A: prin care utilizatorul ar fi solicitat să schimbe dischetele de fiecare dată când a fost necesară o citire sau o scriere pentru oricare cel mai recent utilizate de a: sau B: . Acest lucru permite o mare parte din funcționalitatea a două unități de dischetă de pe un computer care are doar una. Acest concept de mai multe litere de unitate care partajează un singur dispozitiv fizic (opțional cu „vizualizări” diferite ale acestuia) nu se limitează la prima unitate de dischetă, ci poate fi utilizat și pentru alte unități, configurând dispozitive bloc suplimentare pentru acestea cu standardul DOS DRIVER.SYS în CONFIG.SYS .

Unitățile de rețea sunt deseori atribuite litere către sfârșitul alfabetului. Acest lucru se face adesea pentru a le diferenția de unitățile locale: utilizând litere către final, reduce riscul unui conflict de atribuire. Este adevărat mai ales când atribuirea se face automat într-o rețea (de obicei printr-un script de logare).

În majoritatea sistemelor DOS, nu este posibil să aveți mai mult de 26 de unități montate. Atari GEMDOS acceptă 16 litere de unitate A: până la P: numai. Cele PalmDOS PCMCIA sprijină stivele de driver conduce litere 0: , 1: , 2: , ... la adresa de sloturi de acționare PCMCIA.

Unele drivere de rețea Novell pentru DOS acceptă până la 32 de litere de unitate în versiunile DOS compatibile. În plus, Novell DOS 7, OpenDOS 7.01 și DR-DOS 7,02 sprijini cu adevărat o CONFIG.SYS LASTDRIVE=32directivă , în scopul de a aloca până la 32 de litere de unitate, pe nume A: la Z: , [: , \: , ]: , ^: , _: și `: . (DR-DOS 7.02-7.07 suportă HILASTDRIVEși LASTDRIVEHIGHdirective și pentru a muta structurile de unitate în memoria superioară.) Unele programe de aplicații DOS nu așteaptă litere de unitate dincolo de Z: și nu vor funcționa cu ele, de aceea este recomandat să le utilizați pentru scopuri sau căutare de unități.

Procesorul de linie de comandă 4DOS al JP Software acceptă litere de unitate dincolo de Z: în general, dar întrucât unele dintre litere se ciocnesc cu extensiile sintactice ale acestui procesor de linie de comandă, acestea trebuie să fie evitate pentru a le putea folosi ca litere de unitate.

Windows 9x (MS-DOS 7.0 / MS-DOS 7.1) a adăugat suport LASTDRIVE=32și pentru LASTDRIVEHIGH=32.

Dacă accesul la mai multe sisteme de fișiere decât Z: este necesar în Windows NT, trebuie folosite punctele de montare a volumului . Cu toate acestea, este posibil să se monteze unitățile care nu sunt litere, cum ar fi 1: , 2: , sau : folosind linia de comandă SUBSTutilitarul în Windows XP sau o versiune ulterioară ( de exemplu SUBST 1: C:\TEMP), dar nu este acceptat în mod oficial și poate rupe programe care presupun că toate unitățile sunt literele a: la Z: .

ASSIGN, JOIN și SUBST în DOS și Windows

Literele de unitate nu sunt singurul mod de a accesa volume diferite. DOS oferă o comandă JOIN care permite accesul la un volum atribuit printr-un director arbitrar, similar cu comanda Unix mount . De asemenea, oferă o comandă SUBST care permite atribuirea unei litere de unitate către un director. Una sau ambele comenzi au fost eliminate în sistemele ulterioare, cum ar fi OS / 2 sau Windows NT , dar începând cu Windows 2000 , ambele sunt din nou acceptate: Comanda SUBST există ca înainte, în timp ce funcționalitatea JOIN este inclusă în LINKD (parte a resursei Windows Kit ). În Windows Vista , noua comandă MKLINK poate fi utilizată în acest scop. De asemenea, Windows 2000 și versiunile ulterioare acceptă punctele de montare, accesibile din panoul de control .

Multe sisteme de operare originare din Digital Research oferă mijloace de atribuire implicită a unităților alternative, numite unități plutitoare în terminologia DRI, utilizând comanda CD / CHDIR în următoarea sintaxă:

CD N:=C:\SUBDIR

DOS Plus acceptă acest lucru pentru litere de unitate N: , O: și P: . Această caracteristică este prezentă și în DOS simultan , DOS multi-utilizator , System Manager 7 și REAL / 32 , cu toate acestea, aceste sisteme extind conceptul la toate literele de unitate neutilizate de la A: la Z :, cu excepția literei de unitate rezervate L :. DR DOS 3.31 - 6.0 (până la actualizările din 1992-11 numai cu BDOS 6.7) acceptă acest lucru, inclusiv litera L :. Această caracteristică nu este disponibilă sub DR DOS 6.0 (actualizare 1992), PalmDOS 1.0, Novell DOS 7, OpenDOS 7.01, DR-DOS 7.02 și versiuni ulterioare. Unitățile plutitoare sunt implementate în kernel-ul BDOS, nu în shell-ul liniei de comandă, astfel pot fi utilizate și atribuite și din interiorul aplicațiilor atunci când utilizează apelul de sistem „modificare director”. Cu toate acestea, majoritatea aplicațiilor DOS nu sunt conștiente de această extensie și, prin urmare, vor renunța la astfel de căi de director ca nevalide. Interpretorul de linie de comandă 4DOS al JP Software acceptă unități plutitoare pe sistemele de operare care îl suportă.

Într-o caracteristică similară, Concurrent DOS, Multiuser DOS, System Manager și REAL / 32 vor atribui dinamic o literă de unitate L: la calea de încărcare a unei aplicații încărcate, permițând astfel aplicațiilor să se refere la fișierele care se află în directorul lor de încărcare sub o unitate standardizată. scrisoare în loc de sub o cale absolută. Această caracteristică a unității de încărcare facilitează deplasarea instalațiilor software pe și pe discuri fără a fi nevoie să adaptați căile la suprapuneri, fișiere de configurare sau date de utilizator stocate în directorul de încărcare sau directoare ulterioare. (Din motive similare, apendicele la blocul de mediu asociat cu aplicațiile încărcate sub DOS 3.0 (și o versiune ulterioară) conține și o referință la calea de încărcare a executabilului, totuși, aceasta consumă mai multă memorie rezidentă și pentru a profita de ea, suportul pentru acesta trebuie codificat în executabil, în timp ce soluția DRI funcționează cu orice fel de aplicații și este pe deplin transparentă și pentru utilizatori.) În unele versiuni ale DR-DOS, calea de încărcare conținută în anexa la mediu a fost transmisă driverelor poate fi scurtat la cel al unei unități temporare de substituție (de exemplu SUBST B: C:\DIR) prin opțiunea INSTALL[HIGH]/ (pentru în loc de, să zicem ). Aceasta poate fi utilizată pentru a minimiza amprenta de memorie efectivă a unui driver, dacă executabilul este situat într-un subdirector profund și driverul rezident nu mai are nevoie de calea sa de încărcare după instalare. LOADHIGH/D[:loaddrive]B:TSR.COMC:\DIR\TSR.COM

Vezi si

Referințe

linkuri externe