Кіріспе

OpenVMS және RSX 11 операциялық жүйелерінің файлдық жүйесі. Files 11 – Digital Equipment Corporation компаниясының RSX 11 және OpenVMS операциялық жүйелерінде қолданылатын файлдық жүйе. Ол жазбаға бағытталған кіріс-шығыс (I/O), қашық желілік қол жеткізу және файл нұсқаларын басқаруды қолдайды. Бастапқы ODS 1 қабаты – жазық файлдық жүйе; ODS 2 нұсқасы – иерархиялық файлдық жүйе, қол жеткізуді бақылау тізімдерін қолдайды. Files 11 жүйесі Digital Equipment Corporation компаниясының TOPS 20 және RSTS/E сияқты алдыңғы операциялық жүйелерінде қолданылған файлдық жүйелерге ұқсас, бірақ олардан айтарлықтай жетілген.

Тарих

OpenVMS файлдық жүйесі ескі DEC операциялық жүйелерінен шыққан және көп жағынан ұқсас, олардың екеуін де Дейв Катлер жасаған. Басты айырмашылық – каталогтардың құрылымы. Бұл файлдық жүйелердің бәрі де, әдетте, әрбір пайдаланушы тіркелгісіне бір каталог тағайындау арқылы, қарапайым, иерархиялық емес каталог құрылымын ұсынды. RSTS/E жүйесінде әрбір пайдаланушы тіркелгісі екі санмен, [жоба, бағдарламашы] жұбымен көрсетіліп, бір байланысты каталогқа ие болды. Бағдарламаның орындалатын файлдары және операциялық жүйе сияқты арнайы жүйелік файлдар, резервтелген жүйелік тіркелгінің каталогында сақталды. Бұл PDP 11 жүйелері үшін, яғни шектеулі тұрақты жадқа ие жүйелер үшін қолайлы болғанмен, VAX жүйелеріне, әлдеқайда үлкен дискілермен, файлдарды сақтаудың көбірек икемді әдісі қажет болды: әсіресе иерархиялық каталог құрылымы, ODS 2-дегі ең маңызды жаңару.

Шолу

"11-файлдар" – 1-ден 5-ге дейінгі деңгейлердегі диск құрылымы (ODS) деп аталатын бес жеке файлдық жүйені білдіретін жалпы термин. ODS 1 – RSX 11 операциялық жүйесінде қолданылатын, RSX үйлесімділігі үшін ескі VMS жүйелері қолдайтын, бірақ VMS-ті қолдау үшін ешқашан пайдаланбаған, және негізінен ODS 2 және ODS 5 жүйелерімен алмастырылған файлдық жүйе. ODS 2 – стандартты VMS файлдық жүйесі болып табылады және жүйелік дискілерде (операциялық жүйе орнатылған диск) ең көп қолданылатын файлдық жүйе болып қала береді. ODS 3 және ODS 4 сирек ODS деңгейімен аталса да, олар CD ROM ISO 9660 және High Sierra Format файлдық жүйелері үшін "11-файлдар" қолдауы болып табылады. ODS 5 – Alpha және IA 64 платформаларында қолжетімді ODS 2-нің кеңейтілген нұсқасы, ол ASCII емес символдары бар файл атауларын сақтауға және иерархиялық каталогтарды қолдауды жақсартуға мүмкіндік береді. Бұл бастапқыда "NT Affinity" жобасының бөлігі ретінде Microsoft Windows немесе басқа VMS емес жүйелерге файлдық қызметтер ұсыну үшін жасалған, бірақ сонымен қатар пайдаланушы дискілерінде және интернет-серверлерде де қолданылады.

Каталогтың макетін құру

Files 11 файлдық жүйесіндегі барлық файлдар мен каталогтар бір немесе бірнеше басты каталогтардың ішінде орналасқан, содан кейін түбірлік каталогта және бас файлдық каталогта (төменде қараңыз) болады. Сондықтан файлдық жүйе бағытталған ациклдік граф (DAG) құрылымында ұйымдастырылған. Бұл мысалда (оң жақта көрсетілгендей), 2-файл Dir 2 және Dir 3 каталогтарының екеуінің де ішінде бір уақытта "болады"; ол бір каталогтан жойылса да, екінші каталогта сол жерден жойылғанға дейін сақталады. Бұл UNIX-тегі қатты сілтемелер концепциясына ұқсас, бірақ қатты сілтемелерге арналмаған дискілерде файлдың жойылмауына назар аудару керек (бұл мүмкіндік тек ODS 5 дискілерінде ғана қолжетімді, және дискіде қатты сілтемелер қосулы болса ғана).

Дискілерді ұйымдастыру және атау

Операциялық VMS жүйесінде бір немесе бірнеше онлайн дискілерге қол жетімділік бар, олардың әрқайсысында толық, тәуелсіз файл жүйесі орналасқан. Бұл жергілікті сақтағыш немесе кластер болған жағдайда, қашықтағы жүйелермен ортақ пайдаланылатын сақтағыш. OpenVMS кластерлік конфигурациясында жеке емес дискілер кластердегі барлық түйіндер арасында ортақ пайдаланылады (1-суретті қараңыз). Мұндай конфигурацияда екі жүйелік дискке желі арқылы барлық түйіндер қол жеткізе алады, бірақ жеке диск ортақ емес: ол тек сол машинадағы белгілі бір пайдаланушы немесе процесс үшін орнатылады. Кластердегі файлдарға қол жеткізуді OpenVMS Distributed Lock Manager басқарады, ол файл жүйесінің ажырамас бөлігі болып табылады. Бірнеше дискіні біріктіріп, бір үлкен логикалық диск немесе томдық жиынтық құруға болады. Деректерді қорғау немесе оқу жылдамдығын арттыру үшін дискілер автоматты түрде көлеңкелік жиынтықтарға көшірілуі мүмкін. Дискіні оның физикалық атауымен немесе (көбінесе) пайдаланушы анықтаған логикалық атауымен анықтауға болады. Мысалы, жүктелу құрылғысының (жүйелік дискі) физикалық атауы $3$DKA100 болуы мүмкін, бірақ ол әдетте логикалық атауы SYS$SYSDEVICE арқылы аталады. Әр дискідегі файл жүйелері (ODS 1-ден басқа) иерархиялық құрылымға ие. Толық көрсетілген файл атауы түйін атауынан, пайдаланушы аты мен паролінен, құрылғы атауынан, каталогтан, файл атауынан, файл түрінен және нұсқа нөмірінен тұрады:

NODE"accountname password"::device:[directory.subdirectory]filename.type;ver

Мысалы, [DIR1.DIR2.DIR3]FILE.EXT – FILE.EXT-тің ағымдағы әдепкі дискідегі [DIR1.DIR2.DIR3] каталогындағы соңғы нұсқасын білдіреді. DIR1 – негізгі файл каталогының (MFD) немесе түбірлік каталогтың кіші каталогы, ал DIR2 – DIR1-нің кіші каталогы. Дискідегі MFD [000000] арқылы анықталады. Файл атауының көп бөлігін жоюға болады, бұл жағдайда олар қолданыстағы әдепкі файл спецификациясынан алынады. Әдепкі файл спецификациясы басқа операциялық жүйелердегі «қазіргі каталог» түсінігін ауыстырады, түйін, құрылғы атауы және каталог үшін әдепкілер жиынтығын ұсынады. Барлық процестерде дискі атауы мен каталогты қамтитын әдепкі файл спецификациясы бар, ал VMS файл жүйесінің көптеген процедуралары файл түрін де қамтитын әдепкі файл спецификациясын қабылдайды; мысалы, TYPE командасы әдепкі файл түрі ретінде «.LIS»-ті пайдаланады, сондықтан TYPE F командасы, кеңейтімсіз, F.LIS файлын ашуға тырысады. Әрбір файлдың нұсқа нөмірі бар, егер сол файлдың басқа нұсқалары болмаса, ол әдетте 1-ге тең болады (әйтпесе, ең үлкен нұсқадан бірге жоғары). Файл сақталған сайын, ескі нұсқаны жаңартудың орнына, сол аты бар, бірақ нұсқа нөмірі жоғары файл құрылады. Ескі нұсқаларды DELETE немесе PURGE командасымен нақты жоюға болады, немесе файлдың нұсқа шегіне жеткенде (SET FILE/VERSION LIMIT командасымен орнатылған) ескі нұсқалар автоматты түрде жойылуы мүмкін. Сондықтан ескі нұсқалар жаңартылмайды, бірақ дискіде сақталады және кез келген уақытта оларды алуға болады. Нұсқа нөмірлерінің архитектуралық шегі 32767-ге тең. Егер қажет болмаса, нұсқаларды басқару әрекетін оңай өзгертуге болады. Әсіресе, деректер базасы сияқты тікелей жаңартылатын файлдар, егер олар арнайы бағдарламаланбаса, жаңа нұсқаларды жасамайды. ODS 2 жүйесінде кіші каталогтардың саны сегіз деңгейге дейін шектелген, ал файл атаулары мен кеңейтімдері тек үлкен әріптерден, сандардан және төмен сызықтан, тире белгісінен және доллар белгісінен тұруы мүмкін, олардың жалпы ұзындығы 39 таңбадан аспауы керек (39 таңба файл атауы үшін және 39 таңба кеңейтім үшін). ODS 5 жүйесі таңбалар жиынтығын кіші әріптерге және басқа да ASCII таңбаларына, сондай-ақ ISO Latin 1 және Unicode таңбаларына кеңейтеді, файл атауының ең үлкен ұзындығын арттырады және кіші каталогтардың санына шектеу қоймайды. ODS 2 жүйесінде рұқсат етілмейтін таңбаларды пайдаланатын ODS 5 файлының жолын құрағанда, артқа қарай үйлесімділікті сақтау үшін арнайы "^" синтаксисі қолданылады; мысалы, ODS 5 дискісіндегі "file.tar.gz;1" файлы "file^.tar.gz" деп аталады – файлдың атауы "file.tar", ал кеңейтімдері ".gz".

Логикалық атаулар

Логикалық атау – жүйелік айнымалы, ол дискке, каталогқа немесе файлға сілтеме жасай алады немесе басқа бағдарламаға тән ақпаратты қамтиды. Мысалы, логикалық SYS$SYSDEVICE жүйелік жүктеу құрылғысын анықтайды. Логикалық атау әдетте бір каталогты немесе дискіді білдіреді, мысалы SYS$LOGIN: – пайдаланушының кіріс (үй) каталогы (немесе каталогтары); бұл логикалық атауларды нақты дискі атаулары ретінде қолдануға болмайды – SYS$LOGIN:[DIR]FILE жарамды файл спецификациясы емес. Дегенмен, DEFINE/TRANSLATION=CONCEALED арқылы анықталған жасырылған логикалық атауларды осылай қолдануға болады; мұндай тамырланған каталогтар каталог спецификациясының соңында нүктемен (".") белгіленеді. Мысалы, $ DEFINE/TRANS=CONCEAL HOME DISK$USERS:[пайдаланушы_аты.] командасы HOME:[DIR]FILE файлын пайдалануға мүмкіндік береді. Көбінесе, кез келген дискіде немесе кез келген каталогта орналасқан кейбір қолданбалық бағдарламалық жасақтамамен байланысты нақты каталогтарға сілтеме жасайтын қарапайым логикалық атаулар қолданылады. Сондықтан логикалық ABC EXE ABC қолданбасы үшін орындалатын бағдарламалар каталогына, ал ABC TEMP – сол қолданба үшін уақытша файлдар каталогына сілтеме жасай алады. Бұл каталогтар ABC EXE сияқты бір дискіде және сол каталог ағашында орналасуы мүмкін, немесе басқа дискіде (және басқа каталог ағашында) болуы мүмкін. Unix жүйесіне ұқсас түрде, VMS бірнеше стандартты кіріс және шығыс арналарын анықтайды, оларға логикалық атаулар арқылы қол жеткізіледі: SYS$INPUT, SYS$OUTPUT, SYS$ERROR және SYS$COMMAND. POSIX операциялық жүйелерінде логикалық атауларға тікелей баламасы жоқ. Олар Unix ортасының айнымалыларына ұқсайды, бірақ оларды командалық қабық немесе қолданбалық бағдарлама емес, файлдық жүйе кеңейтеді. Оларды пайдалану алдында анықтау қажет, сондықтан көптеген логикалық атаулар жүйелік бастапқы команда файлында, сондай-ақ пайдаланушы кіру команда файлдарында анықталады. VMS жүйесінде логикалық атаулар басқа логикалық атауларға сілтеме жасай алады (алдын ала белгіленген 10 деңгейлік ұялау шегіне дейін) және қолданыстағы файл атауын іздеу үшін атаулар тізімін қамтуы мүмкін. Ең көп қолданылатын логикалық атаулар:

логикалық атау мағынасы
SYS$INPUT стандартты кіріс – интерактивті режимде терминал пернетақтасын білдіреді. Баптама файлында қолданылғанда, $ символымен басталмаған баптама файлы жолдарынан немесе DECK командасы арқылы көрсетілген кіріс деректерінен оқиды.
SYS$OUTPUT стандартты шығыс – процесс интерактивті болса терминал дисплейіне, ал баптама файлы болса баптама журналына шығарады.
SYS$ERROR стандартты қате – процесс интерактивті болса терминал дисплейіне, ал баптама файлы болса қате журналына шығарады.
SYS$COMMAND баптама файл командаларының көзі. Процесс интерактивті болса терминалдан, әйтпесе SYS$INPUT ағынынан оқиды.
TT процесске байланысты терминал
SYS$PRINT әдепкі принтер немесе басып шығару кезекі
SYS$LOGIN әр пайдаланушының үй каталогы
SYS$SCRATCH уақытша папка, уақытша файлдар каталогы
SYS$SYSTEM жүйелік бағдарламалардың көпшілігін және жүйелік авторизациялық файл (есептік жазбалар мен парольдер) сияқты бірнеше маңызды деректер файлдарын қамтитын каталог
SYS$SHARE ортақ орындалу уақыты кітапханалары, орындалатын файлдар және т.б.
SYS$LIBRARY жүйелік және қосымша кітапханалар

Логикалық атаулар тұжырымдамасын қолдайтын DEC емес операциялық жүйелердің бірі – AmigaOS, оны ASSIGN командасы арқылы жүзеге асырады. AmigaOS жүйесінің дискілік операциялық жүйесі AmigaDOS, TRIPOS-тың порты болып табылады және DEC операциялық жүйелеріне ұқсас келеді. Мысалы, физикалық құрылғылардың атаулары DF0: (бірінші дискет үшін), CDROM2: (үшінші CD-ROM дискісі үшін) және т.б. үлгіге сәйкес келеді. Алайда, жүйе кез келген қосылған дискіден жүктеле алады, сондықтан операциялық жүйе автоматты түрде жүктеу құрылғысына сілтеме жасайтын SYS: тағайындауын жасайды. Басқа тағайындамалар, LIBS:, PREFS:, C:, S: және т.б. де жасалады, олардың барлығы SYS: сілтемесімен анықталады. Пайдаланушылар өз тағайындамаларын жасауға және жоюға да құқылы.

Физикалық орналасуы: Дискідегі құрылым

Диск деңгейінде ODS файлдық жүйені блоктар массиві ретінде көрсетеді, блок – бір физикалық дискіде (томда) 512 тікелей байланысқан байттан тұрады. Диск блоктары кластерлерде тағайындалады (бастапқыда 3 тікелей байланысқан блок, бірақ кейін дискінің көлемі ұлғайған сайын саны артты). Дискідегі файл идеалды жағдайда толығымен тікелей байланысқан болады, яғни файлды құрайтын блоктар тізбектей орналасады, бірақ дискінің фрагментациясы кейде файлдың тікелей байланыспаған кластерлерде орналасуын қажет етеді, мұндай жағдайда осы бөліктер экстенттер деп аталады. Дискілерді басқа дискілермен біріктіріп, томдық жиынтық құруға болады және файлдар осы дискілер жиынтығының кез келген жерінде сақталады, бірақ дискінің көлемі үлкендеген соң томдық жиынтықты пайдалану азайды, себебі бір физикалық дискіні басқару оңайырақ. Files 11 дискісіндегі (немесе томдық жиынтықтағы) әрбір файлдың бірегей файл идентификаторы (FID) болады, ол үш саннан тұрады: файл нөмірі (NUM), файл тізбек нөмірі (SEQ) және салыстырмалы том нөмірі (RVN). NUM файлының метадеректері қай жерде сақталғанын INDEXF.SYS файлында (төменде қараңыз) көрсетеді; SEQ – бұл файл өшіріліп, сол INDEXF.SYS жазуын қайта пайдаланып жаңа файл құрылғанда артатын тізбек нөмірі (осылайша ескі файлға қате сілтемелер жаңа файлға бағытталмайды); ал RVN томдық жиынтықты пайдаланғанда файл сақталатын томның нөмірін көрсетеді.

Тізімдер

ODS томының құрылымдық қолдауы каталог файлы арқылы қамтамасыз етіледі – файл атауларының тізімін, файл нұсқаларының нөмірлерін және олармен байланысты FID-терді қамтитын арнайы файл. Бұл MVS-тегі VSAM каталогтарына және Unix файлдық жүйелері мен NTFS каталогтарына ұқсас. Каталог құрылымының түбінде негізгі файлдар каталогы (MFD) орналасқан, бұл түбірлік каталог томдағы барлық файлдарды (тікелей немесе жанама) қамтиды. Осы суретте 3 файлдан тұратын каталогтың мысалы және әрбір файл атауының INDEXF.SYS жазбасына қалай сәйкес келетіні көрсетілген (әрбір INDEXF жазбасы көбірек ақпаратты қамтиды; мұнда тек алғашқы бірнеше элемент көрсетілген).

Басқа файлдар

Сақтау бит картасы файлы: BITMAP. SYS
Бит картасы файлы томдағы пайдаланылған және бос орын туралы ақпаратты сақтау үшін жауапты. Ол жинақтауды басқару блогын (SCB) қамтиды, оған егжей-тегжейлі ақпарат кіреді ? ? ? және бит картасы – дискідегі блоктар кластерінің бос немесе бөлінгендігін көрсететін биттер массиві. VMS жүйесінің алғашқы нұсқаларында кластер 3 блоктан тұрды, бірақ дискілердің көлемі ұлғайған сайын кластердің көлемі де артты. Жаман блоктар файлы: BADBLK. SYS
Жаман блоктар файлы физикалық томдағы барлық белгілі жаман блоктарды қамтиды. Оның мақсаты – жүйенің оларды файлдарға бөлуіне кедеру келтіру. Бұл файл дискілер бетінде көптеген зақымдалған жерлермен шығарылатын алғашқы күндері жиі қолданылды. Томдар тізімі файлы: VOLSET. SYS
Томдар тізімі файлы томдар жинағының бірінші томында орналасқан және жинақтағы барлық томдардың таңбаларының тізімін және жинақтың атауын қамтиды. Ұзарту файлы: CONTIN. SYS
Көп томдық жинақтағы файл екі құрамдас томның шекарасын кесіп өткен кезде, Ұзарту файлы оның кеңейтім басқашасы ретінде қолданылады және файлдың қалған бөлігі қай томда орналасқандығын сипаттайды. Квота файлы: QUOTA. SYS
Квота файлында әр UIC-тің томдағы дискілік кеңістікті пайдалану туралы ақпарат бар. Онда әр UIC үшін томда бөлінген орын туралы жазба және осы UIC қанша орынды пайдаланып жатқаны туралы ақпарат бар. ЕСКЕРТУ: DISK QUOTA мүмкіндігі міндетті емес және файл тек егер бұл мүмкіндік қосылған болса ғана болады. Томның қауіпсіздік профилі: SECURITY. SYS
Томның қауіпсіздік профиліне томның иесі UIC, томды қорғау маскасы және оның кіруді бақылау тізімі кіреді. GUID Бөлшектеу кестесі: GPT. SYS
Бұл файл Extensible Firmware Interface сәйкес келетін микробағдарлама үшін және олармен қолданылатын MBR (Master Boot Record) және GPT (GUID Partitioning Table) дискілік құрылымдарын жабатын және қорғайтын файл. Бұл файл әдетте OpenVMS I64 дискісін бастапқылау кезінде жасалады және OpenVMS Alpha жүйесінде (INITIALIZE/GPT арқылы) қалау бойынша жасалуы мүмкін.