<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF117%3ADrBrown2</id>
		<title>LXF117:DrBrown2 - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF117%3ADrBrown2"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF117:DrBrown2&amp;action=history"/>
		<updated>2026-05-13T03:53:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF117:DrBrown2&amp;diff=10204&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF117:DrBrown2&amp;diff=10204&amp;oldid=prev"/>
				<updated>2010-05-18T06:15:41Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Пользовательские файловые системы==&lt;br /&gt;
&lt;br /&gt;
: '''''Fuse''''' Теперь не нужно быть разработчиком ядра, чтобы создать собственную файловую систему – все сделает ''Filesystem in USErspace''.&lt;br /&gt;
&lt;br /&gt;
Для начала разберемся, что такое файл. Для доступа к файлам Linux предоставляет приложениям набор системных вызовов с именами типа '''open(), read(), write(), close()''' и т. д. Это подразумевает классическое представление о файле как о структуре данных, сохраняемой на диске, и существует несколько таких структур (или файловых систем) – ''ext3, ReiserFS, FAT32'' и т.д. Кроме того, бывают удаленные&lt;br /&gt;
файловые системы (например, на серверах), для доступа к которым используются сетевые протоколы типа ''NFS'' и ''CIFS'' (подробнее об ''NFS'' см. в [[LXF117:network|Учебнике про сети]]). Вам, наверное, даже знакомы «мнимые» файловые системы – те, что монтируются&lt;br /&gt;
на каталоги '''/proc''' и '''/sys''' и представляют в виде файлов внутренние&lt;br /&gt;
структуры данных ядра.&lt;br /&gt;
&lt;br /&gt;
Все эти системы лежат в ядре Linux под слоем виртуальной файловой системы ''Virtual File System (VFS)'', поддерживающим стандартный подход к файлам независимо от их фактической реализации. При этом для программ пользователя любой внутренний механизм, который предоставляет данные в ответ на набор&lt;br /&gt;
системных вызовов, выглядит как набор файлов.&lt;br /&gt;
&lt;br /&gt;
===Теперь мороки меньше!===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF117_49_1.jpg|300px]] Запросы к файлам в точке монтирования Fuse передаются модулю ядра ''Fuse'', а потом возвращаются программе, создавшей точку монтирования.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Традиционно реализация всех файловых систем, лежащих ниже слоя ''VFS'', происходила в ядре, и ввод новой файловой системы означал написание модуля и перекомпиляцию ядра. Чтобы новая файловая система появилась в крупных дистрибутивах, она должна попасть&lt;br /&gt;
в официальный исходный код Linux – это задача непростая. ''Fuse'' все меняет, позволяя реализовать файловые&lt;br /&gt;
системы в пространстве пользователя (user space). ''Fuse'' – сокращение от «Filesystem in USEr space»; об этом названии, пожалуй,&lt;br /&gt;
сейчас сожалеет даже ее создатель.&lt;br /&gt;
&lt;br /&gt;
Файловая система Fuse – просто пользовательская программа, предоставляющая содержимое файлов под заданной точкой&lt;br /&gt;
монтирования. Она обязательно регистрируется в ядре, говоря: «При заявке на содержимое файловой системы в таком-то каталоге, передай запрос мне». Он обрабатывается любым удобным способом, и такую программу можно написать почти на любом&lt;br /&gt;
языке программирования – ''C, Perl, Python'' и т.д. Запуск ее возможен даже под обычным пользователем. В итоге ''Fuse'' открыла&lt;br /&gt;
эксперименты с файловыми системами гораздо большему кругу разработчиков, и тут же возникла уйма странных и чудных файловых систем…&lt;br /&gt;
* '''''encfs''''' Файловая система с шифрованием на основе ''OpenSSL''. Драйверу файловой системы передаются исходный каталог и точка монтирования. Файлы, записанные в точке монтирования, появляются зашифрованными в исходном каталоге, и наоборот.&lt;br /&gt;
* '''''sshfs''''' Эта файловая система позволяет смонтировать удаленный каталог в локальную файловую систему по протоколу ''SFTP'', поддерживаемому ''SSH''-сервером. Окончательный результат очень похож на ''NFS'', но весь трафик шифруется по ''SSH''-соединению, и монтировать и размонтировать ее могут обычные пользователи.&lt;br /&gt;
* '''''clamfs''''' При обращении к файлам нижележащей файловой системы реализует проверку антивирусом ''ClamAV''. Найдя зараженный файл, автоматически отправляет электронное письмо администратору.&lt;br /&gt;
* '''''rofs-filtered''''' Позволяет смонтировать каталог в режиме только для чтения и отфильтровать файлы, отображаемые в каталоге, на основе заданного набора регулярных выражений.&lt;br /&gt;
* '''''virtual800''''' Заполняет свою точку монтирования набором очень, очень больших (виртуальных) файлов, чем можно воспользоваться, например, для тестирования передачи больших файлов.&lt;br /&gt;
* '''''vmware-mount''''' Позволяет смонтировать образ диска ''VMware'' (файл '''.vmdk''') и обращаться к нему из хост-системы.&lt;br /&gt;
&lt;br /&gt;
===Файловая система «с приветом»===&lt;br /&gt;
&lt;br /&gt;
Наверное, самая нелепая из всех файловых систем ''Fuse'' – '''«hello world»'''. Найти ее можно в примере, поставляемом с исходными кодами пакета ''Fuse'': она заполняет свою точку монтирования файлом с именем '''hello''', который содержат строку ‘Hello World’. В программе, прилагаемой только как доказательство идеи, не больше ста строк.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>