11.07.2015 Views

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

116 UnixoidХАКЕР 04 /171/ 2013Для гарантии целостности файловая система используетхеши данных и метаданных. Файловая система может иметьнесколько корней (подтомов), благодаря чему одну файловуюсистему можно использовать для размещения нескольких виртуальныхокружений или сэндбоксов. Уже реализован механизмпрозрачной компрессии данных с помощью алгоритмовlzo и zlib, который позволяет сэкономить дисковое пространствои при этом поднять производительность ФС (распаковкаданных происходит быстрее их чтения с диска). Реализованасистема онлайн-дефрагментации, а также динамического расширенияи сжатия ФС по необходимости.Чтобы сделать работу файловой системы поверх RAIDмассивовболее эффективной и повысить надежность, разработчикитесно интегрировали Btrfs с подсистемой управлениятомами Device Mapper. Такой дизайн позволяет консолидироватьработу файловой системы и подсистемы RAID, в результате чеговозрастает как производительность, так и надежность массива.Файловая система знает об используемой RAID-схеме, текущемсостоянии дисков и балансирует нагрузку в зависимости от условий(например, наиболее используемые файлы будут автоматическиперемещены на более производительный диск). Сбойв работе RAID-массива позволяет вовремя остановить операцииввода-вывода и восстановить свою работу, дождавшись переконфигурирования.В совокупности с контрольными суммами,которые файловая система хранит для каждого блока, RAIDмассивна основе Btrfs становится крайне надежным.На текущий момент Btrfs уже достаточно стабильна для повседневногоприменения и в некоторых тестах производительностиобгоняет еxt4. Она использовалась в качестве основнойФС в мобильной платформе MeeGo и доступна для использованияпо умолчанию во многих дистрибутивах.Согласно синтетическимтестам, ext4 остаетсясамой производительнойФС в LinuxДАТЫ ВЫХОДАФАЙЛОВЫХСИСТЕМ1987Minix FS (0.01)1992ext (0.96c)1993ext2 (0.99.15)2001ReiserFS (2.4.1)2001ext3 (2.4.15)2006ext4 (2.6.28, 2.6.19)2009Btrfs (2.6.29)В скобках указано первоепоявление ФС в ядреLinux.SYSFSРаботая над ядром экспериментальной ветки 2.5.X и реализуяновую подсистему управления драйверами устройств, разработчикирешили оснастить ядро новым интерфейсом отладки,реализованным в виде виртуальной файловой системы. Интерфейсбыл назван ddfs (Device Driver Filesystem) и позволялполучать различную информацию об устройствах, состояниидрайверов и другие низкоуровневые данные.К моменту релиза ядра 2.6 оказалось, что ddfs можетбыть полезна и для многих других приложений, работающихс железом, поэтому ФС было решено переименовать в sysfs(System Filesystem) и включить в будущий релиз. Это событиеповлекло за собой целый ряд изменений в подходе к построениюокружения Linux. Вся «железная» информация теперьхранилась централизованно и всегда в актуальном состоянии,что позволило проектам вроде KDE и GNOME реализоватьдействительно умное управление оборудованием. Интерфейсыуправления железом также начали перекочевывать в sysfs,разгружая и без того запутанную procfs. И наконец, sysfs позволилавыпилить из ядра файловую систему devfs, отвечающуюза динамическое создание файлов-устройств, и заменить еена легковесный и гибкий в управлении демон udev, полностьюруководствующийся информацией из sysfs.Сегодня ядро Linux без sysfs представить невозможно. Файловаясистема используется огромным количеством утилит,демонов и систем умного управления энергосбережением.Она занимает центральное место в подсистеме управленияоборудованием Android и других мобильных систем, основанныхна ядре Linux. С помощью sysfs можно разгонять процессор,управлять яркостью дисплея, настройками жестких дискови планировщиков.FUSEС самого момента своего появления ядро Linux критиковалосьза монолитный дизайн, снижающий надежность ОС, затрудняющийразработку и тестирование драйверов и не обладающийдостаточной гибкостью. Линус Торвальдс никогда не воспринималвсерьез подобную критику, однако добавил-таки в ядроверсии 2.6.14 интерфейс FUSE, позволяющий выносить файловыесистемы из ядра, реализуя их в виде обычных приложений.FUSE представляет собой небольшой модуль ядра, посредствомобращения к которому (через сокет) любое приложениеможет реализовать собственную файловую систему илифайловый интерфейс к любым другим сущностям. С помощьюFUSE были созданы приложения, позволяющие подключатьв виде файловых систем tar-архивы, FTP-, SMB- и WebDAVресурсы,специальные шифрующие файловые системы и многое,многое другое.Наиболее известный представитель ФС на основе FUSE —драйвер NTFS-3G, позволяющий подключать NTFS на чтениеи запись, но реализованный полностью в пространстве пользователя.С помощью FUSE также разработаны многие серьезныефайловые системы, такие как, например, кластерная файловаясистема GlusterFS, используемая в крупных компанияхдля хранения данных в облаке, а также многие другие, ссылкина которые можно найти на официальном сайте FUSE (goo.gl/lrwB3).FUSE часто используется для прототипирования и отладкифайловых систем, планируемых к реализации внутри ядра,а создать свою ФС с ее помощью настолько просто, что этоможно сделать за полчаса, не обладая никакими специальнымизнаниями.CGROUPS И ПРОСТРАНСТВА ИМЕНКак и в любой другой UNIX-подобной операционной системе,в Linux всегда существовало несколько механизмов контроляпроцессов и их ресурсов. Это значения приоритета (nice) и лимитированиересурсов с помощью системного/библиотечноговызова ulimit. Эти интерфейсы не могли предоставить возможностигибкого управления ресурсами, поэтому компания Googleприступила к разработке технологии, изначально получившейимя process containers, а затем переименованной в Cgroups(Control Groups).Cgroups — это официально включенный в ядро 2.6.24фреймворк группировки процессов и управления их ресурсами,такими как количество оперативной памяти, процессорныересурсы, приоритеты ввода-вывода и доступа к сети. ТехнологияCgroups тесно связана с системой управления пространствамиимен, которая позволяет поместить выбранную группупроцессов в независимое от основной системы окружение,которое может иметь собственный корень файловой системы,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!