Кіріспе
Linux үшін файлдық жүйе қызметі.
Unionfs – Linux, FreeBSD және NetBSD жүйелері үшін файлдық жүйе қызметі, ол басқа файлдық жүйелер үшін біріктірілген орнатуды (union mount) іске асырады. Ол жеке файлдық жүйелердің – тармақтардың – файлдарын және каталогтарын ашық түрде біріктіріп, біртұтас, үйлесімді файлдық жүйені құруға мүмкіндік береді. Біріктірілген тармақтардағы бірдей жолға ие каталогтардың мазмұны жаңа, виртуалды файлдық жүйедегі біртұтас каталогта бірге көрінеді. Тармақтарды орнату кезінде бірінші тармақтың екіншісіне қарағанда басымдығы көрсетіледі. Егер екі тармақта да бірдей аттас файл болса, біреуі екіншісінен басымдық алады. Әртүрлі тармақтар тек оқуға арналған немесе оқу/жазуға арналған файлдық жүйелер болуы мүмкін, сондықтан виртуалды, біріктірілген көшірмеге жазулар нақты файлдық жүйеге бағытталады. Бұл файлдық жүйені жазуға болатын сияқты көрсетуге мүмкіндік береді, бірақ файлдық жүйені өзгертуге рұқсат бермейді, яғни жазу кезінде көшірме жасалады (copy-on-write). Бұл медиа физикалық түрде тек оқуға арналған жағдайда, мысалы, Live CD-де тиімді болуы мүмкін. Unionfs бастапқыда Эрез Задок және оның командасы Стони Брук университетінде әзірлеген.
Қолданылуы
Knoppix-те CD-ROM немесе DVD-дегі файлдық жүйе мен knoppix.img (Knoppix 7 үшін knoppix деректері.img) деп аталатын бейне файлдағы файлдық жүйенің арасында біріктіру жасалуы мүмкін, бұл жазуға болатын дискте (мысалы, USB жад құрылғысында) жасалады, онда жазуға болатын диск тек қана оқуға арналған файлдық жүйеден басымдық алады. Бұл пайдаланушыға жүйедегі кез келген файлды өзгертуге мүмкіндік береді, жаңа файл бейнеде сақталады және CD-дегі файлдың орнына көрінбей қолданылады. Unionfs сонымен қатар бірнеше файлдық жүйелер үшін бірыңғай ортақ үлгі құруға немесе қауіпсіздік мақсатында қолданылуы мүмкін. Кейде ол жылдам түсірілім жүйесі ретінде де пайдаланылады. Docker, Docker кескіндерін қабаттау үшін Unionfs-тен шабыттанған файлдық жүйелерді, мысалы Aufs-ты қолданады. Негізгі кескінге операциялар жасалғанда, қабаттар құрылады және тіркеледі, әр қабат операцияны қалай қайта жасау керектігін толық сипаттайды. Бұл стратегия Docker-дің жеңіл кескіндерін қамтамасыз етеді, себебі тек қабат жаңартуларын тарату қажет (мысалы, толық VM-мен салыстырғанда). UbuntuLTSP, Ubuntu үшін Linux Terminal Server Project іске асырылымы, PXE арқылы жұқа немесе қалың клиенттерді жүктегенде Unionfs қолданады.
Басқа іске асырулар
Linux үшін Unionfs екі нұсқада қол жетімді. 1.x нұсқасы – модуль ретінде құрастырылатын дербес нұсқа. 2.x нұсқасы – жаңа, қайта жобаланған және қайта іске асырылған нұсқа. aufs – Unionfs-тің баламалы нұсқасы. Miklos Szeredi жазған overlayfs жүйесі OpenWRT-де қолданылған, Ubuntu-да қарастырылған және көп жылдық даму мен талқылаулардан кейін 2014 жылдың 26 қазанында Linux ядросының негізгі нұсқасына (3.18 нұсқасы) қосылды. unionfs fuse – ядро модулі немесе түзету емес, пайдаланушы кеңістігіндегі файлдық жүйе бағдарламасы ретінде іске асырылған тәуелсіз жоба. Unionfs сияқты, ол көшіру арқылы жазу және тек оқу немесе оқу-жазу тармақтарын қолдайды. Bell Labs-тың Plan 9 операциялық жүйесі пайдаланушылар немесе процестер үшін арнайы кеңістіктер құру үшін union тұғырларын кеңінен пайдаланады. Union тұғырлары BSD жүйесінде де кем дегенде 1995 жылдан бері қол жетімді. GNU Hurd жүйесінде Unionfs-тің іске асырылуы бар. 2008 жылдың қаңтарына қарай, ол жұмыс істейді, бірақ тек оқуға арналған орнату нүктесін қамтамасыз етеді. mhddfs Unionfs сияқты жұмыс істейді, бірақ файлдарды ең көп бос орынға ие дискілерде теңестіруге мүмкіндік береді. Ол пайдаланушы кеңістігіндегі файлдық жүйе ретінде іске асырылады. mergerfs – FUSE негізіндегі union файлдық жүйесі, ол файлдарға қол жеткізу және жазу үшін бірнеше саясаттарды, сондай-ақ басқа да кеңейтілген мүмкіндіктерді (xattrs, аралас RO және RW дискілерді басқару, link CoW және т.б.) ұсынады. Sun Microsystems 1986 жылғы SunOS 3 жүйесінде Translucent File Service ретінде қабатталған, қабатты файлдық жүйенің алғашқы нұсқасын енгізді, ол көшіру арқылы жазу және жоғары қабаттардан төменгі қабаттардағы файлдарды жасыру (whiteouts) сияқты мүмкіндіктерді қамтиды. 2011 жылдың шілдесінде жарық көрген JailbreakMe 3.0 құралы, iOS құрылғыларын jailbreak үшін пайдаланылатын құрал, операциялық жүйені өзгертудің орнату процесін жылдамдату үшін unionfs техникаларын қолданады.