o Число индексных дескрипторов, каждый из которых содержит атрибуты файлов
Индексные дескрипторы нумеруются последовательно. Несколько первых индексных дескрипторов сохранены по историческим причинам, далее следуют индексные дескрипторы корневого каталога. Каталог файлов содержат только список файлов в директории и индексный дескриптор, связанный с каждым файлом. Пользователи некоторых коммерческих Unix систем, таких как Solaris, HP-UX и Tru64 UNIX, приняли UFS. Большинство из них перевели системы на UFS, добавили проприетарные дополнения, которые позволяли не распознать UFS пользователям других версий UNIX. Удивительно, но многие из них продолжают использовать оригинальный размер блока данных и ширину блока, как и в оригинальной UFS, так что некоторая степень остается совместимой на разных платформах. Совместимость между реализациями неполная, в лучшем случае, и должна быть исследована перед использованием на нескольких платформах.
Linux поддерживает UFS на уровне чтения, но не имеет полной поддержки для записи UFS. Родной Linux ext2 создан по подобию UFS. (В самом деле, в некоторых 4.4BSD системах, UFS слой может использовать ext2 слой как контейнер, так же, как он может использовать FFS и LFS). Игровая консоль PlayStation 3 использует UFS2 на своём HDD. В PlayStation 2 используется UFS.
ZFS (Zettabyte File System) -- файловая система, изначально созданная в Sun Microsystems для операционной системы Solaris. Эта файловая система поддерживает большие объёмы данных, объединяет концепции файловой системы и менеджера логических дисков (томов) и физических носителей, инновационную структуру данных на дисках, легковесные файловые системы (lightweight filesystems), а также простое управление томами хранения данных. ZFS является проектом с открытым исходным кодом и лицензируется под CDDL (Common Development and Distribution License).
Основное преимущество ZFS -- это её полный контроль над физическими и логическими носителями. Зная, как именно расположены данные на дисках, ZFS способна обеспечить высокую скорость доступа к ним, контроль их целостности, а также минимизацию фрагментации данных. Это позволяет динамически выделять или освобождать дисковое пространство на одном или более носителях для логической файловой системы. Кроме того, имеет место переменный размер блока, что лучшим образом влияет на производительность, параллельность выполнения операций чтения-записи, а также 64-разрядный механизм использования контрольных сумм, сводящий к минимуму вероятность разрушения данных.
ZFS это 128-битная файловая система, что позволяет ей хранить в 18.4 ? 1018 раз больше данных, чем нынешние 64-битные системы. ZFS спроектирована так, чтобы её ограничения были настолько малы, что они никогда не встретятся на практике. Как заявил руководитель проекта Бонвик, «заполнение 128-битных файловых систем превысит квантовые возможности хранения данных на Земле. Вы не сможете заполнить и хранить 128-битный объём, не вскипятив при этом океан.» Пример того, насколько велики эти цифры: если бы 1000 файлов создавались каждую секунду, то потребовалось бы около 9000 лет для достижения предела количества файлов.
Некоторые теоретические пределы в ZFS:
· 248 -- Количество снимков (snapshot) в любой файловой системе (2 ? 1014)
· 248 -- Количество файлов в любой индивидуальной файловой системе (2 ? 1014)
· 16 эксабайт (264 byte) -- Максимальный размер файловой системы
· 16 эксабайт (264 byte) -- Максимальный размер одного файла
· 16 эксабайт (264 byte) -- Максимальный размер любого атрибута
· 3 ? 1023 петабайт -- Максимальный размер любого пула хранения (zpool)
· 256 -- Количество атрибутов файла (фактически ограничивается 2 48 на количество файлов в файловой системе ZFS)
· 256 -- Количество файлов в директории (реально ограничен 2 48 на количество файлов в файловой системе ZFS)
· 264 -- Количество устройств в любом zpool
· 264 -- Количество zpool'ов в системе
· 264 -- Число файловых систем в zpool
Ядро Linux поддерживает многозадачность, виртуальную память, динамические библиотеки, отложенную загрузку, производительную систему управления памятью и многие сетевые протоколы.
На сегодняшний день Linux -- монолитное ядро с поддержкой загружаемых модулей. Драйверы устройств и расширения ядра обычно запускаются в 0-кольце защиты, с полным доступом к оборудованию. В отличие от обычных монолитных ядер, драйверы устройств легко собираются в виде модулей и загружаются или выгружаются во время работы системы.
То, что архитектура Linux не является микроядерной, вызвало обширнейшие прения между Линусом Торвальдсом и Эндрю Таненбаумом в конференции.
Не задуманный изначально как многоплатформенное ядро, Linux на данный момент портирован на очень широкий круг архитектур, запускается на широком спектре оборудования от iPAQ до IBM S/390. Системы на основе Linux используются в качестве основных практически на всех суперкомпьютерах (более 80 % списка Top500), в том числе и на самых мощных -- Jaguar.
X.Org Server (сокращенно Xorg Server или просто Xorg, официально «X.Org Foundation Open Source Public Implementation of X11») -- свободная реализация сервера X Window System с открытым кодом.
X Window System -- оконная система, обеспечивающая стандартные инструменты и протоколы для построения графического интерфейса пользователя. Используется в UNIX-подобных ОС.
X Window System обеспечивает базовые функции графической среды: отрисовку и перемещение окон на экране, взаимодействие с мышью и клавиатурой. X Window System не определяет деталей интерфейса пользователя -- этим занимаются менеджеры окон, которых разработано множество. По этой причине внешний вид программ в среде X Window System может очень сильно различаться в зависимости от возможностей и настроек конкретного оконного менеджера.
В X Window System предусмотрена сетевая прозрачность: графические приложения могут выполняться на другой машине в сети, а их интерфейс при этом будет передаваться по сети и отображаться на локальной машине пользователя (в случае если это разрешено в настройках). В контексте X Window System термины «клиент» и «сервер» имеют непривычное для многих пользователей значение: «сервер» означает локальный дисплей пользователя (дисплейный сервер), а «клиент» -- программу, которая этот дисплей использует (она может выполняться на удалённом компьютере).
X Window System использует клиент-серверную модель: X-сервер обменивается сообщениями с различными клиентскими программами. Сервер принимает запросы на вывод графики (окон) и отправляет обратно пользовательский ввод (от клавиатуры, мыши или сенсорного экрана). X-сервер может быть:
· системной программой, контролирующей вывод видео на персональном компьютере;
· приложением, отображающим графику в окно какой-то другой дисплейной системы;
· выделенным компонентом аппаратного обеспечения.
Эта клиент-серверная терминология -- пользовательский терминал в качестве «сервера» и удалённые приложения в качестве «клиентов» -- зачастую запутывает новых пользователей X, так как обычно эти термины имеют обратные значения. Но X Window System принимает точку зрения программы, а не конечного пользователя аппаратуры: локальный дисплей предоставляет услуги отображения графики программам, и потому выступает в роли сервера. Удалённые программы используют эти услуги, и потому играют роль клиентов.
X Window System намеренно не определяет, как должен выглядеть интерфейс пользователя приложения -- кнопки, меню, заголовки окон и т. д. Эти вопросы решаются на уровне оконных менеджеров, инструментариев элементов интерфейса, сред рабочего стола и на уровне отдельных приложений. По этой причине визуальное представление X-интерфейсов претерпело огромные изменения с течением времени.
Оконный менеджер управляет размещением и внешним видом окон приложений. Он может создавать интерфейс, подобный Microsoft Windows или Macintosh (например, так работают оконные менеджеры Kwin в KDE и Metacity в GNOME), или совершенно другой стиль (например, в фреймовых оконных менеджерах, таких, как Ion). Оконный менеджер может быть простым и минималистичным (как twm -- базовый оконный менеджер, поставляемый с X), а может предлагать функциональность, близкую к полноценной рабочей среде (например, Enlightenment).
Многие пользователи используют X вместе с полной средой рабочего стола, которая включает в себя оконный менеджер, различные приложения и единый стиль интерфейса. Наиболее популярные среды рабочего стола -- GNOME и KDE. В стандарте Single UNIX Specification указана среда CDE.
KDE -- свободная среда рабочего стола для UNIX-подобных операционных систем. Построена на основе кросс-платформенного инструментария разработки пользовательского интерфейса Qt.
Работает преимущественно под UNIX-подобными операционными системами, которые используют графическую подсистему X Window System. Новое поколение технологии KDE 4 частично работает на Microsoft Windows и Mac OS X.
В состав KDE входит набор тесно интегрированных между собой программ для выполнения повседневной работы. Также в рамках проекта разрабатываются интегрированная среда разработки KDevelop и офисный пакет KOffice.
Интерфейс KDE критикуется за сложность и наличие большого количества опций для настройки. Однако отчёт о практичности по версии KDE 3.1 показывает, что пользователи Microsoft Windows быстро осваиваются в KDE и способны выполнять текущие задачи так же успешно, как и в Windows XP
GNOME -- свободная среда рабочего стола для Unix-подобных операционных систем. GNOME является частью проекта GNU.
Разработчики GNOME ориентируются на создание полностью свободной среды, доступной всем пользователям вне зависимости от их уровня технических навыков, физических ограничений и языка, на котором они говорят. В рамках проекта GNOME разрабатываются как приложения для конечных пользователей, так и набор инструментов для создания новых приложений, тесно интегрируемых в рабочую среду. Начиная с GNOME версии 2.0, большую важность в развитии проекта принимают соображения практичности, простоты и удобства использования среды, в том числе для неопытных или физически ограниченных пользователей. Эта тенденция нашла своё выражение в статье Хэвока Пеннингтона «Пользовательский интерфейс свободных программ» . Ключевым моментом в этой статье стала идея о том, что каждая функциональная нагрузка и каждая опция настройки в программе имеет свою цену: зачастую лучше выбрать один, оптимальный вариант поведения программы, чем реализовывать множество вариантов и заставлять пользователя выбирать один из них.
Результатом стала разработка «Руководства по созданию человеческого интерфейса GNOME». HIG -- руководство, призванное помочь разработчикам в создании высококачественных, непротиворечивых и удобных графических интерфейсов. Как одно из последствий применения HIG, многие настройки, ранее доступные в GNOME, были признаны разработчиками проекта не нужными или малозначительными для большинства пользователей и удалены из основных диалоговых окон настройки.
Xfce -- свободная среда рабочего стола для UNIX-подобных операционных систем, таких как Linux, NetBSD, OpenBSD, FreeBSD, Solaris и т. п. Конфигурация данной среды полностью управляется мышью, конфигурационные файлы скрыты от пользователя.
Текущая версия 4.6 -- модульная, где одни модули могут использовать функциональность других. Она состоит из отдельных программных компонентов, вместе предоставляющих полнофункциональную среду рабочего стола, но из них можно оставить только те, которые обеспечивают предпочтительную для пользователя рабочую среду. Xfce используется, главным образом, из-за возможности запустить современную среду рабочего стола на относительно скромном оборудовании.
Xfce основана на GTK+ 2 и использует менеджер окон Xfwm. Начало своей истории Xfce берет с 1998 года. Тогда эта оболочка представляла собой дополнение к популярной тогда среде CDE, потому первоначально Xfce очень напоминала коммерческую CDE, но с каждой выпущенной версией всё дальше отходит от данной системы (Xfce была полностью переписана дважды -- между версиями 2 и 3 и между версиями 3 и 4).
Xfce воплощает в себе традиционную философию UNIX, а именно концепции модульности и возможности многократного использования. Функциональные компоненты вынесены в отдельные приложения, и пользователь имеет возможность конфигурировать систему оптимальным образом.
Существует так еще и другие среды рабочего стола например, как LXDE, Unity, CDE, Fluxbox и д.р. Но описание каждой из них не вместилось бы даже в многостраничную книгу.
nano -- консольный текстовый редактор для Unix и Unix-подобных операционных систем, основанный на библиотеке curses и распространяемый под лицензией GNU GPL. Это свободный клон текстового редактора Pico, входившего в состав e-mail клиента Pine. nano был создан, чтобы повторить функциональность и удобство интерфейса Pico, но без глубокой интеграции в почтовый клиент, присущей пакету Pine/Pico.
Впервые он появился в 1999 году под именем TIP. Его создателем стал Крис Аллегретта (Chris Allegretta), целью которого было желание создать свободное программное обеспечение для замены Pico. В то же время nano является бэкронимом «nano's another editor» (nano -- другой редактор), который используется так же часто. В феврале 2001 nano официально стал частью проекта GNU. Позднее nano включил в себя несколько возможностей, отсутствующих в Pico: подсветку синтаксиса, регулярные выражения при поиске и замене, плавную прокрутку и многоуровневый буфер.
vi (visual) -- серия текстовых редакторов операционных систем семейства UNIX. В отличие от многих привычных редакторов, vi имеет модальный интерфейс. Это означает, что одни и те же клавиши в разных режимах работы выполняют разные действия. В редакторе vi есть два основных режима: командный режим и режим вставки. По умолчанию, работа начинается в командном режиме. На данный момент имеются реализации vi для различных операционных систем. Существуют клоны редактора vi с расширенной функциональностью.
Emacs (Емамкс, Еммакс, также Иммакс) -- семейство многофункциональных расширяемых текстовых редакторов.
На сегодняшний день наиболее распространёнными являются варианты GNU Emacs и XEmacs. Оба являются свободным ПО, распространяемым на условиях GNU GPL. XEmacs является ответвлением или форком GNU Emacs. В 1991 году некоторые из разработчиков последнего решили «отколоться», чтобы работать над собственным (XEmacs) вариантом редактора. Раскол был вызван их несогласием с мнением Ричарда Столлмена -- в то время главного куратора проекта -- о дальнейшем направлении развития Emacs.
XEmacs отличается большей направленностью на внешний вид, приблимженный к стандартным современным редакторам (использование панелей инструментов и т. п.). Кроме того, XEmacs поддерживает шрифты с нефиксированной шириной символа, изображения, внедряемые в текст и т. п. Впрочем, последние версии GNU Emacs также включают большинство этих возможностей, поэтому разница не столь заметна. Кроме того, очень многие Emacs-пакеты работают в обоих вариантах редактора и являются общими. Основу идеологии Emacs составляют принципы «всё в одном», расширяемости, настраиваемости под пользователя и документированности.
Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых исторически важных ОС. Как и Multics, UNIX была написана на языке высокого уровня, а не на ассемблере (доминировавшем в то время).
UNIX популяризовала предложенную в Multics идею иерархической файловой системы с произвольной глубиной вложенности. Другие операционные системы того времени позволяли разбивать дисковое пространство на каталоги или разделы, но число уровней вложенности было фиксировано и, зачастую, уровень вложенности был только один. Позднее все основные фирменные операционные системы обрели возможность создания рекурсивных подкаталогов, также заимствованную из Multics.
То, что интерпретатор команд стал просто одной из пользовательских программ, а в качестве дополнительных команд выступают отдельные программы, является ещё одной инновацией Multics, популяризированной UNIX. Язык командной оболочки UNIX используется пользователем как для интерактивной работы, так и для написания скриптов, то есть не существует отдельного языка описания заданий, как, например, в системе JCL фирмы IBM. Новый, предложенный в командной строке UNIX, способ создания цепочек программ, последовательно обрабатывающих данные, способствовал использованию параллельной обработки данных.
Существенными особенностями UNIX были полная ориентация на текстовый ввод-вывод и предположение, что размер машинного слова кратен восьми битам. Первоначально в UNIX не было даже редакторов двоичных файлов -- система полностью конфигурировалась с помощью текстовых команд. Наибольшей и наименьшей единицей ввода-вывода служил текстовый байт, что полностью отличало ввод-вывод UNIX от ввода-вывода других операционных систем, ориентированного на работу с записями. Ориентация на использование текста для представления всего, что только можно, сделала полезными т. н. конвейеры. Ориентация на текстовый восьмибитный байт сделала UNIX более масштабируемой и переносимой, чем другие операционные системы.
UNIX способствовала широкому распространению регулярных выражений, которые были впервые реализованы в текстовом редакторе ed для UNIX. Возможности, предоставляемые UNIX-программам, стали основой стандартных интерфейсов операционных систем (POSIX).
Широко используемый в системном программировании язык Си, созданный изначально для разработки UNIX, превзошёл UNIX по популярности. Язык Си был первым «веротерпимым» языком, который не пытался навязать программисту тот или иной стиль программирования. Си был первым высокоуровневым языком, предоставляющим доступ ко всем возможностям процессора, таким как ссылки, таблицы, битовые сдвиги, приращения и т. п. С другой стороны, свобода языка Си приводила к ошибкам переполнения буфера в таких функциях стандартной библиотеки Си, как gets и scanf. Результатом стали многие печально известные уязвимости, например, та, что эксплуатировалась в знаменитом черве Морриса.
Первые разработчики UNIX способствовали внедрению принципов модульного программирования и повторного использования в инженерную практику.
UNIX предоставлял возможность использования протоколов TCP/IP на сравнительно недорогих компьютерах, что привело к быстрому росту Интернета.
На данном этапе развития unix-подобные системы уверенно заняли свою нишу. Широко используясь во встраиваемых устройствах, серверах, суперкомпьютерах и набирая популярность на десктопах.
1. Робачевкий А. М., Немнюгин С. А., Стесик О. Л. Операционная система UNIX.
2. linuxinsight.com
3. kde.org
4. ru.wikipedia.org
5. Джон Смирл. Состояние графики Линукс
6. obsd.ru
7. distrowatch.com
Страницы: 1, 2, 3, 4