Военно-технический университет при Федеральной службе специальногостроительства РФ
Институт промышленного, гражданского и транспортного строительства
Рефератпо предмету информатика на тему:
«UNIX-подобныеоперационные системы»
Москва2009-10 гг.
Содержание
Введение
История образования ираскол
Обзор GNU/Linux-подобныхсистем
Fedora
Slackware
Обзор BSD-подобных систем
OpenBSD
Frenzy
Обзор файловых системunix-подобных операционных систем
Extended File System
ext2
Third Extended FileSystem
Табл. 1 Ограниченияразмеров
Fourth Extended FileSystem
Journaled File System
XFS
Особенности
Unix File System
ZFS
Ядро linux-kernel-2.6.xx
X.Org Server
Среды рабочего стола
KDE
GNOME
Текстовые редакторы
nano
vi
Emacs
Заключение
Список литературы
Введение
UNIX — группа переносимых, многозадачныхи многопользовательских операционных систем.
Перваясистема UNIX была разработана в 1969 г. в подразделении Bell Labs компанииAT&T. С тех пор было создано большое количество различных UNIX-систем. Юридическилишь некоторые из них имеют полное право называться «UNIX»; остальные же, хотяи используют сходные концепции и технологии, объединяются термином «UNIX-подобные»(Unix-like). Для краткости в даннойстатье под UNIX-системами подразумеваются как истинные UNIX, так иUNIX-подобные ОС.
Основныеотличительные признаки UNIX-систем включают в себя:
· использование простых текстовых файлов для настройки и управлениясистемой;
· широкое применение утилит, запускаемых в командной строке;
· взаимодействие с пользователем посредством виртуальногоустройства — терминала;
· представление физических и виртуальных устройств и некоторыхсредств межпроцессового взаимодействия как файлов;
· использование конвейеров из нескольких программ, каждая из которыхвыполняет одну задачу.
В настоящеевремя UNIX используются в основном на серверах, а также как встроенные системыдля различного оборудования. На рынке ОС для рабочих станций и домашнегоприменения лидером является Microsoft Windows, UNIX занимает только второе (MacOS X) и третье (GNU/Linux) места.
UNIX-системыимеют большую историческую важность, поскольку благодаря им распространилисьнекоторые популярные сегодня концепции и подходы в области ОС и программногообеспечения. Также, в ходе разработки Unix-систем был создан язык Си./>/>История образования и раскол
В1957 году в Bell Labs была начата работа по созданию операционной системы длясобственных нужд. Под руководством Виктора Высотского была создана система BESYS.Впоследствии он возглавил проект Multics, а затем стал главой информационногоподразделения Bell Labs.
В1964 году появились компьютеры третьего поколения, для которых возможностиBESYS уже не подходили. Высотский и его коллеги приняли решение неразрабатывать новую собственную операционную систему, а подключиться ксовместному проекту General Electric и Массачусетского технологическогоинститута Multics. Телекоммуникационный гигант AT&T, в состав котороговходили Bell Labs, оказал проекту существенную поддержку, но в 1969 году вышелиз проекта, поскольку он не приносил никаких финансовых выгод. ПервоначальноUNIX была разработана в конце 1960-х годов сотрудниками Bell Labs, в первуюочередь Кеном Томпсоном, Денисом Ритчи и Дугласом МакИлроем. В 1969 году КенТомпсон, стремясь реализовать идеи, которые были положены в основу MULTICS, нона более скромном аппаратном обеспечении (DEC PDP-7), написал первую версиюновой операционной системы, а Брайан Керниган придумал для неё название —UNICS (UNIplexed Information and Computing System) — в противовес MULTICS(MULTIplexed Information and Computing Service). Позже это название сократилосьдо UNIX.
Вноябре 1971 года вышла версия для PDP-11, наиболее успешного семействаминикомпьютеров 1970-х (в СССР его аналоги, выпускавшиеся МинистерствомЭлектронной Промышленности были известно как СМ ЭВМ и «Электроника», позже ДВК,производились в Киеве, Воронеже, Зеленограде). Эта версия получила название«первая редакция» (Edition 1) и была первой официальной версией. Системноевремя все реализации UNIX отсчитывают с 1 января 1970.
Первыеверсии UNIX были написаны на ассемблере и не имели встроенного компилятора с языкомвысокого уровня. Примерно в 1969 году Кен Томпсон при содействии Дениса Ритчиразработал и реализовал язык Би, представлявший собой упрощённый вариантразработанного в 1966 языка BCPL. Би, как и BCPL, был интерпретируемым языком.В 1972 году была выпущена вторая редакция UNIX, переписанная на языке Би. В1969—1973 годах на основе Би был разработан компилируемый язык, получившийназвание Си (C).
В1973 году вышла третья редакция UNIX, со встроенным компилятором языка Си. 15октября того же года появилась четвёртая редакция, с переписанным на Си системнымядром (в духе системы Multics, также написанной на языке высокого уровня ПЛ/1),а в 1975 — пятая редакция, полностью переписанная на Си. С 1974 года UNIXстал бесплатно распространяться среди университетов и академических учреждений.С 1975 года началось появление новых версий, разработанных за пределами BellLabs, и рост популярности системы. В том же 1975 году Bell Labs выпустилашестую редакцию, известную по широко разошедшимся комментариям Джона Лайонса. К1978 году система была установлена более чем на 600 машинах, прежде всего, вуниверситетах. Седьмая редакция была последней единой версией UNIX. Именно вней появился близкий к современному интерпретатор командной строки Bourne shell.
С1978 года начинает свою историю BSD UNIX, созданный в университете Беркли. Егопервая версия была основана на шестой редакции. В 1979 выпущена новая версия,названная 3BSD, основанная на седьмой редакции. BSD поддерживал такие полезные свойства,как виртуальную память и замещение страниц по требованию. Автором BSD был БиллДжой. В начале 1980-х компания AT&T, которой принадлежали Bell Labs,осознала ценность UNIX и начала создание коммерческой версии UNIX. Эта версия,поступившая в продажу в 1982 году, носила название UNIX System III и былаоснована на седьмой версии системы.
Важнойпричиной раскола UNIX стала реализация в 1980 году стека протоколов TCP/IP. Доэтого межмашинное взаимодействие в UNIX пребывало в зачаточном состоянии —наиболее существенным способом связи был UUCP (средство копирования файлов изодной UNIX-системы в другую, изначально работавшее по телефонным сетям спомощью модемов).
Былопредложено два интерфейса программирования сетевых приложений: Berkley socketsи интерфейс транспортного уровня TLI. Интерфейс Berkley sockets был разработанв университете Беркли и использовал стек протоколов TCP/IP, разработанный тамже. TLI был создан AT&T в соответствии с определением транспортного уровня моделиOSI и впервые появился в системе System V версии 3. Хотя эта версия содержалаTLI и потоки, первоначально в ней не было реализации TCP/IP или других сетевыхпротоколов, но подобные реализации предоставлялись сторонними фирмами.Реализация TCP/IP официально и окончательно была включена в базовую поставкуSystem V версии 4. Это, как и другие соображения, вызвало окончательноеразмежевание между двумя ветвями UNIX — BSD и System V (коммерческаяверсия от AT&T).
Впоследствии,многие компании, лицензировав System V у AT&T, разработали собственныекоммерческие разновидности UNIX, такие, как AIX, CLIX, HP-UX, IRIX, Solaris.
Всередине 1983 года была выпущена версия BSD 4.2, поддерживающая работу в сетях Ethernetи Arpanet. Система стала весьма популярной. Между 1983 и 1990 годом в BSD былодобавлено много новых возможностей, таких как отладчик ядра, сетевая файловаясистема NFS, виртуальная файловая система VFS, и существенно улучшенывозможности работы с файловыми сетями.
Темвременем AT&T выпускала новые версии своей системы, названной System V. В1983 была выпущена версия 1 (SVR1 — System V Release 1), включавшаяполноэкранный текстовый редактор vi, библиотеку curses, буферизациюввода-вывода, кеширование inode. Версия 2 (SVR2), выпущенная в 1984,реализовывала монопольный доступ к файлам (file locking), доступ к страницам потребованию (demand paging), копирование при записи (copy-on-write). Версия 3вышла в 1987 году и включала, среди прочего, TLI, а также систему поддержкиудалённых файловых систем RFS. Версия 4 (SVR4), разработанная в сотрудничествес фирмой Sun и вышедшая 18 октября 1988, поддерживала многие возможности BSD, вчастности TCP/IP, сокеты, новый командный интерпретатор csh. Кроме того, тамбыло много других добавлений, таких как символические ссылки, командныйинтерпретатор ksh, сетевая файловая система NFS (заимствованная у SunOS) ит. д.
Современныереализации UNIX, как правило, не являются системами V или BSD в чистом виде.Они реализуют возможности как System V, так и BSD./>/>Обзор GNU/Linux-подобных систем
Linux работает на множестве архитектур процессора таких как Intel x86, x86-64, PowerPC, ARM, Alpha AXP, Sun SPARC, Motorola 68000, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa и многих других.
Вотличие от большинства других операционных систем, Linux не имеет единой«официальной» комплектации. Вместо этого Linux поставляется в большомколичестве так называемых дистрибутивов, в которых ядро Linuxсоединяется с утилитами GNU и другими прикладными программами (например, X.org),делающими её полноценной многофункциональной операционной средой.
Наиболееизвестными дистрибутивами GNU/Linux являются Arch Linux, CentOS, Debian, Fedora, Gentoo, openSUSE,Red Hat, Slackware, Ubuntu. Более полный список и процент использования можнопосмотреть на distrowatch.com
В отличиеот коммерческих систем, таких как Microsoft Windows или Mac OS X, Linux неимеет географического центра разработки. Нет и организации, которая владела быэтой системой; нет даже единого координационного центра. Программы дляLinux — результат работы тысяч проектов. Некоторые из этих проектовцентрализованы, некоторые сосредоточены в фирмах. Пользователи принимаютучастие в тестировании свободных программ, общаются с разработчиками напрямую,что позволяет быстро находить и исправлять ошибки и реализовывать новыевозможности.Большинство пользователей для установкиLinux используют дистрибутивы. Дистрибутив — это не просто набор программ,а ряд решений для разных задач пользователей, объединённых едиными системамиустановки, управления и обновления пакетов, настройки и поддержки.
Самыераспространённые в мире дистрибутивы:
Ubuntu — дистрибутив, основанный на Debian и быстро завоевавшийпопулярность. Поддерживается сообществом, разрабатывается Canonical Ltd.Основная сборка ориентирована на лёгкость в освоении и использовании, при этомсуществуют серверная и минимальная сборки.
openSUSE — дистрибутив, разрабатываемый сообществом при поддержкекомпании Novell. Отличается удобством в настройке и обслуживании благодаряиспользованию утилиты YaST.
Fedora — поддерживается сообществом и корпорацией RedHat,предшествует выпускам коммерческой версии RHEL.
Debian — дистрибутив, разрабатываемый обширным сообществомразработчиков. Служит основой для создания множества других дистрибутивов.Отличается строгим подходом включению несвободного ПО.
Slackware — один из старейших дистрибутивов, отличается консервативнымподходом в разработке и использовании.
Gentoo — дистрибутив, полностью собираемый из исходных кодов.Позволяет очень гибко настраивать конечную систему и оптимизироватьпроизводительность, поэтому часто называет себя мета-дистрибутивом.Ориентирован на экспертов и опытных пользователей.
Arch Linux — ориентированный на применение самых последних версийпрограмм и постоянно обновляемый, поддерживающий одинаково как бинарную, так иустановку из исходных кодов и построенный на философии простоты KISS, этотдистрибутив ориентирован на компетентных пользователей, которые хотят иметь всюсилу и модифицируемость Linux, но не в ущерб времени обслуживания.
CentOS — дистрибутив Linux, основанный на свободных исходныхтекстах коммерческого дистрибутива Red Hat Enterprise Linux компании Red Hat, исовместимый с ним. Срок поддержки каждой версии CentOS составляет 7 лет (спомощью выпуска обновлений безопасности). Новая версия CentOS выходит раз в 2года и каждая версия регулярно обновляется (каждые 6 месяцев) для поддержкиновых аппаратных средств. В результате это приводит к безопасной, легко обслуживаемой,надежной, предсказуемой и масштабируемой Linux среде.
Помимоперечисленных, существует множество других дистрибутивов, как базирующихся наперечисленных, так и созданных с нуля и зачастую предназначенных для выполненияограниченного количества задач. Каждый из них имеет свою концепцию, свой наборпакетов, свои достоинства и недостатки. Ни один не может удовлетворить всехпользователей, а потому рядом с лидерами благополучно существуют другие фирмы иобъединения программистов, предлагающие свои решения, свои дистрибутивы, своиуслуги. Существует множество LiveCD, построенных на основе Linux, например, Knoppix.LiveCD позволяет запускать Linux непосредственно с компакт-диска, без установкина жёсткий диск. Для желающих досконально разобраться с Linux подойдёт любой издистрибутивов, однако довольно часто для этой цели используются так называемыеsource-based дистрибутивы, то есть предполагающие самостоятельную сборку всех(или части) компонентов из исходных кодов, такие как LFS, Gentoo или CRUX.
/>/>Обзор BSD-подобных систем
Ксемейству BSD относятся: NetBSD, FreeBSD, OpenBSD, ClosedBSD, MirBSD, DragonFly BSD, PC-BSD, DesktopBSD, SunOS, TrueBSD, Frenzy, Ultrix и частично Darwin (ядро Mac OS X).
NetBSD — свободнораспространяемая, защищенная, кросс-платформенная операционная система. Немногопохожа на UNIX, но таковой не является.
Перваяофициальная версия NetBSD — 0.8 — была выпущена в апреле 1993 года. NetBSDпроисходит из систем 4.3BSD и 386BSD. В конце 1995 года от NetBSD ответвилсяпроект OpenBSD. Текущая версия — NetBSD 5.0.2 — выпущена 12 февраля 2010 года.
NetBSDпортирована на огромное количество компьютерных архитектур; лозунг NetBSD —«Конечно, это работает с NetBSD». Поддерживаются 53 аппаратные платформы. Компиляцияпакетов происходит из одного дерева исходных кодов, поэтому новые функции вмашинно-независимых частях появляются сразу для всех платформ без необходимостиадаптации. Разработка драйверов также машинно-независима, поэтому один драйвердля карты, работающей, например, на шине PCI, будет работать на платформах i386,Alpha, PowerPC, SPARC и других, поддерживающих шину PCI.
Такаяплатформонезависимость позволяет разрабатывать встраиваемые системы с помощьюцелого набора инструментов: компиляторов, отладчиков и других инструментов,поддерживающих кросс-компиляцию. NetBSD содержит собственную систему пакетов — pkgsrc.На конец 2009 года в ней находится более 9000 пакетов. Установка любойпрограммы, будь то GNOME, KDE, Apache или Perl, сводится к тому, что надо войтив соответствующий каталог и набрать команду make install clean.После этого исходные коды будут загружены, распакованы, скомпилированы иустановлены. Альтернативой самостоятельной сборки служат прекомпилированные(двоичные) пакеты. В любом случае все необходимые зависимости пакетов будутсоблюдены автоматически.
FreeBSD — свободная Unix-подобнаяоперационная система, потомок AT&T Unix по линии BSD, созданной в университетеБеркли. FreeBSD работает на PC-совместимых системах семейства x86, включаяMicrosoft Xbox, а также на DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NECPC-98, ARM. Готовится поддержка архитектуры MIPS.
FreeBSDразрабатывается как целостная операционная система. Исходный код ядра, драйверовустройств и базовых пользовательских программ, таких как командные оболочкии т. п., содержится в одном дереве системы управления версиями (до 31мая 2008 — CVS, сейчас — SVN). Это отличает FreeBSD от Linux —другой свободной UNIX-подобной операционной системы — в которой ядроразрабатывается одной группой разработчиков, а набор пользовательскихпрограмм — другими (например, проект GNU), а многочисленные группысобирают это всё в единое целое и выпускают в виде различных дистрибутивовLinux.
FreeBSDхорошо зарекомендовала себя как система для построения интернет серверов. Онапредоставляет достаточно надёжные сетевые службы и эффективное управление памятью.
Внастоящее время FreeBSD предоставляет пользователю две взаимодополняющиетехнологии установки программного обеспечения сторонних разработчиков:коллекция портов FreeBSD и бинарные пакеты с программным обеспечением. Любая изэтих систем может быть использована для установки самых последних версийприложений с локальных носителей или прямо из сети. На данный момент коллекцияпортов насчитывает свыше 22 тыс. приложений самого разного назначения.
OpenBSD — свободная многоплатформеннаяоперационная система, основанная на 4.4BSD — BSD-реализации UNIX-системы.Основным отличием OpenBSD от других свободных операционных систем, базирующихсяна 4.4BSD (таких, как NetBSD, FreeBSD), является изначальная ориентированностьпроекта на создание наиболее безопасной, свободной и лицензионно чистой изсуществующих операционных систем.
OpenBSD —самостоятельный проект, ответвление NetBSD, возникшее в конце 1995 года врезультате раскола в команде разработчиков. Тэо де Раадт, один из четырехоснователей NetBSD, был вынужден покинуть проект после конфронтации по поводудальнейшего развития ОС. Взяв за основу дерево исходных кодов NetBSD ипеределав его в соответствии со своим ви́дением, он создал свойсобственный проект — OpenBSD, в который, вслед за ним, перешли и некоторыедругие разработчики NetBSD.
Новыеверсии (релизы) OpenBSD выходят каждые полгода: ориентировочно 1 мая и 1ноября.В настоящий момент поддерживаются 17 различных платформ и архитектур,включая популярные i386-совместимые компьютеры, MacPPC «New World», M68k, SunSPARC, UltraSPARC, Fujitsu SPARC64, DEC Alpha, AMD, AMD64, VAX, Sharp Zaurus.
Начинаяс версии 4.2 команда разработчиков OpenBSD предоставляет для загрузки ISO дляряда платформ — образы установочных дисков, до версии 4.2 пользователямсистемы предлагалось самостоятельно делать установочные образы дисков илиполучать их из альтернативных источников.
Наиболеепопулярным применением OpenBSD являются системы защиты сетей (межсетевыеэкраны). OpenBSD отличается от других свободных BSD-систем своей системойразработки. Никакой код не может попасть в систему извне случайно; любыеизменения просматриваются ответственными за соответствующую часть системылицами. Любая ошибка, найденная в одном месте, вызывает пересмотр всегоаналогичного кода.
ВOpenBSD уделяется огромное внимание качеству документации. Любая ошибка вman-странице считается серьёзной и немедленно исправляется. Также большоевнимание уделяется простоте и ясности кода — поскольку разработчикинебезосновательно полагают, что чем проще код, тем меньше вероятностьпропустить ошибку.
РазработчикиOpenBSD категорически не приемлют использование любого несвободного кода всистеме. Неоднократно части операционной системы исключались из репозиторияиз-за проблем с лицензированием.
Frenzy — Live-CD на базе операционной системыFreeBSD. Предназначен для настройки, проверки и анализа компьютерных сетей,тестирования компьютерного аппаратного обеспечения и ряда других задач.
Frenzyполностью русифицирована, в её состав входит русскоязычная документация поFreeBSD, а также краткая справка по работе с системой.
Frenzyвыпускается в двух вариантах:
· Frenzy standard — ориентирована в первую очередь на системныхадминистраторов. Объём ISO-образа — 200 мегабайт. В состав дистрибутивавходит более 500 приложений.
· Frenzy extended — ориентирована на администраторов ипродвинутых пользователей, кроме приложений из Frenzy standard содержит ряддополнительных приложений. Объём ISO-образа — 250 мегабайт. В составдистрибутива входит более 600 приложений.
Такжесуществует lite версия (50 мегабайт) в которой отсутствует графическийинтерфейс.Базовой операционной системой является FreeBSD 6.3-STABLE./>/> Обзор файловых систем unix-подобных операционных систем
Фа́йловаясисте́ма — порядок, определяющий способ организации, хранения иименования данных на носителях информации ИТ-оборудования и компьютернойтехники. Она определяет формат содержимого и физического хранения информации,которую принято группировать в виде файлов. Конкретная файловая системаопределяет размер имени файла (папки), максимальный возможный размер файла ираздела, набор атрибутов файла. Некоторые файловые системы предоставляютсервисные возможности, например, разграничение доступа или шифрование файлов.
Extended File System, сокращённо extили extfs — первая файловая система, разработанная специально дляОС на ядре Linux. Получила дальнейшие развитие в версиях ext2, ext3, ext4
ext2 (иногда ext2fs) — файловая системаядра Linux. Была разработана Реми Кардом ext. По скорости и производительностиработы она может служить эталоном в тестах производительности файловых систем.Так, в тестах на скорость последовательного чтения и записи, файловая системаext2 обгоняет ext3, и уступает лишь более современной ext4 в тесте на чтение.
Главныйнедостаток ext2 (и одна из причин демонстрации столь высокойпроизводительности) заключается в том, что она не является журналируемойфайловой системой. Он был устранён в файловой системе ext3 — следующей версииExtended File System, полностью совместимой с ext2.
Системаадресации данных — это одна из самых важных составляющих файловой системы.Именно она позволяет находить нужный файл среди множества как пустых, так изанятых блоков на диске. Файловая система ext2 использует следующую схемуадресации блоков файла. Для хранения адреса файла выделено 15 полей, каждое изкоторых состоит из 4 байт. Если файл умещается в 12 блоков, то номерасоответствующих кластеров непосредственно перечисляются в первых двенадцатиполях адреса. Если размер файла превышает 12 блоков, то следующее поле содержитадрес кластера, в котором могут быть расположены номера следующих блоков файла.Таким образом, 13-е поле используется для косвенной адресации.
/>
Примаксимальном размере блока в 4096 байт кластер, соответствующий 13-му полю,может содержать до 1024 номеров следующих блоков файла. Если размер файлапревышает 12+1024 блоков, то используется 14-е поле, в котором находится адрескластера, содержащего 1024 номеров кластеров, каждый из которых ссылается на1024 блока файла. Здесь применяется уже двойная косвенная адресация. И наконец,если файл включает более 12+1024+1048576 блоков, то используется последнее 15-еполе для тройной косвенной адресации. Данная система адресации позволяет примаксимальном размере блока в 4096 байт иметь файлы, размер которых превышает 2TB.
Third Extended File System (третья версия расширенной файловой системы), сокращённо ext3или ext3fs — журналируемая файловая система, используемая в операционныхсистемах на ядре Linux, является файловой системой по умолчанию во многихдистрибутивах. Основана на ФС ext2, начало разработки которой положил СтивенТвиди. Основное отличие от ext2 состоит в том, что ext3 журналируема, то есть вней предусмотрена запись некоторых данных, позволяющих восстановить файловуюсистему при сбоях в работе компьютера.
Стандартомпредусмотрено три режима журналирования:
· writeback: в журнал записываются только метаданные файловойсистемы, то есть информация о её изменении. Не может гарантировать целостностиданных, но уже заметно сокращает время проверки по сравнению с ext2;
· ordered: то же, что и writeback, но запись данных в файлпроизводится гарантированно до записи информации о изменении этогофайла. Немного снижает производительность, также не может гарантировать целостностиданных (хотя и увеличивает вероятность их сохранности при дописывании в конецсуществующего файла);
· journal: полное журналирование как метаданных ФС, так ипользовательских данных. Самый медленный, но и самый безопасный режим; можетгарантировать целостность данных при хранении журнала на отдельном разделе (алучше — на отдельном жёстком диске).
Указываетсярежим журналирования в строке параметров для программы mount, например:
mount /dev/hda6 /mnt/disc -t ext3 -o data=режим>
либо вфайле /etc/fstab.
Файловаясистема ext3 может поддерживать файлы размером до 1 ТБ. В Linux 2.6 (для32-разрядных процессоров) максимальный размер блочных устройств составляет 16ТБ, однако ext3 поддерживает только до 4 ТБ./> Табл.1 Ограничения размеров
Размер блока
Макс. размер файла
Макс. размер файловой системы 1 KB 16 GB до 2 TB 2 KB 256 GB до 4 TB 4 KB 2 TB до 8 TB 8 KB 2 TB до 16 TB
/>
Fourth Extended File System (четвёртая версия расширенной файловой системы), сокр. ext4,или ext4fs — журналируемая файловая система, используемая в ОС сядром Linux. Основана на файловой системе ext3, которая является файловойсистемой по умолчанию во многих дистрибутивах Linux.
Основнойособенностью стало увеличение максимального объёма одного раздела диска до 1эксабайта (260 байт) при размере блока 4Kb, и увеличение размераодного файла до 16 терабайт. Кроме того, в ext4 представлен механизмпространственной (extent) записи файлов (новая информация добавляется в конецзаранее выделенной по соседству области файла), уменьшающий фрагментацию иповышающий производительность. В системах MS Windows доступ к томам с ext4возможен посредством использования технологии coLinux.
Journaled File System или JFS — 64-битная журналируемая файловая системасозданная IBM.
Исходныйкод JFS был открыт IBM в 1999 году и включен в исходный код ядра Linux начинаяс версии 2.4.18-pre9-ac4. Большинство дистрибутивов Linux обеспечиваютподдержку JFS, если только она не была специально удалена из-за ограничений наобъём дистрибутива или иных проблем.Для управления разделами диска в форматеJFS был выпущен набор утилит под названием JFSutils
ReiserFS (произносится«Райзэр Эф Эс») — журналируемая файловая система, разработанная специальнодля Linux компанией Namesys под руководством Ганса Рейзера. Обычно под словомReiserFS понимают третью версию, а четвёртую называют Reiser4.
Внастоящее время ReiserFS поддерживается только под Linux, но может быть вбудущем перенесена на другие платформы. Появившись в Linux версии 2.4.1, онастала первой журналируемой файловой системой, включённой в ядро.ReiserFS — стандартная файловая система для дистрибутивов Ubuntu, Gentoo,Archlinux, Slackware, SuSE, Xandros, Yoper, Linspire и Kurumin Linux,рекомендуемой в Calculate Linux. Может быть создана командой mkreiserfs.
Возможностьупаковки нескольких небольших файлов в один блок во избежание фрагментации ипотери дискового пространства. Из-за сильной потери производительности Namesysрекомендует отключить эту возможность на чувствительных к ресурсам машинах.Несколько режимов журналирования: только метаданные/все данные. Возможностьизменения размера файловой системы «на лету».
XFS — высокопроизводительная журналируемаяфайловая система, созданная компанией Silicon Graphics для собственнойоперационной системы IRIX. 1 мая 2001 года Silicon Graphics выпустила XFSпод GNU General Public License. XFS отличается от других ФС тем, что онаизначально была рассчитана для использования на дисках большого объема.
ПоддержкаXFS была включена в ядро Linux версий 2.4 (начиная с 2.4.25, когда МарчелоТозатти посчитал её достаточно стабильной) и 2.6, и, таким образом, она сталадовольно универсальной для Linux-систем. Инсталляторы дистрибутивов SuSE, Gentoo,Mandriva, Slackware, Ubuntu, Fedora и Debian предлагают XFS как вариантфайловой системы для установки. FreeBSD стала поддерживать XFS в режиме чтенияв декабре 2005 года.Особенности
· 64-битная файловая система
· Изменение размера «на лету» (только увеличение)
· Дефрагментация «на лету»
· API ввода/вывода реального времени (для приложений жёсткого илимягкого реального времени, например, для работы с потоковым видео)
· Запись на диск производится только при нехватке памяти. Этопозволяет уменьшить фрагментацию, а также снизить активность запросов к диску.
· Интерфейс (DMAPI) для поддержки иерархического управленияносителями (HSM)
· Инструменты резервного копирования и восстановления (xfsdump andxfsrestore)
· Реальный размер файла на файловой системе, в отличие от кратногоразмеру блока.
Unix File System(UFS) — файловая система,созданная для операционных систем семейства BSD и используемая в переработанноми дополненном виде на данный момент как основная в операционныхсистемах-потомках (FreeBSD, OpenBSD, NetBSD).
ФизическиUFS состоит из следующих частей:
· несколько блоков в начале раздела отводится под загрузочнуюобласть (которая должна инициализироваться отдельно от файловой системы)
· суперблок, включающий магическое число, инициализирующее файловуюсистему, и некоторые другие важные числа, описывающие геометрию и настройкунекоторых параметров файловой системы
· описание групп цилиндров. Каждая группа включает следующиекомпоненты:
o Резервную копию суперблока
o Заголовок группы цилиндров, статистические данные и т. д.,информацию аналогичную содержащейся в суперблоке, но для конкретной группы
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-kernel-2.6.xx
ЯдроLinux поддерживает многозадачность, виртуальную память, динамическиебиблиотеки, отложенную загрузку, производительную систему управления памятью имногие сетевые протоколы.
Насегодняшний день Linux — монолитное ядро с поддержкой загружаемых модулей.Драйверы устройств и расширения ядра обычно запускаются в 0-кольце защиты, сполным доступом к оборудованию. В отличие от обычных монолитных ядер, драйверыустройств легко собираются в виде модулей и загружаются или выгружаются вовремя работы системы.
То,что архитектура Linux не является микроядерной, вызвало обширнейшие прениямежду Линусом Торвальдсом и Эндрю Таненбаумом в конференции.
Незадуманный изначально как многоплатформенное ядро, Linux на данный моментпортирован на очень широкий круг архитектур, запускается на широком спектреоборудования от iPAQ до IBM S/390. Системы на основе Linux используются вкачестве основных практически на всех суперкомпьютерах (более 80 % спискаTop500), в том числе и на самых мощных — Jaguar./>/> X.Org Server
X.OrgServer(сокращенно Xorg Server или просто Xorg, официально «X.OrgFoundation Open Source Public Implementation of X11») — свободнаяреализация сервера X Window System с открытым кодом.
XWindow System — оконная система, обеспечивающая стандартные инструменты ипротоколы для построения графического интерфейса пользователя. Используется вUNIX-подобных ОС.
XWindow System обеспечивает базовые функции графической среды: отрисовку иперемещение окон на экране, взаимодействие с мышью и клавиатурой. X WindowSystem не определяет деталей интерфейса пользователя — этим занимаютсяменеджеры окон, которых разработано множество. По этой причине внешний видпрограмм в среде X Window System может очень сильно различаться в зависимостиот возможностей и настроек конкретного оконного менеджера.
ВX Window System предусмотрена сетевая прозрачность: графическиеприложения могут выполняться на другой машине в сети, а их интерфейс при этомбудет передаваться по сети и отображаться на локальной машине пользователя (вслучае если это разрешено в настройках). В контексте X Window System термины«клиент» и «сервер» имеют непривычное для многих пользователей значение:«сервер» означает локальный дисплей пользователя (дисплейный сервер), а«клиент» — программу, которая этот дисплей использует (она можетвыполняться на удалённом компьютере).
X WindowSystem использует клиент-серверную модель: X-сервер обмениваетсясообщениями с различными клиентскими программами. Сервер принимаетзапросы на вывод графики (окон) и отправляет обратно пользовательский ввод (отклавиатуры, мыши или сенсорного экрана). X-сервер может быть:
· системной программой, контролирующей вывод видео на персональномкомпьютере;
· приложением, отображающим графику в окно какой-то другойдисплейной системы;
· выделенным компонентом аппаратного обеспечения.
Эта клиент-сервернаятерминология — пользовательский терминал в качестве «сервера» и удалённыеприложения в качестве «клиентов» — зачастую запутывает новых пользователейX, так как обычно эти термины имеют обратные значения. Но X Window Systemпринимает точку зрения программы, а не конечного пользователя аппаратуры:локальный дисплей предоставляет услуги отображения графики программам, ипотому выступает в роли сервера. Удалённые программы используют этиуслуги, и потому играют роль клиентов.
XWindow 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 показывает, что пользователи MicrosoftWindows быстро осваиваются в 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