Обзор файловых систем 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 байт иметь файлы, размер которых превышает 2 TB.

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 and xfsrestore)

· Реальный размер файла на файловой системе, в отличие от кратного размеру блока.

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.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


Дата добавления: 2019-11-25; просмотров: 340; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!