Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Самостоятельная работа. 1. Запустить редактор реестра



1. Запустить редактор реестра.

- Перейти в раздел реестра HKEY_CURRENT_USER;

- Найти ключ, отвечающий за настройки Рабочего стола;

- Ознакомиться со списком вложенных ключей;

- Для произвольно выбранных из списка 5 ключей исследовать, аналогом каких настроек Панели управления они являются;

- Перейти в раздел реестра HKEY_CLASSES_ROOT;

- Выбрать из списка 5 ключей и описать, для файлов с какими расширениями они используются, и какие параметры для них установлены;

2. Установить на свой компьютер какое либо приложение(CorelDrow или Adobe Photoshop), после этого зайдите в корневую паку этой программы и удалите её. После такого удаления, в реестре останутся файлы программы, их вам и нужно отыскать и удалить.

3. Проверить потенциальные места записей «троянских программ» в системном реестре операционной системы Windows

- Проверить содержимое параметра

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon

По умолчанию этот параметр имеет значение C:\Windows\system32\userinit.exe

Если в значении содержатся дополнительные записи, то это могут быть «троянские программы». В этом случае проанализируйте место расположения программы, обратите внимание на время создания файла.

- Проверить раздел автозапуска Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Проанализируйте записи раздела. Какие программы автоматически запускаются при загрузке Windows. Выделите записи, вызывающие подозрения

4. Результаты внести в отчет.

Лабораторная работа №13

Знакомство с операционной системой Linux и её процессами

Цель: изучить ряд структурных элементов и элементов интерфейса операционной системы Linux и познакомиться с её процессами.

Операционная система Linux является многопользовательской операционной системой. Для обеспечения безопасной работы пользователей и целостности системы доступ к ней должен быть санкционирован. Для каждого пользователя, которому разрешен вход в систему, заводится специальное регистрационное имя - username или login и сохраняется специальный пароль - password, соответствующий этому имени.

Узнайте у своего системного администратора регистрационные имена и пароли, установленные для обучающихся.

Если в системе установлена графическая оболочка наряду с обычными алфавитно­цифровыми терминалами, лучше всего это сделать с алфавитно-цифрового терминала или его эмулятора. Чтобы перейти из графической оболочки в алфавитно-цифровой терминал нажмите <ctrl>+<alt>+<Fx>, где Fx - одна из функциональных клавиш F1,F2...F6. Вы попадете в алфавитно-цифровую консоль. Номер консоли указывает указатель tty. Например: tty2- означает, что вы находитесь во второй консоли. По умолчанию таких консолей 7. Причем седьмая консоль-графическая. Переходить между консолями можно нажимая клавиши <alt>+<Fx>.

В каждой консоли вам предлагают зарегистрироваться. Таким образом, в разных консолях вы можете работать под разными именами и, что еще более важно, с разными правами. Итак, регистрируемся в консоли.

На экране появляется надпись, предлагающая ввести регистрационное имя, как правило, это "login:". Набрав свое регистрационное имя, нажмите клавишу <Enter>. Система запросит у вас пароль, соответствующий введенному имени, выдав специальное приглашение - обычно "Password:". Внимательно наберите пароль, установленный для вас системным администратором, и нажмите клавишу <Enter>. Вводимый пароль на экране не отображается, поэтому набирайте его аккуратно! Если все было сделано правильно, у вас на экране появится приглашение к вводу команд операционной системы.

По ходу изучения операционной системы Linux вам часто будет требоваться информация о том, что делает та или иная команда или системный вызов, какие у них параметры и опции, для чего предназначены некоторые системные файлы, каков их формат и т.д.

Для получения интерактивной справки служит утилита man.

Пользоваться утилитой man достаточно просто - наберите команду man имя

где имя - это имя интересующей вас команды, утилиты, системного вызова, библиотечной функции или файла.

Чтобы пролистать страницу полученного описания, если оно не поместилось на экране полностью, следует нажать клавишу <пробел>. Для прокрутки одной строки воспользуйтесь клавишей <Enter>. Вернуться на страницу назад позволит одновременное нажатие клавиш <Ctrl> и <b>. Выйти из режима просмотра информации можно с помощью клавиши <q>.

Иногда имена команд интерпретатора и системных вызовов или какие-либо еще имена совпадают. Тогда чтобы найти интересующую вас информацию, необходимо задать утилите man категорию, к которой относится эта информация (номер раздела). В Linux, принято следующее разделение:

1. Исполняемые файлы или команды интерпретатора.

2. Системные вызовы.

3. Библиотечные функции.

4. Специальные файлы (обычно файлы устройств)

5. Формат системных файлов и принятые соглашения.

6. Игры (обычно отсутствуют).

7. Макропакеты и утилиты - такие как сам man.

8. Команды системного администратора.

9. Подпрограммы ядра (нестандартный раздел).

Если вы знаете раздел, к которому относится информация, то утилиту man можно вызвать в Linux с дополнительным параметром man номер раздела имя.

В других операционных системах этот вызов может выглядеть иначе. Для получения точной информации о разбиении на разделы, форме указания номера раздела и дополнительных возможностях утилиты man наберите команду man man.

В ОС Linux, нельзя выключать компьютер простым отключением питания, Дело в том, что в любой момент времени в системе запущено несколько процессов. Некоторые из этих процессов могут работать с файлами, причем система не записывает все изменения файлов на диск сразу после внесения этих изменений пользователем или процессом, а сохраняет их временно в оперативной памяти (кэширует). Если просто выключить питание, эти изменения не будут сохранены и пропадут, что иногда может привести даже к невозможности последующей загрузки системы. Так что надо уметь правильно завершить работу системы перед выключением компьютера. Это делается командой shutdown.

Команда shutdown может быть выполнена только пользователем root

Из опций программы shutdown наиболее часто используются две:

• -h — полная остановка системы (компьютер будет выключен);

• -r — перезагрузить систему.

Когда вы захотите просто выключить компьютер. Эквивалентом команды shutdown -h 0 является команда halt. При нажатии известной комбинации клавиш <Ctrl>+<Alt>+<Del> в Red Hat Linux выполняются действия, аналогичные команде shutdown -r 0 так что таким образом тоже можно выключить компьютер, только надо в момент перезагрузки отключить питание.

Процесс (process) — блок адресного пространства, в котором выполняются одна или более нитей, экземпляр выполняемой программы. Любой процесс может запускать другие процессы.

Таким образом, процессы в среде UNIX образуют иерархическую структуру. На вершине этой структуры находится процесс init, являющийся предком всех остальных процессов.

С каждым процессом связан набор атрибутов, которые помогают системе контролировать выполнение процессов и распределять между ними ресурсы системы.

Идентификатор процесса (process ID) это целое число однозначно идентифицирующее процесс. Процесс с идентификатором 1 это процесс init.

Идентификатор родительского процесса (parent process ID) указывает на родительский процесс.

Идентификатор группы процессов (process group ID).

Процессы могут объединяться в группы. Каждая группа обозначается идентификатором группы. Процесс, идентификатор которого совпадает с идентификатором группы, называется лидером группы.

Идентификатор сеанса (session ID).

Каждая группа процессов принадлежит к сеансу. Сеанс связывает процессы с управляющим терминалом. Когда пользователь входит в систему, все создаваемые им процессы будут принадлежать сеансу, связанному с его текущим терминалом.

Программное окружение (programm environment) это просто набор строк, заканчивающихся нулевым символом. Строки называются переменными окружения и имеют следующий формат: имя переменной = значение переменной

Дескрипторы открытых файлов.

Дескриптор файла — некоторое число, которое используется для обращения к файлу.

При запуске процесс наследует дескрипторы от родительского процесса.

Текущий рабочий каталог это каталог, от которого система производит разрешение относительных имен.

Текущий корневой каталог это каталог, от которого производится разрешение абсолютных имен. Процесс не имеет доступа к файлам находящимся выше корневого каталога.

Идентификаторы пользователя и группы.

С каждым процессом связаны действительные идентификаторы пользователя (real userlD) и группы (real group ID), совпадающие с соответствующими идентификаторами пользователя, запустившего процесс. Кроме того, с процессом связаны эффективные идентификаторы пользователя (effective user ID) и группы, определяющие права процесса в системе. Обычно, действительные и эффективные идентификаторы совпадают.

Приоритет (nice).

Значение nice ("дружелюбность") показывает готовность процесса уступить свое процессорное время другим процессам. Чем больше значение nice, тем ниже приоритет процесса.

Команды для работы с процессами

ps [-axewjlu] [-o формат] [-U пользователь] [-p pid]

Выводит список и статус процессов работающих в системе. Без аргументов выводит список процессов текущего пользователя, подключенных к терминалу. Значения параметров следующие:

-a вывести информацию о процессах всех пользователей.

-x вывести информацию о процессах не подключенных к терминалу.

-e вывести значения переменных окружения процесса.

-w использовать строки длиной 132 символа. Если указан несколько раз, то строки не обрезаются совсем.

-j, -l, -u - меняют формат вывода информации.

-o формат вывести информацию в указанном формате.

-U пользователь вывести информацию о процессах указанного пользователя.

-p pid вывести информацию о процессе с указанным идентификатором.

Значение формата для параметра -o является списком из следующих ключевых слов разделенных запятыми (без пробелов):

Command командная строка и аргументы.

nice уровень nice (приоритет).

pgid идентификатор группы процессов.

pid идентификатор процесса.

ppid идентификатор родительского процесса.

rgid, ruid реальные идентификаторы группы и пользователя.

uid реальный идентификатор пользователя.

tty управляющий терминал

top выводит сведения о запущеных процессах в динамике. Прекратить работу команды можно нажав клавишу q

Самостоятельная работа

1. Освойте работу с командой ps. Попробуйте запускать ее с различными аргументами. Если вывод команды не помещается на экране, используйте команду less.

2. Запишите в отчет следующую информацию о запущенных Вами процессах:

pid, ppid, tty, ruid, command. Вывод должен быть отсортирован по номеру процесса.

3. Ключи -c, -v, -j, -u изменяют формат вывода команды. Попробуйте выполнить команду ps с каждым из этих ключей. Результат запишите в отчет.

4. Выведите сведения о процессах в динамике. Запишите в отчет дополнительные сведения, которые были представлены командой top.

5. Потренируйтесь переходить между консолями

6. Попробуйте с помощью утилиты man посмотреть информацию о командам pwd, who, whoami, last.

7. Используя команды who, whoami, last получите сведения о пользователях, работающих в системе.

8. Выполните перезагрузку системы.

9. Выполните завершение работы

Лабораторная работа № 14

Команды для управления процессами в Linux. Терминал и командная оболочка операционной системы Linux.

Цель: познакомиться с командами для управления процессами в Linux. Приобрести опыт работы с командной строкой ОС Linux, изучить основные команды (рабочая станция, рабочий директорий, пользователи, дата, календарь, список процессов, завершение работы).

Linux имеет большое число механизмов межпроцессного взаимодействия. Наиболее популярными средствами являются сигналы, программные каналы (pipes) и именованные каналы (FIFO).

Сигналы

Сигналы обеспечивают простой метод прерывания работы процессов. Сигналы используются в основном для обработки исключительных ситуаций. Процесс может определять действия выполняемые при поступлении сигнала, блокировать сигналы, посылать сигналы другим процессам.

Существует более двадцати различных сигналов. Основные:

SIGCHLD - сигнал о завершении дочернего процесса.

SIGHUP - сигнал освобождения линии. Посылается всем процессам, подключенным к управляющему терминалу при отключении терминала. Многие демоны при получении данного сигнала заново просматривают файлы конфигурации и перезапускаются.

SIGINT - сигнал посылается всем процессам сеанса, связанного с терминалом, при нажатии пользователем клавиши прерывания (CTRL-C).

SIGTERM - сигнал приводит к немедленному прекращению работы получившего сигнал процесса.

SIGKILL - сигнал приводит к немедленному прекращению работы получившего сигнал процесса. В отличие от SIGTERM процесс не может блокировать и перехватывать данный сигнал.

SIGSEGV - сигнал посылается процессу, если тот пытается обратиться к неверному адресу памяти.

SIGSTOP - сигнал приводящий к остановке процесса. Для отправки сигнала SIGSTOP активному процессу текущего терминала можно воспользоваться комбинацией клавиш (CTRL-Z).

SIGCONT - сигнал возобновляющий работу остановленного процесса.

SIGUSR1,SIGUSR2 - сигналы определяемые пользователем.

Для того чтобы отправить процессу сигнал можно использовать команду kill. Для того, чтобы процесс мог отправить сигнал другому процессу необходимо чтобы эффективные идентификаторы пользователя у посылающего процесса и у процесса получателя совпадали. Процессы с эффективным идентификатором пользователя равным нулю могут посылать сигналы любым процессам.

Каналы

Часто возникает ситуация когда два процесса последовательно обрабатывают одни и те же данные. Для обеспечения передачи данных от одного процесса к другому в подобных ситуациях используются программные каналы. Программный канал (pipe) служит для установления связи, соединяющей один процесс с другим. Запись данных в канал и чтение из него осуществляются при помощи системных вызовов write и read, т.е. работа с каналами аналогична работе с файлами. Для создания программного канала используется системный вызов pipe. Вызов возвращает два дескриптора файлов, первый из которых открыт для чтения из канала, а второй для записи в канал.

Каналы используются, например, при организации конвейера. При выполнении команды:

find /usr/bin -name a* | sort

создается канал, команда find выводит в него результаты своей работы, а команда sort считывает из этого канала данные для сортировки.

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

Именованные каналы идентичны программным в отношении записи и чтения данных, но они являются объектами файловой системы. Именованный канал имеет имя, владельца и права доступа. Открытие и закрытие именованного канала осуществляется как открытие и закрытие любого файла, но при чтении и записи он ведет себя аналогично каналу.

Для создания именованного канала используется команда mkfifo. Если некоторый процесс открывает именованный канал для записи, то этот процесс блокируется до тех пор, пока другой процесс не откроет этот канал для чтения, и наоборот.

Команды для работы с процессами

Для различных систем параметры и ключевые слова могут сильно различаться. Подробности об использовании ps на конкретной системе можно получить при помощи команды man ps.

kill [-s signal| -signal] pid посылает сигнал указанному процессу. Если значение сигнала опущено, предполагается SIGTERM. signal — символическое имя сигнала без префикса SIG, либо номер сигнала.

nice [-nice] команда [аргументы] выполняет команду с меньшим приоритетом. Если nice не задан, то предполагается 10. Значение nice может быть от -20 (наивысший приоритет) до 20 (наименьший приоритет). Отрицательные числа задаются как -nice. Увеличение приоритета может выполнить только суперпользователь.

mkfifo [-m режим_доступа] имя создает именованный канал с указанным именем и режимом доступа.

who [am i] выводит список пользователей работающих в системе.

uname [-amnrsv] выводит информацию о системе.

uptime выводит время работы системы и ее среднюю загрузку за последние 5, 10 и 15 минут.

Средства оболочки предназначенные для работы с процессами

Список — последовательность из одного или более конвейеров разделенных операторами &, && или ||. Более высокий приоритет у операторов && и ||.

Если команда завершается оператором &, то оболочка выполняет ее в фоновом режиме. Если между двумя командами стоит оператор &&, то вторая команда будет выполнена только в том случае, если первая завершится успешно. Если между двумя командами стоит ||, то вторая команда будет выполнена только в том случае, если код завершения первой команды отличен от нуля. Если команды разделены точкой с запятой, то вторая команда будет выполнена после завершения первой, независимо от результата выполнения первой команды.

Оболочка содержит несколько встроенных команд для работы с процессами:

wait [pid] ожидает завершения процесса с указаным идентификатором. Если идентификатор опущен, то ожидает завершения всех процессов запущеных оболочкой. exec команда [аргумент]... указанная команда заменяет оболочку и получает в качестве параметров заданные аргументы.

exit [n] приводит к завершению оболочки с кодом завершения n. Если арумент опущен, то код завершения ноль.

trap [действие условие...] устанавливает обработчик события. Условие либо EXIT, либо имя сигнала без префик­са SIG. EXIT соответствует завершению работы оболочки. Если действие равно “-”, то обработчик сбрасывается в значение по умолчанию.

При работе в графической среде удобны эмуляторы терминала. Как правило они поддерживают закладки — несколько терминалов в одном окне, поддерживают цветовые схемы. Наиболее распространены эмуляторы терминала Gnome Terminal, Konsole, XFCE Terminal.

Терминал — эмулятор консоли. Именно в терминале мы будем работать с CLI (интерфейсом командной строки). Терминал часто также называют консолью или шеллом (от англ. shell — оболочка). В будущем для объяснения я буду использовать все три эти понятия, главное не забывайте что они синонимы.

Многие пользователи и в особенности администраторы серверов под Linux в работе используют именно консоль, а не графическую оболочку, это связано с тем, что настройка и конфигурация Linux в основном заключается, в редактировании текстовых конфигурационных файлов. Даже если вы являетесь простым пользователем ОС Linux, большинство инструкций по настройке написаны с использованием консоли и знать основные команды жизненно необходимо.

Стоит обратить внимание на системные каталоги ОС в которых находятся файлы, необходимые для управления и сопровождения системы, а также стандартные программы. Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux, поэтому эти каталоги называют также стандартными. Впрочем, на данный момент эпитет «стандартные» отражает скорее благие пожелания, чем действительность: иерархия каталогов одинакова только для дистрибутивов, связанных единством происхождения, а исторически сложившиеся различия создают опасность несовместимости разных дистрибутивов.

Краткое описание основных каталогов сведено в таблицу 1.

  Таблица 1.
Каталог Назначение
/bin Основные программы, необходимые для работы в системе: командные оболочки, файловые утилиты и т.п.
/sbin Команды для системного администрирования, а также программы, выполняемые входе загрузки
/boot Файлы, необходимые для загрузки системы (образ ядра)
/home Домашние каталоги пользователей, кроме root
/dev Файлы устройств
/etc Файлы настроек: стартовые сценарии, конфигурационные файлы графической системы и различных приложений
/lib Системные библиотеки, необходимые для основных программ, и модули ядра
/lost+found Восстановленные после аварийного размонтирования части файловой системы
/media Сюда обычно монтируются съемные носители: компакт-диски, flash-накопители
/mnt Временные точки монтирования жестких дисков. Использовать этот каталог необязательно: подмонтировать файловую систему можно к любому другому каталогу
/opt Дополнительные пакеты программ. Если программа, установленная сюда, больше не нужна, то достаточно удалить ее каталог без обычной процедуры деинсталляции
/proc Виртуальная файловая система, дающая доступ к информации ядра (например, выведите на экран файл /proc/cpuinfo). Другие файлы в этом каталоге в каждый момент времени содержат информацию о выполняющихся в этот момент программах
/root Домашний каталог суперпользователя. Домашние каталоги всех остальных могут находиться на отдельном разделе, но /root должен быть в корневой файловой системе, чтобы администратор всегда мог войти в систему для ремонтных работ
/tmp Временные файлы
/var Часто меняющиеся данные: системные журналы и протоколы приложений,замки, почтовые ящики, очереди печати и т.п.
/usr Практически все остальное: программы, исходные коды, документация. Сюда по умолчанию устанавливаются новые программы

С точки зрения UNIX-подобных ОС, файл представляет собой поток или последовательность байтов. Такой подход позволяет распространить понятие файла на множество ресурсов не только локального компьютера, но и удаленного, связанного с локальным сетью любого рода. Доступ к любому такому ресурсу осуществляется через универсальный интерфейс, благодаря чему запись данных в файл, отправка их на физическое устройство или обмен ими с другой работающей программой происходит аналогично. Это очень упрощает организацию данных и обмен ими.

В ОС Linux можно выделить следующие типы файлов:

· обычные файлы — последовательность байтов (текстовые документы, исполняемые программы, библиотеки и т.п.);

· каталоги — именованные наборы ссылок на другие файлы;

· файлы физических устройств, подразделяющихся на:

1. файлы блочных устройств, драйверы которых буферизуют ввод-вывод с помощью ядра и файлы байт-ориентированных, или символьных, устройств, позволяющих связанным с ними драйверам выполнять буферизацию собственными средствами;

2. символические ссылки (symlink, symbolic link);

3. именованные каналы (named pipes);

4. гнезда (sockets).

  Таблица 2.
halt стремительное и корректное выключение системы.
poweroff корректное выключение системы.
reboot корректное выключение с последующей загрузкой.
adduser создание нового пользователя.
date показывает нынешние дату и время, по системным часам ядра.
oclock обычные часы
finger отображение информации о пользователе
hostname команда показывает личный номер этого узла сети
hwclock интегрированные часы
uname выводит информацию об используемой операционной системе
uptime проявляет текущее время, длительность сеанса, число пользователей и загруженность процессора.
usermod изменение параметров пользователя.
users отражает короткий перечень пользователя работающих в системе в этот эпизод
whoami демонстрирует нынешний личный номер пользователя, работающего в этом терминале.
write посылает известные иному пользователя, окружающему в системе, маршрутом копирования строчек с терминала отправителя на терминал получателя.
history демонстрирует пронумерованный перечень команд, которые Вы исполняли в данном и прошлом сеансе. Само собой разумеется, что если в перечне истории их очень немало, то увидите заключительные.
passwd изменение пароля пользователя
ps выводит перечень всех работающих действий.
times проявляет абсолютное время исполнения действий для всей системы и этого пользователя.
free отражает информацию о своевременной памяти, подкачки, кэше, свободная память, общественная и т.п.
ls указывает все файлы в текущем каталоге в алфавитном порядке. По всей вероятности аналогична dir.
clear чистит экран терминала (в случае если данное вполне вероятно).
ifconfig отражает состояние текущей конфигурации сети или же настраивает сетевой интерфейс.
less отражает содержимое указанного файла на экране и дозволяет комфортно просмотреть.
mkpasswd создает качественный пароль, состоящий по умолчанию из 9 знаков и имеющий как минимум буквы в различном регистре и числа.

Самостоятельная работа

Задание 1

1. Запишите в отчет следующую информацию о процессах запущенных пользователем root. Вывод должен быть отсортирован по номеру процесса.

2. Создайте текстовый файл dao.txt, написав в него свою фамилию и имя

3. Создайте в домашнем каталоге именованный канал fifo. Выполните команду cat /home/dao.txt >fifo. Теперь с другого терминала выполните команду cat fifo.

4. При помощи команд tty, w, uname, uptime выведите в файл отчета имя текущего терминала, информацию о пользователях, работающих в системе, название и версию операционной системы, время работы системы.

5. Установите обработчик сигнала SIGINT. Для этого выполните команду: trap "echo. Пошлите несколько раз оболочке сигнал SIGINT. Для этого следует нажать клавиши CTRL-C.

Задание 2

1. Для выполнения данной работы будем использовать ранее установленный Linux Ubuntu. Запускаем Linux. После прохождения идентификации включаем терминал.

2. Для работы в терминале Ubuntu требуются права пользователя root, но, к сожалению, по умолчанию, он недоступен, поэтому для выполнения некоторых (не всех) команд надо писать sudo <команда>, и подтверждать свои права вводом пароля. И не пугайтесь того, что его не видно в терминале! Наберите точно по памяти, по окончании ввода нажмите Enter.

3. Для получении справки о дополнительных возможностях некоторых программ следует набрать <команда> —help

4. Потренируйтесь в выполнении команд:

· date

· oclock

· finger

· hwclock

· uname

· history

· clear

· ls

5. Создайте нового пользователя, при помощи терминала Ubuntu, и введите его в группу admin. Создайте пароль пользователю. Войдите под ним в систему. Процесс создания и ввода в группу внесите в отчет.

6. Разберите выполнение незадействованных команд таблицы 2. Потренируйтесь в выполнении, определите их назначение и область применения.





Дата публикования: 2015-10-09; Прочитано: 1367 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.021 с)...