Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Операционные системы. Основы UNIX

Покупка
Основная коллекция
Артикул: 353700.06.01
К покупке доступен более свежий выпуск Перейти
В учебном пособии рассматриваются основы командного интерфейса операционных систем семейства UNIX. Большое внимание уделено практическому использованию команд системы и возможностей языка программирования, предоставляемых оболочкой shell. В пособие включены также некоторые разделы, посвященные основам администрирования и сетевым средствам ОС. В конце каждого раздела находятся вопросы для самоконтроля, в приложении содержится большое количество примеров написания shell-процедур. Учебное пособие адресовано студентам, изучающим современные информационные технологии по программам бакалавриата, а также всем, кто хочет самостоятельно освоить командный интерфейс ОС семейства UNIX в кратчайшие сроки. Издание можно также использовать как краткий справочник по основам ОС UNIX.

Только для владельцев печатной версии книги: чтобы получить доступ к дополнительным материалам, пожалуйста, введите последнее слово на странице №3 Вашего печатного экземпляра.

Операционные системы. Основы UNIX : учебное пособие / А.Б. Вавренюк, О.К. Курышева, С.В. Кутепов, В.В. Макаров. — Москва : ИНФРА-М, 2021. — 160 с. + Доп. материалы [Электронный ресурс]. — (Высшее образование: Бакалавриат). — DOI 10.12737/11186. - ISBN 978-5-16-010893-3. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1679989 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
ОПЕРАЦИОННЫЕ 
СИСТЕМЫ

ОСНОВЫ UNIX

УЧЕБНОЕ ПОСОБИЕ

А.Б. ВАВРЕНЮК
О.К. КУРЫШЕВА
С.В. КУТЕПОВ
В.В. МАКАРОВ

Допущено
Учебно-методическим объединением 
по образованию в области прикладной информатики 
в качестве учебного пособия для студентов, 
обучающихся по направлению 09.03.03 «Прикладная информатика»

Москва
ИНФРА-М
2021

ISBN 978-5-16-010893-3 (print)
ISBN 978-5-16-102911-4 (online)
© Вавренюк А.Б., Курышева О.К., 
Кутепов С.В., Макаров В.В., 2015

Р е ц е н з е н т ы:
Перекатов В.К., д-р техн. наук, проф., зам. генерального директора 
ОАО «ИНЭУМ им. И.С. Брука», зав. кафедрой Московского физикотехнического института;
Грибунин В.Г., д-р техн. наук, главный научный сотрудник Института 
инженерной физики

УДК 004.42(075.8)
ББК 22.18я73
 
В12

Вавренюк А.Б.
Операционные системы. Основы UNIX : учебное пособие / 
А.Б. Вавренюк, О.К. Курышева, С.В. Кутепов, В.В. Макаров. — 
Москва : ИНФРА-М, 2021. — 160 с. + Доп. материалы 
[Электронный ресурс]. — (Высшее образование: Бакалавриат). — 
DOI 10.12737/11186.

ISBN 978-5-16-010893-3 (print)
ISBN 978-5-16-102911-4 (online)

В учебном пособии рассматриваются основы командного интерфейса операционных систем семейства UNIX. Большое внимание уделено 
практическому использованию команд системы и возможностей языка 
программирования, предоставляемых оболочкой shell. В пособие включены также некоторые разделы, посвященные основам администрирования и сетевым средствам ОС. В конце каждого раздела находятся вопросы 
для самоконтроля, в приложении содержится большое количество примеров написания shell-процедур.
Учебное пособие адресовано студентам, изучающим современные 
информационные технологии по программам бакалавриата, а также всем, 
кто хочет самостоятельно освоить командный интерфейс ОС семейства 
UNIX в кратчайшие сроки.
Издание можно также использовать как краткий справочник по основам ОС UNIX.
УДК 004.42(075.8)
ББК 22.18я73

В12

Материалы, отмеченные знаком 
, доступны 
в электронно-библиотечной системе Znanium.com

Предисловие

Бурное развитие IT-технологий в последнее время и расширение круга пользователей информационно-вычислительных систем 
требуют освоения специалистами различных средств общения с компьютерными системами. Без знания основных приемов работы на 
компьютерах сегодня не может обходиться ни один специалист в 
области информационных технологий, будь то опытный програм-
мист или начинающий пользователь. В последние годы все большую 
популярность приобретают операционные системы семейства UNIX 
(или UNIX-подобные системы), такие как, например, ОС Linux. 
Несмотря на достаточно большое число изданной за последнее время 
учебной и справочной литературы по операционным системам UNIX 
спрос на учебные пособия в этой области не уменьшается.
Однако в силу сложности этих систем, большого объема документации и других факторов быстро освоить такие системы начинающему пользователю достаточно трудно. Нужно также принимать 
во внимание, что многие ОС UNIX разрабатываются, поддерживаются и распространяются сообществом программистов — энтузиастов, что неизбежно приводит к появлению многочисленных версий, особенности которых либо вовсе не отражены в документации, 
либо отражены недостаточно. В то же время любая ОС семейства 
UNIX построена на основе общих принципов с соблюдением соответствующих стандартов. Это позволяет предложить любому начинающему пользователю на первом этапе познакомиться с основами 
построения UNIX, ограничиваясь минимальными сведениями из 
теории без углубления в некоторые детали, и основное внимание 
уделить практическому освоению командного интерфейса ОС UNIX. 
Такой подход полностью оправдал себя, о чем говорит многолетний 
опыт преподавания соответствующей дисциплины в НИЯУ МИФИ 
на кафедре «Компьютерные системы и технологии».
Предлагаемое читателю учебное пособие как раз и содержит 
минимально необходимые сведения по ОС UNIX, в него включены примеры, упражнения и вопросы для самоконтроля. В пособии кратко изложены вопросы, освещавшиеся в читаемых в НИЯУ 
МИФИ курсах «Командный интерфейс ОС UNIX», «Архитектура 
ОС UNIX», «Администрирование ОС UNIX». Следует также иметь 
в виду, что сегодня операционная система Linux установлена на 
огромное число персональных компьютеров, владельцы которых 
сталкиваются с необходимостью решать не только свои прикладные задачи, используя командный или графический интерфейс операционной системы, но зачастую выполнять и некоторые функции 

администратора системы. Поэтому авторы сочли полезным включить 
в учебное пособие минимальные сведения об администрировании 
системы, а также о сетевых средствах ОС UNIX.
Пособие, прежде всего, предназначено для студентов, изучающих 
информационные технологии по программам бакалавриата, а также 
может быть использовано всеми, кто самостоятельно изучает основы 
ОС UNIX и хочет в кратчайшие сроки освоить основы командного 
интерфейса этих систем. Оно может также служить кратким справочником по основам ОС UNIX.
Авторы выражают благодарность профессору Л.Д. Забродину за 
предоставленную возможность использовать при написании этой 
книги материалы его курса лекций и доценту В.Д. Никитину за возможность ознакомления с документацией по одной из версий ОС 
семейства UNIX и материалами практических занятий по курсу «Архитектура ОС UNIX».
Авторы благодарны рецензентам рукописи профессору д.т.н. 
В.И. Перекатову и д.т.н. В.Г. Грибунину за высказанные замечания 
по содержанию и оформлению книги, которые были учтены и помогли значительно улучшить качество издания.

1. 
введение

1.1. 
история развития и состав семейства ос Unix

Операционные системы являются обязательной составной 
частью любой вычислительной системы. Под вычислительной системой (ВС) далее будем понимать любую ассоциацию процессоров, способных выполнять некоторую вычислительную работу. Даже 
простейший персональный компьютер представляет собой многопроцессорную систему. Обычно кроме основного центрального процессора он включает в себя сопроцессоры для ускорения операций 
определенного вида (с плавающей запятой), для выполнения операций ввода-вывода и пр. Развитием простейших ассоциаций являются 
многопроцессорные параллельные вычислительные системы, многомашинные комплексы и компьютерные сети. Операционная система в любой ВС выполняет функции организации вычислительного 
процесса. Без ОС любая ВС мертва, это просто «железо». ОС — 
это самая инвариантная часть ВС. Операционная система (ОС) — это 
комплекс программ, который обеспечивает управление всеми аппаратными, программными средствами и всеми данными ВС.
Далее будем использовать обобщающий синоним:

ВС = Аппаратная_платформа (АП) +  
+ Программная_платформа (ОС).

На историческом этапе развития ВС было создано и имело хождение множество операционных систем самого разного назначения 
и для различных архитектур ВС, и для различной схемотехнической 
базы (ОС для мини- и микроЭВМ реального времени, для больших 
ЕС ЭВМ, ЭЛЬБРУС и прочей пакетной обработки больших вычислительных заданий). 
Но в последние три десятилетия превалирующее значение получили ОС, построенные на распространенных стандартах, совокупность которых представляет собой некоторую операционную систему 
UNIX (название произошло от UNICS — Uniplexed Information and 
Computing System). Решения при разработке первых версий UNIX 
были настолько удачны, обладали свойствами, базовыми для расширения и построения операционных систем самого различного 
назначения, что стали международными стандартами на структуру 
управляющих программ ОС. Стандарты UNIX легко «ложились» 
на различные архитектуры ВС и были приняты практически всеми 
ведущими компьютерными фирмами.

Поэтому далее мы будем изучать принципы работы с самыми различными операционными системами, построенными по стандартам 
UNIX. 
Целью настоящего учебного пособия является изучение командного языка UNIX-подобных операционных систем, приемов использования возможностей UNIX и основ программирования на собственном языке UNIX. Эти возможности составляют интерфейс 
пользователя, работающего непосредственно за терминалом ВС при 
выполнении прикладного вычислительного задания. Собственно 
прикладные программы имеют свой интерфейс для доступа к ресурсам ВС — определенный набор семантических конструкций, используемых непосредственно в теле программы — набор системных вызовов.
К настоящему времени в мире существует несколько сотен, а может быть и тысяч версий UNIX-подобных операционных систем. 
Но так как все эти ОС построены на основе единых стандартов, 
то далее мы будем говорить просто ОС UNIX — как некоторое обобщенное понятие абсолютного большинства UNIX-подобных операционных систем. 
Перечень наиболее известных UNIX-подобных ОС ведущих компьютерных фирм:
 
• MS DOS, Xenix, minix;
 
• SUN Solaris;
 
• IBM AIX, System V;
 
• BSD: FreeBSD, OpenBSD, NetBSD и др.;
 
• Linux: Ubuntu, Fedora, Gentoo, Debian, ArchLinux, RHEL и др.;
 
• MacOS, iOS;
 
• Android и др.
Все теоретические основы, что мы будем далее изучать, одинаковы для всех UNIX-подобных операционных систем. Все изучаемые 
команды применимы ко всем ОС семейства Linux, BSD, MacOS, 
Android, но могут отличаться в устаревших системах, таких как MS 
DOS. То, что вы изучите в рамках данного учебного пособия и закрепите на практических занятиях, позволит вам работать на любой 
UNIX-подобной ОС. Конечно, это начальные, базовые сведения, 
но они достаточны для решения конкретных задач и дальнейшего 
углубленного изучения принципов построения и функционирования 
операционных систем. 
Операционная система — система управляющих программ, предназначенная для обеспечения эффективного управления и использования ресурсов ВС за счет автоматизированного управления их 
работой и предоставления пользователям удобных командных 
средств доступа к ресурсам ВС.

РЕСУРСЫ: процессор, дисковая память, ОП, принтеры, каналы 
связи, монитор, устройства ввода-вывода информации, управляющие программы самой ОС и пр.
Различают понятия — программное обеспечение (ПО) ВС и математическое обеспечение (МО) ВС. Последнее понятие более широкое.
Место ОС в системе математического обеспечения:
 
• ПО = ОС + прикладные программы;
 
• алгоритмы;
 
• инструкции использования ПО.

1.2. 
интерфейсы Пользователя системы

Интерфейсы пользователя — средства для управления ресурсами ВС и вычислительными заданиями пользователем. Операционные системы UNIX имеют ярко выраженную иерархическую 
централизованную структура. В центре этой структуры — ядро ОС, 
выше последовательно располагаются утилиты — тексты программ, 
реализующих команды, и так называемая оболочка (Shell), интерпретатор команд. Каждый слой программного обеспечения имеет свой 
интерфейс с соседним (вышележащим или нижележащим) слоем. 
Управляющие программы ОС осуществляют на физическом уровне 
управление устройствами, данными, прерываниями.
Разновидности интерфейсов пользователя:
графический  
интерфейс
предназначен для массового пользователя, уровень управления заданиями (уровень так называемого конечного пользователя, использующего 
в основном готовые программные продукты); 
графический интерфейс, как правило, предоставляет возможность пользователю использовать 
окна и управлять системой нажатием на кнопки;
командный  
интерфейс
позволяет использовать возможности ОС и ВС 
более гибко, предназначен для разработки прикладных программ и вычислительных заданий, 
управления вычислительными работами на уровне 
задач, данных и устройств (уровень прикладного 
программиста); командный интерфейс — средство 
оболочки Shell, которая выполняет функции интерпретатора команд и собственных операторов;
программный  
интерфейс
набор системных вызовов для непосредственного 
эффективного управления ресурсами и вычислительными процессами на уровне архитектуры ОС 
и ВС из тела системной программы (уровень системного программиста).

1.3. 
архитектура ос

UNIX-подобные ОС создавались изначально как многопользовательские. Отсюда и основные особенности и характеристики 
UNIX, обеспечивающие одновременную работу с ВС многих пользователей:
 
• ОС поддерживает многопользовательский доступ ко всем ресурсам ВС через различные удаленные терминалы;
 
• режим разделения времени центрального процессора. Каждому 
процессу выделяются определенные интервалы времени, что 
обеспечивает псевдопараллельное выполнение задач;
 
• свопирование содержимого оперативной памяти на диск позволяет работать при сильно ограниченном объеме физической ОП. 
Достигается за счет страничной организации памяти ВС;
 
• кэширование диска – это использование части оперативной памяти ВС для временного хранения данных с диска, что существенно ускоряет доступ к часто используемым программам и 
задачам; 
 
• поддержка нескольких форматов различных файловых систем, 
в том числе файловых систем ОС других типов;
 
• возможна организация мультипроцессорной параллельной обработки заданий;
 
• работа на различных аппаратных платформах ВС (например, 
 IA-32, x86_64, SPARC, ARM);
 
• совместимость по прикладным программам различных UNIXподобных ОС, а также разработанным и для других ОС (DOS, 
Windows XP и пр.); в последнем случае с использованием соответствующих программных эмуляторов;
 
• многозадачность обеспечивается независимостью представления 
и управления в ВС как прикладными, так и системными процессами, а также фактическим режимом разделения времени между 
процессами;
 
• многочисленность командных утилит и неограниченные возможности их наращивания;
 
• открыты для модификаций и развития;
 
• расширяемые функциональные возможности ядра ОС (в основном за счет установки драйверов устройств);
 
• единый программный и командный интерфейс;
 
• встроенные сетевые средства, обеспечивающие интеграцию ВС 
в любую сеть в качестве сервера или клиента. Обеспечиваются 
сетевыми службами сетевых протоколов, файловых систем, удаленного доступа и пр.
Все свойства UNIX обеспечиваются, прежде всего, перечисленными ранее принципами построения современных операционных 

систем и характерными особенностями структуры ОС семейства 
UNIX.
ЯДРО ОС UNIX составляют следующие управляющие программы:
Файловая система. Существенным отличием современных версий 
ОС UNIX от классической структуры является наличие виртуальной 
файловой системы (например, в Linux), позволяющей одновременно 
работать с файловыми системами различных типов (Ext4, Proc, VFAT, 
NTFS и др.). Файловые системы размещаются на устройствах памяти 
с блочным принципом обмена информации и используют буферную 
кэш-память магазинного типа.
Подсистема управления процессами включает в себя:
 
• средства межпроцессного взаимодействия (IPC — Inter Process 
Communication — сигналы, семафоры, программные каналы, сокеты, общие области физической памяти);
 
• супервизор управления памятью, реализующий концепцию виртуальной памяти и наиболее эффективно использующий ресурсы 
физической памяти ВС; каждый процесс выполняется в своем 
собственном защищенном адресном пространстве фиксированного размера (4 Гбайт для Linux);
 
• планировщик процессов, выбирающий из очереди процессов 
наиболее приоритетный процесс и передающий ему управление 
на определенный квант времени (реализует режим разделения 
времени).
Подсистема управления устройствами обеспечивает управление 
всеми устройствами компьютера (кроме процессора и оперативной 
памяти). Подсистема включает в себя драйверы устройств с посимвольным принципом передачи информации (com-порт, параллельный порт) и устройств с блочным принципом обмена информацией 
(жесткий диск, CD ROM). 
Прикладные и системные программы взаимодействуют с ядром 
посредством системных вызовов.
Ядро включает в себя также программы, исполняющие функции 
внутренних команд ОС, использующихся наиболее часто, и поэтому 
интегрированных в состав ядра.
Утилиты ОС UNIX реализуют внешние команды. Утилита — это 
исполняемый файл со своим именем (имя команды), который может 
храниться как в системной области памяти ОС, так и в области памяти, выделяемой пользователю. Содержимое этой памяти описывается в соответствующих каталогах. Число утилит может быть увеличено практически без ограничений. Тем самым обеспечивается 
расширяемость командного языка ОС. Вызываются утилиты для исполнения по своему имени (имени команды).

Оболочки ОС UNIX (shell) интерпретируют имя введенной 
команды и вызывают для исполнения соответствующую утилиту. 
В UNIX может быть установлено одновременно несколько оболочек, например для каждого имеющегося терминала пользователей. 
Строго говоря, каждый отдельный терминал может обслуживаться 
несколькими оболочками, даже оболочками разных типов, обеспечивающих отличающиеся возможности для пользователей (различную СРЕДУ работы пользователя). Эта особенность структуры ОС 
UNIX обеспечивает одновременную работу многих пользователей, 
в том числе и работу в составе компьютерных сетей.
Так, в частности, для UNIX разработаны и имеют хождение множество типов оболочек. И каждая из них имеет свои возможности 
настройки среды. Наиболее распространены следующие оболочки:
 
• bash — Bourne Again Shell — базовая широко используемая оболочка, размещается в файле /usr/bin/bash;
 
• csh — Berkeley Unix shell (C shell) — развитие sh — /usr/bin/csh;
 
• ksh — Korn shell (по сути, это стандарт Posix) /usr/bin/ksh;
 
• zsh — Z shell.
Для каждого пользователя при настройке ОС может быть сконфигурирована среда для индивидуальной работы — набор команд, 
требуемый набор функций ОС, доступные устройства и пр. 
Функции оболочки:
 
• интерпретирует командные строки и передает управление ядру 
ОС;
 
• формирует характеристики среды (набор глобальных переменных 
среды);
 
• выдает приглашение на ввод очередной команды;
 
• генерирует имена файлов;
 
• присваивает и подставляет значения переменных;
 
• подставляет результаты выполнения команд;
 
• выполняет перенаправления ввода-вывода и реализует конвейеры 
команд;
 
• обеспечивает программирование на собственном языке shell и пр.

1.4. 
Процесс загрузки

При загрузке компьютера происходит последовательная передача управления от BIOS к загрузчику, а от него — к ядру. Затем ядро 
запускает планировщик (для реализации многозадачности) и выполняет программу init, которая настраивает пользовательское окружение и позволяет осуществлять взаимодействие с пользователем 
и вход в систему. После этого ядро переходит в состояние бездействия до тех пор, пока не получит внешний вызов.

К покупке доступен более свежий выпуск Перейти