ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ
Экономический факультет
УТВЕРЖДАЮ
Заведующий кафедрой
______________________
«___»_____________2014 г.
ЛЕКЦИЯ №17 Операционная система Linux
по дисциплине«Операционные системы и оболочки»
Тема №8
UNIX – подобные операционные системы.
для студентов специальности 230400.62–Информационные системы и технологии
ШИФР наименование
Рассмотрено УМК
" " ___________ 2014 года
протокол N ______________
Ставрополь - 2014 г.
Учебные и воспитательные цели:
: Дать систематизированные научные знания об операционной системе Linux
Время:___________________________________________________ 90 мин.
Учебно-материальное обеспечение:
Опорная лекция.
ГОС ВПО по направлению 230400.62 – Информационные системы и технологии.
Рабочая программа дисциплины «Операционные системы и оболочки».
Основная и дополнительная литература.
Методические указания по изучению дисциплины «Операционные системы и оболочки».
Комплект слайдов по Теме №8
Распределение времени
I. Вступительная часть
II. Учебные вопросы:
-
Основные характеристики ОС Linux
Дистрибутивы Linux
Критерии классификации дистрибутивов
-
Файловая система Linux
II. Заключительная часть
СОДЕРЖАНИЕ ЗАНЯТИЯ
Первый учебный вопрос - Основные характеристики ОС Linux
В силу того, что исходные коды Linux распространяются свободно и общедоступны, к развитию системы с самого начала подключилось большое число независимых разработчиков. Благодаря этому на сегодняшний момент Linux — самая современная, устойчивая и быстроразвивающаяся система, почти мгновенно вбирающая в себя самые последние технологические новшества. Она обладает всеми возможностями, которые присущи современным полнофункциональным операционным системам типа UNIX. Приведем краткий список этих возможностей.
Реальная многозадачность
Все процессы независимы; ни один из них не должен мешать выполнению других задач. Для этого ядро осуществляет режим разделения времени центрального процессора, поочередно выделяя каждому процессу интервалы времени для выполнения. Это существенно отличается от режима "вытесняющей многозадачности", реализованной в Windows 95, когда процесс должен сам "уступить" процессор другим процессам (и может сильно задержать их выполнение).
Многопользовательский доступ
Linux — не только многозадачная ОС, она поддерживает возможность одновременной работы многих пользователей. При этом Linux может предоставлять все системные ресурсы пользователям, работающим с хостом через различные удаленные терминалы.
Свопирование оперативной памяти на диск
Свопирование оперативной памяти на диск позволяет работать при ограниченном объеме физической оперативной памяти; для этого содержимое некоторых частей (страниц) оперативной памяти записываются в выделенную область на жестком диске, которая трактуется как дополнительная оперативная память. Это несколько снижает скорость работы, но позволяет организовать работу программ, требующих большего объема ОЗУ, чем фактически имеется в компьютере.
Страничная организация памяти
Системная память Linux организована в виде страниц объемом 4K. Если оперативная память полностью исчерпана, ОС будет искать давно не использованные страницы памяти для их перемещения из памяти на жесткий диск. Если какие-либо из этих страниц становятся нужны, Linux восстанавливает их с диска. Некоторые старые Unix-системы и некоторые современные платформы (включая MicrosoftWindows) переносят на диск все содержимое ОП, относящееся к неработающему в данный момент приложению, (т. е. ВСЕ страницы памяти, относящиеся к приложению, сохраняются на диске при нехватке памяти) что менее эффективно.
Загрузка выполняемых модулей "по требованию"
Ядро Linux поддерживает выделение страниц памяти по требованию, при котором только необходимая часть кода исполняемой программы находится в оперативной памяти, а не используемые в данный момент части остаются на диске.
Совместное использование исполняемых программ
Если необходимо запустить одновременно несколько копий какого-то приложения (либо один пользователь запускает несколько идентичных задач, либо разные пользователи запускают одну и ту же задачу), то в память загружается только одна копия исполняемого кода этого приложения, которая используется всеми одновременно исполняющимися идентичными задачами.
Общие библиотеки
Библиотеки — наборы процедур, используемых программами для обработки данных. Существует некоторое количество стандартных библиотек, используемых одновременно более чем одним процессом. В старых системах такие библиотеки включались в каждый исполняемый файл, одновременное выполнение которых приводило к непродуктивному использованию памяти. В новых системах (в частности, в Linux), обеспечивается работа с динамически и статически разделяемыми библиотеками, что позволяет сократить размер отдельных приложений.
Динамическое кеширование диска
Кеширование диска — это использование части оперативной памяти для хранения часто используемых данных с диска, что существенно ускоряет доступ к часто используемым программам и задачам. Пользователи MS-DOS работают со SmartDrive, который резервирует фиксированные области системной памяти для кеширования диска. Linux использует более динамичную систему кеширования: память, зарезервированная под кеш, увеличивается, когда память не используется, и уменьшается, если системе или процессу пользователя требуется больше памяти.
100%-ное соответствие стандарту POSIX 1003.1. Частичная поддержка возможностей System V и BSD
POSIX 1003.1 (PortableOperatingSystemInterface — интерфейс мобильной операционной системы) задаeт стандартный интерфейс Unix-систем, который описывается набором процедур языка Си. Сейчас он поддерживается всеми новыми ОС.MicrosoftWindowsNT также поддерживает POSIX 1003.1.Linux 100%-но соответствует POSIX. Дополнительно поддерживаются некоторые возможности SystemV и BSD для увеличения совместимости.
System V IPC
Linux использует технологию IPC (InterProcessCommunication) для обмена сообщениями между процессами, использования семафоров и общей памяти.
Возможность запуска исполняемых файлов других ОС
Linux не является первой в истории операционной системой. Для ранее разработанных ОС, включая DOS, Windows 95, FreeBSD или OS/2, разработана масса различного, в том числе очень полезного и очень неплохого программного обеспечения. Для запуска таких программ под Linux разработаны эмуляторы DOS, Windows 3.1 и Windows 95. Более того, фирмой Vmware разработана система "виртуальных машин", представляющая собой эмулятор компьютера, в котором можно запустить любую операционную систему. Имеются аналогичные разработки и у других фирм. ОС Linuxспособна также выполнять бинарные файлы других Intel-ориентированных Unix-платформ, соответствующих стандарту iBCS2 (intelBinaryCompatibility).
Поддержка различных форматов файловых систем
Linux поддерживает большое число форматов файловых систем, включая файловые системы DOS и OS/2, а также современные журналируемые файловые системы. При этом и собственная файловая система Linux, которая называется SecondExtendedFileSystem (ext2fs), позволяет эффективно использовать дисковое пространство.
Сетевые возможности
Linux можно интегрировать в любую локальную сеть. Поддерживаются все службы Unix, включая NetworkedFileSystem (NFS), удалeнный доступ (telnet, rlogin), работа в TCP/IP сетях, dial-up-доступ по протоколам SLIP и PPP, и т. д.. Также поддерживается включение Linux-машины как сервера или клиента для другой сети, в частности, работает общее использование (sharing) файлов и удаленная печать в Macintosh, NetWare и Windows.
Работа на разных аппаратных платформах
Хотя ОС Linux первоначально была разработана для ПК на базе Intel 386/486, сейчас она может работать на всех версиях Intel-овских микропроцессоров, начиная с 386 и кончая многопроцессорными системами на PentiumIII (с PentiumIV возникли определенные трудности, но, судя по сообщениям в Интернете, они были вызваны ошибками в реализации процессора). Так же успешно Linux работает на различных клонах Intel от других производителей; в Интернете встречаются сообщения о том, что на процессорах Athlon и Duron от AMDLinux работает даже лучше, чем на Intel. Кроме того, разработаны версии для других типов процессоров — ARM, DECAlpha, SUNSparc, M68000 (Atari и Amiga), MIPS, PowerPC и других (отметим, что в настоящей книге рассматривается только вариант для IBM-совместимых компьютеров).
Второй учебный вопрос - Дистрибутивы Linux
Операционная система Linux состоит из многочисленных компонентов, важнейшим из которых является ядро (kernel). Но операционная система состоит не только из ядра. Для ее работы необходима еще масса других программных средств: драйверы аппаратных устройств, утилиты управления файловой системой, программы для организации взаимодействия с пользователем и так далее. В отличие от других типов операционных систем (например, Windows, Solaris или HP-UX) отдельные компоненты операционной системы разрабатываются и поддерживаются не какой-то одной фирмой, а независимыми группами разработчиков, которые работают на принципах OpenSource и отдают разработанные ими продукты в общественное пользование на условиях Стандартной Общественной Лицензии (GeneralPublicLicense - GPL).
Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной систем (в том числе, ядро Linux), некоторую совокупность программных приложений и программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux и набор прикладных программ, необходимых для конкретного применения системы.
Первые дистрибутивы Linux появились вскоре после того, как ЛинусТорвальдс выпустил разработанное им ядро Linux под лицензией GPL. Поскольку значительная часть другого необходимого программного обеспечения уже была разработана в рамках проекта GNU, отдельные программисты (и группы программистов) начали разрабатывать как программы инсталляции, так и другие прикладные программы, пользовательский интерфейс, программы управления пакетами и выпускать свои дистрибутивы Linux.
Первый дистрибутив Linux был создан Оуэном Ле Бланк (OwenLeBlanc) в Манчестерском компьютерном центре (ManchesterComputingCentre, MCC) в Англии. Первый релиз этого дистрибутива, получившего имя MCCInterimLinux, стал доступен для всех желающих с ftp-сервера Манчестерского университета в феврале 1992 г.
Примерно в то же время сотрудниками университета Техаса был создан дистрибутив TAMU.
В октябре 1992 появился разработанный Питером Мак-Дональдом (PeterMcDonald) дистрибутив SoftlandingLinuxSystem (SLS), который был первым дистрибутивом, включающим в себя такие элементы, как XWindowSystem и поддержка TCP/IP.
Ни один из этих дистрибутивов не имел хорошей поддержки. В конце 1992 года Патрик Фолькердинк (PatrickVolkerding) выпустил дистрибутив, в значительной части основанный на SLS, который он назвал "Slackware" и который является старейшим дистрибутивом из тех, которые до сих пор активно развиваются.
На основе дистрибутива Slackware германской фирмой S.U.S.E (акроним от немецкого "Software- undSystemEntwicklung), основанной в 1992 году как консультативная группа по ОС UNIX, был создан дистрибутив SuSELinux, версия 1.0 которого вышла в 1994 году. Позже SuSE интегрировал дистрибутив JurixФлориана Ла Роше (FlorianLaRoche).
Еще один проект по разработке дистрибутива, Debian, был начат Яном Мёрдоком (IanMurdock) 16 августа 1993 года как альтернатива коммерческим дистрибутивам Linux. Ян хотел создать систему, распространяемую абсолютно свободно и открыто, в духе Linux и GNU. Позже разработка Debian была профинансирована проектом GNU: FreeSoftwareFoundation, который выделил деньги на один год, с ноября 1994 по ноябрь 1995, что позволило Я.Мердоку в течение этого периода уделять проекту Debian все свое время.
Дистрибутив RedHat, который включал в себя некоторые аспекты дистрибутива Bogus (например, механизм пакетов), был основан в 1993 году. На основе RedHat было создано множество других дистрибутивов, в том числе многие коммерческие дистрибутивы, например, Caldera, Mandrake и TurboLinux.
С тех пор число дистрибутивов постоянно растет, возможно, в силу той относительной легкости, с которой дистрибутив может быть создан из отдельных пакетов, поставляемых независимыми разработчиками. По состоянию на 14 января 2005 года сайт DistroWatch.com (на котором ведется учет разных дистрибутивов) насчитывал 373 дистрибутива. Поддержка некоторых из них уже прекращена, но все же еще более 300 разработок были “живы”. Только за 2004 год появилось более сотни новых дистрибутивов. И это еще не конец, потому что чуть ли не ежедневно появляются новые и новые дистрибутивы!
Как же сориентироваться в этой массе дистрибутивов, чем отличаются разные дистрибутивы, по каким критериям можно их как-то классифицировать? И как выбрать тот вариант системы, который более всего подходит для конкретной ситуации?
Третий учебный вопрос - Критерии классификации дистрибутивов
Приведенные выше цифры количества дистрибутивов, конечно, впечатляют, но давние пользователи Linux знают, что ядро и большинство программ одинаковы во всех дистрибутивах, и что состав пакетов, входящих в разные дистрибутивы, различается в основном версиями или сборками от конкретного производителя. Кроме того, пользователь может добавить в свою систему практически любой необходимый ему пакет, в крайнем случае скомпилировав его из исходных кодов или разработав самостоятельно (при наличии соответствующей квалификации, разумеется). Так что, с одной стороны, практически не существует двух одинаковых экземпляров операционной системы Linux, а с другой стороны, необходимую для конкретного применения конфигурацию системы можно получить, взяв за основу любой из существующих дистрибутивов. Однако трудоемкость настройки системы на конкретное применение все же существенно зависит от того, какой дистрибутив взят за основу.
Поскольку число дистрибутивов Линукс очень велико, ознакомиться на практике с каждым дистрибутивом, чтобы сделать обоснованный выбор, уже не представляется возможным. Следовательно, актуальной становится проблема какой-то классификации дистрибутивов, выделения существенных характеристик, которые могут служить критериями выбора дистрибутива.
Признаков, по которым различаются отдельные дистрибутивы существует очень много. Воттольконекоторыеизних:
ориентация (или назначение) дистрибутива на конкретную область применений (например, для организации файервола, для работы в качестве маршрутизатора, для создания особо защищенной системы или для использования на домашнем компьютере обычного пользователя с упором на мультимедийные приложения),
требования к аппаратномуобеспечению,
используемая графическая оболочка (например, KDE, GNOME или XFce),
наличие средств локализации, обеспечивающих поддержку необходимых вам языков (например, в некоторых LiveCD дистрибутивах не предусмотрена поддержка русского языка, так что русскоязычным пользователям придется приложить дополнительные усилия для русификации системы),
носитель, с которого может запускаться система (например, одна или несколько дискет, CD, только установка на жесткий диск),
организация процедуры начальной загрузки системы (BSD или SystemV),
используемая система управления пакетами (например, dpkg в Debian, RPM в FedoraCore),
структуракаталоговфайловойсистемы,
родословная или история происхождения дистрибутива ( Новые дистрибутивы создаются, в основном, не на пустом месте, а на основе одного из уже существующих дистрибутивов.)
составбазовогоустанавливаемого ПО,
доступностьдополнительныхпакетов,
наличие и состав коммерческих программ, включенных в дистрибутив,
процедураопределенияаппаратуры,
предоставляемыеинструментыуправлениясистемой,
Давайте попытаемся выделить из этого списка те признаки, которые могут служить основой для какой-то классификации дистрибутивов. Начнем с того, что отбросим некоторые критерии, не имеющие практического значения.
Некоторые из перечисленных признаков можно исключить без долгих обоснований. Например, доступность дополнительных пакетов практически одинакова для всех дистрибутивов, поскольку любую программу можно скомпилировать из исходных кодов или же создать пакет в специфичном для данного дистрибутива формате. Точно по тем же основаниям можно исключить признак наличия в составе дистрибутива коммерческого ПО, так как никто не может запретить вам купить такое ПО и добавить его в свою систему. Средства локализации включаются сейчас во все дистрибутивы без исключения, разве что не всегда дистрибутив содержит нужные шрифты. Этот признак становится еще более несущественным в связи с наметившимся переходом на Unicode. Еще несколько признаков давайте рассмотрим чуть подробнее.
|