Pomiędzy DOS-em i jego następcą w postaci Windowsa, a całą resztą informatycznego świata, nietrudno zauważyć jedną gruntowną różnicę. Tą różnicą jest ukośnik, a dokładniej jego pochylenie – w lewo lub w prawo. Dlaczego, w przeciwieństwie do wszystkich innych systemów operacyjnych, produkty Microsoftu do oznaczania ścieżek katalogów używają ukośnika wstecznego, czyli backslasha? Aby odpowiedzieć na to pytanie musimy cofnąć się daleko wstecz, aż do czasów pierwszych komputerów osobistych i smutnego, tekstowego interfejsu MS-DOS. 

DISK OPERATING SYSTEM

Microsoft Disk Operating System, znany lepiej pod akronimem MS-DOS, został po raz pierwszy wydany w 1981 roku. Nowy system operacyjny powstał w oparciu o nabyty przez Microsoft kod jeszcze starszego QDOS (Quick and Dirty Operating System). System korzystał z tekstowego interfejsu poleceń i… w swej pierwszej wersji w ogóle nie obsługiwał tworzenia katalogów, a już szczególnie nie umiał układać ich w drzewko, znane dzisiaj z każdego systemu operacyjnego.

MS-DOS. Backslash w DOS i Windows.

Samo pojęcie katalogu oraz hierarchicznego systemu plików było znane wówczas już od ponad dekady, a zadebiutowało wraz z Uniksem w 1969 roku. W laboratoriach XEROX PARC w 1973 opracowano komputer Alto, który wprowadził m.in. graficzny interfejs użytkownika ze znanymi dziś ikonkami. MS-DOS nie był więc bynajmniej systemem nowoczesnym już w chwili swojego debiutu.

KATALOGI TRAFIAJĄ DO MS-DOS 

Już rok po swojej premierze, DOS musiał zostać zmodernizowany, aby móc obsłużyć katalogi i potężny, bo aż dziesięciomegabajtowy, dysk najnowszego komputera IBM PC XT. Jeśli więc wprowadzamy katalogi, to musimy w jakiś sposób obsłużyć nawigację po nich. Naturalnym rozwiązaniem wydaje się dobrze znany już wówczas z Uniksa prawy ukośnik.

/home/user/plik

Problem w tym, że ukośnik ów był już w systemie DOS używany, ale bynajmniej nie do celu nawigacji między katalogami. Większość narzędzi zawartych w DOS-ie było napisane przez IBM. Używały one ukośnika dla parametrów poszczególnych komend. Przykładowo, użycie parametru /V w przypadku komendy FIND sprawi, że wyświetlona zostanie jedynie ilość linii, które zawierają podany ciąg znaków.

FIND /V

Co ciekawe, takie rozwiązanie dla wyznaczania parametrów wynikło z przyzwyczajeń deweloperów pracujących nad MS-DOS, którzy używali wcześniej systemu DEC-20, w którym je stosowano. Stamtąd pochodzi również dwukropek stosowany po nazwie dysku:

C:\Users

Możliwe jest także użycie parametru bez spacji, a to mogłoby prowadzić do pomylenia parametru ze ścieżką katalogów.

FIND/V

W systemach uniksowych, gdzie ukośnik służy właśnie do oznaczenia takich ścieżek, do deklarowania parametrów używa się myślnika:

uname -a

IBM chciał, aby nowy MS-DOS 2.0 wprowadzający m.in. obsługę katalogów, był kompatybilny z już używanymi i znanymi użytkownikom narzędziami. Zdecydowano się więc, aby ścieżki katalogów były oznaczane odwrotnym ukośnikiem, po angielsku zwanym backslashem, głównie ze względu na graficzne podobieństwo do uniksowego rozwiązania.

C:\Users\Admin\Documents

Wówczas, gdy poziom standardyzacji oraz integracji systemów, a trakże informatyzacji świata nieskończenie dalece odbiegał od stanu dzisiejszego, nikt nie przejmował się możliwym powstaniem niekompatybilności z innym oprogramowaniem. Ważne było jednak, aby system był kompatybilny chociaż sam ze sobą i swoimi poprzednimi wydaniami. I tak, pomimo faktu, że od czasów Windowsa XP żaden system z rodziny Windows nie ma z DOS-em pod względem architektury nic wspólnego, pewne rozwiązania przetrwały ze względu na kompatybilność i zwyczajne przyzwyczajenia. Jest nimi także dwukropek po literze dysku oraz backslash, które znajdziemy w każdym systemie Windows, także opartym na jądrze NT. W ramach ciekawostki można jednak powiedzieć, że w niektórych wersjach MS-DOS istniało nieudokumentowane polecenie SWITCHAR, czyli swoisty przełącznik w tryb Uniksa. Po jego użyciu parametry można było wydzielać za pomocą myślnika, a ścieżki katalogów prawym ukośnikiem. Przełącznik SWITCHAR nie przetrwał jednak do naszych czasów.

MICROSOFT VS RESZTA ŚWIATA

System Unix okazał się mieć gigantyczny wpływ na rozwój informatyki. Z niego pochodzą używane do dzisiaj systemy BSD oraz macOS i iOS, to on spopularyzował język C, to jego konwencje stanowiły podstawę dla Linuksa, a więc także wszystkich dystrybucji, Androida, ChromeOS. Wszędzie tam katalogi oddzielane są ukośnikiem. Podobnie jest w przypadku adresów stron internetowych:

https://magnifier.pl/tech

…a także protokołów, na przykład FTP. Nawet wówczas, gdy serwer FTP oparty jest na systemie z rodziny Windows.

Z biegiem czasu używany przez produkty Microsoftu backslash stał się powodem problemów. Odwrotny ukośnik używany jest bowiem także do oznaczania tzw. escape character, czyli znaku zapowiadającego, że następna litera ma charakter sterujący i nie jest elementem ciągu znaków. Backslash może być także źródłem pomyłek, na przykład prób wpisania prawego ukośnika w wiersz polecenia systemu Windows lub ukośnika odwrotnego w adres strony internetowej. Aby sobie z tym radzić, w oprogramowaniu niekiedy stosuje się mechanizm korekty ukośnika, automatycznie tłumacząc np.

magnifier.pl\tech

na poprawne:

magnifier.pl/tech

Taki mechanizm istnieje także… w systemie Windows. Po wpisaniu prawych ukośników w celu nawigacji do katalogu:

C:/Windows/

system poprawnie zinterpretuje polecenie. Ale nie zawsze i nie wszędzie – wszystko zależy bowiem od tego, czy dane oprogramowanie jest w stanie korygować użycie ukośnika.

Czytaj więcej: Rodzaje hostingu internetowego. Jaki typ hostingu wybrać? Współdzielony, VPS, serwer dedykowany, a może chmura? Porównanie. 

Niewątpliwie dobrze byłoby, gdyby cały świat używał tego samego ukośnika. Na co dzień o tej międzysystemowej różnicy można zapomnieć, wciąż może ona niekiedy sprawiać jednak problemy, choćby z przyzwyczajeń – te są bowiem podobno drugą naturą człowieka. Drugą naturą systemów Microsoftu jest natomiast kompatybilność wsteczna z samym sobą, dla której producent był w stanie postawić się w opozycji do całego świata. Cóż… liczą się chęci.