
- •А.Н. Езин операционные системы
- •2009 Содержание
- •Пояснительная записка
- •Лабораторная работа № 1. Мультипрограммные вычислительные процессы Цель работы
- •Краткие теоретические сведения
- •1. Получение обобщенной информации о компонентах вычислительного процесса.
- •2. Просмотр и анализ информации о процессах и потоках.
- •3. Детальное исследование вычислительного процесса.
- •4. Управление журналами счетчиков и журналом оповещения.
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа № 2. Управление процессами и потоками вWin32api. Организация взаимодействия между процессами и потоками вWin32api Цель работы
- •Краткие теоретические сведения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа № 3. Синхронизация потоков вWin32api Цель работы
- •Краткие теоретические сведения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа № 4. Управление памятью Цель работы
- •Краткие теоретические сведения
- •1. Получение обобщенной информации об использовании оперативной памяти.
- •2. Управление файлом подкачки.
- •3. Оптимизация виртуальной памяти.
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа № 5. Управление виртуальной памятью вWindowsприложениях вWin32api Цель работы
- •Краткие теоретические сведения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа №6. Управление файловой системой и системой ввода/вывода Цель работы
- •Краткие теоретические сведения
- •1. Установка, диагностика работы и настройка драйверов устройств.
- •2. Управление дисками и обслуживание файловой системы.
- •3. Диагностика и мониторинг устройств компьютера.
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа № 7. Управление файловой системой вWindowsприложениях вWin32api Цель работы
- •Краткие теоретические сведения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •2. Команды управления файловой системой Windows.
- •3. Основы разработки командных (пакетных) файлов.
- •2. Использование программы Debug
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа №9. Пользовательский интерфейс командной строки в Linux (Unix) Цель работы
- •Краткие теоретические сведения
- •1. Интерфейс командной строки ос Unix.
- •2. Командные файлы в Linux.
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа № 10. Организация графического пользовательского интерфейса вWindowsприложениях вWin32api
- •Краткие теоретические сведения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа № 11. Организация обмена данными между приложениями вWindows
- •Краткие теоретические сведения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •2. Защита системных файлов.
- •3. Проверка системных файлов (System File Checker).
- •4. Верификация цифровой подписи файлов.
- •5. Откат драйверов.
- •6. Безопасный режим загрузки.
- •7. Точки восстановления системы.
- •8. Резервное копирование и восстановление.
- •9. Аварийное восстановление системы.
- •10. Консоль восстановления.
- •11. Загрузочная дискета.
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа №13. Системный реестр и системные службы Цель работы
- •Краткие теоретические сведения
- •1. Назначение и структура реестра.
- •2. Средства управления реестром.
- •3. Резервное копирование и восстановление реестра.
- •4. Очистка реестра.
- •5. Редактирование реестра.
- •6. Системные службы.
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Лабораторная работа №14. Обеспечение безопасности компьютерной системы Цель работы
- •Краткие теоретические сведения
- •1. Защита от вторжений. Брандмауэры.
- •2. Отключение ненужных служб.
- •3. Защита от спама.
- •4. Защита от вредоносных программ и вирусов.
- •5. Защита конфиденциальной информации.
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •План представляемого студентом отчета.
- •Материально-техническое обеспечение дисциплины
- •Литература
2. Командные файлы в Linux.
Для того чтобы текстовый файл можно было использовать как командный, существует несколько возможностей.
Пусть с помощью редактора создан файл с именем f1, содержащий одну строку следующего вида: date; pwd; ls. Можно вызвать оболочку shell как команду, обозначаемую sh, и передать ей файл fl, как аргумент или как перенаправленный вход: $ sh fl или $ sh < fl. В результате выполнения любой из этих команд будет выдана дата, затем имя текущего каталога, а потом содержимое каталога.
Файл можно выполнить и в текущем экземпляре shell. Для этого существует специфическая команда . (точка): .fl.
Более удобный вариант работы с командным файлом - это превращение его в выполняемый файл, т.е. просто сделать его командой (запускающей этот файл по его названию), что достигается изменением кода защиты. Для этого надо разрешить выполнение этого файла. Например, chmod 711 fl сделает у этого файла код защиты «rwx--x--x». Тогда простой вызов fl приведет к выполнению тех же трех команд, которые были записаны в файл.
Результат будет тот же, если файл с содержимым date; pwd; ls будет представлен в виде:
date
pwd
ls
так как переход на другую строку также является разделителем в последовательности команд.
Начинать командный файл надо всегда с пустой строки или пустого оператора «:». Их выполнение происходит в режиме интерпретации с помощью shell-интерпретатора.
Работу всех команд операционной системы упрощенно можно представить следующим образом: команда - это некоторое устройство, которое выполняет преобразование входного потока в выходной.
Входной поток в команде может быть задан четырьмя способами: указанием адреса входного потока справа от команды; отсутствием в команде прямого указания на адрес входного потока; перенаправлением входного потока с помощью символа «<» и передачей во входной поток результата работы предыдущей команды (конвейер, или серфинг, или piping).
Выходной поток может быть задан пятью способами: по умолчанию, без явного указания на выходной поток; явным указанием выходного потока; перенаправлением выходного потока одной команды на вход другой (символ |); перенаправлением в начало файла (символ «>»); перенаправлением в конец файла (символ «>>»).
Выходной поток одной команды может быть направлен во входной поток другой команды посредством организации конвейера команд. Для создания конвейера команд между объединяемыми командами ставится знак |.
Для вывода всех файлов текущего каталога на экран служит команда ls -1. Для ограничения выходного потока этой команды, вывода каталога отдельными фрагментами, служит команда more. Соединив эти две команды в конвейер ls –l| more получим, что содержимое текущего каталога готовится командой ls -l, выходной поток которой знаком конвейера | направлен на вход команды more. А команда more выводит информацию на экран с временными паузами.
Другие команды при соединении в конвейер позволяют получать результат, который каждая команда в отдельности получить не позволит. Примеры:
Показать общее количество файлов в текущем каталоге: ls –l| wc –l.
Показать общее количество пользователей, работающих в данный момент на ЭВМ: who | we –l.
Показать последние 10 раз, когда заходил в систему пользователь с текущим login'ом «vasjkov»: last vasjkov | head.
Отсортировать список файлов по алфавиту, подготовить его к печати и отпечатать его: sort list | pr | lpr.
Показать состав работающих на ЭВМ пользователей в алфавитном порядке: who | sort.
Достать страницу из справочной системы shell и отправить ее по почте Алексею Васькову: man sh | mail vasjkov.
Сформировать список содержимого текущего каталога, выделить размер каждого файла из списка, список отсортировать по цифрам, показать только последний (а следовательно, наибольший) файл из списка: ls -l | awk ' {print $5}' | sort -n | tail –l.
Файл «textfile» отсортировать и напечатать: sort textfile | lp.
Найти в текущем каталоге файлы, имена которых заканчиваются на 1994, найти в этих файлах слово «profits» и напечатать строки, содержащие это слово. Поиск требуемого слова в файлах произвести командой grep: cat *. 1994 | grep profits | lp.
Выдать на экран список файлов текущего каталога (команда list) в 4 колонки (опция -4 команды рг) по 5 строк на странице (опция -l5) и не выдавать заголовок списка и конечное сообщение (опция -t): ls | pr -t -l5 -4.
Сформировать список файлов текущего каталога, преобразовать его в 3 колонки и распечатать: ls | pr -3 | lpr.
Файл «fruits» отсортировать и вывести на экран колонками, как при табуляции: sort fruits | sp.
Определить, кто входит в систему с терминала ttyl5: who |grep ttyl5.
Вывести неповторяющийся список элементов файла animals с указанием числа повторений этих элементов. Такой способностью обладает команда uniq с опцией -с: sort animals | uniq -с.
Найти в телефонном справочнике phone.lst абонента по двум критериям поиска: Тэд, живущий в Лос Анжелесе: grep Ted phone.lst | grep 'Los Angeles'.
Отформатировать текст из файла text_5 в 2 колонки перед выводом на печать: рr -2 text_5 | lpr.
Перед печатью файл data_15 сначала упорядочить, затем разделить на страницы: sort data 15 | pr | lpr.