ЛАБОРАТОРНЫЕ РАБОТЫ ОС (Для допуска необходимо сделать 1 или 6 л. Практикум по дисциплине Операционные системы (ОС). Цели лабораторных занятий это формирование у будущих бакалавров направлений подготовки 09. 03. 01
![]()
|
3 СОДЕРЖАНИЕ ВВЕДЕНИЕ .......................................................................................................... 4 Лабораторная работа №1 ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ ОС MS WINDOWS .................................................................................................... 6 Лабораторная работа №2 ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ ОС MS WINDOWS .................................................................................................. 27 Лабораторная работа №3 ОБОЛОЧКА КОМАНДНОЙ СТРОКИ WINDOWS POWERSHELL 2.0 ........................................................................ 55 Лабораторная работа №4 СИММЕТРИЧНАЯ МУЛЬТИПРОЦЕССОРНАЯ ОБРАБОТКА...................................................................................................... 93 Лабораторная работа №5 МОНИТОРИНГ ПРОИЗВОДИТЕЛЬНОСТИ ОС WINDOWS ......................................................................................................... 99 Лабораторная работа №6 ФАЙЛОВЫЕ СИСТЕМЫ ОС LINUX .............. 106 Лабораторная работа №7 КОНТРОЛЬ ИСПОЛЬЗОВАНИЯ РЕСУРСОВ ОС LINUX ............................................................................................................... 128 Лабораторная работа №8 УПРАВЛЕНИЕ ДОСТУПОМ В ФАЙЛОВОЙ СИСТЕМЕ EXT3FS ......................................................................................... 139 Лабораторная работа №9 ОБРАБОТКА СТРОК (РАБОТА С ТЕКСТОВЫМИ ДАННЫМИ) ....................................................................... 154 Лабораторная работа №10 РАЗРАБОТКА СЦЕНАРИЕВ BASH .............. 183 СПИСОК ЛИТЕРАТУРЫ ............................................................................... 214 4 ВВЕДЕНИЕ В данном пособии представлен лабораторный практикум по дисциплине Операционные системы (ОС). Цели лабораторных занятий – это формирование у будущих бакалавров направлений подготовки 09.03.01 «Информатика и вычислительная техника», 09.03.02 «Информационные системы и технологии», 09.03.04 «Программная инженерия», 45.03.04 «Интеллектуальные системы в гуманитарной сфере», 09.03.03 «Прикладная информатика» систематического и целостного представления о значении и месте операционных систем в системном программном обеспечении вычислительных систем, об основных способах инсталляции, настроек и поддержки системных программных продуктов. Задачи лаборатоных занятий: практическое освоение пользовательского интерфейса современных операционных систем; изучение взаимодействия аппаратных и программных средств на различных уровнях; изучение различных функциональных компонент современных операционных систем; изучение принципов управления различными ресурсами вычислительной системы и структурами данных. Для полного освоения курса ОС необходимо последовательно выполнить все задания каждой работы, предварительно ознакомившись с теоретическим материалом курса лекций. Каждая лабораторная работа в данном пособии представляет собой решение отдельной проблемы для операционных систем семейства Windows или Linux. В результате выполнения лабораторных работ по дисциплине ОС у будущих бакалавров направлений подготовки формируются следующие знания и навыки: классификация операционных систем; версии ОС, их преимущества и недостатки; место ОС в составе информационной системы; основные функциональные компоненты ОС; средства мониторинга ОС; способы выбора ОС; способы реализации информационных систем и устройств в ОС; навыки по инсталляции и отладки ОС и ее компонентов, эксплуатации современных ОС и решения поставленных задач в ОС; принципы работы основных подсистем ОС и способы защиты от несанкционированного доступа; принципы построения и разработки ОС, а также методы расширения уже существующих систем; интерфейс прикладного программирования; принципы взаимодействия аппаратных и программных средств на различных уровнях; пользовательский интерфейс современных ОС; навыки по разработке программного обеспечения на базе ОС; принципы анализа и оценки эффективности функционирования ОС и ее компонентов; навыки инсталляции и настройки параметров программного обеспечения ОС; 5 Лабораторные работы, представленные в пособии можно выполнять не только на базе лабораторий университета, но и дома при наличии соответствующей операционной системы на персональном компьютере. По результатам каждой лабораторной работы должен быть сформирован отчет, содержащий все команды и файлы, а также снимок экрана их выполнения. Каждая лабораторная работа содержит краткие теоретические сведения, которые являются дополнительным материалом к курсу лекций. В конце каждой работы есть вопросы для самоконтроля студента. Авторы надеются, что данное пособие будет полезным и интересным не только студентам, но и аспирантам, магистрам, обучающимся по данным направлениям. 6 ЛАБОРАТОРНАЯ РАБОТА №1 ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ ОС MS WINDOWS Часть 1. Внешние и внутренние команды Цель работы – знакомство с возможностями интерпретатора командной строки и командами MS Windows 1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ 1.1 Эволюция инструментов для автоматизации работы в ОС Microsoft Windows В настоящее время графический интерфейс Windows стал настолько привычным, что многие пользователи и начинающие администраторы даже не задумываются об альтернативных способах управления данной ОС, связанных с командной строкой (command line) и различными сценариями (scripts), о тех преимуществах, которые дают эти инструменты с точки зрения автоматизации работы. Подобная ситуация обусловлена тем, что исторически командная строка всегда была слабым местом операционной системы Windows (по сравнению с Unix-системами). При этом, однако, неправильно было бы думать, что командная строка или сценарии нужны только администраторам. Ведь ежедневные рутинные задачи пользователей (связанные, например, с копированием или архивированием файлов, подключением или отключением сетевых ресурсов и т.п.), которые обычно выполняются с помощью графического интерфейса проводника Windows, можно полностью самостоятельно автоматизировать, написав нехитрый командный файл, состоящий всего из нескольких строчек! Более того, для человека, не знающего основные команды Windows и такие базовые возможности ОС, как перенаправление ввода/вывода и конвейеризация команд, некоторые простейшие задачи могут показаться нетривиальными. Попробуйте, например, пользуясь только графическими средствами, сформировать файл, содержащий имена файлов из всех подкаталогов какого-либо каталога! А ведь для этого достаточно выполнить единственную команду DIR (с определенными ключами) и перенаправить вывод этой команды в нужный текстовый файл. Каким же нам хотелось бы видеть инструмент для автоматизации работы в ОС? Желательно, чтобы было реализовано следующее: работа в разных версиях ОС без установки какого-либо дополнительного программного обеспечения; интеграция с командной строкой (непосредственное выполнение вводимых с клавиатуры команд); согласованный и непротиворечивый синтаксис команд и утилит; 7 наличие подробной встроенной справки по командам с примерами использования. В ОС Windows дело обстоит сложнее. На сегодняшний день одного "идеального" средства автоматизации, удовлетворяющего сразу всем перечисленным выше требованиям, в Windows нет; в последних версиях ОС поддерживаются несколько стандартных инструментов автоматизации, сильно отличающихся друг от друга: оболочка командной строки cmd.exe, среда выполнения сценариев Windows Script Host и оболочка Microsoft PowerShell. Поэтому администратору или пользователю Windows приходится выбирать, каким именно подходом воспользоваться для решения определенной задачи, а для этого желательно иметь четкое представление о сильных и слабых сторонах данных средств автоматизации. Рассмотрим достоинства и недостатки каждого из них. 1.1.1 Оболочка (интерпретатор) командной строки command.com/cmd.exe Во всех версиях ОС Windows поддерживается интерактивная оболочка командной строки (command shell) и определенный набор утилит командной строки (количество и состав этих утилит зависит от версии ОС). Механизм работы оболочек командной строки в разных системах одинаков: в ответ на приглашение ("подсказку", prompt), выдаваемое находящейся в ожидании оболочкой, пользователь вводит некоторую команду (функциональность этой команды может быть реализована либо самой оболочкой, либо определенной внешней утилитой), оболочка выполняет ее, при необходимости выводя на экран какую-либо информацию, после чего снова выводит приглашение и ожидает ввода следующей команды. Оболочка представляет собой построчный интерпретатор простого языка сентенциального (директивного) программирования, в качестве операторов которого могут использоваться исполняемые программы. Наряду с интерактивным режимом работы оболочки, как правило, поддерживают и пакетный режим, в котором система последовательно выполняет команды, записанные в текстовом файле-сценарии. Оболочка Windows не является исключением, с точки зрения программирования язык командных файлов Windows может быть охарактеризован следующим образом: реализация сентенциальной (директивной) парадигмы программирования; выполнение в режиме построчной интерпретации; наличие управляющих конструкций; поддержка нескольких видов циклов (в том числе специальных циклов для обработки текстовых файлов); 8 наличие оператора присваивания (установки значения переменной); возможность использования внешних программ (команд) операционной системы в качестве операторов и обработки их кодов возврата; наличие нетипизированных переменных, которые декларируются первым упоминанием (значения переменных могут интерпретироваться как числа и использоваться в выражениях целочисленной арифметики). Начиная с версии Windows NT, оболочка командной строки представляется интерпретатором Cmd.exe. Итак, учитывая сказанное выше, можно сделать вывод: оболочка командной строки cmd.exe и командные файлы – наиболее универсальные и простые в изучении средства автоматизации работы в Windows, доступные во всех версиях операционной системы. 1.1.2 Поддержка языков сценариев. Сервер сценариев Windows Script Host Следующим шагом в развитии средств и технологий автоматизации в ОС Windows стало появление сервера сценариев Windows Script Host (WSH). Этот инструмент разработан для всех версий Windows и позволяет непосредственно в ОС выполнять сценарии на полноценных языках сценариев (по умолчанию, VBScript и JScript), которые до этого были доступны только внутри HTML-страниц и работали в контексте безопасности веб-браузера (в силу этого подобные сценарии, например, могли не иметь доступа к файловой системе локального компьютера). По сравнению с командными файлами интерпретатора cmd.exe сценарии WSH имеют несколько преимуществ. Во-первых, VBScript и JScript – это полноценные алгоритмические языки, имеющие встроенные функции и методы для обработки символьных строк, выполнения математических операций, обработки исключительных ситуаций и т.д.; кроме того, для написания сценариев WSH может использоваться любой другой язык сценариев (например, широко распространенный в Unix-системах Perl), для которого установлен соответствующий модуль поддержки. Во-вторых, WSH поддерживает несколько собственных объектов, свойства и методы которых позволяют решать некоторые часто возникающие повседневные задачи администратора операционной системы: работа с сетевыми ресурсами, переменными среды, системным реестром, ярлыками и специальными папками Windows, запуск и управление работой других приложений. В-третьих, из сценариев WSH можно обращаться к службам любых приложений-серверов автоматизации (например, программ из пакета MS Office), которые регистрируют в ОС свои объекты. 9 Наконец, сценарии WSH позволяют работать с объектами информационной модели Windows Management Instrumentation (WMI), обеспечивающей программный интерфейс управления всеми компонентами операционной модели, а также с объектами службы каталогов Active Directory Service Interface. Следует также отметить, что технология WSH поддерживается в Windows уже довольно давно, в Интернете (в том числе на сайте Microsoft) можно найти множество готовых сценариев. 1.1.3 Командная оболочка Microsoft PowerShell С одной стороны функциональности и гибкости языка оболочки cmd.exe явно недостаточно, а с другой стороны сценарии WSH, работающие с объектными моделями ADSI и WMI, слишком сложны для пользователей среднего уровня и начинающих администраторов. Перед разработчиками новой оболочки, получившей название Windows PowerShell, стояли следующие основные цели: применение командной строки в качестве основного интерфейса администрирования; реализация модели ObjectFlow (элементом обмена информации является объект); переработка существующих команд, утилит и оболочки; интеграция командной строки, объектов COM, WMI и .NET; работа с произвольными источниками данных в командной строке по принципу файловой системы. Самая важная идея, заложенная в PowerShell, состоит в том, что в командной строке вывод результатов команды представляет собой не текст (в смысле последовательности символов), а объект (данные вместе со свойственными им методами). В силу этого работать в PowerShell становится проще, чем в традиционных оболочках, так как не нужно выполнять никаких манипуляций по выделению нужной информации из символьного потока. Отметим, что PowerShell одновременно является и оболочкой командной строки (пользователь работает в интерактивном режиме) и средой выполнения сценариев, которые пишутся на специальном языке PowerShell. В целом, оболочка PowerShell намного удобнее и мощнее своих предшественников (cmd.exe и WSH), а основным недостатком, сдерживающим распространение нового инструмента, является тот факт, что PowerShell работает не во всех версиях ОС Windows. Оболочкой можно пользоваться только на версиях не ниже Windows XP Service Pack 2 с установленным пакетом .NET Framework 2.0. 10 1.2 Оболочка командной строки Windows. Интерпретатор Cmd.exe Рассматриваются внутренние команды, поддерживаемые интерпретатором Cmd.exe, и наиболее часто используемые внешние команды (утилиты командной строки). Описываются механизмы перенаправления ввода/вывода, конвейеризации и условного выполнения команд. В ОС Windows, как и в других ОС, интерактивные (набираемые с клавиатуры и сразу же выполняемые) команды выполняются с помощью так называемого командного интерпретатора, иначе называемого командным процессором или оболочкой командной строки (command shell). Начиная с версии Windows NT, в операционной системе реализован интерпретатор команд Cmd.exe, обладающий гораздо более широкими возможностями. 1.2.1 Запуск оболочки В Windows файл Cmd.exe, как и другие исполняемые файлы, соответствующие внешним командам ОС, находятся в каталоге %SystemRoot%\SYSTEM32 (значением переменной среды %SystemRoot% является системный каталог Windows, обычно C:\Windows или C:\WinNT). Для запуска командного интерпретатора (открытия нового сеанса командной строки) можно выбрать пункт Выполнить… (Run) в меню Пуск (Start), ввести имя файла Cmd.exe и нажать кнопку OK. В результате откроется новое окно (см. рис. 1), в котором можно запускать команды и видеть результат их работы. Рис. 1 - Командное окно интерпретатора Cmd.exe в Windows 7 11 1.2.2 Настройка параметров командного окна интерпретатора У утилиты командной строки, которая поставляется в виде стандартного приложения ОС Windows, имеется свой набор опций и параметров настройки. Один из способов просмотра этих опций – использование пункта Свойства управляющего меню окна (нажать правой кнопкой мыши на заголовок окна). В окне свойств (см. рис. 2) будут доступны четыре вкладки с опциями: общие, шрифт, расположение и цвета. Рис. 2 – окно настройки свойств интерпретатора 1.2.3 Внутренние и внешние команды. Структура команд Некоторые команды распознаются и выполняются непосредственно самим командным интерпретатором — такие команды называются внутренними (например, COPY или DIR ). Другие команды ОС представляют собой отдельные программы, расположенные по умолчанию в том же каталоге, что и Cmd.exe, которые Windows загружает и выполняет аналогично другим программам. Такие команды называются внешними (например, MORE или XCOPY ). Рассмотрим структуру самой командной строки и принцип работы с ней. Для того, чтобы выполнить команду, после приглашения командной строки (например, C:\> ) следует ввести имя этой команды (регистр не важен), ее параметры и ключи (если они необходимы) и нажать клавишу 12 C:\>COPY C:\myfile.txt A:\ /V Имя команды здесь — COPY , параметры — C:\myfile.txt и A:\ , а ключом является /V . Отметим, что в некоторых командах ключи могут начинаться не с символа /, а с символа – (минус), например, -V Многие команды Windows имеют большое количество дополнительных параметров и ключей, запомнить которые зачастую бывает трудно. Большинство команд снабжено встроенной справкой, в которой кратко описываются назначение и синтаксис данной команды. Получить доступ к такой справке можно путем ввода команды с ключом /? . Например, если выполнить команду ATTRIB /? , то в окне MS-DOS мы увидим следующий текст: Отображение и изменение атрибутов файлов. ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[диск:][путь]имя_файла] [/S] + Установка атрибута. - Снятие атрибута. R Атрибут "Только чтение". A Атрибут "Архивный". S Атрибут "Системный". H Атрибут "Скрытый". /S Обработка файлов во всех вложенных папках указанного пути. Для некоторых команд текст встроенной справки может быть довольно большим и не умещаться на одном экране. В этом случае помощь можно выводить последовательно по одному экрану с помощью команды MORE и символа конвейеризации |, например: XCOPY /? | MORE В этом случае после заполнения очередного экрана вывод помощи будет прерываться до нажатия любой клавиши. Кроме того, используя символы перенаправления вывода > и >>, можно текст, выводимый на экран, направить в текстовый файл для дальнейшего просмотра. Например, для вывода текста справки к команде XCOPY в текстовый файл xcopy.txt, используется следующая команда: XCOPY /? > XCOPY.TXT |