Кіріспе

Unix-тәрізді жүйелер үшін бағдарламалық интерфейс

Filesystem in Userspace (FUSE) – Unix және Unix-тәрізді компьютерлік операциялық жүйелер үшін бағдарламалық интерфейс, ол артықшылықтары жоқ пайдаланушыларға ядролық кодты өңдемей-ақ өздерінің файлдық жүйелерін құруға мүмкіндік береді. Бұл файлдық жүйе кодын пайдаланушы кеңістігінде іске қосу арқылы қол жеткізіледі, ал FUSE модулі ядроның нақты интерфейстеріне ғана көпір қызметін атқарады. FUSE Linux, FreeBSD, OpenBSD, NetBSD (puffs ретінде), OpenSolaris, Minix 3, macOS және Windows үшін қолжетімді. FUSE – бастапқыда GNU General Public License және GNU Lesser General Public License талаптарымен шығарылған ашық бағдарламалық қамтамасы.

Тарих

FUSE жүйесі бастапқыда AVFS (Virtual Filesystem) құрамына кірді, бұл файлдық жүйенің іске асырылуы GNU Hurd-тың аудармашы тұжырымының күшті әсеріне тап болды. Ол Linux Userland Filesystem-ді ығыстырып, libfuse1 кітапханасында қолданылатын аударма интерфейсін ұсынды. FUSE бастапқыда GNU General Public License және GNU Lesser General Public License шарттарымен жарияланды, кейін FreeBSD базалық жүйесінің бөлігі ретінде қайта іске асырылып, жеңілдетілген BSD лицензиясы бойынша таратылды. 2013 жылдың наурызында Сильвестр Галлон ISC лицензиясымен қайта іске асырылған нұсқасын шығарды, ол 2013 жылдың маусымында OpenBSD-ге енгізілді. FUSE негізгі Linux ядросының ағашына 2.6.14 нұсқасында біріктірілді. FUSE пайдаланушы кеңістігі, кітапхана, әдетте Linux ядросының даму қарқынымен қатар жүреді, сонымен бірге BSD ұрпақтарымен «күшімен үйлесімділікті» сақтайды. Бұл мүмкін, себебі ядро FUSE өзінің « мүмкіндік деңгейлерін» немесе нұсқаларын хабарлайды. Алайда, FUSE-тың macOS-қа арналған тармағы, OSXFUSE, кітапхананы ортақ пайдалану үшін тым көп айырмашылыққа ие. libfuse тарихындағы үзіліс – libfuse3, ол интерфейс және өнімділік жағынан ескі, қазір техникалық қолдау режиміндегі libfuse2-ге қарағанда үйлесімсіз жақсартуларды қамтиды. FUSE ядролық пайдаланушы кеңістігі протоколы нұсқаланған және ашық болғандықтан, бағдарламашы ядроның FUSE мүмкіндіктерімен байланыс құру үшін кодтың басқа бөлігін таңдауға болады. Екінші жағынан, және оның көптеген порттары «FUSE» құрылғысы жоқ жүйеде де іске асырыла алатын портативті жоғары деңгейлі интерфейсті қамтамасыз етеді.

Жұмыс істеу және пайдалану

Жаңа файл жүйесін іске асыру үшін, берілген libfuse кітапханасына байланысты басқарушы бағдарлама жазу қажет. Бұл бағдарламаның басты мақсаты – файл жүйесінің оқу/жазу/мәлімет алу сұраныстарына қалай жауап беру керектігін анықтау. Бағдарлама жаңа файл жүйесін орнату үшін де қолданылады. Файл жүйесі орнатылғанда, басқарушы ядроға тіркеледі. Егер пайдаланушы осы жаңа орнатылған файл жүйесіне оқу/жазу/мәлімет алу сұраныстарын жіберсе, ядро бұл IO сұраныстарын басқарушыға жібереді, содан кейін басқарушының жауабын пайдаланушыға қайтарады. FUSE, әсіресе виртуалды файл жүйелерін жасау үшін өте пайдалы. Қалыпты файл жүйелерінен өзгеше, олар деректерді жаппай сақтау құрылғысында сақтайды, ал виртуалды файл жүйелері деректерді өзі сақтамайды. Олар қолданыстағы файл жүйесінің немесе сақтау құрылғысының көрінісі немесе аудармасы болып табылады. Теориялық тұрғыдан алғанда, FUSE іске асырылымы үшін қолжетімді кез келген ресурсты файл жүйесі ретінде экспорттауға болады.

Дискідегі файл жүйелері

Дискідегі стандартты файлдық жүйелер FUSE арқылы пайдаланушы кеңістігінде іске асырылуы мүмкін, мысалы, үйлесімділік немесе лицензиялық талаптар бойынша. Сызықтық магниттік таспалық файлдық жүйе: Магниттік таспаға сақталған файлдарға дискідегі немесе сыртқы флэш-жеке дисктердегідей қол жеткізуге мүмкіндік береді. NTFS 3G және Captive NTFS, NTFS файлдық жүйелеріне қол жеткізуді қамтамасыз етеді. retro fuse: retro fuse – бұл қазіргі операциялық жүйелерде ежелгі Unix жүйелері жасаған файлдық жүйелерді тағуға мүмкіндік беретін пайдаланушы кеңістігіндегі файлдық жүйе. Retro fuse-тың ағымдағы нұсқасы BTL-ден шыққан Research Unix-тің бесінші, алтыншы және жетінші нұсқаларымен, сондай-ақ 2.9BSD және 2.11BSD негізіндегі жүйелермен жасалған файлдық жүйелерді тағуды қолдайды.