Кіріспе

Компьютерлік файл жүйесі

Дискілік файл жүйесі (DFS) – Acorn Computers компаниясымен әзірленген компьютерлік файл жүйесі, бастапқыда Eurocard негізіндегі Acorn System 2-ге қосымша ретінде құрастырылған. 1981 жылы Батыс Австралия мен Оңтүстік Австралияның білім беру департаменттері мектептеріне жеке компьютерлерді жеткізу бойынша бірлескен тендерлерді жариялады. Acorn компаниясының Австралиядағы компьютер дистрибьюторы Barson Computers компаниясы, бірлескен басқарушы директорлар Герман Хаузер мен Крис Карриді жақын арада шығарылатын Acorn BBC микрокомпьютерін жиынтықтың бір бөлігі ретінде дискілік жадпен ұсынуға келісім беруге көндірді. Олар Барсонның Acorn DFS-ті 2-ші жүйеден бейімдеуі жағдайында келісті, себебі Acorn-ның көмегіне мұқтаждық болмады, олардың жеткілікті ресурстары болмады. Бұл DFS-ті BBC Micro-мен үйлесімді ету үшін аппараттық және бағдарламалық жасақтамалық шағын өзгерістерді қажет етті. Барсон екі штаттың тендерлерін жеңіп алды, DFS орнатылған күйде, Ұлыбританиядан бір жыл бұрын. Осы ерте бастаманың нәтижесінде BBC Micro Австралиядағы білім беру нарығына басымдық берді, ал Acorn Electron пайда болғанға дейін үй компьютерлері нарығына енуі өте шектеулі болды. DFS ROM және дискіні басқарушы чипі түрінде BBC Micro-ның негізгі платасына орнатылды. Файл жүйесінің функционалдығы және жад сыйымдылығы өте шектеулі болды, жазық каталог құрылымын пайдаланды. Әрбір файл атауы жеті әріпке дейін, сондай-ақ файл сақталатын каталогтың бір әріпіне дейін болуы мүмкін. DFS ерекшелігі – көптеген файлдық жүйелерден айырмашылығы, бір ғана сатушы немесе іске асырушы болмады. Бастапқы DFS-ті Acorn жазды, олар өздерінің код базасын ұстап тұруды жалғастырды, бірақ әртүрлі дискілік жетек сатушылары өздерінің іске асыруларын жасады. Cumana, Solidisk, Opus және Watford Electronics компаниялары өздерінің DFS іске асыруларын жасады. Watford Electronics іске асыруы стандартты емес дискілік форматты пайдаланып, әдеттегі 31 файлдың орнына дискіге 62 файлды қолдау мүмкіндігімен ерекшеленеді. Сонымен қатар, Solidisk іске асыруы дискіде шексіз файлдарға (тек дискінің көлемімен шектелген) рұқсат беретін меншік "тізбектелген" каталогтарды енгізді. Үшінші тараптың іске асыруларындағы басқа мүмкіндіктерге бос орынды қарау және бастапқы Acorn DFS-пен бірге пайдалы дискіде келген FORMAT және VERIFY командалары кірді. Acorn өзінің бастапқы DFS сериясын Acorn 1770 DFS-пен жалғастырды, ол бұрынғы нұсқадағыдай дискілік форматты қолданды, бірақ қосымша командалар жиынтығын қосты және жақсартылған WD1770 дискілік жетек контроллеріне қолдау көрсетті.

Физикалық пішімі

DFS әдетте екі жақты тығыздықты 5¼" дискетаның бір жағын пайдаланады. Дискілер 40 немесе 80 трек ретінде форматталады, бұл әр бетке 100 немесе 200 КБ сыйымдылық береді (бір трекке он 256 байттық сектор, FM кодтауымен). Сыйымдылығы бастапқы BBC Micro-да қолданылған Intel 8271 контроллерінің таңдалуымен шектеледі, ол тек FM кодтауын қолдайды, ал BBC Micro-ның шығарылған кезінде кеңінен қолданылған MFM кодтауын емес. FM кодтау, берілген физикалық дискінің тығыздығы үшін MFM-нің жаздыру қабілетінің жартысын қамтамасыз етеді. FM және MFM кодтаулары жиі "бір жақты тығыздық" және "екі жақты тығыздық" деп аталады, бірақ дисктер мен дискілер бірдей болады, ал "жоғары тығыздық" үшін басқа дисктер мен дискілер қолданылады. Екі жақты тығыздықты 3½" дискілерді 1770 DFS-пен форматтауға болады (Intel 8271 негізіндегі DFS көптеген 3½" дискілермен мәселелер тудырады), бұл FM кодтаумен бірдей "бір жақты тығыздық" сыйымдылығын береді, бірақ бұл бастапқыда стандартты тәжірибе болған жоқ. 3½" дискілер әдетте кейінірек Advanced Disc Filing System-ді пайдаланып, MFM "екі жақты тығыздық" ретінде форматталды, себебі ол 3½" дискілермен жабдықталған барлық Acorn машиналарында бар. 2009 жылдан бастап 3½" дискілер BBC Micro-мен бұрынғыға қарағанда жиі қолданылады, соның ішінде DFS-пен де, олардың көптеп табылғандығы және жаңа компьютерлермен деректерді оңай алмасу мүмкіндігіне байланысты. Жоғары тығыздықты 5¼" және 3½" дискілер DFS-те қолдау таппайды.

Бір және екі жақты жұмыс

DFS екі жақты дисктерді тікелей қолдамайды; керісінше, екі жақты дискінің екі басы екі жеке логикалық диск ретінде қарастырылады. DFS 0-ден 3-ке дейін нөмірленген максимум төрт томды қолдай алады. 0-шы диск – әдепкі диск, ал 1-ші диск кабельге қосылған екінші дискті білдіреді. "Диск" 2 – 0-шы дисктың артқы жағын, ал "диск" 3 – 1-ші дисктың артқы жағын көрсетеді. Екінен артық физикалық диск қолдау көрсетілмейді. Бір жақты дисктердің кең таралғандығына байланысты, коммерциялық бағдарламалық жасақтама әдетте бір жақты дисктерде немесе екінші жағына қолмен айналдыру қажет болатын "қос жақты дисктер" түрінде жеткізілді.

Диск құрылымы

Каталог (файл кестесі) дискідегі алғашқы екі секторды иеленеді: біреуі әр файлдың атаулары мен каталогтары үшін, ал екіншісі файлдың орналасқан жері, көлемі және метадеректерін сақтайды. Әрбір файл үшін әр сектордың сегіз байты қолданылады. Тағы сегіз байт әр сектордан 12 байттық диск атауы мен том туралы ақпаратты сақтауға резервтелгендіктен, дискідегі файлдардың жалпы саны (қай каталогта болса да) 31-ге дейін шектеледі. Орынды үнемдеу үшін файлдың каталог әрпінің ең маңызды биті құлыпталған (тек оқуға арналған) белгісі ретінде пайдаланылады.

Көлемнің көлемі

Физикалық дискілер әдетте 100 КБ немесе 200 КБ форматталғанмен, DFS 256 КБ-қа дейінгі томдарды қолдайды. DFS файлының рұқсат етілген ең ірі мөлшері – томның көлемінен каталог үшін 1/2 КБ кем, себебі файл мөлшері 18 бит ретінде сақталады.

Файлдарды бөлу

DFS деректерді фрагментациялауды қолдамайды, яғни файлдың деректері бір-біріне тікелей жалғасқан секторлардың бірыңғай тізбегінде сақталуы керек, бірақ бос орын фрагментациялануға бейім. Файлдың соңы келесі файлдың басына жеткенде кездейсоқ түрде файлға жазу сәтсіз аяқталады, тіпті дискіде басқа жерде бос секторлар болса да. Мұндай жағдайларда DFS "Кеңейту мүмкін емес" қатесімен жұмысын тоқтатады. SAVE командасы файлды қол жетімді орынға бөлшектеуге қабілетсіз, бірақ қате секторды бөлу кезеңінде туындағандықтан, "Диск толы" қатесі қайтарылады. *COMPACT командасы дискідегі барлық файлдарды бірыңғай блокқа жылжытып, одан кейін барлық бос орынды екінші блокқа орналастырады. Бұл келесі файлға дискіні толтыруға мүмкіндік береді, бірақ жылжытпастан тек соңғы файлты ғана кеңейтуге болады. SAVE командасы кез келген файлды жойып, көрсетілген жад блогын дискідегі бос орын бар жерге көшіреді. Ал *COMPACT командасы файлдарды жылжыту үшін бағдарламалық жадты буфер ретінде пайдаланады, соның салдарынан жадтағы кез келген бағдарлама мен деректер жаңадан жазылады.

Метадеректер

Кассеталық файл жүйесі сияқты, Acorn DFS де BBC Micro стандартты файл метадеректерін қолдайды: жүктеу мекенжайы және орындау мекенжайы, себебі Acorn MOS (BBC Micro пайдаланған операциялық жүйе) екілік кодты қайта орналастыруды қолдамайды. Файл бағдарламашының ниеттенген мекенжайына жүктелуі тиіс, өйткені файлдың ішкі бөліктері абсолютті мекенжайлар арқылы сілтеме жасауы мүмкін. Орындау мекенжайы да тіркеледі, өйткені кіру нүктесі міндетті түрде файлдың басында немесе ішінде орналаспауы мүмкін. Файл атрибуттары бір ғана битпен шектеледі: Құлыпталған. Егер белгіленген болса, каталогта файл атының оң жағында "L" әрпі пайда болады және файлды өзгертуге, жаңадан жазуға немесе жоюға болмайды.

Күндері

DFS дискілері ешқандай күнді тіркемейді (өйткені Acorn MOS-тың 3-ші нұсқасына дейін нақты уақыт сағаты болмаған), бірақ оның орнына ерекше мүмкіндік ұсынады: өзгертулер саны. Каталог жаңартылған сайын, бұл сан артады. Сан дискінің каталогының бірінші жолындағы атаудан кейін жақша ішінде көрсетіледі, мысалы, жоғарыда көрсетілген каталог тізіміндегі 12 санындай.

Басқа ерекшеліктері

DFS сонымен қатар кілттік тізбекке негізделген дискілік бағдарламалық құралды іске қосу мүмкіндігін де қолдайды. Егер машинаны «жұмсақ» немесе «қатты» қайта жүктеу кезінде Shift пернесін басып тұрса, DFS 0-шы дискіде оң жүктеу белгісі бар дискіні тексереді. Жүктеу белгісі 0 (назарда ұстамау), 1 (файлді жүктеу), 2 (машиналық кодты файлды орындау) немесе 3 («іске қосу» сценарийі) болуы мүмкін. Егер жүктеу белгісі оң болса, $.!BOOT деп аталатын файл ізделіп, жадқа жүктеледі (1), машиналық код ретінде жүктеліп орындалады (2) немесе пернетақта буферіне жіберіледі (3). 3-ші нұсқада бастапқы қабықша сценарийлері ретінде қолданылатын «EXEC» файлдары, мәтіндік макро-файлдар оқылады. Бұл нағыз қабықша сценарийлері емес, жай ғана пернелер тізбегі сияқты, жазуды қайта ойнату үшін. Сондықтан, олар BASIC интерпретаторына осындай кодты енгізбейінше циклға түсіп немесе тармақталу мүмкін емес. Олар қайта жүктеу кезінде ғана емес, операциялық жүйенің *EXEC командасы арқылы кез келген уақытта орындалуы мүмкін. EXEC файлдары файлдық жүйеге тәуелсіз.

Баламалар

DFS-тің DNFS немесе Диск/Желілік Файл Жүйесі деп аталатын түрі болды, онда Econet Network Filing System (NFS), стандартты Диск Файл Жүйесі және Tube копроцессорлық қолдау бағдарламалық құралы бір ROM-да біріктірілген; бұл ROM операциялық жүйеге бірден екі файл жүйесін орнатты. DFS-тің бастапқы дизайны Intel Corporation FDC 8271 дискілік драйвер контроллеріне негізделген, ол IBM Personal Computer-де кездесетін 8272 дизайнының тікелей алдыңғысы болды. 8271 контроллерінің мүмкіндіктері шектеулі және ол көне болғандықтан, Solidisk, Acorn және Watford Electronics сияқты әртүрлі өндірушілерден шыққан файл жүйесінің кейінгі нұсқалары WD1770 және WD1772 драйвер контроллерлеріне негізделді. 1770 контроллері ADFS пайда болғаннан кейін Acorn өнімдерінің стандартты контроллеріне айналды. DFS-тің орнына Advanced Disc Filing System (ADFS) келді, ол толыққанды иерархиялық құрылымға ие және BBC Micro компьютерінде қатты дискілерді пайдалануға жарамды болды. ADFS BBC Master компьютерінде стандартты файл жүйесі болды, бірақ көптеген пайдаланушылар үйлесімділік үшін DFS-ке қайта оралған болуы мүмкін, себебі ADFS DFS дискілерін оқи алмады. ADFS сондай-ақ RISC OS үшін стандартты файл жүйесі ретінде таңдалды.