Процессы, потоки и задания
Хотя на первый взгляд кажется, что программа и процесс — понятия практически одинаковые, они фундаментально отличаются друг от друга. Программа представляет собой статический набор команд, а процесс — это контейнер для набора ресурсов, используемых при выполнении экземпляра программы. Ha самом высоком уровне абстракции процесс в Windows включает следующее:
• закрытое виртуальное адресное пространство — диапазон адресов виртуальной памяти, которым может пользоваться процесс;
• исполняемую программу — начальный код и данные, проецируемые на виртуальное адресное пространство процесса;
• список открытых описателей (handles) различных системных ресурсов — семафоров, коммуникационных портов, файлов и других объектов, доступных всем потокам в данном процессе;
• контекст защиты (security context), называемый маркером доступа (access token) и идентифицирующий пользователя, группы безопасности и привилегии, сопоставленные с процессом;
• уникальный идентификатор процесса (во внутрисистемной терминологии называемый идентификатором клиента);
• минимум один поток.
Каждый процесс также указывает на свой родительский процесс (процесс-создатель). Однако, если родитель существует, эта информация не обновляется. Поэтому есть вероятность, что некий процесс указывает на уже несуществующего родителя. Это не создает никакой проблемы, поскольку никто не полагается на наличие такой информации. Следующий эксперимент иллюстрирует данный случай.
ЭКСПЕРИМЕНТ: просмотр дерева процессов
Большинство утилит не отображает такой уникальный атрибут, как идентификатор родительского процесса. Значение этого атрибута можно получить программно или с помощью оснастки Performance, запросив значение счетчика Creating Process ID [Код (ID) создавшего процесса]. Дерево процессов показывается утилитой Tlist.exe (из Windows Debugging Tools), если вы указываете ключ /t. Вот образец вывода этой команды:
Взаимоотношения процессов (дочерний-родительский) Tlist показывает отступами. Имена процессов, родительские процессы которых на данный момент завершились, выравниваются по левому краю, потому что установить их родственные связи невозможно — даже если процессы-прапредки еще существуют. Windows сохраняет идентификатор только родительского процесса, так что проследить его создателя нельзя. Чтобы убедиться в этом, выполните следующие операции.
1. Откройте окно командной строки.
2. Наберите start cmd для запуска второго окна командной строки.
3. Откройте диспетчер задач.
4. Переключитесь на второе окно командной строки.
5. Введите mspaint для запуска Microsoft Paint.
6. Щелкните второе окно командной строки.
7. Введите exit. (Заметьте, что окно Paint остается.)
8. Переключитесь в диспетчер задач.
9. Откройте его вкладку Applications (Приложения).
10.Щелкните правой кнопкой мыши задачу Command Prompt (Командная строка) и выберите Go To Process (Перейти к процессам).
11. Щелкните процесс Cmd.exe, выделенный серым цветом.
12. Щелкнув правой кнопкой мыши, выберите команду End Process Tree
(Завершить дерево процессов).
13. B окне Task Manager Warning (Предупреждение диспетчера задач) щелкните Yes (Да).
Первое окно командной строки исчезнет, но вы по-прежнему сможете наблюдать окно Paint, так как оно является внуком первого из завершенных процессов Command Prompt. A поскольку второй (родительский процесс Paint) тоже завершен, связь между родителем и внуком потеряна.
Для просмотра (и модификации) процессов и информации, связанной с ними, существует целый набор утилит. Следующие эксперименты демонстрируют, как получить ту или иную информацию о процессе с помощью некоторых из этих утилит. Они включаются непосредственно в саму Windows, а также в Windows Support Tools, Windows Debugging Tools, ресурсы Windows и Platform SDK. Многие из этих утилит выводят перекрывающиеся подмножества информации о базовых процессах и потоках, иногда идентифицируемые по разным именам.
Вероятно, наиболее широко применяемая утилита для анализа активности процессов — Task Manager (Диспетчер задач). (Любопытно, что в ядре Windows нет такого понятия, как задача, так что Task Manager на самом деле является инструментом для управления процессами.) Следующий эксперимент показывает разницу между тем, что Task Manager перечисляет как приложения и процессы.
ЭКСПЕРИМЕНТ: просмотр информации о процессах через диспетчер задач
Диспетчер задач Windows отображает список выполняемых в системе процессов. Его можно запустить тремя способами: 1) нажав клавиши Ctrl+Shift+Esc; 2) щелкнув панель задач правой кнопкой мыши и выбрав команду Task Manager (Диспетчер задач); 3) нажав клавиши Ctrl+Alt+Del. После запуска диспетчера задач откройте вкладку Processes (Процессы). Заметьте, что процессы идентифицируются по имени образа, экземплярами которого они являются. B отличие от некоторых объектов в Windows процессам нельзя присваивать глобальные имена. Для просмотра более подробных сведений выберите из меню View (Вид) команду Select Columns (Выбрать столбцы) и укажите, какая дополнительная информация вас интересует.
Если вкладка Processes окна диспетчера задач со всей очевидностью показывает список процессов, то содержимое вкладки Applications (Приложения) нуждается в пояснениях. Ha ней отображается список видимых окон верхнего уровня всех объектов «рабочий стол» интерактивного объекта WindowStation. (По умолчанию существуют два объекта «рабочий стол», но вы можете создать дополнительные рабочие столы через Windows-функцию CreateDesktop.) Колонка Status (Состояние) дает представление о том, находится ли поток — владелец окна в состоянии ожидания Windows-сообщения. «Running» («Выполняется») означает, что поток ожидает ввода в окно, a «Not Responding» («He отвечает») — что не ожидает (т. е. занят либо ждет завершения операции ввода-вывода или освобождения какого-либо синхронизирующего объекта).
Вкладка Applications позволяет идентифицировать процесс, которому принадлежит поток, владеющий каким-либо окном задачи. Для этого щелкните правой кнопкой мыши имя задачи и выберите команду Go To Process (Перейти к процессам).
Утилита Process Explorer показывает больше информации о процессах и потоках, чем любой другой доступный инструмент; вот почему она используется нами во многих экспериментах, которые вы увидите в этой книге. Ниже перечислены некоторые уникальные сведения, выводимые утилитой Process Explorer, и ее возможности:
• полное имя (вместе с путем) выполняемого образа;
• маркер защиты процесса (список групп и привилегий);
• выделение изменений в списке процессов и потоков;
• список сервисов внутри процессов — хостов сервисов с выводом отображаемого имени (display name) и описания;
• процессы, которые являются частью задания, и детальные сведения о заданиях;
• процессы, выполняющие. NET/WinFX-приложения, и сведения, специфичные для. NET (например, список доменов приложений и счетчики производительности, относящиеся к CLR);
• время запуска процессов и потоков;
• полный список файлов, проецируемых в память (не только DLL-модулей);
• возможность приостановки процесса;
• возможность принудительного завершения индивидуальных потоков;
• простота выявления процессов, использующих наибольшую долю процессорного времени за определенный период. (Оснастка Performance позволяет просматривать процент использования процессора для заданного набора процессов, но не показывает автоматически процессы, созданные после начала сеанса мониторинга.)
Практическая работа №9. Изучение системного реестра. Команды операционной системы. Диспетчер задач. Консоль восстановления. Восстановление установок компьютера. Встроенные приложения операционной системы.
1. Цель работы: изучить работу диспетчера задач, изучить размещения файлов в файловой системе FAT, исследование методов организации файловых систем
2. Оборудование, приборы, аппаратура, материалы: персональный компьютер с операционной системой семейства Windows.
3. Краткие теоретические сведения.
WindowsAPI (Application Programming Interface) — это системный интерфейс программирования в семействе операционных систем Microsoft Windows. АРI состоит из большого количества динамических библиотек и содержит множество функций, которые прикладные программы могут использовать для взаимодействия с операционной системой. Каждая операционная система реализует различную подмножество Windows API.
АРI выполняет роль связующего звена между приложениями и операционной системой. Windows API содержит несколько тысяч функций, сгруппированы в следующие основные категории: базовые сервисы, сервисы компонентов, сервисы пользовательского интерфейса, сервисы графики и мультимедиа, сервисы коммуникаций, сетевые и Web-сервисы.
Функции, службы и процедуры
АРI содержит совокупность функций, которые доступны программистам при разработке программ — их называют функциями Windows API. К ним относятся документированные подпрограммы, такие, как CreateProcess, CreateFile, GetMessage и другие.
Функции ядра — это подпрограммы внутри операционной системы Windows, которые можно вызвать только в режиме ядра.
К службам относятся процессы, которые запускаются диспетчером управления служб. Они, как правило, работают в фоновом режиме независимо от других приложений и предназначенны для обслуживания определенных потребностей пользователя или системы. Например, служба Task Scheduler-планировщик, который позволяет управлять запуском других программ.
Windows содержит большой набор функций (подпрограмм), объединенных в отдельные бинарные файлы, которые программы могут динамически загружать во время своего выполнения. Такие библиотеки функций называют динамическими библиотеками (DLL).
Различные программные механизмы, которые операционная система предоставляет программистам для выполнения определенных действий, называют также сервисами, поскольку они предназначены для обслуживания различных потребностей пользователя системы. К таким сервисам относятся и функции API. Отдельное подмножество составляют неуправляемые системные сервисы (или исполнительные системные сервисы). Они охватывают недокументированные низкоуровневые сервисы операционной системы, которые можно вызвать в пользовательском режиме.
Процессы, потоки и задания
Когда в среде Windows запускается прикладная программа, система создает специальный объект — процесс, — который предназначен для поддержания ее исполнения. Может показаться, что программа и процесс — понятие похожие, они фундаментально отличаются. Программа — это статический набор команд, а процесс — контейнер для ресурсов, которые используются при выполнении экземпляра программы.
Известная утилита для анализа активности процессов-системный Task Manager (диспетчер задач). В ядре Windows нет такого понятия, как задачи, поэтому Task Manager на самом деле является инструментом для управления процессами.
Диспетчер задач Windows отображает список активных процессов. Его можно запустить различными способами: 1) нажав комбинацию клавиш Ctrl + Shift + Esc, 2) щелкнув на панели задач правой кнопкой мыши и выбрав команду Task Manager (диспетчер задач), 3) нажав клавиши Ctrl + Alt + Del. Для просмотра списка процессов после запуска диспетчера задач следует открыть вкладку Processes (процессы). В этом окне процессы идентифицируются по имени образа, экземплярами которого они являются. В отличие от других объектов в Windows процессам нельзя присваивать глобальные имена. Для просмотра подробных сведений выберите из меню View (вид) команду Select Columns (выбрать столбцы) и выберите любую дополнительную информацию нужно отобразить.
Если вкладка Processes окна диспетчера задач показывает список процессов, то содержание вкладки Applications (приложения) отображает список видимых окон верхнего уровня всех объектов «рабочий стол» интерактивного объекта WindowStation. (По умолчанию существуют два объекта «рабочий стол», но можно создать дополнительные рабочие столы через Windows — функцию CreateDesktop). Столбик Status (состояние) дает представление о том, находится ли поток — владелец окна в состоянии ожидания сообщения. Состояние «Running» («выполняется») означает, что поток ожидает ввода, a Not Responding («не отвечает «) — не ожидает (т.е. занят, или ждет завершения операции ввода-вывода, или освобождение какого-то синхронизирующего объекта).
Вкладка Applications позволяет идентифицировать процесс, которому принадлежит поток, обладающий каким-то окном задачи. Для этого следует щелкнуть правой кнопкой мыши на названии задачи и выбрать команду Go To Process (перейти к процессам).
Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows использует два режима доступа к процессору (даже если он поддерживает более двух
режимов): пользовательский режим (user mode) и режим ядра (kernel mode). Код программ работает в пользовательском режиме, тогда как код операционной системы (например, системные сервисы и драйверы устройств) — в режиме ядра. В режиме ядра предоставляется доступ ко всей системной памяти и разрешается выполнять любые машинные команды процессора. Предоставляя операционной системе высший уровень привилегий, чем прикладным программам, процессор позволяет разработчикам операционных систем реализовать архитектуру, которая не дает возможности отдельным программам нарушать стабильность работы всей системы.
Прикладные программы могут переключаться с пользовательского режима в режим ядра, обращаясь к системному сервису. Переключение с пользовательского режима в режим ядра осуществляется специальной командой процессора. Операционная система перехватывает эту команду, обнаруживает запрос системного сервиса, проверяет аргументы, которые поток передал системной функции, и выполняет внутреннюю подпрограмму. Перед возвращением управления пользовательскому потоку процессор переключается обратно в пользовательский режим. Благодаря этому операционная система защищает себя и свои данные от возможной модификации приложениями.
Поэтому ситуация, когда пользовательский поток часть времени работает в пользовательском режиме, а часть — в режиме ядра, обычная. Поскольку подсистема, отвечающая за поддержку графики и окон, функционирует в режиме ядра, то программы, интенсивно работающих с графикой, большую часть времени действуют в режиме ядра, а не в пользовательском режиме. Самый простой способ проверить это — запустить программу типа Adobe Photoshop или Microsoft Pinball и, выполняя в ней какие-то действия, наблюдать за показателями работы в пользовательском режиме и в режиме ядра с помощью Task Manager (диспетчер задач). В его окне на вкладке Performance (производительность), включив в меню View (вид) опцию Kernel Times (вывод времени ядра), можно увидеть, сколько времени процессор проводит в режиме ядра. На графике процент загрузка процессора указано зеленым цветом, а процент работы в режиме ядра — красным.
4. Задания
Задание 1. Заполните пропуски
WindowsAPI (Application Programming Interface) — _________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
АРI состоит из большого количества динамических библиотек и содержит множество функций, которые прикладные программы могут использовать для взаимодействия с операционной системой. Каждая операционная система реализует различную подмножество Windows API.
АРI выполняет роль связующего звена между приложениями и операционной системой. Windows API содержит несколько тысяч функций, сгруппированы в следующие основные категории: ____________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
АРI содержит совокупность функций, которые доступны программистам при разработке программ — их называют _____________________________________________ К ним относятся __________________________________________________________________
__________________________________________________________________
Функции ядра — _____________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
К службам относятся процессы, которые запускаются диспетчером управления служб. Они, как правило, работают в фоновом режиме независимо от других приложений и предназначенны для обслуживания определенных потребностей пользователя или системы. Например, служба Task Scheduler-планировщик, который позволяет управлять запуском других программ.
Windows содержит большой набор функций (подпрограмм), объединенных в отдельные бинарные файлы, которые программы могут динамически загружать во время своего выполнения. Такие библиотеки функций называют _______________________________________________
_________________________________________________________________________________________________________________________________
Различные программные механизмы, которые операционная система предоставляет программистам для выполнения определенных действий, называют также сервисами, поскольку они предназначены для обслуживания различных потребностей пользователя системы. К таким сервисам относятся ___________________________________ Отдельное подмножество составляют неуправляемые системные сервисы (или исполнительные системные сервисы). Они охватывают недокументированные низкоуровневые сервисы операционной системы, которые можно вызвать в пользовательском режиме.
Когда в среде Windows запускается прикладная программа, система создает специальный объект — ___________________________, — который ________________________________________________________________________________________________. Может показаться, что программа и процесс — понятие похожие, они фундаментально отличаются. Программа — _____________________________________________________, а процесс — ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Известная утилита для анализа активности процессов-системный Task Manager (_________________________________________). В ядре Windows нет такого понятия, как задачи, поэтому Task Manager ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Диспетчер задач Windows отображает список активных процессов. Его можно запустить различными способами: ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________В этом окне процессы идентифицируются по имени образа, экземплярами которого они являются. В отличие от других объектов в Windows процессам нельзя присваивать глобальные имена.
Если вкладка Processes окна диспетчера задач показывает список процессов, то содержание вкладки Applications (приложения) отображает список видимых окон верхнего уровня всех объектов «рабочий стол» интерактивного объекта WindowStation. Столбик Status (состояние) ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________. Состояние «Running» («выполняется») _____________________________________________________________________________________________________________________________________________________________________________________________________________________________________, a Not Responding («не отвечает «) — _________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________.
Вкладка Applications позволяет ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Ход работы:
Для создания виртуальной машины VirtualBox на
компьютере необходимо провести следующие действия:
1)
Запустите
программу VirtualBox и нажмите кнопку «Создать»
2)
Запустится
мастер создания виртуальной машины, нажмите кнопку «Next»
3)
Впишите
имя операционной системы. Если ОС будет распознана, поля 7 «Операционная
система» и «Версия» будут заполнены автоматически. Если же данные поля
отображают неверную информацию, установите значения вручную
4)
Задайте
размер оперативной памяти. Посмотрите документацию к той ОС, которую вы хотите
установить, и выясните, какой объем памяти требуется для корректной работы
устанавливаемой системы. Настоятельно не рекомендуется выделять более половины
от имеющейся на компьютере памяти, то есть не надо «заходить» в красную зону.
Будут предлагаться параметры по умолчанию, и если есть возможность выделить
больше памяти, то сделайте это. Но помните: не стоит приближаться к красной
зоне.
5)
На
следующем шаге будет предложено создать новый, либо использовать 8 существующий
виртуальный жесткий диск. Убедитесь, что отмечен пункт «Создать новый жесткий
диск», и нажмите кнопку «Next»
6)
Запустится
мастер создания виртуального диска. Оставьте тип файла по умолчанию (VDI), и
нажмите «Next»
7)
Теперь
необходимо выбрать, какой виртуальный жесткий диск создавать: динамический или
фиксированный. Если выбирается динамический, то можно указать его размер любой
величины, так как размер самого файла будет увеличиваться по мере надобности
(При этом имейте в виду, что обратно размер диска не уменьшается!). При выборе
фиксированного диска, необходимо продумать (задать) его размер, так как сам
файл сразу займет указанное пространство. Фиксированный диск будет создаваться
9 дольше, однако при использовании он будет работать немного быстрее. В общем,
выбирайте сами, и жмите «Next»
Далее
необходимо указать размер создаваемого диска, и его местоположение. Узнайте,
сколько места на диске требуется для установки вашей виртуальной ОС, и
поставьте размер с небольшим запасом (10-12 ГБ) (иначе ОС может не
установиться). Если вы не стеснены в свободных гигабайтах, лучше задать размер
виртуального диска больше (примерно 20 ГБ). Для смены местоположения
создаваемого диска нажмите на кнопку в виде небольшой папки с зеленой галочкой.
Главное, не стоит размещать виртуальный жесткий диск на системном диске! Далее
жмите «Next».
9)
Проверьте
правильность предоставленной информации, и нажмите кнопку 10 «Финиш».
10)
Используя
программного продукта VirtualBox создайте собственную виртуальную машину на
базе Windows 7 (10). Базовые параметры для вашей виртуальной машины определите
самостоятельно.
11)
Продемонстрируйте
виртуальную машину преподавателю. Дайте краткую характеристику возможностей
операционной системы используемой в Вашей виртуальной машине. Удалите данную
виртуальную машину.
12)
Создайте
вторую виртуальную машину для последующей установки операционной системы Linux. Используйте настройки по умолчанию.
Дайте ей имя “VM_Linux_Группа_ФИО”, где “Группа” и “ФИО” –
данные студента напечатанные латинскими буквами.
Отчет по
работе должен содержать ход выполнения работы и ответы на контрольные вопросы.
Контрольные вопросы:
1)
Перечислите
ключевые возможности VirtualBox.
2)
Какими
преимуществами и недостатками обладают виртуальный или фиксированного жесткий
диск
Практическая
работа №2.
Управление памятью и вводом/выводом в ОС Windows
Цель работы:
Практическое знакомство с управлением вводом/выводом в
операционных системах Windows и кэширования операций ввода/вывода.
Теоретические сведения:
Необходимость обеспечить программам возможность
осуществлять обмен данными с внешними устройствами и при этом не включать в
каждую двоичную программу соответствующий двоичный код, осуществляющий
собственно управление устройствами ввода/вывода, привела разработчиков к
созданию системного программного обеспечения и, в частности, самих операционных
систем.
Программирование задач управления вводом/выводом
является наиболее сложным и трудоемким, требующим очень высокой квалификации.
Поэтому код, позволяющий осуществлять операции ввода/вывода, стали оформлять в
виде системных библиотечных процедур; потом его стали включать не в системы
программирования, а в операционную систему с тем, чтобы в каждую отдельно
взятую программу его не вставлять, а только позволить обращаться к такому коду.
Системы программирования стали генерировать обращения к этому системному коду
ввода/вывода и осуществлять только подготовку к собственно операциям
ввода/вывода, то есть автоматизировать преобразование данных к соответствующему
формату, понятному устройствам, избавляя прикладных программистов от этой
сложной и трудоемкой работы. Другими словами, системы программирования
вставляют в машинный код необходимые библиотечные подпрограммы ввода/вывода и
обращения к тем системным программным модулям, которые, собственно, и управляют
операциями обмена между оперативной памятью и внешними устройствами.
Таким образом, управление вводом/выводом — это одна из
основных функций любой ОС. Одним из средств правления вводом/выводом, а также
инструментом управления памятью является диспетчер задач Windows, он отображает
приложения, процессы и службы, которые в текущий момент запущены на компьютере.
С его помощью можно контролировать производительность компьютера или завершать
работу приложений, которые не отвечают.
При наличии подключения к сети можно также просматривать
состояние сети и параметры ее работы. Если к компьютеру подключились несколько
пользователей, можно увидеть их имена, какие задачи они выполняют, а также
отправить им сообщение.
Также управлять процессами можно и «вручную» при
помощи командной строки. Команды Windows для работы с процессами:
• at — запуск программ в заданное время
Schtasks — настраивает выполнение команд по
расписанию
• Start — запускает определенную программу или команду
в отдельном окне.
• Taskkill — завершает процесс
• Tasklist — выводит информацию о работающих процессах
Для получения более подробной информации, можно
использовать центр справки и поддержки или команду help (например: help at)
• command.com — запуск командной оболочки MS-DOS
• cmd.exe — запуск командной оболочки Windows
Ход работы:
Задание 1.
Работа с Диспетчером задач Windows.
1. Запустите ранее установленную ОС Windows .
2. Запуск диспетчера задач можно осуществить двумя
способами:
1) Нажатием сочетания клавиш Ctrl+Alt+Del. При
использовании данной команды не стоит пренебрегать последовательностью клавиш.
Появится меню, в котором курсором следует выбрать пункт «Диспетчер задач».
2) Переведите курсор на область с показаниями
системной даты и времени и нажмите правый клик, будет выведено меню, в котором
следует выбрать «Диспетчер задач».
3. Будет выведено соответствующее окно (в зависимости
от версии ОС)
4. В диспетчере задач есть вкладки (какие?)
Охарактеризовать все вкладки.
Задание 2
Сколько процессов
активно на момент выполнения практической работы, на сколько загружен
центральный процессор, какой объем памяти выделен на текущие процессы?
Задание 3.
Просмотреть справочную систему Диспетчера задач. Найти информацию о запуске
новых программ, завершении текущих программ с использованием Диспетчера и выписать
в отчет.
Задание 4. Скачайте утилиту Process Explorer.
Утилита
показывает не просто список активных процессов, но и файлы динамических
библиотек, связанные с процессом, приоритет процесса, нагрузку на процессор
отдельно для каждой программы и т.д.
Помимо этого, с
помощью программы можно изменить приоритет процесса, просмотреть информацию о
DLL-файле и принудительно завершить безнадежно зависшую программу.
Утилита содержит
2 окна. В верхнем отображается список активных процессов (в т.ч. идентификатор
процесса — PID, процент загрузки процессора — CPU, описание — Description,
наименование аккаунта владельца — Owner, приоритет процесса — Priority,
Handles, Windows Title). Информация, показываемая в нижнем окне, зависит от
режима Process Explorer — если он находится в режиме handle mode, Вы можете
видеть handles (файлы для Windows 9x/Ме), которые открыл процесс, выбранный в
верхнем окне; если это режим DLL (DLL mode) — Вы можете видеть DLL, которые
загрузил данный процесс.
Переключение
между режимами осуществляется «горячими клавишами» или с помощью
соответствующих пунктов меню:
Вы можете
сортировать процессы по любому критерию, щелкая мышкой на соответствующей
колонке; либо представить процессы в виде дерева процессов (process tree) путем
выбора пункта меню View — Show Process Tree.
Щелкнув правой
кнопкой мыши по выбранному процессу, с помощью появившегося контекстного меню
Вы можете изменить базовый приоритет процесса (Set Priority), принудительно
завершить процесс (Kill Process) и просмотреть дополнительные параметры
процесса (Properties):
С помощью пункта
меню Options — Highlight Services можно выделить процессы, которые обслуживают
хост. Для выделения процессов текущего пользователя выберите пункт меню Options
— Highlight Own Processes.
Запустив утилиту,
запустите несколько приложений (например, Far, Word, Paint, Notepad и т.д.),
обратите внимание на изменения в окне процессов. Прокомментируйте их. Приведите
копию экрана и опишите процесс, порожденный запущенным приложением.
Задание 5. На вкладке Процессы
Диспетчера задач измените количество столбцов, запишите выполненные для этого
операции. Какие из процессов запущены Пользователем?
Заданием 6. Сколько процессов активно на
момент выполнения практической работы, на сколько загружен центральный
процессор, какой объем памяти выделен на текущие процессы?
Задание 7. Просмотреть справочную
систему Диспетчера задач. Найти информацию о запуске новых программ,
завершении текущих программ с использованием Диспетчера.
Задание 8. Выполните следующие действия
с помощью утилиты Process Explorer. Отсортируйте процессы по заданному
критерию. Опишите один из системных процессов. Запустите указанное приложение.
Опишите возникший процесс по заданным характеристикам. Принудительно завершите
указанный процесс. Выполняемые действия иллюстрируйте копиями экранов.
Задание 9. Заполните пропуски
WindowsAPI (Application Programming Interface) — _________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
АРI состоит из
большого количества динамических библиотек и содержит множество функций,
которые прикладные программы могут использовать для взаимодействия с операционной
системой. Каждая операционная система реализует различную подмножество Windows
API.
АРI выполняет
роль связующего звена между приложениями и операционной системой. Windows API
содержит несколько тысяч функций, сгруппированы в следующие основные категории:
____________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
АРI содержит
совокупность функций, которые доступны программистам при разработке программ —
их называют _____________________________________________ К ним относятся
__________________________________________________________________
__________________________________________________________________
Функции ядра —
_____________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
К службам
относятся процессы, которые запускаются диспетчером управления служб. Они, как
правило, работают в фоновом режиме независимо от других приложений и
предназначенны для обслуживания определенных потребностей пользователя или
системы. Например, служба Task Scheduler-планировщик, который позволяет
управлять запуском других программ.
Windows содержит
большой набор функций (подпрограмм), объединенных в отдельные бинарные файлы,
которые программы могут динамически загружать во время своего выполнения. Такие
библиотеки функций называют _______________________________________________
_________________________________________________________________________________________________________________________________
Различные
программные механизмы, которые операционная система предоставляет программистам
для выполнения определенных действий, называют также сервисами, поскольку они
предназначены для обслуживания различных потребностей пользователя системы. К
таким сервисам относятся ___________________________________ Отдельное
подмножество составляют неуправляемые системные сервисы (или исполнительные
системные сервисы). Они охватывают недокументированные низкоуровневые сервисы
операционной системы, которые можно вызвать в пользовательском режиме.
Когда в среде
Windows запускается прикладная программа, система создает специальный объект —
___________________________, — который
________________________________________________________________________________________________.
Может показаться, что программа и процесс — понятие похожие, они фундаментально
отличаются. Программа — _____________________________________________________,
а процесс —
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Известная утилита
для анализа активности процессов-системный Task Manager
(_________________________________________). В ядре Windows нет такого понятия,
как задачи, поэтому Task Manager
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Диспетчер задач
Windows отображает список активных процессов. Его можно запустить различными
способами:
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
В этом окне
процессы идентифицируются по имени образа, экземплярами которого они являются.
В отличие от других объектов в Windows процессам нельзя присваивать глобальные
имена.
Если вкладка
Processes окна диспетчера задач показывает список процессов, то содержание
вкладки Applications (приложения) отображает список видимых окон верхнего
уровня всех объектов «рабочий стол» интерактивного объекта
WindowStation. Столбик Status (состояние)
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________.
Состояние
«Running» («выполняется») ______________________________________________________________________________________________________________________________________________________________________________________________________________________________,
a Not Responding («не отвечает «)
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Вкладка Applications позволяет_______________________________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Для
предотвращения доступа приложений к критически важным данным операционной
системы и устранения риска их модификации Windows использует два режима доступа
к процессору (даже если он поддерживает более двух режимов):
_______________________________________________________. Код программ работает
в ___________________________________________, тогда как код операционной
системы (например, системные сервисы и драйверы устройств) — в
_____________________________. В режиме ядра предоставляется доступ ко всей
системной памяти и разрешается выполнять любые машинные команды процессора.
Прикладные
программы
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________.
Переключение с пользовательского режима в режим ядра осуществляется
_______________
_______________________________________________________________.
Операционная система ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________.
Перед возвращением управления пользовательскому потоку процессор переключается
обратно в пользовательский режим. Благодаря этому операционная система
__________________________________________________________________________________________________________________________________________________________________________________.
Поэтому ситуация,
когда пользовательский поток часть времени работает в пользовательском режиме,
а часть — в режиме ядра, обычная. Поскольку подсистема, отвечающая за поддержку
графики и окон, функционирует в режиме ядра, то программы, интенсивно
работающих с графикой, большую часть времени действуют в режиме ядра, а не в
пользовательском режиме. Самый простой способ проверить это —
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Задание 10. Просмотреть время работы системы в
пользовательском режиме и режиме ядра.
Переключитесь на
закладку Быстродействие и в меню Вид выберите пункт Вывод времени ядра. Быстро
прокручиваем страницы любого текстового документа. На индикаторе. Из рисунка
четко видны изменения работы процессора при прокрутке страниц.
Задание 11. Просмотреть сведения о поддержке
многопроцессорных систем.
Согласно
следующему заданию откройте диспетчер устройств (Пуск – Панель управления –
Диспетчер устройств). В списке устройств раскройте узел Компьютер. В окне
свойств (Правой кнопкой свойства) перейдите на закладку Драйвер и с помощью
кнопки Сведения просмотрите сведения о файлах драйверов (см. Рисунок 5).
Задание 12.
Изучение отношения процессов
родитель-потомок
1. Запустите
командную строку (Пуск – Все программы – Стандартные – Командная строка)
2. Потом наберите
start cmd для запуска второго окна командной строки.
Сделайте
скриншот вашей работы и сохраните.
3. Далее откройте
диспетчер задач.
4. Переключитесь
на второе окно командной строки.
5. Введите mspaint для запуска Microsoft Paint.
Сделайте
скриншот вашей работы и сохраните его
6. Потом выберите
второе окно командной строки.
7. Введите
команду exit, тем самым завершив работу второго окна.
Сделайте
скриншот вашей работы и сохраните его.
8. Потом
переключитесь в диспетчер задач. Откройте его вкладку Приложения. Щелкнуть
правой кнопкой мыши задачу Командная строка (cmd.exe) и выбрать Перейти к
процессу.
Сделайте
скриншот вашей работы.
11. Щелкните процесс Cmd.exe,
выделенный цветом.
12. Щелкнув
правой кнопкой мыши, выберите команду Завершить дерево процессов.
13. В окне
Предупреждение диспетчера задач щелкните кнопку Завершить дерево процессов.
Первое окно
командной строки исчезнет, но окно Paint по прежнему работает.
Сделайте
скриншот вашей работы и сохраните его.
Задание 13. Увеличение быстродействия Windows
Перейдите на
вкладку Процессы, щелкните прав на строке Explorer.exe и в контекстном меню
выберите команду Завершить Процесс. Опишите в отчете, что вы видите на экране и
почему.
2. Закройте окно
Диспетчера Задач завершив процесс taskmgr.exe. Внесите в отчет сведения:
работает ли компьютер, загружена ли ОС, реагирует ли система на манипуляции
мышью, на нажатие клавиш? Почему?
Задание 14
Командная строка Windows.
1. Для запуска командной строки в режиме Windows
следует нажать:
(Пуск) > «Все программы» > «Стандартные» >
«Командная строка»
2. Поработайте выполнением основных команд работы с
процессами: запуская, отслеживая и завершая процессы.
Основные команды
Schtasks — выводит выполнение команд по расписанию
Start — запускает определенную программу или команду в
отдельном окне.
Taskkill — завершает процесс
Tasklist — выводит информацию о работающих процессах
Командная строка Windows
3. В появившемся окне наберите:
cd/ — переход в корневой каталог;
cd windows – переход в каталог Windows.
dir — просмотр содержимого каталога.
В данном каталоге мы можем работать с такими программами
как «WordPad» и «Блокнот».
4. Запустим программу «Блокнот»:
C:\Windows > start notepad.exe
Отследим выполнение процесса:
C:\Windows > tasklist
Затем завершите выполнение процесса:
C:\Windows > taskkill /IM notepad.exe
5. Самостоятельно, интуитивно, найдите команду запуска
программы WordPad.
Необходимый файл запуска найдите в папке Windows.
6. Выполнение задания включить в отчет по выполнению
лабораторной работы.
Задание 15 Самостоятельное задание.
1. Отследите выполнение процесса explorer.exe при
помощи диспетчера задач и командной строки.
2. Продемонстрируйте преподавателю завершение и
повторный запуск процесса explorer.exe из:
• Диспетчера задач;
• Командной строки.
Копии
экрана с выполненным заданием и описание выполненных действий привести в отчете
Отчет по
работе должен содержать ход выполнения работы и ответы на контрольные вопросы.
Контрольные
вопросы
1.
Что такое WindowsAPI
2.
Что такое процессы
3.
Что такое потоки
4.
Что такое задачи
5.
Что такое диспетчер зада:
6.
Дайте понятие процессу в
операционной системе.
7.
Дайте понятие службе в
операционной системе.
8.
Причислите основные
команда работы с процессами при помощи командной строки.
Практическая
работа №3.Исследование файловых систем и управления файлами в ОС Windows
Цель работы:
Изучить общие понятия о файловых системах и изучить
методы управления файлами.
Теоретические сведения:
Совокупность каталогов и системных структур данных,
отслеживающих размещение файлов на диске и свободное дисковое пространство,
называется файловой системой.
Основной структурной единицей любой файловой системы
является файл и каталог.
Файл – минимальная структурированная именованная
последовательность данных.
Каталог (папка) является своеобразной объединяющей
структурой для расположенных на диске файлов. Каталог может содержать в себе
файлы и другие (вложенные) каталоги.
Каталоги и файлы образуют на диске древовидную
иерархическую структуру – дерево каталогов. Единственный каталог не входящий ни
в одну из директорий называется корневым каталогом.
Магнитные диски являются устройствами произвольного
доступа. В них каждая запись данных имеет свой уникальный адрес, обеспечивающий
непосредственный доступ к ней, минуя все остальные записи. Для хранения данных
служит диск (пакет из нескольких дисков), покрытый ферромагнитным слоем. Запись
на магнитный диск и считывание данных с него осуществляется головками
чтения/записи.
Структура поверхности магнитного диска
Поверхность диска разбита на дорожки представляющие
собой окружности. Дорожки разделены на секторы. Размер сектора обычно
составляет 512 байт. В большинстве файловых систем пространство на диске
выделяется кластерами, которые состоят из нескольких секторов. Кластер –
минимальный размер места на диске, которое может быть выделено для хранения одного
файла. Перед тем, как диск может быть использован для записи данных, он должен
быть размечен — на его дорожки должны быть записаны заголовки секторов с
правильными номерами дорожки и сектора, а также, если это необходимо, маркеры.
Как правило, при этом же происходит тестирование поверхности диска для поиска
дефектов магнитного слоя. Не следует путать эту операцию — физическое
форматирование диска — с логическим форматированием, заключающемся в создании
файловых систем. Современные жесткие диски обычно требуют физической разметки
при их изготовлении.
Один физический жесткий диск может быть разделен на
несколько разделов – логических дисков (томов). Каждый логический диск
представляет собой как бы отдельное устройство. Следовательно, на нем может
быть своя файловая система и свой корневой каталог.
В операционных системах MS-DOS и Windows каждое
дисковое устройство обозначается латинской буквой. Для имени логического диска
используются буквы от A до Z. Буквы A и B обозначают дисководы гибких магнитных
дисков (FDD). Начиная с буквы C, именуются разделы жесткого диска (HDD),
дисководы оптических дисков и виртуальные диски. Для обращения к файлу
используется следующая спецификация:
устройство:\путь\имя файла.расширение
Здесь путь – список каталогов, входящих друг в друга,
в последнем из которых и содержится указанный файл. Если путь не указан,
следует что, файл находится в корневом каталоге данного диска. В MS-DOS имя
файла состоит из 8 символов, точки и 3 символов расширения имени файла. Точка
отделяет собственно имя от расширения. Имя файла может состоять из латинских
букв, цифр 0 – 9, некоторых других символов, и не можетсодержать пробел. В
Windows поддерживаются длинные имена файлов (от 1 до 255 символов), имя может
содержать пробелы. При использовании файловых систем HPFS и NTFS имя файла
может содержать несколько точек.
В именах файлов нельзя использовать символы “ * ” и “
? ”, так как они используются в масках имен при поиске файлов.
Расширение имени необходимо для определения типа файла
и связывания файла с определенной программой, с помощью которой он может быть
открыт. Хотя имя файла может и не иметь расширения.
Различают следующие типы файлов:
• Текстовые файлы. Текстовые файлы могут содержать
простой или размеченный текст, в кодировке ASCII, ANSI или UNICODE. Текст без
разметки содержит только отображаемые символы и простейшие управляющие символы
(возврат каретки и табуляции). Размеченный текст содержит бинарную и символьную
разметку (межстрочный интервал, новая страница и т.п.), может содержать таблицы
и рисунки;
• Графические файлы – файлы, содержащие точечные или
векторные изображения;
• Файлы мультимедиа – различают файлы содержащие
оцифрованный звук (файлы аудио) и фалы видео (содержат изображение и звук);
• Исполняемые файлы – программы готовые к исполнению
(файлы с расширением exe и com).
• Архивные файлы – файлы архивов rar, tar, zip, cab и
т.п.
• Файлы библиотек – файлы с расширением DLL, OCX и
LIB;
• Файлы данных – бинарные или текстовые файлы с
различным расширением, используемые программами во время работы.
Информация о логической организации физического
жесткого диска (числе логических дисков, их размере) расположена в главной
загрузочной записи (MBR). MBR расположена в самом первом секторе жесткого диска
и не входит в структуру файловой системы.
В операционных системах семейства UNIX разделение на
логические диски отсутствует, а используется понятие корневого каталога
файловой системы. Спецификация обращения к файлу выглядит следующим образом:
/путь/имя файла.тип
Современные операционные системы имеют возможность
работать с несколькими файловыми системами одновременно. Прежде чем
операционная система сможет использовать файловую систему, она должна выполнить
над этой системой операцию, называемую монтированием.
В общем случае операция монтирования включает
следующие шаги:
• Проверку типа монтируемой файловой системы; проверку
целостности файловой системы;
• Считывание системных структур данных и инициализацию
соответствующего модуля файлового менеджера (драйвера файловой системы). В
некоторых случаях — модификацию файловой системы с тем, чтобы указать, что она
уже смонтирована;
• Включение новой файловой системы в общее
пространство имен. Многие пользователи MS DOS никогда не сталкивались с
понятием монтирования. Дело в том, что эта система выполняет упрощенную
процедуру монтирования при каждом обращении к файлу.
Ход работы:
В данной работе продолжаем изучение работы с командной
строкой Windows.
Задание 1. Проверка работы команд.
Потренироваться в выполнении нижеследующих команд.
Работу проводить на установленной ранее ОС Windows.
1. Команда смены текущего диска
A: — переход на диск А
C: — переход на диск С
2. Просмотр каталога
dir (путь)(имя_файла) (/p) (/w)
Если не введены путь и имя файла, то на экран выведется
информация о содержимом каталога (имена файлов, их размер и дата последнего
изменения).
Параметр /p задает вывод информации в поэкранном
режиме, с задержкой до тех пор, пока пользователь не щелкнет по какой-либо
клавише. Это удобно для больших каталогов.
Параметр /w задает вывод информации только об именах
файлов в каталоге по пять имен в строке.
3. Переход в другой каталог каталога
cd <имя каталога>
4. Создание каталога
md <имя каталога>
5. Удаление каталога
rd <имя каталога>
6. Создание текстовых файлов
copy con <имя_файла___________>
После ввода этой команды нужно будет поочередно
вводить строки файла. В конце каждой строки надо щелкать клавишей Enter. А
после ввода последней — одновременно нажать Ctrl и Z, а затем Enter. Или
клавишу F6, затем Enter.
7. Удаление файлов
del (путь)имя_файла
Путь прописывается только тогда, когда удаляемый файл
находится в другом каталоге.
8. Переименование файлов
ren (путь)имя_файла1 имя_файла2
Имя_файла1 — имя файла, который вы хотите
переименовать.
Имя_файла2 — новое имя файла, которое будет ему
присвоено после выполнения команды.
Путь прописывается только тогда, когда удаляемый файл
находится в другом каталоге.
9. Копирование файлов
copy имя_файла (путь)имя_файла1
Путь прописывается, если файл копируется в другой
каталог.
Задание 2. Индивидуальная работа.
1. Получить у преподавателя индивидуальное задание.
2. Выполнить, результат внести в отчет о выполнении
лабораторной работы.
3. Представить отчет преподавателю.
Контрольные вопросы:
1. Что такое «файл»?
2. Перечислите основные типы файлов.
3. Перечислите основные расширения файлов.
4. Расскажите о процессе монтирования файловой
системы.
Практическая
работа № 4. Работа с msconfig.
Цель работы:
Практическое знакомство с Msconfig.
Теоретические сведения:
MSConfig (Настройка системы) — утилита для управления автозапускаемыми программами и загрузкой Windows.
Начиная с Windows
98, Microsoft поставляет
утилиту «MSConfig.exe», предоставляющую интерфейс для управления файлами,
запускающимися при загрузке Windows. Она находится в каталоге установки
Windows. Её можно запустить из диалогового окна «Выполнить» или через командную
строку. В ней нет возможности добавлять новый элемент с именем приложения или
документа для автозапуска, но можно отключать, не удаляя, любой пункт из
находящихся в списках.
Данная утилита отсутствовала в Windows
2000, но была возвращена в Windows
XP.
Способы запуска msconfig
Первый способ (Подходит для Windows Vista, 7, 8, 10) — Самый
быстрый
Если у вас Windows Vista, 7, 8, 8.1 или 10, то просто
нажмите на меню “Пуск” и внизу в окошке введите msconfig.
Нажмите Enter.
Второй способ (Windows XP, Vista, 7, 8, 10)
Заходим в меню Пуск — Все программы — Стандартные.
Выбираем «Командная строка» (Command Prompt).
Появится черное окошко командной строки, в нем вписываем msconfig и
жмем Enter.
Третий способ (Windows XP, Vista, 7, 8, 10)
В том же меню Пуск нажимаем «Выполнить» (Run).
Появится окошко, в котором будет предложено ввести нужную команду. Здесь
вписываем msconfig, и как обычно
нажимаем Enter.
Четвертый способ (Windows XP, Vista, 7, 8, 10)
Заходим в проводнике по адресу C:\Windows\System32. В этой
огромной папке куча всяких файлов. Пролистываем в середину списка и находим
msconfig.exe.
Разницы, каким из предложенных способов пользоваться нет. Самым
оптимальным является первый, как самый быстрый.
Интерфейс программы msconfig состоит из небольшого окошка, и пяти
вкладок — Общие, Загрузка, Службы, Автозагрузка, Сервис.
Рассмотрим подробно каждую из вкладок, и о практическом применении
всех этих настроек.
Общие
§
Обычный запуск он и есть обычный запуск. Загружаются все драйвера,
службы системы, а также программы из меню “Автозагрузка”.
§
Диагностический запуск – это режим, при котором загружаются только
основные драйвера и системные службы.
§
В случае выборочного запуска вы можете более тонко
сконфигурировать загрузку системы. “Загружать системные службы” – загружается
стандартный набор системных служб. Честно говоря не пробовал выключать эту
галочку. “Загружать элементы автозагрузки” – загружаются все программы, которые
сконфигурированы на вкладке “Автозагрузка”. “Использовать оригинальную
конфигурацию загрузки” – этим параметром по умолчанию невозможно управлять.
Активируется он в случае, если вы изменили что-то во вкладке “Загрузка” (тогда
можно будет вернуться к дефолтным настройкам).
Загрузка
Вверху окна написано название ОС или список предустановленных
систем. Если систем установлено несколько, то нажимаем на название системы и
нажимаем кнопку «Использовать по умолчанию». В моем случае эта опция
недоступна, т.к. система установлена одна. Таймаут – параметр, в котором
указывается, как долго при загрузке будет высвечиваться список установленных
ОС. Если вы включите «без GUI», то при загрузке ОС логотипа системы
не будет (высветится только черное окно).
Нажимаем “Дополнительные параметры” и открывается еще одно окно.
Активировав галочку напротив «Число процессоров», можно
указать число процессоров (фактически, процессорных ядер), которое будет видеть
система. Если на вашем компьютере двухъядерный процессор, то максимальное
возможное число будет 2, которое стоит по умолчанию. Таким же способом можно
ограничить количество доступной оперативной памяти. При этом в диспетчере задач
процессорных ядер и оперативной памяти будет видно столько, сколько вы укажите
здесь.
Параметры «Блокировка PCI» и «Отладка» лучше
не трогать. Они предназначены для разработчиков драйверов и устройств, и для
обычного пользователя могут привести только к нестабильной работе системы.
Службы
Здесь можно увидеть список всех служб, загружаемых в обычном
режиме. Снимайте галочки для отключения служб или наоборот ставьте для
включения, если, конечно, знаете, что включаете/отключаете. Список служб
огромный, из которых львиную долю занимают предустановленные службы Windows.
Поэтому в левом нижнем углу можно включить галочку «Не отображать
службы Майкрософт«. При этом список сократится до минимума и будет
выглядеть так:
Как можно заметить, тут остались службы сторонних программ. Теперь
анализируем, что нам нужно, а что нет — и при желании отключаем.
Автозагрузка
Обычно люди устанавливают приложения, потом перестают ими
пользоваться, а удалять забывают или не хотят (а вдруг пригодится). Особенно
это касается программ, которые используются по следующему сценарию: поставил
программу – выполнил с ее помощью какую-то задачу – забыл про программу. А в
итоге при каждой загрузке системы эти приложения так же загружаются, что
существенно увеличивает время загрузки ОС и снижает отзывчивость системы на
слабых компьютерах.
Сервис
Здесь расположен весь список программ, выполняющих схожие с msconfig
функции. Т.е. администрирование, настройку, диагностику системы и т.п. Многое
вам может быть знакомо. Поэкспериментируйте, выделяя название приложения и
нажимая “Запуск” в правом нижнем углу.
Если после внесения каких-либо изменений нажимать кнопку “OK”, то
появится такое окошко:
Как должно быть из него понятно, то все внесенные в загрузку
системы изменения вступят в силу только после перезагрузки.
Итак, мы рассмотрели основные функции во всех вкладках. А теперь
подробнее о том, в каких случаях всю эту информацию можно применять.
Основные сценарии использования msconfig
Отладка и поиск проблем
Представим ситуацию, когда у вас в системе начали появляться
различные глюки, тормоза и т. д. То система вдруг ни с того, ни с сего
зависнет, то вообще синий экран вывалится. Если вы грешите на железо, то
проверяйте его, но часто проблема может оказаться в самой Windows. Тогда просто
загрузитесь в диагностическом режиме (см. пункт вкладки “Общие”) с загрузкой
основных драйверов и системных служб. Попробуйте поработать в таком режиме и
попытаться создать ситуацию, при которой обычно возникают проблемы. Если
проблемы все еще есть, то скорее всего повреждены системные файлы или драйвера.
Если же все нормально, то пробуем выборочный запуск с загрузкой только системных
служб. Причем все майкрософтовские службы оставляйте включенными (вкладка
“Службы”), а остальные все отключите и включайте по одной. Включили службу –
перезагрузитесь и посмотрите на работу системы. И так, пока не найдете
виновника. Если и в службах все чисто, то включите автозагрузку. Приложения в
автозагрузку также добавляйте по одному. Но вообще-то все, что находится в
автозагрузке, желательно знать что называется “в лицо”. Иначе смысл загружать
то, чем не пользуетесь?
Тестирование
Допустим, вам нужно протестировать, как будет вести себя
приложение при двух активных ядрах. А процессор у вас четырех-ядерный. Вот во
вкладке “Загрузка – Дополнительные параметры загрузки” вы и можете ограничить
ресурсы. Или, например, у вас установлено 6 ГБ оперативной памяти, а вам нужно
узнать, как будет вести себя Pinnacle 14 при 2 ГБ.
Профилактика
Вкладки Служб и Автозагрузки вообще лучше просматривать почаще,
особенно, если вы устанавливаете много софта. Многие приложения имеют
предрасположенность к прописыванию в автозагрузке без вашего ведома. Вообще на
мой взгляд неплохо все операции по оптимизации и очистке системы делать в одно
время и регулярно. Это отложит на очень долго тот час, когда придется
переустанавливать систему.
Отчет по
работе должен содержать ход выполнения работы и ответы на контрольные вопросы.
Контрольные
вопросы
1.
Способы
запуска Msconfig
2.
Назначение
3.
Основные
сценарии использования msconfig
4.
Проделанные
вами действия.
Практическая
работа №5 «Установка операционной системы Linux»
Цель работы: Изучение установки ОС Linux (на
примере Ubuntu). Установка программ.
Теоретические сведения:
Перед
пользователем, желающим установить Linux, встает вопрос выбора дистрибутива. Критерии выбора – задачи, которые
предполагается решать с помощью Linux (использование на сервере или на
настольной машине), уровень подготовки пользователя, технологии и предстоящие
контакты с тем сообществом, которое занимается разработкой дистрибутива. Со сравнительным обзором дистрибутивов
можно познакомиться в Виртуальной энциклопедии «Linux – по-русски» (http://www.linuxcenter.ru/enc/).
В рамках данной и
последующих практических работ вам предлагается познакомиться с дистрибутивом Linux – Ubuntu (от зулу ubuntu –
человечность) – операционная система, основанная на Debian GNU/Linux. Основным
разработчиком и спонсором является компания Canonical. В настоящее время проект
активно развивается и поддерживается свободным сообществом).
Ubuntu —
бесплатная операционная система. Ubuntu является свободным программным
обеспечением и доступен бесплатно. В отличие от многих других коммерческих
дистрибутивов из мира Linux (Mandriva, Xandros, Red Hat, SuSE) команда
разработчиков Ubuntu действительно верит в то, что свободное ПО должно быть
свободно от затрат на лицензирование. Получив Ubuntu можно отблагодарить
разработчиков участием в тестировании, разработке или помощью новичкам.
Логотип Ubuntu
изображает людей взявшихся за руки, это значит что для существования системы
важно сообщество людей помогающих друг другу.
По утверждениям
Canonical – Ubuntu самый популярный дистрибутив Linux для десктопов. Он
является 2-м в списке самых популярных дистрибутивов Linux для веб-серверов.
Серверы такого интернет гиганта как Wikipedia работают именно под Ubuntu, а в
Google работники используют ОС под названием Goobuntu в качестве рабочей –
модифицированный дистрибутив.
Ubuntu имеет
чёткий график релизов — новый релиз каждые 6 месяцев (отображается в номере
релиза, например 14.04 – релиз, выпущенный в апреле 2014 г., 14.10 – в ноябре
2014 г. и т.д. Релизы с приставкой LTS (Long Term Support) обозначают
длительную поддержку в течение 5-ти лет для серверной и десктопной версий и
выпускаются раз в 2 года). Каждый релиз ориентирован на простоту использования
и удобство работы. Одна из основных идей Ubuntu — всё должно «просто работать»
™. Каждый релиз Ubuntu поддерживается обновлениями безопасности (security
updates) в течение 9 месяцев.
Каждый релиз имеет
кодовое имя. Кодовые имена версий состоят из двух английских слов:
прилагательного и названия животного, начинающихся на одну и ту же букву.
Начиная с 6.06 LTS Dapper Drake, первые буквы слов кодового имени меняются в
соответствии с латинским алфавитом.
Версия |
Дата выхода |
Кодовое имя |
Кодовое имя |
Окончание |
Версия ядра |
4.10 |
20 октября 2004 |
Warty Warthog |
Бдительный |
30 апреля 2006 |
2.6.9 |
5.04 |
8 апреля 2005 |
Hoary Hedgehog |
Седой Ёжик |
31 октября 2006 |
2.6.11 |
5.10 |
13 октября 2005 |
Breezy Badger |
Бодрый Барсук |
13 апреля 2007 |
2.6.13 |
6.06 LTS |
1 июня 2006 |
Dapper Drake |
Сметливый Селезень |
14 июля 2009 |
2.6.15 |
6.10 |
26 октября 2006 |
Edgy Eft |
Торопливый Тритон |
25 апреля 2008 |
2.6.18 |
7.04 |
19 апреля 2007 |
Feisty Fawn |
Отважный Оленёнок |
19 октября 2008 |
2.6.19 |
7.10 |
18 октября 2007 |
Gutsy Gibbon |
Геройский Гиббон |
18 апреля 2009 |
2.6.20 |
8.04 LTS |
24 апреля 2008 |
Hardy Heron |
Цепкая Цапля |
12 мая 2011 |
2.6.24 |
8.10 |
30 октября 2008 |
Intrepid Ibex |
Калёный Козерог |
30 апреля 2010 |
2.6.27 |
9.04 |
23 апреля 2009 |
Jaunty |
Задорный Зайцелоп |
23 октября 2010 |
2.6.28 |
9.10 |
29 октября 2009 |
Karmic Koala |
Кармическая Коала |
29 апреля 2011 |
2.6.31 |
10.04 LTS |
29 апреля 2010 17 августа 2010 (10.04.1) |
Lucid Lynx |
Рассветная Рысь |
9 мая 2013 (для |
2.6.32 |
10.10 |
10 октября 2010 |
Maverick |
Свободомыслящий |
апрель 2012 |
2.6.35 |
11.04 |
28 апреля 2011 |
Natty Narwhal |
Нарядный Нарвал |
октябрь 2012 |
2.6.38 |
11.10 |
13 октября 2011 |
Oneiric Ocelot |
Мечтательный Оцелот |
9 мая 2013 |
3.0.4 |
12.04 LTS |
26 апреля 2012 |
Precise |
Педантичный Панголин |
апрель 2017 |
|
12.10 |
18 октября 2012 |
Quantal Quetzal |
Квантовый Кетцаль/Квезаль |
16 мая 2014 |
3.5 |
13.04 |
25 апреля 2013 |
Raring Ringtail |
Нетерпеливый Какомицли |
январь 2014 |
3.8 |
13.10 |
17 октября 2013 |
Saucy |
Дерзкая Саламандра |
июль 2014 |
3.11 |
14.04 LTS |
17 апреля 2014 (14.04) |
Trusty Tahr |
Надежный Тар |
апрель 2019 |
3.13, 3.16 |
14.10 |
23 октября 2014 |
Utopic Unicorn |
Утопический Единорог |
июль 2015 |
3.16 |
15.04 |
апрель 2015 |
Vivid Vervet |
Яркая Верветка |
январь 2016 |
нет данных |
Ubuntu
поставляется с самой свежей подборкой серверного и десктопного программного
обеспечения, которая позволяет создать удобное рабочее окружение c помощью
всего лишь одного дистрибутива. Как только вы завершите установку, ваша система
сразу же готова к работе. Вам не нужно устанавливать необходимые каждому
компьютеру программы (архиваторы, плееры, браузеры, др.). У Вас есть полный
комплект бизнес-приложений, интернет-приложений, приложений для работы с
графикой и игр, а так же программы для настройки внешнего вида. Один диск
предоставит вам хорошее рабочее окружение «из коробки» со множеством приложений
для домашних и бизнес пользователей, установленных по умолчанию. Если вам
требуется программа не установленная вместе с системой, то практически все находится
в одном месте – в скомпилированных deb-пакетах установки, которые находятся в
интернете в репозиториях, или, проще говоря, общем хранилищем программ, которые
по мере надобности обновляются сообществом. Ваша система должна периодически
обновлять кэш репозиторий для вычисления обновленного, либо нового программного
обеспечения, либо после каждого вновь добавленного репозитория, для этого в
системе существует программа под названием «Центр приложений Ubuntu» – это
более 36 тысяч пакетов скомпилированного программного кода.
Одной из наиболее
интересных особенностей Ubuntu является тот факт, что учетная запись «root»
(суперпользователь) по умолчанию отключена; первый из зарегистрированных
пользователей после установки получает права суперпользователя посредством
команды «sudo», которая позволяет пользователям выполнять администраторские
задачи, не запуская потенциально опасную сессию суперпользователя.
Минимальными
системными требованиями последнего релиза Ubuntu Desktop можно считать
компьютер с характеристиками:
· 1000 MHz процессор (Intel
Celeron или выше).
· 1024 Мб ОЗУ.
· 5 Гб дискового пространства.
· Видеокарта с аппаратной
поддержкой 3D и видеопамятью не менее 256 Мб.
· VGA совместимый монитор с
разрешением не менее 1024×768.
Поддерживаются
сразу же при установке производители следующих видеокарт:
· ATI (будет базовая поддержка
3D через свободный драйвер, можно штатно установить проприетарный драйвер fglrx
от производителя).
· Intel (i915 или лучше,
исключая GMA 500 aka Poulsbo).
· NVidia (будет базовая поддержка
3D через свободный драйвер, можно штатно установить проприетарный драйвер от
производителя).
Если компьютер не
удовлетворяет вышеперечисленным требованиям, то можно попробовать установить
производные от Ubuntu дистрибутивы: Xubuntu,
Lubuntu.
Любой дистрибутив
GNU/Linux позволяет заменять практически каждую свою часть на другую, и Ubuntu
не исключение. Поэтому существует множество вариантов Ubuntu, отличающихся в
первую очередь окружением пользователя и предустановленными программами.
Важной и основной
особенностью всех этих систем является полная совместимость между собой,
поскольку все они используют общую огромную базу программ, созданную для
Ubuntu. То есть в процессе работы с любой из перечисленных ниже систем вы
сможете легко доустановить нужные вам программы и компоненты, пусть даже
присущие другому варианту Ubuntu.
Поддерживаемые
Canonical варианты системы:
Ubuntu – базовая
версия операционной системы, сочетающая простоту, удобство и
функциональность. Основана на фирменной оболочке Unity и компонентах рабочей
среды GNOME.
Ubuntu Server – серверный
вариант операционной системы, включающий средства быстрого развёртывания
облачной инфраструктуры, создания серверов LAMP, LTSP и прочих.
Поддерживаемые
сообществом варианты системы, входящие в официальное семейство Ubuntu:
Edubuntu – вариант Ubuntu, нацеленный
на использование в образовательных учреждениях. Содержит самые востребованные
образовательные приложения.
Kubuntu – Ubuntu с рабочим
окружением KDE и программами, типичными для него.
Lubuntu – минималистичный вариант
Ubuntu, основанный на рабочем окружении LXDE.
Mythbuntu – мультимедийный вариант
Ubuntu, содержащий программное обеспечение MythTV для создания домашних
кинотеатров.
Ubuntu Studio – вариант Ubuntu,
предназначенный для людей, активно занимающихся редактированием и созданием
мультимедийного контента.
Xubuntu – Ubuntu с рабочим
окружением Xfce. Отлично подходит для старых, маломощных компьютеров.
Однако,
существуют очень много других дистрибутивов GNU/Linux, основанных на Ubuntu.
Они не входят в официальное семейство, но большинство из них совместимо между
собой и с базовой Ubuntu.
Ubuntu имеет несколько
способов установки на компьютер:
1. LiveCD/DVD/USB с графическим установщиком на множестве языков. Такая установка является
очень простой, благодаря родному языку и понятным диалоговым окнам.
LiveCD/DVD/USB – «живой» компакт-диск – операционная система, загружающаяся со сменного
носителя (CD, DVD, USB-накопитель и т. д.), не требующая для своего
функционирования установки на жёсткий диск. Live CD/DVD/USB позволяют быстро начать работу с компьютером, избегая длительного
процесса установки ОС на винчестер, и ознакомиться с возможностями операционной
системы до её установки на ПК. Live CD также предоставляют возможность
установки на жёсткий диск. Таким образом, можно быстро запустить и попробовать
в использовании ту или иную ОС, и, если система понравится, установить её.
Другое применение
Live CD — восстановление данных и/или работоспособности основной операционной
системы после сбоя. Live CD позволяют работать с компьютером в тех случаях,
когда основная операционная система неработоспособна.
2. Текстовый установщик
Alternate (предоставлялась до версии Ubuntu 12.04.2). На данный момент эта
редакция установщика используется в тех случаях, когда невозможна установка с
LiveCD. В нём до сих пор есть несколько мест, где вы должны знать что вы
делаете, но значения по умолчанию подойдут для большинства пользователей.
Скачать
дистрибутив
можно с сайта разработчика (http://www.ubuntu.com/download) или с сайта Русскоязычного
сообщества Ubuntu Linux (http://ubuntu.ru/).
После скачивания
файла из сети желательно проверять его контрольную сумму, чтобы
убедиться в том, что файл скачался полностью и в него не внесли изменения.
В Windows
используйте программу HashCalc. Ее можно скачать с официального
сайта: slavasoft.com. В результате программа
должна показать контрольную сумму (набор букв и цифр), примерно в таком
виде: md5:
463e4e1561df2d0a4e944e91fcef63fd. Ее нужно сверить с контрольной суммой,
указанной на официальном сайте.
Если контрольная
сумма совпала, значит можно использовать файл, а если не совпала — скачать файл
заново.
Когда скачиваете
образ системы, то проверять контрольную сумму нужно обязательно. В остальных
случаях, например при скачивании видео и музыки — на ваше усмотрение.
К минусам операционной
системы Ubuntu относят использование нестабильных версий ПО в стабильных
версиях дистрибутива.
Задания
1.
Запустите
созданную виртуальную машину.
2.
В окне с
информацией о том, что Автозахват клавиатуры включен, Интеграции указателя
мыши с гостевой ОС включена поставьте флажок “Больше не показывать это
сообщение” и нажмите кнопку “Ок” для продолжения.
3.
Выберите
язык — русский. При выборе языка в списке, язык всего интерфейса изменится
автоматически.
4.
Выберите
пункт меню «Установить Ubuntu». Первый пункт меню «Запустить Ubuntu» ещё
называют LiveCD. При выборе этого варианта система загрузится прямо с CD или
DVD, без установки, и вы сможете ее опробовать, запустить различные приложения.
В критической ситуации LiveCD даже сможет заменить рабочую систему. Но чаще
всего LiveCD используют для восстановления системы, так что оставьте диск, с
которого вы будете ее устанавливать.
5.
При
подготовке к установке система проверяет свободное место на жестком диске и
подключение к интернету. Подключение к Интернету не обязательно, но желательно.
В противном случае Вы не сможете скачать обновления при установке. Пункты
«Скачать обновление при установке» и «Установить стороннее программное
обеспечение» для установки ОС не обязательны, все эти операции можно произвести
позже, после завершения установки системы.
6.
На следующем
этапе происходит подготовка жесткого диска для установки ОС. Если у Вас чистый
жесткий диск, Вы можете воспользоваться автоматической разметкой дискового
пространства или вы желаете отформатировать имеющийся диск, то выберите первый
пункт – «Стереть диск и установить Ubuntu». В этом случае программа установки выполнит оптимальную
разметку для операционной системы и задействует все дисковое пространство. Если
же Вы желаете настроить разбивку разделов вручную и контролировать весь процесс
– выберите пункт «Другой вариант».
6.1.
Разбейте
диск на разделы.
6.1.1.
Выполните
«Другой вариант» – «Продолжить».
6.1.2.
Выберите
«Новая таблица разделов»
6.1.3.
Выберите
«свободное место» и щелкните по кнопке .
6.1.4.
Создайте
3 раздела:
6.1.4.1. 1 для системы;
6.1.4.2. 2 для свопинга;
6.1.4.3. 3 для хранения информации
пользователей (аналог диска d:\ в Windows).
6.2.
Монтирование
файловых систем. Монтирование — это процесс, который создает связь вида
«Устройство» — «Каталог». Для монтирования выделите раздел в списке и выберите
«Change».
6.2.1.
Раздел,
который выделен для Ubuntu (sda1)
необходимо примонтировать к корневой директории «/» (иначе никакой
файловой системы у вас не будет).
6.2.2.
Раздел,
который выделен для информации пользователей (sda6) примонтируйте к директории /home.
6.3.
После
создания разделов жесткого диска и монтирования файловой системы выберите
«Установить сейчас».
7.
На
следующем этапе укажите местоположение.
8.
Выберите
раскладку клавиатуры.
9.
На
следующем этапе создайте учетную запись и задайте имя ПК.
Имя для входа в
систему (ваш логин) должно быть с маленькой буквы и содержать только латинские
буквы и цифры. Для отмены авторизации при входе в систему (например, если вы
единственный пользователь ПК) следует выбрать «Входить в систему
автоматически».
10.
Далее
начнётся непосредственно процесс установки
11.
После
успешной установки появится сообщение:
Выберите
«Перезагрузить».
12.
При
появлении сообщения
Необходимо
извлечь оптический диск из дисковода и нажать Enter. В нашем случае переключитесь в окно VirtualBox и удалите виртуальный оптический
диск (образ Ubuntu). Если эта операция
невозможна, то выключите виртуальную машину воспользовавшись меню «Машина –
Закрыть». А в свойствах виртуальной машины на вкладке “Носители” извлеките
ISO-образ дистрибутива. Затем заново запустите виртуальную машину.
13.
Авторизуйтесь.
Перед вами должен появиться рабочий стол системы.
Установка
дополнений гостевой ОС для Ubuntu Linux
Дополнения гостевой ОС предназначены
для расширения возможностей обмена данными между гостевой и хост системами, для
правильной работы функции интеграции указателя мыши и клавиатуры, для
возможности максимизации экрана гостевой ОС и т.д.
14.
Запустите
виртуальную машину и войдите в систему под своей учетной записью. Перед началом
установки нужно будет установить DKMS (Dynamic Kernel Module
Support – фреймворк (программное обеспечение, облегчающее объединение разных
компонентов большого программного проекта), который используется для генерации
тех модулей ядра Linux, которые в общем случае не включены в дерево исходного
кода. DKMS позволяет драйверам устройств автоматически пересобираться, когда
ядро уже собрано.). Для этого:
14.1.
откройте
терминал. Терминал или командную строку можно запустить несколькими способами:
14.1.1. перейти из графической оболочки в
алфавитно-цифровой терминал:
14.1.1.1.
нажмите
CTRL+ALT+Fx, где Fx – одна из функциональных клавиш F1,F2…F6. Вы попадете в алфавитно-цифровую
консоль. Номер консоли указывает указатель tty. Например: tty2 — означает, что
вы находитесь во второй консоли. По умолчанию таких консолей 7. Причем седьмая
консоль – графическая. Переходить между консолями можно нажимая клавиши ALT+Fx.
В каждой консоли вам предлагают зарегистрироваться. На экране появляется
надпись, предлагающая ввести регистрационное имя, как правило, это
«login:».
Набрав свое
регистрационное имя, нажмите клавишу Enter. Таким образом в разных консолях вы
можете работать под разными именами и, что еще более важно, с разными правами.
Система запросит
у вас пароль, соответствующий введенному имени, выдав специальное приглашение –
обычно «Password:». Внимательно наберите пароль и нажмите клавишу
<Enter>. Вводимый пароль на экране не отображается, поэтому набирайте его
аккуратно!
14.1.1.2.
Если все
было сделано правильно, у вас на экране появится приглашение к вводу команд
операционной системы.
В приглашении
указано имя пользователя и после знака @ имя компьютера, а также имя текущего
каталога. Текущий каталог — это то, что между символами : и $. Знак ~
обозначает домашний каталог пользователя, это синоним адреса домашней папки
текущего пользователя. Кстати, если вы ещё не знаете, полный адрес домашнего
каталога выглядит как
/home/логин_пользователя.
Т.е. в приведенном примере /home/olga.
14.1.2. запустить графический вариант
терминала:
14.1.2.1.
выбрать в
левом верхнем углу экрана кнопку Ubuntu
14.1.2.2.
откроется
прозрачное окно, которое называется Главное меню.
Примечание. Главное меню позволяет
выполнять поиск приложений, файлов, музыки и видео, а также показывает недавно
использовавшиеся элементы. Несомненно, вы найдёте удобным это свойство главного
меню, особенно если когда-либо работали над таблицей или редактировали
изображение и забыли, куда сохранили результаты.
Чтобы начать
работу с главным меню, щёлкните верхний значок на Панели запуска (Панель
запуска – один из ключевых компонентов рабочего стола Unity. После входа в
систему она появляется вдоль левой стороны экрана. Панель запуска предоставляет
быстрый доступ к приложениям, рабочим местам, съёмным носителям и корзине). На
этом значке изображён логотип Ubuntu. Чтобы ещё быстрее попасть в главное меню,
просто нажмите клавишу Super (эту клавишу иногда называют клавишей
Windows, logo-клавишей или системной клавишей).
Чтобы скрыть
главное меню, щёлкните значок снова, либо нажмите Super или Esc.
Поиск любой
информации из домашней линзы
Первое, что вы
увидите, открыв главное меню, — это домашняя линза. Если ничего не набирать и
никуда не щёлкать, то домашняя линза покажет недавно использовавшиеся
приложения и файлы.
И для приложений,
и для файлов отобразится только один ряд результатов. Если результатов больше,
то для их просмотра можно щёлкнуть Показать ещё … результата.
Чтобы что-то
найти, просто начните печатать, и автоматически будут появляться подходящие
результаты поиска из других установленных линз.
Щёлкните на
результате, чтобы открыть его, или нажмите Enter для открытия первого
элемента в списке.
14.1.2.3.
В нижней
части Главного меню выберите Приложения .
14.1.2.4.
Откройте
пункт
14.1.2.5.
Выберите
Или
14.1.2.6.
В
домашней линзе наберите
14.1.2.7.
Выберите
Запуститься
эмулятор командной строки Терминал
Примечание. Для выполнения некоторых
действий (в т.ч. для установки программ в терминале Ubuntu) требуется обладать
правами суперпользователя (пользователя с учетной записью root). Для этого используется всего
несколько команд, которые очень легко запомнить:
· sudo — это команда позволяющая запускать
программы и выполнять иные действия в командной строке с привилегиями
«суперпользователя». Это значит, что введя sudo
перед командой и введя пароль мы можем выполнять абсолютно любые
действия: удалять защищённые каталоги и файлы, устанавливать любые
программы, останавливать любые скрытые системные процессы и т.д.
· apt-get — это приложение, благодаря
которому мы можем автоматически
устанавливать тысячи программ находящиеся в архивах приложений
(репозиториях), расположенных по всему миру. Это приложение целесообразно
использовать только в связке с sudo (sudo apt-get)
· install — это команда, передающая
сигнал об установке какого-либо приложения программе apt-get:
sudo apt-get
install
14.2.
Выполните команду sudo apt-get install dkms.
или
15.
После
установки фреймворка DKMS запустите установку с
помощью меню VirtualBox Устройства – подключить
образ дополнений гостевой ОС Установить Дополнения гостевой ОС…
16.
В
открывшемся окне выберите Запустить
17.
В окне аутентификации
введите ваш пароль:
Начнется процесс
установки дополнений.
18.
Вам
необходимо подождать, пока не появиться запрос
Нажмите Enter (Return).
19.
Завершите
работу гостевой ОС:
Примечание. В ОС Linux, нельзя
выключать компьютер простым отключением питания. Дело в
том, что в любой
момент времени в системе запущено несколько процессов. Некоторые из
этих процессов
могут работать с файлами, причем система не записывает все изменения
файлов на диск
сразу после внесения этих изменений пользователем или процессом, а
сохраняет их
временно в оперативной памяти (кэширует). Если просто выключить
питание, эти
изменения не будут сохранены и пропадут, что иногда может привести даже
к невозможности последующей
загрузки системы. Так что надо уметь правильно
завершить работу
системы перед выключением компьютера. Это делается командой
shutdown.
Команда shutdown
может быть выполнена только пользователем root
Из опций
программы shutdown наиболее часто используются две:
• -h — полная
остановка системы (компьютер будет выключен);
• -r —
перезагрузить систему.
Когда вы захотите
просто выключить компьютер. Эквивалентом команды shutdown -h 0
является команда halt.
При нажатии известной комбинации клавиш <Ctrl>+<Alt>+<Del> в
Linux выполняются действия, аналогичные команде shutdown -r 0
так что таким
образом тоже можно выключить компьютер, только надо в момент
перезагрузки
отключить питание.
20.
Перезапустите
виртуальную машину. Убедитесь в максимизации экрана гостевой ОС (Ubuntu работает в полноэкранном режиме).
Завершите работу гостевой ОС.
Отчет по
работе должен содержать ход выполнения работы и ответы на контрольные вопросы.
Контрольные вопросы:
1.
Где и в
каком формате можно скачать установщик Ubuntu?
2.
Что такое
LiveCD?
3.
Какие
есть версии Ubuntu?
4.
Что такое
монтирование файловой системы?
5.
Какую
файловую систему рекомендуют выбирать для раздела, в который будет установлена
Ubuntu? Какую вы выбрали?
6.
Что
представляет из себя раздел жесткого диска swap?
7.
Активирован
ли в Ubuntu по-умолчанию режим суперпользователя?
8.
Какая
команда используется для вызова режима суперпользователя?
9.
Как можно
запустить терминал (командную строку) в Ubuntu?
10. Как называются и для чего
предназначены основные элементы интерфейса Unity?
11. Что такое репозиторий?
12. Как устанавливать программы
из репозитория? Какие команды при этом используются?
13. Как завершить работу Ubuntu?
Практическая работа №6 «Linux . Среда
пользователя»
Цель работы: Изучить среду пользователя Linux. Научиться использовать файловый
менеджер Linux. Настройка рабочего стола,
поведения окон, хранителя экрана. Настройка темы похожести на windows xp.
Теоретические сведения (в вашей системе
используется 1 из следующих 3- вариантов):
1.
Среда
рабочего стола Gnome.
GNOME (GNU Network Object
Model Environment — «сетевая среда объектной модели GNU») — свободная среда
рабочего стола для Unix-подобных операционных систем. GNOME является
частью проекта GNU. В основе среды GNOME лежит ряд библиотек и технологий.
Некоторые из них разрабатываются как часть самого проекта GNOME, иные же
являются результатом работы других проектов и используются в других рабочих
средах (например KDE). Настройка рабочего стола осуществляется через меню «система»
-> «параметры». В вашем распоряжении пункты меню, позволяющие менять
разрешение основного экрана, поведение окна, состав основного меню, внешний
вид рабочего стола и окон, настраивать клавиатуру, мышь, звуки рабочего стола и
звуковую подсистему, а также хранитель экрана. Глубокую настройку системы
можно делать через аналог реестра windows: «Система» -> «Параметры» ->
«Дополнительно»-> «Редактор конфигурации»
1.1.
Файловый
менеджер Nautilus.
Файловый менеджер |
|
1.2.
Файловый
менеджер- браузер Konqueror.
Konqueror — свободный веб-браузер и файловый |
|
2.
Среда рабочего стола KDE.
KDE Software
Compilation (KDE SC) — свободная среда рабочего стола и набор программ от
проекта KDE. До начала 2010 года была известна как KDE (сокращение от K Desktop
Environment). Построена на основе кросс-платформенного инструментария
разработки пользовательского интерфейса Qt. Работает преимущественно
под UNIX-подобными операционными системами, которые
используют графические подсистемы X Window
System и Wayland. Новое поколение технологии KDE 4 частично работает
на Microsoft Windows и Mac OS X. В состав KDE SC входит набор
тесно интегрированных между собой программ для выполнения повседневной работы.
Центр настройки KDE доступен из диспетчера приложений и называется «Параметры
системы». Также для быстрой настройки внешнего вида рабочего стола можно использовать
виджет «Настройка рабочего стола».
2.1.
Файловый
менеджер Dolphin.
Dolphin — файловый |
|
2.2.
В KDE
также применяется файловый менеджер — браузер Konqueror.
3.
Среда
рабочего стола LXDE.
LXDE (Lightweight X11 Desktop
Environment) — свободная среда рабочего
стола для UNIX и других POSIX-совместимых систем, таких
как Linux или BSD. Проект LXDE направлен на создание
новой быстрой, легковесной и энергоэффективной среды рабочего стола. LXDE
создана простой в использовании, достаточно лёгкой и нетребовательной к
ресурсам системы. Она подходит для работы с низкопроизводительным спектром
оборудования, таким как старые машины с ограниченными ресурсами и/или маленьким
объёмом оперативной памяти.
3.1. PCManFM (PCMan File В 2010 году полностью |
|
Задания:
1.
Какая
среду рабочего стола используется в вашей установке?
2.
Какой
файловый менеджер? Изучите меню файлового менеджера, панели инструментов.
3.
На
рабочем столе создайте каталог с названием «test». Откройте его.
4.
В
каталоге «test» создайте каталог «test1». В каталоге «test1» создайте пустой
файл с названием «Просто текст». Заполните файл любым текстом.
5.
Создайте
ссылку «Ссылка на текст» на файл «Просто текст».
6.
Измените
фон окна.
7.
Измените
режим просмотра с значения «Значки» на «Список».
8.
Сделайте
отображаемой колонку «Владелец».
9.
Сделайте
отображаемыми скрытые файлы.
10.
На
рабочем столе создайте кнопку запуска на приложение arc (или другое). Запустите
его.
11.
Отдельно
откройте окно свойств кнопки запуска для приложения arc.
12.
Используя
программу «Main Menu» создайте в основном меню пункт «Настройки»->«Панель
управления» и перенесите в него все пункты меню «Система»->
«Администрирование».
13.
Измените
оформление рабочего стола, используя программу «Внешний вид».
14.
Установите
и настройте понравившийся вам хранитель экрана.
15.
Установите
в панели инструментов аплет «Список окон».
16.
Установите
в панели инструментов аплет «Глазки».
17.
Используя
программу «kmenuedit» создайте в основном меню пункт «Мои программы» и
скопируйте в него ярлыки понравившихся вам программы.
18.
Измените
оформление рабочего стола, используя программу «Центр управления -> Внешний
вид -> Менеджер тем».
19.
Установите
и настройте понравившийся вам хранитель экрана.
20.
Установите
в панели инструментов аплет «Последние документы».
21.
Добавьте
на панель инструментов приложение «oowriter».
Отчет по
работе должен содержать ход выполнения работы и ответы на контрольные вопросы.
Контрольные
вопросы:
1
Для
выполнения каких операций вы использовали drag-n-drop?
2
Для чего
используется меню «Закладки»?
3
Как
создавать и использовать шаблоны?
4
Можно ли
настроить внешний вид, не отличимый от внешнего вида «Windows XP»? Если нет: то
каких настроек не хватает? Можно ли это делать по юридическим соображениям?
5
Охарактеризуйте
приложения, которые вы попутно стретили: приложение arc, oowriter, kmenuedit.
6
Какие
аплеты вам понравились?
7
Перечислите
виды, открываемые в боковой панели файлового браузера.
8
Какая из
двух систем управления рабочим столом вам показалась привлекательнее? Почему?
Практическая работа №7 «Настройка
интерфейса оболочки Unity»
Цель
работы: Изучить
и научиться адаптировать интерфейс Unity.
Теоретические
сведения:
Unity – свободная оболочка
для среды рабочего стола GNOME. По умолчанию интерфейс и внешний
вид уже оптимально настроен. Естественно, что можно ничего не настраивать и
просто пользоваться данной операционной системой.
Основные
элементы интерфейса
Панель
запуска (Launcher)
Позволяет запускать закреплённые на нём приложения и переключаться
между уже запущенными.
Верхняя панель
Панель содержащая глобальное меню, системные индикаторы и
индикаторы приложений.
Главное меню (Dash)
Меню в котором можно воспользоваться поиском как по локальным
(установленные приложения, файлы и папки, музыка), так и по удалённым
(доступные для установки приложения, видео на YouTube).
Глобальное меню (Global Menu)
Отображает заголовок и, при наведении, для приложений, развёрнутых
на весь экран, также отображаются кнопки управления окном.
Линзы главного меню (Dash Lens) (старое название —
Places)
Вкладка главного меню, с помощью которой можно искать в отдельной
категории:
·
Поиск приложений;
·
Поиск файлов и папок;
·
Поиск видео;
·
Поиск музыкальных композиций;
·
Поиск фотографий;
·
Поиск в социальных сетях.
Производить поиск можно как и на вкладке линзы, так и с главного
экрана главного меню через глобальный поиск. Каждая линза должна иметь одну или
несколько сфер, которые, по сути, являются поисковыми движками, их графическое
представление — группы. Пример линзы содержащей несколько сфер —
Приложения (Установленные и доступные в Центре приложений Ubuntu) и Музыка
(локальная и музыка в интернет магазинах).
Индикаторы (Application Indicators)
Отображают меню сеанса, время и дату, область уведомлений в правом
верхнем меню экрана. Меню сеанса также используется для изменения статуса
в IM и запуска Центра управления.
Ход работы.
Выполните
все перечисленные в описании далее настройки интерфейса:
1. Изменить положение панели запуска
(Launcher)
Разработчики
окружения рабочего стола Unity прислушались к просьбам пользователей Ubuntu и
наконец-то добавили возможность изменения положения панели запуска Unity.
Панель запуска (Launcher) может располагаться слева и снизу.
По умолчанию, находится слева.
Можно
изменить и расположить её внизу:
Изменить
расположение панели запуска Unity в Ubuntu 16.04 можно изменить одним из
следующих способом:
1. С помощью Unity Tweek Tool, перейти Unity — Панель запуска, в блоке
«Оформление» меняя свойство Position:
2. С помощью
Gsettings:
Для расположения панели запуска Unity внизу введите следующую команду в
терминале:
gsettings set
com.canonical.Unity.Launcher launcher-position Bottom
Для
расположения панели запуска Unity слева введите следующую команду в терминале:
gsettings set
com.canonical.Unity.Launcher launcher-position Left
3. С помощью редактора dconf, перейти
com.canonical.Unity.Launcher, менять значение launcher-position:
2. Изменить расположение меню приложений.
В окружении
рабочего стола Unity существует два варианта расположения меню приложений.
В панели меню:
В заголовке
окна:
По умолчанию
в Unuty используется первый вариант расположения меню приложений, то есть на
панели меню.
Но это легко можно изменить в стандартных настройках Ubuntu.
Заходим «Параметры системы» — «Персональные» —
«Оформление»:
На вкладке
«Режим» в пункте «Показывать меню для окна» можно выбрать
удобный для Вас вариант расположения меню приложения:
Кроме того,
здесь можно изменить вариант «Показ меню», то есть можно настроить,
чтобы меню приложения показывалось не только после наведения мыши.
3. Включение
функции
Minimize single windows applications on click.
Если
перевести на русский язык, то эта функция переводится как сворачивание
одиночного окна в один клик на значке в панели запуска Unity.
На панели запуска Unity отображаются запущенные приложения, слева отображаются
индикаторы количества открытых окон запущенного приложения:
В случае,
когда одно окно приложения открыто и свернуто, то клик по его значку на панели
запуска откроет окно приложения. И если нажать по значку снова, то ничего не
произойдет.
Так вот, если задействовать эту функцию, то по клику значка приложения на
панели, окно приложение свернется.
В случае же, когда открыто несколько окон приложения, стандартное поведение не
изменится,
откроется выбор окон по клику на ярлыке приложения:
Включить функцию
«Minimize single windows applications on click» в Ubuntu можно одним
из следующих способов:
1. C помощью Unity Tweak Tool, перейти Unity — Панель запуска и задействовать
эту функцию:
2. С помощью
Gsettings,
Задействовать данную функцию (это одна команда, скопировать и вставить в
терминале её полностью):
gsettings set
org.compiz.unityshell:/org/compiz/profiles/unity/plugins/unityshell/
launcher-minimize-window true
Отключить
данную функцию (это одна команда, скопировать и вставить в терминале её полностью):
gsettings set
org.compiz.unityshell:/org/compiz/profiles/unity/plugins/unityshell/
launcher-minimize-window false
3. С помощью редактора dconf, перейти
org/compiz/profiles/unity/plugins/unityshell/ и изменить параметр
launcher-minimize-window:
4. Настройка верхней панели Unity.
Верхняя
панель — это панель, содержащая глобальное меню, системные индикаторы и
индикаторы приложений.
4.1. Отображать имя пользователя на
верхней панели Unity.
По
умолчанию, в Ubuntu на верхней панели имя пользователя не отображается, но
можно сделать так, чтобы показывалось:
Отобразить
имя пользователя на верхней панели Unity можно одним из следующих способов:
1) С помощью Unity Tweak Tool, перейти Unity — Панель и проставить флажок «Показать
моё имя»:
2) С помощью
Gsetting,
Чтобы отобразить имя пользователя на верхней панели, выполните следующую
команду:
gsettings set
com.canonical.indicator.session show-real-name-on-panel true
Чтобы скрыть
имя пользователя на верхней панели, выполните следующую команду:
gsettings set
com.canonical.indicator.session show-real-name-on-panel false
3) С помощью редактора dconf, перейти
apps/indicator-session и изменить параметр
show-real-name-on-panel:
4.2. Сформировать собственный формат даты
и времени на верхней панели.
Многим
нравится, когда на системной панели отображаются не только часы, но еще и дата:
Отобразить
дату можно и с помощью стандартных настроек системы, кликнув кнопкой мыши на
индикаторе «Часы», и выбрав «Параметры даты времени»:
На вкладке
«Часы» можно задействовать отображение даты:
Если
полученная дата не понравилась, то можно сформировать собственный формат.
Открываем редактор dconf, переходим com/canonical/indicator/datetime.
1) Нужно изменить значение time-format на custom. При этом стоит отметить, что
если выбрано значение «custom», изменить формат даты с помощью
стандартных настроек (как было показано выше) изменить будет нельзя. Для этого
нужно будет обратно вернуть значение на locale-dafault.
2) Задать строку в формате strftime в параметре custom-time-format.
Формат
строки даты и времени для strftime можно очень просто получить на одном из
онлайн ресурсов:
http://strftime.net/
http://www.foragoodstrftime.com/
Или выбрав одно из следующих (скопировать текст, выделенный цветом):
С годом и секундами:
%a, %e %b %Y %H:%M:%S %
С годом и
без секунд: %a, %e %b %Y %H:%M
Без года с
секундами: %a, %e %b %H:%M:%S
Без года и
секунд: %a, %e %b %H:%M
4.3. Изменить прозрачность верхней панели
Unity.
Кроме того,
можно изменить прозрачность верхней панели Unity.
Если есть
такое желание, то сделать это можно, с помощью программы Unity Tweak Tool.
Перейти Unity — Панель и изменить ползунок параметра «Степень
прозрачности»:
Кроме того,
там есть параметр, который отменяет параметр прозрачности для развернутых окон.
Дальше мы
разберем как настроить количество рабочих столов, а также, как создавать
отдельные именованные списки закрепленных приложений на панели запуска Unity, в
том числе и отдельные списки для каждого из рабочих столов.
5. Задействовать рабочие места
(виртуальные рабочие столы) в Ubuntu. Настройка количества рабочих мест в
Ubuntu.
Рабочие
места в Ubuntu — это виртуальные рабочие столы, на которых могут быть открыты
различные окна приложений, чтобы легко и быстро переключаться между ними.
В Ubuntu рабочие места переключаются клавишами Ctrl — Alt — Стрелка (влево,
вправо, вниз, вверх):
Клавишами «Super(Windows)
— S» — открывается переключатель рабочих столов:
Чтобы
переместить какое-либо окно на другой виртуальный рабочий стол, нужно выбрать
окно программы, чтобы оно стало активным и зажать клавиши Ctrl — Alt — Shift и
стрелками переместить на тот рабочий стол, который хотите.
По умолчанию, в Ubuntu одно рабочее место. Поэтому нужно задействовать рабочие
места.
Самый простой способ, через
параметры системы.
Откройте
«Параметры системы» — перейдите в пункт «Оформление», на
вкладке «Режим» нужно проставить галочку пункту «Задействовать
рабочие места»:
Всё, теперь
4 виртуальных рабочих стола (2 по вертикали и 2 по горизонтали) задействованы в
системе и можно пользоваться ими.
Также, задействовать
рабочие места можно и через Unity Tweak Tool.
Откройте
Unity Tweak Tool. В подменю «Диспетчер окон» выберите пункт
«Настройки рабочих мест»:
Чтобы
задействовать рабочие места, нужно перевести ползунок «Переключатель
рабочих мест» в активное состояние:
Кроме того,
здесь можно настроить количество рабочих мест по горизонтали и вертикали, в
данном случае, как на снимке экрана выше, у нас в системе сейчас по 3 рабочих
места по горизонтали и вертикали:
Таким
образом, можно настроить оптимальное для Вас количество рабочих мест.
6. Разные списки закрепленных приложений
на панели запуска Unity.
Закрепить
приложения на панели запуска Unity можно несколькими способами:
1. Если приложение запущено, то нажать на его значке правым кликом мыши и
выбрать «Закрепить на панели»:
2.
Перетащить ярлык приложения из главного меню (Dash) на панель запуска Unity:
Таким
образом можно настроить под себя набор приложений для их быстрого запуска.
Чтобы удалить приложение из панели запуска Unity, нужно кликнуть правой кнопкой
мыши по ярлыку и выбрать «Изъять из панели»:
Кроме того,
можно менять их порядок на панели запуска Unity, простым перетаскиванием левой
кнопкой мыши:
Но может
случиться так, что хочется закрепить много приложений и в итоге может
получиться такая ситуация:
Именно
поэтому создали утилиту индикатор — Launcher List Indicator.
Выглядит следующим образом:
Данная
программа позволяет сохранять именованные списки закрепленных приложений на
панели запуска Unity. Пока что программа поддерживает только английский язык,
то есть называть списки нужно только на английской раскладке.
Принцип работы Launcher List Indicator.
Закрепляем и
настраиваем ярлыки на панели запуска Unity. После чего нужно нажать колесиком
мыши на ярлыке или выбрать «Save current» из меню индикатора:
В
результате, появится всплывающее окошко с предложением ввести имя нового списка
закрепленных приложений:
Вводим
имя на английской раскладке. Подтверждаем. После чего он
отобразится среди созданных списков:
Переключать
списки можно кликом мыши по индикатору и выбрав нужный, или наведя курсор мыши
и прокручивая колесиком мыши.
Удаляются
списки с помощью пункта меню «Remove entry», появится следующее
диалоговое окно, в котором нужно выбрать список, который хотим удалить и
подтвердить:
Вот это
стандартные возможности данного приложение.
Стоит отметить, что изменять созданный список закрепленных приложений нельзя.
Только пересоздать новый, удалив старый.
Как только вы закрепляете какой-то дополнительный ярлык, то это уже считается
новым не сохраненным списком.
У данного индикатора
есть дополнительных опции из подменю Extras:
— Toggle
visibility — скрывает или показывает панель запуска Unity.
— Togle label — скрывает или показывает имя текущего списка рядом с
индикатором:
— Clear
launcher — очень полезная функция. Очищает полностью панель запуска Unity от
всех закрепленных приложений. Очень удобно использовать при создании новых
списков.
— Toggle
Workspace Switcher — очень крутая и полезная функция. Вызывает диалоговое окно,
в котором можно закрепить на каждое рабочее место определенный список
закрепленных приложений:
Очень бы
хотелось, чтобы данный индикатор уже был по умолчанию установлен в Ubuntu.
Установка Launcher List Indicator в Ubuntu.
Для
установки Launcher List Indicator в Ubuntu откройте терминал и выполните
следующие команды:
sudo
add-apt-repository ppa:launcher-list-indicator/ppa
sudo apt update
sudo apt install launcher-list-indicator
После чего
его можно найти и запустить через главное меню Dash.
Добавить Launcher List
Indicator в автозапуск при старте системы Ubuntu.
Находим
через главное меню Dash «Автоматически запускаемые приложения» и жмём
«Добавить», и в открывшемся окне вписываем:
Имя — Launcher List
Indicator
Команда — launcher-list-indicator
Должно получиться
так:
Подтверждаем,
нажав «Добавить».
Всё. Теперь
данный индикатор будет стартовать вместе с системой Ubuntu.
Удаление Launcher List Indicator в Ubuntu.
Для удаление
Launcher List Indicator в Ubuntu откройте терминал и выполните следующие
команды:
sudo
add-apt-repository —remove ppa:launcher-list-indicator/ppa
sudo apt
update
sudo apt
remove launcher-list-indicator
7. Настройка Главного меню Dash.
Главное
меню Dash в Unity — это Меню в котором можно воспользоваться поиском как по
локальным (установленные приложения, файлы и папки, музыка), так и по удалённым
(доступные для установки приложения, видео и тд. В этом меню располагаются
различные линзы поиска.
7.1. Изменить размер окна Главного меню
Dash.
Главное
меню Dash может быть двух размеров.
Полностью
покрывая рабочий стол:
Или
не полностью:
Для
быстрого изменения размера главного меню Dash, просто щелкните по иконке
«развернуть»:
7.2. Убрать фоновое размытие Главного меню
Dash.
Фоновое
размытие Главного меню Dash это дополнительная нагрузка на видеокарту. На
слабых компьютерах Главное меню Dash открывается заметно быстрее без фонового
размытия.
Вот так Главное меню Dash выглядит с фоновым размытием:
А так
без фонового размытия:
Отключается
фоновое размытие с помощью Unity Tweak Tool. Перейти Unity — Найти:
Переводим
переключатель «Фоновое размытие» в неактивное состояние.
7.3. Отключить
«Отслеживать использование файлов и приложений» и «Отображать
результаты поиска в Интернете».
По
умолчанию, Ubuntu отслеживает файлы и приложения, которые вы используете и
выводит их в главном меню Dash:
Если
у вас не так много оперативной памяти, или не хотите, чтобы отслеживались ваши
файлы и приложения, которыми вы пользуетесь, тогда можно отключить это.
Открываем
окно параметров «Защита и приватность».
Через
«Параметры системы»:
Найдя
в главном меню Dash:
В
окне параметров «Защита и приватность» на вкладке «Файлы и
приложения» переводим переключатель «Отслеживать использование файлов
и приложений» в неактивное состояние:
Здесь
же можно очистить предыдущую активность:
Также
на вкладке «Поиск»:
Убедитесь,
что переключатель «Отображать результаты поиска в Интернете»
находится в неактивном состоянии.
Если
данная опция будет включена, то при небольшой скорости интернета поиск в
главном меню Dash будет притормаживать.
8. Изменить размер значков на панели
запуска Unity.
Советую,
также, настроить под себя размер значков на панели запуска Unity.
К примеру,
можно сделать значки поменьше, чтобы вместилось больше ярлыков приложений.:
Настроить
размер значков панели запуска можно двумя способами.
2.
С помощью Параметры системы.
Перейдя
в «Оформление» на вкладке «Внешний вид»:
2. С помощью Unity Tweak Tool.
Перейти
Unity — Панель запуска:
Таким
образом, Вы можете настроить удобный размер ярлыков для своего монитора
компьютера.
Отчет
должен содержать все проделанные действия. Перечислите все инструменты
настройки, которыми вы пользовались.
Практическая
работа №8 Работа в командной строке ОС Linux
Цель работы: Получить базовые навыки работы в текстовом режиме.
Пользоваться встроенной справочной системой.
Теоретические сведения
В Ubuntu существует
два вида интерфейса: графический интерфейс пользователя и интерфейс командной
строки.
Графический
интерфейс пользователя (англ. Graphical user interface, GUI).—
управление программами с помощью графических кнопок, всплывающих меню, окон и
других элементов. Множество действий можно выполнять с помощью мыши.
Преимущества:
визуальное отображение программ и их содержимого, возможности программ можно
изучать без чтения документации.
Интерфейс
командной строки(англ. Command Line Interface, CLI). —
управление программами с помощью команд. Команды состоят из букв, цифр,
символов, набираются построчно, выполняются после нажатия клавиши Enter.
Основной инструмент здесь клавиатура.
Данный
интерфейс встроен в ядро системы, он будет доступен, даже если графический
интерфейс не запустится.
Преимущества:
небольшой расход ресурсов, гибкость при составлении перечня действий из команд,
возможность автоматического выполнения команд, возможность копировать и
вставлять команды.
Если сравнивать
интерфейсы в разных системах, то можно заметить, что основные команды одинаковы
во всех дистрибутивах семейства Linux, а вот графические программы в каждой
системе могут очень сильно различаться.
Добраться до
командной строки можно двумя способами: через консоль или терминал.
1)
Консоль
Во время загрузки
Ubuntu запускаются семь полноэкранных консолей, у каждой свой независимый
сеанс, с первой по шестую с интерфейсом командной строки, в седьмой запускается
графический режим. Пользователь во время загрузки видит только графический
режим.
Переключиться
на одну из виртуальных консолей можно нажав сочетание клавиш:
Ctrl+Alt+F1 —
первая виртуальная консоль;
Ctrl+Alt+F2 —
вторая виртуальная консоль;Ctrl+Alt+F3 — третья виртуальная консоль;
Ctrl+Alt+F4 —
четвертая виртуальная консоль;
Ctrl+Alt+F5 —
пятая виртуальная консоль;
Ctrl+Alt+F6 —
шестая виртуальная консоль;
Ctrl+Alt+F7 —
седьмая виртуальная консоль, возврат в графический режим.
2)
Терминал
Терминал— графическая
программа эмулирующая консоль.
Такие программы
позволяют не выходя из графического режима выполнять команды.
Терминал по
сравнению с консолью имеет дополнительный функционал (различные настройки,
вкладки, можно запускать много окон, управление мышью в некоторых программах,
контекстное меню, главное меню, полоса прокрутки).
Запустить терминал
можно следующим образом:
В Unity: Главное
меню → Набрать в поисковой строке слово Терминал
или нажать
комбинацию клавиш: Ctrl+Alt+T
В Gnome
Fallback
Приложения →
Стандартные → Терминал
В Xfce
(Xubuntu): Главное меню → Приложения → Система → Терминал
В KDE (Kubuntu): Главное
меню → Приложения → Система → Терминал
В LXDE
(Lubuntu): Главное меню → Системные → LXTerminal
После запуска
терминала мы видим строку с приглашением к вводу команд, например:
vladimir@Zotac-Zbox-Nano:~$
vladimir — имя
учетной записи пользователя
@ — разделитель
Zotac-Zbox-Nano
— имя компьютера
: — разделитель
~ — в какой
папке выполняется команда, ~ это домашняя папка пользователя, если выполните
команду ls то получите список файлов из этой паки
$ — приглашение
к выполнению команды с правами простого пользователя (# будет означать
приглашение на выполнение команд с правами администратора)
Работа
в командной строке
В только что
установленной системе имеется всего один пользователь, который может выполнить
вход. Это привилегированный пользователь (суперпользователь) root, наделенный
администраторскими правами.
ВАЖНО!
Для root’а нет ограничений по управлению ресурсами системы. С точки зрения
безопасности не следует выполнять повседневные задачи в сеансе
суперпользователя.
После ввода
имени пользователя, система запросит пароль для него, проверит введенную
информацию и, если все правильно, откроет пользовательский сеанс. Экран примет примерно такой вид:
ASPLinux release 10 (Karelia)
Kernel 2.6.9-1.667asp on an i686
localhost login: root
Password:
Last login: Thu Sep 8 11:59:42 on tty3
[root@localhost ~]#
С этого
момента система готова принимать команды от пользователя и выполнять их. Все
команды поступают на исполнение через командную строку (строку приглашения).
Строка приглашения есть ничто иное, как пользовательский интерфейс,
представляемый оболочкой системы. Оболочка — это программа-посредник между
пользователем и операционной системой. В Линукс (как впрочем и в других
unix-системах) оболочки могут быть различными, однако чаше всего используются
различные варианты sh (от shell)- bash, tsh, zh и т.п. Оболочки в той или иной
степени упрощают работу пользователя, представляя такие возможности, как
автоподстановка текста, история ввода, встроенные скриптовые языки. Основная же
их задача — получить команду, введенную пользователем и передать ее на
исполнение операционной системе. Формат ввода команд прост и одинаков для все
оболочек: нужно указать имя команды и, возможно, набор параметров для нее.
Пример ввода и выполнения команды без параметров:
[root@localhost ~]# pwd
/root
[root@localhost ~]#
Еще один
пример команды с указанием именем файла в качестве параметра:
[root@localhost ~]# cat hello.txtHello,World
Следующий, чуть
более сложный пример, иллюстрирует работу с командной строкой Linux для компиляции
Java-приложений:
[root@localhost ~] javac -classpath /usr/share/tomcat/lib/tomcat-servlet-3.0-api.jar:classes
/srv/tomcat/webapps/myapp/WEB-INF/classes/MyServlet.java
Линукс — это
POSIX-совместимая операционная система, т.е. она соответствует стандартам и
спецификациям IEEE 1003.x (POSIX). Следовательно, набор основных команд Линукс соответствует
командам UNIX-подобных ОС. Несколько команд предлагаются вам для изучения в
этой лабораторной работе. Информацию о командах вы можете получить через
встроенную справочную систему формата man (от manuals) или info. Для получения
справки достаточно ввести man (или info) с именем нужной команды в качестве
параметра:
[root@localhost ~]# man pwd
Результатом
выполнения станет вывод информации о назначении, синтаксисе и ключевых
параметрах заданной команды:
PWD(1) User Commands PWD(1)
NAME
pwd - print name of current/working directory
SYNOPSIS
pwd [OPTION]
DESCRIPTION
NOTE: your shell may have its own version of pwd which will supercede the version
described here. Please refer to your shell’s documentation for details about the options it <...>
Аналогичным
образом можно получить и «справку о справке»:
[root@localhost ~]# man man
При
использовании дополнительных опций, команды man может выполнять дополнительные
функции при отображении справочной информации.
stilo:/home/aag # man --help
Выход из
справочной системы в командную строку выполняется клавишей q[uite].
Помимо
информации о командах, справку можно получить и о системных сервисах (в
терминологии Unix — демонах, daemon’s), а также о формате служебных и
конфигурационных файлов.
Некоторым
неудобством встроенной справочной системы man является то, что далеко не вся
информация локализована, т.е. переведена с английского языка. Частичным
решением этой проблемы является справка формата info, которая, однако, имеется
не для всех команд и менее подробная.
Еще одна
возможность получения информации о команде — это выполнение ее с параметром
—help. Например:
[root@localhost ~]# pwd --help
Использование: ls [КЛЮЧ]... [ФАЙЛ]...
Выдает информацию о FILE (текущий каталог по умолчанию).
Сортирует в алфавитном порядке если ни один из ключей -cftuSUX --sort не задан.<...>
Обратите
внимание: в квадратных скобках ([]) указываются НЕОБЯЗАТЕЛЬНЫЕ
параметры, а ключи могут быть объединены.
Перечень
команд:
ПРИВИЛЕГИИ
sudo command — запустить команду как
root
sudo –s — открыть оболочку root
sudo -s -u user — открыть оболочку
как пользователь
sudo –k — восстановить пароль
sudo
gksudo command — визуальный диалог sudo
(GNOME)
kdesudo command — визуальный диалог sudo
(KDE)
sudo visudo — редактировать
/etc/sudoers
gksudo nautilus — корневой файловый
менеджер (GNOME)
kdesudo konqueror — корневой файловый
менеджер (KDE)
passwd — изменить ваш пароль
СЕТЬ
Ifconfig — показать информацию о
сети
Iwconfig — показать информацию о
беспроводной сети
sudo iwlist scan — поиск беспроводных
сетей
sudo /etc/init.d/networking restart — перезапустить сеть
/etc/network/interfaces — файл для
ручной настройки сети
ifup interface — включить интерфейс
ifdown interface — отключить интерфейс
ping host — пропинговать host и
вывести результат
whois domain — получить информацию
whois для domain
wget file — скачать file
ifconfig eth0″ — показать
конфигурацию сетевого интерфейса eth0
ifup eth0″ — активировать
интерфейс eth0
ifdown eth0″ — деактивировать
интерфейс eth0
ifconfig eth0 192.168.1.1 netmask
255.255.255.0″ — выставить интерфейсу eth0 ip-адрес и
маску подсети
ifconfig eth0 promisc» — перевести
интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)
ifconfig eth0 -promisc» — отключить
promiscuous-режим на интерфейсе eth0
dhclient eth0″ — активировать
интерфейс eth0 в dhcp-режиме.
route -n» — вывести локальную
таблицу маршрутизации
route add -net 0/0 gw IP_Gateway» — задать ip-адрес
шлюза по умолчанию (default gateway)
route add -net 192.168.0.0 netmask 255.255.0.0
gw 192.168.1.1″ — добавить статический маршрут в сеть
192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1
route del 0/0 gw IP_gateway» — удалить
ip-адрес шлюза по умолчанию (default gateway)
echo «1″ >
/proc/sys/net/ipv4/ip_forward» — разрешить
пересылку пакетов (forwarding)
hostname» — отобразить имя
компьютера
ip link show» — отобразить
состояние всех интерфейсов
mii-tool eth0″ — отобразить статус и
тип соединения для интерфейса eth0
ethtool eth0″ — отображает
статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и
текущие режимы соединения
netstat -tupn» — отображает
все установленные сетевые соединения по протоколам TCP и UDP без разрешения
имён в ip-адреса и PID’ы и имена процессов, обеспечивающих эти соединения
netstat -tupln» — отображает
все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса
и PID’ы и имена процессов, слушающих порты
tcpdump tcp port 80″ — отобразить
весь трафик на TCP-порт 80 (обычно — HTTP)
iwlist scan» — просканировать
эфир на предмет, доступности беспроводных точек доступа
iwconfig eth1″ — показать
конфигурацию беспроводного сетевого интерфейса eth1
cat /proc/net/dev — показать
сетевые интерфейсы и статистику по ним
dig domain – получить DNS информацию domain
ДИСПЛЕЙ
sudo /etc/init.d/gdm restart — перезапустить
X и вернуться к авторизации (GNOME)
sudo /etc/init.d/kdm restart —
перезапустить X и вернуться к авторизации (KDE)
/etc/X11/xorg.conf — файл настроек
экрана
sudo dexconf — сбросить
конфигурацию xorg.conf
Ctrl+Alt+Bksp — перезапустить
X-сервер, если завис
Ctrl+Alt+FN — переключиться
на интерфейс командной строки
Ctrl+Alt+F7 — переключиться обратно
на графический интерфейс пользователя
СПЕЦИАЛЬНЫЕ ПАКЕТЫ
ubuntu-desktop — стандартная
среда Ubuntu
kubuntu-desktop — рабочий стол
KDE
xubuntu-desktop — рабочий
стол XFCE
ubuntu-minimal — основные утилиты
Ubuntu
ubuntu-standard — стандартные
утилиты Ubuntu
ubuntu-restricted-extras — несвободные,
но полезные пакеты для Ubuntu
kubuntu-restricted-extras — несвободные,
но полезные пакеты для Kubuntu
xubuntu-restricted-extras —
несвободные, но полезные пакеты для Xubuntu
build-essential — пакеты, используемые
для компиляции программ
linux-image-generic — последний образ ядра generic
linux-headers-generic —последние headers ядра
СИСТЕМНЫЕ СЛУЖБЫ
start service — начать
работу службы (Upstart)
stop service — остановить
работу службы (Upstart)
status service — проверить,
запущена ли служба (Upstart)
/etc/init.d/service start — запустить службу (SysV)
/etc/init.d/service stop — остановить службу (SysV)
/etc/init.d/service status — проверить статус службы (SysV)
/etc/init.d/service restart — перезапустить службу (SysV)
runlevel — получить текущий
уровень запуска
БРАНДМАУЭР
ufw enable — включить
брандмауэр
ufw disable — выключить
брандмауэр
ufw default allow — разрешить все
соединения по умолчанию
ufw default deny — запретить
все соединения по умолчанию
ufw status — текущий
статус и правила
ufw allow port — разрешить
трафик на порт
ufw deny port — заблокировать
порт
ufw deny from ip — заблокировать
IP-адрес
УПРАВЛЕНИЕ ПАКЕТАМИ
apt-get update — обновить
доступные обновления
apt-get upgrade — обновить все
пакеты
apt-get dist-upgrade — обновить версию Ubuntu
apt-get install pkg — установить пакет (pkg)
apt-get purge pkg — удалить пакет (pkg)
apt-get autoremove — удалить
устаревшие пакеты
apt-get -f install — попробовать исправить
битые пакеты
dpkg —configure -a — попробовать
исправить битые пакеты
dpkg -i pkg.deb — установить файл
pkg.deb
/etc/apt/sources.list — файл со
списком APT репозиториев
ИМЕНА ПРИЛОЖЕНИЙ
nautilus — файловый
менеджер (GNOME)
dolphin — файловый
менеджер (KDE)
konqueror — веб-браузер
(KDE)
kate — текстовый
редактор (KDE)
gedit — текстовый
редактор (GNOME)
СИСТЕМА
Восстановление — нажмите и
удерживайте Alt+SysRq (PrintScrn), затем с паузами в одну секунду,
нажимайте клавиши R, E, I, S, U, B для безопасной перезагрузки системы
lsb_release -a — получить версию
Ubuntu
uname -r — получить
версию ядра
uname -a — получить всю
информацию о ядре
СИСТЕМНАЯ ИНФОРМАЦИЯ
arch — отобразить
архитектуру компьютера
cat /proc/cpuinfo — показать
информацию о ЦПУ
cat /proc/meminfo — проверить
использование памяти
df — информация об
использовании дисков
hdparm -i /dev/hda — вывести
характеристики жесткого диска
lspci -tv — показать в
виде дерева PCI устройства
lsusb -tv — показать в
виде дерева USB устройства
uptime — показать время
работы с момента включения
uname -a — показать
информацию о ядре
clock -w — сохранить
системное время в BIOS
shutdown -h now — Остановить
систему
shutdown -r now — перегрузить
систему
logout — выйти из
системы
ФАЙЛОВЫЕ КОМАНДЫ
cd /home — перейти в
директорию ‘/home’
cd .. — перейти в директорию уровнем выше
cd ../.. — перейти в директорию двумя уровнями
выше
cd — перейти в домашнюю директорию
cd ~user — перейти в домашнюю директорию
пользователя user
cd — — перейти в директорию, в которой
находились до перехода в текущую директорию
pwd — показать текущюю директорию
ls — отобразить содержимое текущей директории
ls -F — отобразить содержимое текущей директории
с добавлением к именам символов, храктеризующих тип
ls -l — показать детализированое представление
файлов и директорий в текущей директории
ls -a — показать скрытые файлы и директории в
текущей директории
ls *[0-9]* — показать файлы и директории
содержащие в имени цифры
tree — показать дерево файлов и директорий,
начиная от корня (/)
mkdir dir1 — создать директорию с именем ‘dir1′
mkdir dir1 dir2 — создать две директории
одновременно
mkdir -p /tmp/dir1/dir2 — создать дерево
директорий
rm -f file1 — удалить файл с именем ‘file1′
rmdir dir1 — удалить директорию с именем ‘dir1′
rm -rf dir1 — удалить директорию с именем ‘dir1′
и рекурсивно всё её содержимое
rm -rf dir1 dir2 — удалить две директории и
рекурсивно их содержимое
mv dir1 new_dir — переименовать или переместить
файл или директорию
cp file1 file2 — сопировать файл file1 в файл
file2
cp dir/* . — копировать все файлы директории dir
в текущую директорию
cp -a /tmp/dir1 . — копировать директорию dir1
со всем содержимым в текущую директорию
cp -a dir1 dir2 — копировать директорию dir1 в
директорию dir2
ПОЛЬЗОВАТЕЛИ И ГРУППЫ
whoami — имя, под
которым вы залогинены
groupadd group_name — создать новую группу с
именем group_name
groupdel group_name — удалить группу group_name
groupmod -n new_group_name old_group_name — переименовать
группу old_group_name в new_group_name
useradd -c «Nome Cognome» -g admin -d /home/user1 -s /bin/bash
user1 — создать пользователя user1, назначить ему в
качестве домашнего каталога /home/user1, в качестве shell’а /bin/bash, включить
его в группу admin и добавить комментарий Nome Cognome
useradd user1 — создать пользователя user1
userdel -r user1 — удалить пользователя user1 и
его домашний каталог
usermod -c «User FTP» -g system -d /ftp/user1 -s /bin/nologin
user1 — изменить атрибуты пользователя
passwd — сменить пароль
passwd user1 — сменить пароль пользователя user1
(только root)
chage -E 2005-12-31 user1 — установить дату
окончания действия учётной записи пользователя user1
pwck — проверить корректность системных файлов
учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
grpck — проверяет корректность системных файлов
учётных записей. Проверяется файл/etc/group
newgrp [-] group_name — изменяет первичную
группу текущего пользователя. Если указать «-», ситуация будет идентичной той,
в которой пользователь вышил из системы и снова вошёл. Если не указывать
группу, первичная группа будет назначена из /etc/passwd
УСТАНОВКА
ПАКЕТОВ
apt-get istall application_name — установить приложение application_name
Установка из исходников:
./configure
make
make install
dpkg -i pkg.deb — установить
пакет (Debian)
ПРИВИЛЕГИРОВАННЫЙ ЗАПУСК ПРИЛОЖЕНИЙ
sudo комманда — запуск команды
под именем привилегированного пользователя
gksu комманда — тоже самое, разница в том что
появляется графическое окно с просьбой ввести пароль в обоих случаях вводится
пароль вашего текущего пользователя.
Завершение
работы
Первые
Unix-подобные ОС создавались в расчете на длительную работу без выключения
компьютера. ОС Линукс — не исключение и завершение работы компьютера с ОС
Линукс имеет некоторые особенности, которые в общем-то, зависят от конфигурации
системы. Как правило, полное выключение может выполнять только
суперпользователь по команде shutdown. Непривилегированный же пользователь
может выполнить только завершение собственного сеанса (командой exit или
комбинацией клавиш Ctrl+D).
По команде
shutdown (в зависимости от параметров) система может быть остановлена в
указанное время с предварительной рассылкой сообщения. Перед выключением Линукс
записывает все несохраненные данные на диск, выгружает запущенные программы и
последовательно останавливает системные сервисы. Во избежание потери информации
необходимо дождаться сообщения о том, что питание можно отключить.
При
завершении сеанса Линукс выгружает только те программы, которые были запущены
текущим пользователем, затем выгружает оболочку и снова выводит приглашение
login.
Задания к
выполнению
1.
Включить
компьютер и определить, какой загрузчик используется в системе и имеются ли
другие операционные системы на компьютере
2.
Наблюдая
за процессом загрузки ядра обратить внимание на то, какие сервисы загружаются и
сделать предположения о их назначении. Выяснить, как можно перейти в режим
интерактивной загрузки. Переключиться в этот режим и определить, какие сервисы
могут быть запущены по запросу пользователя
3.
Войти в
систему с учетной записью суперпользователя.
4.
Ознакомиться
со справочными системами man и info
5.
Получить
справочную информацию о следующих командах: useradd, passwd, exit,
logout, who, shutdown, su, users, groups.
6.
Создать
собственную учетную запись (с которой вы будете работать в дальнейшем).
Установить пароль для этой учетной записи.
7.
Завершить
сеанс суперпользователя
8.
Войти в
систему с собственной учетной записью
9.
С помощью
справочной системы man проверить предположения о назначении служб, которые
запускаются в процессе загрузки системы (см. п.2).
Контрольные
вопросы
1.
Все ли
сервисы могут быть отключены в режиме интерактивной загрузки? Почему?
2.
Почему
пользователь, для которого при регистрации не был указан никакой пароль (ни
командой useradd -p, ни командой passwd), не сможет войти в
систему? (подсказка: обратите внимание на описание команды useradd)
3.
Система
работает под управлением непривилегированного пользователя. Какую команду (или
команды) должен выполнить такой пользователь, чтобы завершить работу системы и
выключить компьютер?
4.
Какие
отличия имеются между командами exit и logout?
Практическая
работа №6 Терминалы и текстовый режим
Цель
работы
Научиться основным
навыкам работы в многопользовательском режиме, переключению между терминалами и
выполнению заданий от имени другого пользователя.
Методические
указания
Текстовый
режим Линукс, несмотря на то, что внешне напоминает окно ОС DOS, принципиально
отличается от нее по своим возможностям. Дело в том, что даже в текстовом
режиме Линукс, как и все unix-подобные системы, остается многозадачной
системой. Более того, изначально созданная как многопользовательская система,
Линукс позволяет одновремено работать различным пользователям. Для обеспечения
такой возможности используется концепция терминалов.
Изначально,
терминал — это интерфейс ввода/вывода, состоящий из физических устройства ввода
(клавиатура) и вывода (дисплей). Терминал предназначен исключительно для ввода
информации и ее отображения на экране. Терминалы бывают физическими
(реальными), виртуальными и псевдотерминалами (т.е. программами, которые
«притворяются» терминалами). Не останавливаясь на подробностях работы
реальных терминалов отметим, что при выполнении лабораторных работ вы будете
использовать виртуальные терминалы.
Первый
виртульный терминал системы вы можете видеть сразу после загрузки Линукс.
Именно в нем отображается приглашение для авторизации. Однако первый терминал —
не единственный. По умолчанию Линукс представляет доступ к шести текстовым
терминалам, которые соответственно называются tty1, tty2 и т.д. Переключение
между ними осуществляется сочетанием клавиш Ctrl+F1, Ctrl+F2, Ctrl+F3 и т.д.
При загруженной графической оболочке открытие терминалов и переключение между
ними производится клавишами Alt+Ctrl+Fn, (где n — номер терминала). Сама
графическая оболочка будет доступна по Alt+Ctrl+F7. Для работы в каждом новом
терминале вы должны прежде всего авторизоваться. Таким образом, в системе
одновременно могут работать несколько различных пользователей, каждый в своем
терминальном сеансе.
Для того,
чтобы узнать, номер текущего терминала, можно использовать команду tty (см. man
tty). Команда очень проста и не требует параметров. Пример работы tty:
[aag@localhost fpk]$ tty
/dev/tty1
Чтобы
узнать, какие пользователи в каких терминалах залогинены в системе, можно
использовать команду who:
[aag@localhost fpk]$ who
root tty1 Feb 17 17:11
aag tty2 Feb 17 17:12
aag tty5 Feb 17 17:40
Иногда возникает
необходимость выполнить некоторые действия от имени другого пользователя
(например, от имени root). Это можно сделать, открыв новый терминальный сеанс,
но можно и иначе, в текущем сеансе. Для этого используется команда su. Эта
команда по умолчанию (без параметров) открывает сеанс суперпользователя,
выполняющийся внутри сеанса непривилегированного пользователя.
Пример выполнения команды su:
[aag@localhost ~]$ su
Password:
[root@localhost aag]#
Еще один
пример, с явным указанием имени пользователя:
[aag@localhost ~]$ su stud
Password:
[stud@localhost ~]$
Для
окончания пользовательского сеанса, запущенного командой su, или выхода из
терминала, используется команда exit или комбинация клавиш Ctrl+D. В любом
случае система закроет сеанс и отобразит строку приглашения.
Дополнительная
информация об указанных командах доступна в справочном руководстве формата man
или info.
Задания к
работе
1.
Загрузить
систему в текстовом режиме и войти с собственной учетной записью
2.
Выяснить,
какой каталог является текущим (см. man pwd).
3.
Выяснить,
в каком терминале выполняется текущий сеанс.
4.
Открыть
новый сеанс в tty3 для пользователя root
5.
Повторить
п.2
6.
Открыть
новый сеанс в tty5 для пользователя stud (если такого пользователя нет в
системе, то его нужно добавить)
7.
Повторить
п. 2
8.
Перейти в
tty1 и выяснить, какие пользователи и в каких терминалах работают в текущий
момент
9.
Создать
текстовые файлы с именем user.txt произвольного содержания в каталогах
/root , $HOME , /home/stud.
Примечание: Для создания файлов Вы можете использовать, к примеру, встроенный
редактор файлового менеджера MC (Midnight Commander).
10.
Перейти в
tty3 и повторить п.9 (имя для файлов – root . txt ).
11.
Перейти в
tty 5 и повторить п.9 (имя для файлов – stud . txt ).
12.
Сравнить
результаты выполнения пп 9, 10 и 11.
13.
Перейти в
tty1 и объединить содержимое файлов, полученных в ходе выполнения пп 9, 10 и 11
в один файл с именем all.txt и вывести этот файл на экран (см. man cat)
14.
Повторить
предыдущее задание от имени суперпользователя из tty1.
15.
Завершить
все сеансы
Контрольные
вопросы
1.
Какой
каталог будет установлен текущим сразу же после входа пользователя в систему?
2.
Какой
каталог будет установлен текущим после выполнения команды su?
3.
Какой
терминал (tty) будет открыт по нажатию Ctrl+F7?
Практическая
работа №7 Файловая система
Цель
работы
Ознакомиться
со структурой файловой системы Линукс, типами файлов и командами управления
файловой системой.
Методические
указания
Организация файловой системы
Файловая система ОС Линукс (как и прочих unix-подобных
систем) устроена так, что все ресурсы представлены единообразно, в виде файлов.
Такой подход позволяет обеспечить универсальный интерфейс доступа к любым
ресурсам: от физических устройств, до процессов, выполняющихся в системе. С
точки зрения пользователя файловая система представляет логическую структуру
каталогов и файлов. С другой стороны, невидимой пользователю, внутреннее
устройство файловой системы реализует физические операции чтения/записи файлов
на различные носители, алгоритмы доступа и многое другое.
Типы файлов
Для
обеспечения единообразного доступа к файлам их прежде всего необходимо
классифицировать. В Линукс это сделано следующим образом:
· обычные (regular) файлы — текстовые,
исполняемые, графические и пр. файлы, создаваемые пользователями и прикладными
программами;
· каталоги (directories) — именованные группы
файлов и вложенных каталогов (т.е. содержимое каталога — суть файлы и другие
каталоги);
· файлы устройств (devices) — соответствуют
присутствующим в системе реальным (жесткие диски, принтеры, мыши, ЦП и т.д.)
устройствам и т.н. псевдоустройствам (например, /dev/null). Файлы устройств
представляют символьные (последовательного доступа) и блочные (произвольного
доступа) устройства. К первыми относятся, например, параллельные и
последовательные порты, ко вторым — жесткие диски;
· специальные файлы — сокеты (sockets) и
именованные каналы (named pipes), которые предназначены для обмена информацией
между процессами;
· символьные ссылки (symlinks) — именованные указатели
на физические файлы (аналог ярлыков ОС Windows), содержащие только путь к
некоторому файлу. Символьные ссылки могут указывать на файлы, хранящиеся как
локальных, так и в сетевых каталогах.
Символьные ссылки
(или «мягкие») не нужно путать с «жесткими», которые
указывают на inode файла. Inode (идентификатор узла) — это уникальный числовой
идентификатор узла (файла или каталога) файловой системы, по которому и
осуществляется доступ к нему. Символьное имя файла (включая полный путь)
ориентировано на пользовательское восприятие. Для человека-оператора проще
запомнить осмысленные имена файлов (например: report.txt, myfoto.jpg и т.п.),
чем абстрактные числовые значения. Прочие отличия «жестких» и
«мягких» ссылок вам предстоит выяснить в ходе выполнения этой
лабораторной работы.
Каталоги Линукс
Все файлы
упорядочены по каталогам. Структура и назначение каждого из каталогов,
созданных на этапе установке предопределены, хотя и могут быть (что не стоит
делать без крайней необходимости) изменены суперпользователем.
Файловая
система имеет иерархическую структуру и начинается от корневого каталога (/).
Его подкаталогами являются:
· /bin — исполняемые файлы общего
назначения;
· /boot — содержит образ
загружаемого ядра;
· /dev — файлы устройств;
· /etc — конфигурационные файлы общего
пользования;
· /home — домашние каталоги
пользователей, включая программы и файлы личных предпочтений;
· /lib — общесистемные библиотеки;
· /mnt — каталог монтирования внешних
файловых систем;
· /proc — виртуальная файловая
система для чтения информации о процессах;
· /root — домашний каталог
суперпользователя;
· /sbin — программы системного
администрирования;
· /tmp — каталог для хранения
временной информации;
· /usr — каталог пользовательских
прикладных программ со всеми их исполнимыми и конфигурационными файлами.
Например, в подкаталог /usr/local инсталлируются программы, не входящие в
дистрибутив Линукс, или собираемые из исходных текстов.
· /var — каталог для хранения часто
изменяющихся файлов. Например, спулера печати, различных лог-файлов, почтовых
сообщений и т.п.
· /lost+found — каталог для
нарушенных фрагментов файлов, обнаруженных в результате проверки файловой
системы после сбоя.
Такая
стуктура типична для большинства дистрибутивов Линукс, но могут иметься и
дополнительные каталоги. Например, /opt — для дополнительных компонентов,
/selinux — расширение системы безопасности и т.п.
Именование файлов и каталогов
Файловая
система Линукс поддерживает «длинные» имена, содержащие символы
латиницы, национальных алфавитов, знаки пунктуации и спецсимволы. Абсолютно
запрещенными к использованию в имени являются прямой и обратный слэши (/ и \).
Максимальное количество символов в имени — 255. Понятие «расширения
файла» в unix-системах отсутсвует как таковое, поэтому в имени может быть
несколько частей, разделенных точками. Все имена — регистрозависимые.
Приведенные
выше правила справедливы и для каталогов.
Файлы и
каталоги, названия которых начинаются с точки (т.н. dot-файлы), являются аналогами
«скрытых» файлов MS-DOS. Т.е. в общем случае они не отображаются при
просмотре содержимого файловой системы.
Для быстрого
доступа к файлам в оболочке имеются несколько переменных окружения, хранящих
соответвующие пути. Это, например, переменная $HOME, в которой содержится пути
к домашнему каталогу текущего пользователя. Т.е. действия команд
[usr1@localhost var]$ cd /home/usr1
и
[usr1@localhost var]$ cd $HOME
приведут к
одному результату — переходу в домашний каталог пользователя usr1. Более того,
в оболочке определен псевдоним для домашнего каталога — символ ~ (тильда) можно
использовать аналогично $HOME. Например:
[usr1@localhost var]$ cd ~
[usr1@localhost ~]$ pwd
/home/usr1
[usr1@localhost var]$
Некоторые
другие возможности оболочки будут рассмотрены в следующих лабораторных работах.
Дополнительная информация доступна в справочном руководстве bash (man bash).
Команды управления файловой системой
Для
управления файловой системой имеются различные команды, реализующие операции по
созданию, чтению, копированию, переименованию/перемещению, изменению и удалению
файлов и каталогов. Как правило, это специализированные команды, хорошо
выполняющие свою задачу, однако некоторые функции могут частично дублироваться
другими командами, что только добавляет гибкости управлению файлами.
Основными
командами для выполнения файловых операций являются: pwd, ls, cp, mv, dir, rm,
cd, rmdir, mvdir, mkdir, ln. Информацию о их назначении и параметрах доступна в
формате man и info.
Несколько
слов о способах создания файлов в Линукс:
· во-первых, файлы могут быть
созданы как результаты работы прикладных программ и иметь определенный формат
(например, графические файлы, созданные редактором GIMP);
·
во-вторых,
файлы могут быть созданы пользователем путем ввода информации с клавиатуры,
например так:
aag@stilo:~> cat > f1
Hello, world! // нажатие Ctrl+D завершает ввод команд
aag@stilo:~>
·
в-третьих,
файлы могут быть созданы путем перенаправления вывода команды со стандартного
потока, например так:
[
root@localhost aag]# echo «Hello, World!» > f1
В первом и
втором случаях символ «>» — это команда перенаправления
стандартных потоков ввода/вывода, встроенная в оболочку. В первом случае она
получает информацию со стандартного потока ввода (клавиатура) и, по окончании
ввода (Ctrl+D), отправляет ее в файл. Во втором — принимает строку, переданную
командой echo и также отправляет ее в файл. Если файл отсутствует, то он будет
создан, если имеется, то будет перезаписан. Для добавления информации
в файл следует использовать команду «>>». Больше информации о
командах перенаправления можно получить в справке о возможностях оболочки.
Задания
к выполнению
1.
Войти в
систему с собственной учетной записью
2.
Вывести
на экран список файлов текущего каталога в краткой и расширенной форме
3.
Переместиться
в каталог /
4.
Сохранить
в файле $HOME/filelist.lst список каталогов в каталоге /
5.
Вернуться
в домашний каталог и вывести рекурсивный список всех (в т.ч. и скрытых) файлов
и каталогов
6.
В
домашнем каталоге создать подкаталоги src, dst и temp
7.
В
каталоге src создать текстовый файл f1 произвольного содержания
8.
В каталог
src скопировать файлы user.txt, root. txt и stud.txt, созданные в лабораторной
работе № 2. Все ли файлы удалось скопировать?
9.
В
каталоге dst создать «жесткие» ссылки на все файлы из каталога src
10.
В
домашнем каталоге создать «мягкие» ссылки на файлы из каталога src
11.
Вывести
рекурсивно расширенную информацию о содержимом домашнего каталога. Обратить
внимание на поле размера для физических файлов и ссылок
12.
Из
домашнего каталога выполнить команды:
o
cat /src/f1
o
cat /dst/f1
o
cat /f1
13.
Запомнить
результаты выполнения
14.
Переместить
файл f1 из каталога src в каталог temp и повторить п.12
15.
Удалить
файл f1 и повторить п.12
16.
Сравнить
результаты выполнения пп 12, 13 и 14
17.
Удалить
все файлы, имеющие в названии txt из каталога dst
18.
Удалить
каталог dst
19.
Переместить
каталог temp в src
20.
Рекурсивно
удалить каталог src
21.
Завершить
сеанс
Контрольные
вопросы
1.
Совпадает
ли размер символьных и жестких ссылок?
2.
Какой
командой можно удалить непустой каталог?
3.
Пусть в
системе имеется каталог $HOME/test. Что произойдет при попытке выполнить
следующую команду: cp $HOME/test $HOME/test/newdir
?
Практическая
работа №8 Процессы. Доступ процессов к файловой системе
Цель
работы
Получить
представление о процессах, как о способе управления ресурсами в Линукс.
Научиться получать и анализировать информацию о процессах и управлять
состоянием выполняющихся процессов.
Методические
указания
Понятие процесса
Под
процессами во всех unix-подобных системах подразумевается любая независимо
выполняющаяся программа со всеми используемыми ресурсами. Процесс — одно из
ключевых понятий, на которых базируется Линукс, как unix-подобная система, и
оно тесно связано с такими понятиями, как учетные записи, права доступа и
файловая система. Эта связь неразрывна и, вдобавок, рекурсивна:
· пользователь (реальный или
виртуальный) запускает процессы, порождающие файлы;
· права доступа процесса
соответствуют правам доступа запустившего его пользователя;
· порожденные процессом файлы
получают права, соответствующие правам процесса;
· права пользователя определены
параметрами его учетной записи.
Каждый процесс
уникален. Для идентификации процесса используется числовое значение, т.н. идентификатор
процесса (PID, Process Identificator). Для каждого процесса
известен владелец(пользователь, запустивший процесс). Если процесс
создан реальным пользователем, то он привязан к терминалу, из которого был
запушен. Для виртуальных (системных) пользователей такой ассоциации не
производится. Помимо собственного идентификатора, каждый процесс имеет еще
и идентификатор родительского процесса (PPID, Parent PID). В
каждый момент времени системе известно состояниепроцесса — степень
его исполнения. Процесс может быть:
· выполняемым в текущий момент (R,
Runned);
· находящимся в режиме
ожидания (S, Suspended);
· прерванным (T, Terminated),
например, при использовании клавиш Ctrl+Z;
· «зомби» (Z, Zombied) —
завершившимся, но от которого родительский процесс еще не принял сигнала
завершения. Спустя некоторое время «зомби» завершаются окончательно и
освобождают ресурсы;
· зависшим, или в
состоянии непрерывного ожидания (uninterruptible sleep). Такой процесс
не реагирует на какие-либо сигналы и может быть снят только перезагрузкой
системы.
Еще одной
характеристикой процессов является уровень приоритета (NI,
NIce value, «степень дружественности»). Уровень приоритета влияет на
количество системных ресурсов, выделяемых процессу.
Основными
командами для получения сведений о выполняемых процессах являются ps и top.
Фрагмент вывода сведений командой ps с параметрами a (расширенный вывод), u (с
указанием UID), x (в т.ч для виртуальных пользователей):
aag@stilo:~> ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 744 284 ? Ss 14:27 0:00 init [5]
root 2 0.0 0.0 0 0 ? S< 14:27 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 14:27 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? SN 14:27 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 14:27 0:00 [events/0]
root 6 0.0 0.0 0 0 ? S< 14:27 0:00 [khelper]
root 25 0.0 0.0 0 0 ? S< 14:27 0:00 [kblockd/0]
...
root 141 0.0 0.0 0 0 ? S< 14:27 0:00 [kswapd0]
root 142 0.0 0.0 0 0 ? S< 14:27 0:00 [aio/0]
root 367 0.0 0.0 0 0 ? S< 14:27 0:00 [kpsmoused]
root 377 0.0 0.0 0 0 ? S< 14:27 0:00 [kondemand/0]
...
root 991 0.0 0.0 0 0 ? D< 14:28 0:01 [kjournald]
root 1682 0.0 0.0 0 0 ? S< 14:28 0:01 [ipw2200/0]
root 1694 0.0 0.0 0 0 ? S< 14:28 0:00 [khpsbpkt]
wwwrun 3323 0.0 2.4 104548 12804 ? S 14:28 0:00 /usr/sbin/httpd
wwwrun 3324 0.0 2.4 104540 12816 ? S 14:28 0:00 /usr/sbin/httpd
...
Дополнительная
информация о команде ps доступна при указании параметра —help или в справке
man.
Управление процессами
Пользователь
может управлять только теми процессами, владельцем которых является.
Суперпользователь может управлять всеми процессами.
Управление
запущенными процессами сводится к приостановке выполнения, изменению приоритета
и принудительному завершению.
Приостановить
выполнение активного процесса можно сочетанием клавиш Ctrl+Z. Для продолжения
его работы можно использовать команду fg. Если имеется несколько
приостановленных процессов, то для команды fg необходимо указать порядковый
номер задания в текущей оболочке, (не путать с PID), работу которого нужно
продолжить. Узнать номер задания можно командой jobs.
Изменение
приоритета процесса — задача, возникающая (нечасто) при необходимости
перераспределения ресурсов системы. Значения уровня приоритета (nice value)
изменяется от -20 (наименьшая «дружественность», высший приоритет) до
+20 (низший приоритет). Все пользовательские (и большинство системных) процессы
запускаются с равным приоритетом (nice value = 0). Это значение может быть
изменено двояко:
· Во-первых, при запуске
программы командой nice с указанием необходимого уровня приоритета и именем
запускаемой программы. Например:
[aag@localhost ~]$ nice -5 find / *.html
· Во-вторых, для ранее
запущенной задачи, командой renice с указанием уровня и PID задачи. Например,
так:
[aag@localhost ~]$ renice --7 20117
Пользователь
имеет право понижать приоритет собственных задач.
Повышать уровень приоритета любой задачи может только
суперпользователь.
Гораздо
чаще, чем изменение приоритета, возникает необходимость принудительного
завершения (снятия) процесса. Такая ситуация возникает, например тогда, когда
процесс «зависает», т.е. перестает воспринимать нажатия клавиш и не
отвечает на системные события. Для снятия «зависшей» программы
предназначена команда kill, которая передает ей один из сигналов завершения.
Список сигналов доступен по команде kill -l, а их подробное описание — по
команде man 7 signal. Здесь же отметим, что без явного указания имени
(или номера), процессу будет передан сигнал SIGTERM (номер 15),
предписывающий по возможности корректно, с сохранением
информации, завершить работу. Примеры использования команды:
Вызов со
значением сигнала по умолчанию (SIGTERM):
[aag@localhost ~]$ find / *.html
[aag@localhost ~]$ ps
PID TTY TIME CMD
2663 pts/1 00:00:00 bash
20712 pts/1 00:00:00 find
20762 pts/1 00:00:00 ps
[aag@localhost ~]$ kill 20712
Явное
указание номера сигнала:
[aag@localhost ~]$ kill -15 20712
Явное
указание имени сигнала (номер 9, SIGKILL, требующий немедленного завершения
работы программы):
[aag@localhost ~]$ kill -SIGKILL 20712
Команда top
Большей
гибкостью и универсальностью по сравнению с командой ps обладает команда top.
Она позволяет не только получить информацию о процессах, но и выполнять
мониторинг через заданные интервалы времени. Так же эта команда позволяет
управлять процессами, объединяя возможности команд jobs, nice, fg и kill. Все
параметры и действия команды top являются настраиваемыми. Для команды доступна
как справка в формате man, так и интерактивная справка по нажатию клавиш H или
?.
Задания
1.
Войти в
систему с собственной учетной записью
2.
Получить
справку о команде ps
3.
Командой
ps вывести краткую информацию о выполняющихся процессах в текущем терминале и
определить PID текущей оболочки
4.
Получить подробную
инормацию о загруженных процессах и выяснить, какой из них использует
максимальный объем памяти, а какой — максимально загружает процессор
5.
Из
таблицы, полученной в п.4 выяснить, какой PID имеет процесс init и от чьего
имени он запущен
6.
Открыть
новый сеанс с собственной учетной записью в tty2 и запустить в нем файловый
менеджер MC
7.
Вернуться
в tty1 и снова просмотреть список процессов. Определить PID MC, запущенного от
вашего имени
8.
Повторить
п. 6 для пользователей root и stud соответственно в tty3 и tty4
9.
Вернуться
в tty1 и определить PID MC, запущенного от имени root и stud
10.
Командой
kill снять все процессы MC
11.
Перейти в
tty3 (сеанс root) и повторить п.10. Чем можно объяснить различия в результатах
выполнения?
12.
В tty1
выполнить команду top. Сравнить ее возможности с возможностями ps
13.
Используя
top или ps определить, какие процессы порождены (поле PPID) процессом init
(PID=1)
14.
Завершить
сеансы в tty3 и tty4
15.
В tty1
запустить поиск всех файлов .html от каталога /. Приостановить этот процесс
(Ctrl+Z).
Запустить команду man bash и приостановить ее выполнение
16.
Командой
jobs определить номера задач, запущенных в п. 15
17.
Командой
fg продолжить выполнение man bash
18.
Принудительно
(kill) завершить команду find
19.
Завершить
все открытые сеансы
Отчет по
работе должен содержать ход выполнения работы и ответы на контрольные вопросы.
Контрольные вопросы
1.
В системе
зарегистрированы и работают пользователи user1 и user2. Может ли user1
завершить работу процесса, запущенного пользователем user2?
2.
Может ли
user1 понизить приоритет процесса, запущенного user2?
3.
Может ли
user1 повысить приоритет собственного процесса?
Практическая
работа №9 Управление правами доступа
Цель работы
Получить
навыки по управлению правами доступа к файловым ресурсам системы.
Теоретические сведения
Выполняя
предыдущие лабораторные работы вы уже сталкивались с разграничением прав
доступа в ОС Линукс. Такое разграничение обусловлено многозадачностью и
многопользовательским режимом Линукс и призвано повысить безопасность и надежность
системы, а также обеспечить защиту конфиденциальной информации.
Атрибуты файла
Каждый файл
в Линукс характеризуется набором атрибутов, определяющих его принадлежность и
права доступа. Отношение принадлежности файла определено для:
· владельца файла(user) — пользователя,
создавшего (что не обязательно) этот файл;
· группы (group) — в состав которой
входит владелец;
· прочих (other) пользователей.
К правам
доступа относятся: чтение (read), изменение (write),
исполнение (execute). Понимание этих прав будет различным и
зависеть от содержания файла. Наибольшие различия — между обычными (regular)
файлами и каталогами. Эти различия приведены в табл. 1.
Файлы |
Каталоги |
|
Чтение |
Просмотр |
Обзор списка |
Изменение |
Редактирование |
Обеспечивает |
Исполнение |
Разрешает |
Разрешает |
Атрибуты
файла могут быть представлены в символьном или числовом виде. Символьное
представление атрибутов — это строка, где последовательно записаны права
доступа в следующем виде:
rwxrwxrwx
где каждая тройка символов определяет права на чтение (r),
запись (w)
и исполнение (x)
для соответстующих пользователей (первая тройка — для владельца (user),
вторая — для группы (group), третья — для прочих (other).
Вот пример
отображения списка файлов с правами доступа, представленными в символьном виде:
aag@stilo:~> dir -L1
итого 2722316
-rw-r--r-- 1 aag users 498444757 Ноя 27 16:15 aag.asoiu.tar.gz
drwxr-xr-x 2 aag users 4096 Июн 1 2007 bin
-rw-r--r-- 1 aag users 26 Фев 20 10:20 description.txt
drwxr-xr-x 5 aag users 4096 Мар 2 20:01 Desktop
drwx------ 2 aag users 4096 Фев 23 09:50 Documents
drwxr-xr-x 4 aag users 4096 Фев 28 00:03 downloads
-rwxrwxr-x 1 aag users 7523 Окт 20 2006 Dz19.jpg
-rw-r--r-- 1 aag users 8336 Фев 24 01:12 httpd.myconf
-rw-r--r-- 1 aag users 20 Фев 25 16:32 index.html
-rw-r--r-- 1 aag users 30296 Фев 23 10:05 logofish.xcf
drwxr-xr-x 2 aag users 4096 Сен 28 22:53 Music
drwxr-xr-x 3 aag users 4096 Дек 3 13:45 Projects
drwxr-xr-x 4 aag users 4096 Фев 26 00:05 public_html
-rw-r--r-- 1 aag users 1088 Фев 20 10:18 readme.txt
drwxr-xr-x 4 aag users 4096 Фев 27 23:41 scrapbook
-rw------- 1 root root 0 Июн 2 2007 session_mm_cli0.sem
Обратите
внимание на первые символы в записи прав доступа. В приведенном листинге первый
символ dуказывает, что файл является каталогом. Признаком
специального символьного и блочного устройств являются символы с и b,
а для каналов (pipes)соответсвенно p.
Числовое
представление прав доступа — это трехзначное число, каждая цифра которого
определяет (слева направо) права для владельца, группы и прочих. Права
определяются как сумма цифр 4 (чтение), 2 (запись) и 1 (исполнение). Таким
образом, например файл f1, создателем которого является user1 и разрешенный для
чтения и изменения членам группы users и только чтение всем прочим, будет иметь
cледующие атрибуты:
— в символьном виде: rw-rw-r—
— в числовом
виде: 664
Вновь
создаваемый файл обычно получает права rw-r—r— (зависит от установок системы
и значения umask (см. man umask). Для изменения атрибутов
используется команда chmod, которая может принимать как символьное, так и
числовое представление атрибутов в качестве параметра. Ниже приведены примеры использования
команды:
aag@stilo:~> dir hello.txt
-rw-r--r-- 1 aag users 17 Мар 2 22:32 hello.txt
aag@stilo:~> chmod go+w hello.txt // разрешить запись для группы и прочих
aag@stilo:~> dir hello.txt
-rw-rw-rw- 1 aag users 17 Мар 2 22:32 hello.txt
aag@stilo:~> chmod ug+x hello.txt // разрешить выполнение для владельца и группы
aag@stilo:~> dir hello.txt
-rwxrwxrw- 1 aag users 17 Мар 2 22:32 hello.txt
aag@stilo:~> chmod a-x hello.txt // запретить выполнение для всех (a == ugo)
aag@stilo:~> dir hello.txt
-rw-rw-rw- 1 aag users 17 Мар 2 22:32 hello.txt
aag@stilo:~> chmod go-w hello.txt // запретить запись для группы и прочих
aag@stilo:~> dir hello.txt
-rw-r--r-- 1 aag users 17 Мар 2 22:32 hello.txt
aag@stilo:~> chmod 755 hello.txt // разрешить чтение и выполнение всем и запись владельцу
aag@stilo:~> dir hello.txt
-rwxr-xr-x 1 aag users 17 Мар 2 22:32 hello.txt
aag@stilo:~> chmod 644 hello.txt // запретить выполнение всем
aag@stilo:~> dir hello.txt
-rw-r--r-- 1 aag users 17 Мар 2 22:32 hello.txt
aag@stilo:~> chmod 711 hello.txt // разрешить только выполнение для группы и прочих
aag@stilo:~> dir hello.txt
-rwx--x--x 1 aag users 17 Мар 2 22:32 hello.txt
Для смены
владельца файла и группы (опционально) используется команда chown, а для смены
группы — команда chgrp (см. man chown, man chgrp).
Задания
Войти в систему с
собственной учетной записью
1.
Создать в
домашнем каталоге 2-3 файла произвольного содержания (имена файлов — u1,
u2, u3).
2.
Получить
развернутый список файлов домашнего каталога и сохранить его в файле
listing1
3.
Просмотреть
файл listing1, обратив внимание на поля прав доступа, владельца и группы
4.
Повторить
п. 2 от имени пользователя root в новом сеансе или по команде su (имена
файлов — r1, r2, r3). Завершить сеанс root
5.
Повторить
п.3, результат дописать в файл listing1
6.
Открыть
файл listing1 и сравнить права доступа для файлов, созданных от вашего имени и
от имени суперпользователя
7.
Изменить
содержимое файлов, созданных вами и суперпользователем. Сохранить изменения
8.
В tty2
открыть сеанс root
9.
Перейти в
каталог /home/ваша_учетная_запись
10.
Изменить
права доступа к файлам u1 и r1 следующим образом:
1.
u1:
запретить запись для владельца и группы
2.
r1:
разрешить запись для всех
11.
Переключиться
в tty1 и изменить содержимое файлов u1 и r1. Сохранить изменения
12.
Перейти в
tty2 и изменить владельца файлов u1 и u2 на root,а группу на stud
13.
Из tty1
попробовать изменить файл u2
14.
В tty1
создать файл hello следующего содержания
15. #! /bin/sh
16. echo Hello, World!
17. echo -n "I'm "
18. whoami
19.
Выполнить
следующие действия и проанализировать результаты:
1.
набрать в
командной строке имя файла hello и нажать Enter
2.
набрать в
командной строке sh hello и нажать Enter
3.
установить
для файла hello права на исполнение (x), ввести имя файла в командной строке
(./hello) и нажать Enter
20.
Из tty2 создать каталоги /home/shared, home/shared/pub,
/home/shared/upload, /home/shared/temp. Установить на них следующие права:
каталог |
владелец |
группа |
права |
pub |
root |
users |
775 |
upload |
nobody |
users |
130 |
temp |
stud |
users |
777 |
21.
Выполнить
копирование, чтение, удаление файлов u1, u2, u3, r1, r2, r3 в каталоги,
созданные в п. 17 из сеансов root, stud и вашего. Сравнить и проанализировать
результаты.
22.
Завершить
все сеансы.
Информационное
обеспечение обучения
Основные печатные источники
1.
Жданов
С.А., Иванова Н.Ю., Маняхина В.Г. Операционные системы, сети и
интернет-технологии – М.: Издательский центр «Академия», 2014.
2.
Костров
Б. В. , Ручкин В. Н. Сети и системы передачи информации – М.: Издательский
центр «Академия», 2016.
3.
Курило
А.П., Милославская Н.Г., Сенаторов М.Ю., Толстой А.И. Управление рисками
информационной безопасности.- 2-е изд.- М.: Горячая линия-Телеком, 2014.
4.
Мельников
Д. Информационная безопасность открытых систем.- М.: Форум, 2013.
5.
Олифер
В., Олифер Н. Компьютерные сети. Принципы, технологии, протоколы. Учебник, 5-е
издание – Питер, 2015.
6.
Синицын
С.В. , Батаев А.В. , Налютин Н.Ю. Операционные системы – М.: Издательский центр
«Академия», 2013.
7.
Скрипник
Д. А. Общие вопросы технической защиты информации: учебное пособие / Скрипник
Д. А. –М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.
8.
Таненбаум
Э., Уэзеролл Д. Компьютерные сети. 5-е изд. – Питер, 2013.
Дополнительные печатные источники:
1.
Безбогов
А.А., Яковлев А.В., Мартемьянов Ю.Ф. Безопасность операционных систем. М.:
Гелиос АРВ, 2008.
2.
Борисов
М.А. Особенности защиты персональных данных в трудовых отношениях. М.: Либроком, 2012. – 224 с.
3.
Бройдо
В.Л. Вычислительные системы, сети и телекоммуникации: Учебник для вузов. 2-е
изд. — СПб.: Питер, 2006 — 703 с.
4.
ГубенковА.А.Информационная безопасность
вычислительных сетей: учеб. пособие / А. А. Губенков. — Саратов: СГТУ, 2009. —
88 с.
5.
Дейтел Х.
М., Дейтел П. Дж., Чофнес Д. Р. Операционные системы. Часть 1. Основы и
принципы – М.: Бином, 2011. – 1024 с.
6.
Дейтел Х.
М., Дейтел П. Дж., Чофнес Д. Р. Операционные системы. Часть 2. Распределенные
системы, сети, безопасность – М.: Бином, 2011. – 704 с.
7.
Иванов
В.И., Гордиенко В.Н., Попов Г.Н. Цифровые и аналоговые системы передачи:
Учебник.-М.: Горячая линия-Телеком., 2008
8.
Кофлер
М., Linux. Полное руководство – Питер, 2011. – 800 с.
9.
Кулаков
В.Г., Гагарин М.В., и др. Информационная безопасность телекоммуникационных
систем. Учебное пособие.-М.: Радио и связь, 2008
10.
Лапонина
О.Р. Основы сетевой безопасности: криптографические алгоритмы и протоколы
взаимодействия: Учебное пособие.- 2-е изд., испр.- М.: Интернет-Университет ИТ;
БИНОМ. Лаборатория знаний, 2007.- 531 с.
11.
Мак-Клар
С., Скембрей Дж., Куртц Д. Секреты хакеров. Безопасность сетей – готовые
решения, 4-е изд. – М.: Вильямс, 2004. – 656 с.
12.
Малюк
А.А., Пазизин С.В., Погожин Н.С. Введение в защиту информации в
автоматизированных системах: Учеб. Пособие для вузов.- 3-е изд., стер. М.:
Горячая линия, 2005.- 147 с.
13.
Партыка
Т. Л., Попов И. И. Операционные системы, среды и оболочки: учеб. пос. для
студентов СПО – М.: Форум, 2013. – 544 с.
14.
Платонов,
В. В. Программно-аппаратные средства обеспечения информационной безопасности
вычислительных сетей: Учеб. пособие для студ. высш. учеб. заведений / В. В.
Платонов. – М.: Академия, 2006. – 240 с.
15.
Руссинович
М., Соломон Д., Внутреннее устройство MicrosoftWindows. Основные подсистемы
операционной системы – Питер, 2014. – 672 с.
16.
Северин
В. Комплексная защита информации на предприятии. М.: Городец, 2008. – 368 с.
Периодические издания:
1.
Журналы
Chip/Чип: Журнал о компьютерной технике для профессионалов и опытных пользователей;
2.
Журналы
Защита информации. Инсайд: Информационно-методический журнал
3.
Информационная
безопасность регионов: Научно-практический журнал
4.
Вопросы
кибербезопасности. Научный, периодический, информационно-методический журнал с
базовой специализацией в области информационной безопасности.. URL:
http://cyberrus.com/
5.
Безопасность
информационных технологий. Периодический рецензируемый научный журнал НИЯУ
МИФИ. URL: http://bit.mephi.ru/
Электронные источники:
1.
Информационно-справочная
система по документам в области технической защиты информации www.fstec.ru
2.
Информационный
портал по безопасности www.SecurityLab.ru.
3.
Образовательные
порталы по различным направлениям образования и тематике
http://depobr.gov35.ru/
4.
Российский
биометрический портал www.biometrics.ru
5.
Сайт
журнала Информационная безопасность http://www.itsec.ru –
6.
Сайт
Научной электронной библиотеки www.elibrary.ru
7.
Справочно-правовая
система «Гарант» » www.garant.ru
8.
Справочно-правовая
система «Консультант Плюс» www.consultant.ru
9.
Федеральная
служба по техническому и экспортному контролю (ФСТЭК России) www.fstec.ru
10. Федеральный портал
«Информационно-коммуникационные технологии в образовании» htpp\\:www.ict.edu.ru
11. Федеральный портал
«Российское образование
www.edu.ru
CLR реализована как классический СОМ-сервер, код которой хранится в стандартной Windows DLL пользовательского режима. Фактически все компоненты .NET Framework реализованы как стандартные Windows DLL пользовательского режима, занимающие уровень поверх неуправляемых функций Windows APL (Никакие компоненты .NET Framework не работают в режиме ядра.) Ha рис. 1 -1 показаны взаимосвязи этих компонентов.
WinFX — «новый Windows API». Это результат эволюционного развития .NET Framework, которая будет поставляться с версией Windows под кодовым названием «Longhorn», следующим выпуском Windows. WinFX также можно установить в Windows XP и Windows Server 2003. WinFX образует фундамент для приложений следующего поколения, создаваемых для операционной системы Windows.
История создания Win32 API
Интересно, что поначалу Win32 не рассматривался как интерфейс программирования для Microsoft Windows NT. Поскольку проект Windows NT начинался как замена OS/2 версии 2, основным интерфейсом программирования был 32-разрядный OS/2 Presentation ManagerAPI. Однако год спустя на рынке появилась Microsoft Windows 3.0, быстро ставшая очень популярной. B результате Microsoft сменила курс и перенацелила проект Windows NT на будущую замену семейства продуктов Windows, а не OS/2. Вот на этом-то перепутье и встал вопрос о создании Windows API — до этого Windows API существовал только как 16-разрядный интерфейс.
Хотя в Windows API должно было появиться много новых функций, отсутствующих в Windows 3.1, Microsoft решила сделать новый API по возможности совместимым с именами функций, семантикой и типами данных в 16-разрядном Windows API, чтобы максимально облегчить бремя переноса существующих 16-разрядных Windows-приложений в Windows NT Поэтому тот, кто, впервые глядя на Windows API, удивляется, почему многие имена и интерфейсы функций кажутся противоречивыми, должен учитывать, что одной из причин такой противоречивости было стремление сделать Windows API совместимым со старым 16-разрядным Windows API.
Сервисы, функции и процедуры
Несколько терминов в документации Windows для пользователей и программистов имеет разный смысл в разных контекстах. Например, понятие «сервис» (service) может относиться к вызываемой функции операционной системы, драйверу устройства или серверному процессу (в последнем случае сервис часто называют службой). Ниже показано, что означают подобные термины в этой книге.
(o)
Функции Windows APIДокументированные, вызываемые подпрограммы в Windows API, например
CreateProcess, CreateFileи
GetMessage.
(o) Неуправляемые («родные») системные сервисы (или исполняемые системные сервисы)Недокументированные низкоуровневые сервисы операционной системы, которые можно вызывать в пользовательском режиме. Так,
NtCreateProcess— это внутрисистемный сервис, вызываемый Windows-функцией
CreateProcessпри создании нового процесса. (Определение неуправляемых функций см. в разделе «Диспетчеризация системных сервисов» главы 3.)
(o) Функции (или процедуры) ядраПодпрограммы внутри операционной системы Windows, которые можно вызывать только в режиме ядра (определение мы дадим чуть позже). Например,
ExAllocatePool —процедура, вызываемая драйверами устройств для выделения памяти из системных куч (динамически распределяемых областей памяти) Windows.
(o) Windows-сервисыПроцессы, запускаемые диспетчером управления сервисами в Windows. (Хотя в документации на реестр драйверы устройств Windows определяются как сервисы, мы не пользуемся таким термином в этой книге.) Например, сервис Task Scheduler выполняется в процессе пользовательского режима, который поддерживает команду
at(аналогичную UNIX-команде
atили
cron).
(o) DLL (динамически подключаемая библиотека)Набор вызываемых подпрограмм, включенных в один двоичный файл, который приложения, использующие эти подпрограммы, могут динамически загружать во время своего выполнения. B качестве примера можно привести модули Msvcrt.dll (библиотека исполняющей подсистемы C) и Kernel32.dll (одна из библиотек подсистемы Windows API). DLL активно используются компонентами и приложениями Windows пользовательского режима. Преимущество DLL над статическими библиотеками в том, что приложения могут разделять DLL-модули, a Windows гарантирует, что в памяти будет находиться лишь по одному экземпляру используемых DLL.
Процессы, потоки и задания
Хотя на первый взгляд кажется, что
программаи
процесс— понятия практически одинаковые, они фундаментально отличаются друг от друга.
Программапредставляет собой статический набор команд, а
процесс —это контейнер для набора ресурсов, используемых при выполнении экземпляра
программы. Ha самом высоком уровне абстракции процесс в Windows включает следующее:
(o)закрытое
виртуальное адресное пространство —диапазон адресов виртуальной памяти, которым может пользоваться процесс;
(o)исполняемую программу — начальный код и данные, проецируемые на виртуальное адресное пространство процесса;
(o)список открытых описателей (handles) различных системных ресурсов — семафоров, коммуникационных портов, файлов и других объектов, доступных всем потокам в данном процессе;
(o)контекст защиты (security context), называемый
маркером доступа(access token) и идентифицирующий пользователя, группы безопасности и привилегии, сопоставленные с процессом;
(o)уникальный идентификатор процесса (во внутрисистемной терминологии называемый идентификатором клиента);
(o)минимум один поток.
Каждый процесс также указывает на свой родительский процесс (процесс-создатель). Однако, если родитель существует, эта информация не обновляется. Поэтому есть вероятность, что некий процесс указывает на уже несуществующего родителя. Это не создает никакой проблемы, поскольку никто не полагается на наличие такой информации. Следующий эксперимент иллюстрирует данный случай.
ЭКСПЕРИМЕНТ: просмотр дерева процессов
Большинство утилит не отображает такой уникальный атрибут, как идентификатор родительского процесса. Значение этого атрибута можно получить программно или с помощью оснастки Performance, запросив значение счетчика Creating Process ID [Код (ID) создавшего процесса]. Дерево процессов показывается утилитой Tlist.exe (из Windows Debugging Tools), если вы указываете ключ /t. Вот образец вывода этой команды:
Взаимоотношения процессов (дочерний-родительский) Tlist показывает отступами. Имена процессов, родительские процессы которых на данный момент завершились, выравниваются по левому краю, потому что установить их родственные связи невозможно — даже если процессы-прапредки еще существуют. Windows сохраняет идентификатор только родительского процесса, так что проследить его создателя нельзя. Чтобы убедиться в этом, выполните следующие операции.
1. Откройте окно командной строки.
2. Наберите
start cmdдля запуска второго окна командной строки.
3. Откройте диспетчер задач.
4. Переключитесь на второе окно командной строки.
5. Введите
mspaintдля запуска Microsoft Paint.
6. Щелкните второе окно командной строки.
7. Введите
exit.(Заметьте, что окно Paint остается.)
8. Переключитесь в диспетчер задач.
9. Откройте его вкладку Applications (Приложения). Ю.Щелкните правой кнопкой мыши задачу Command Prompt (Командная строка) и выберите Go To Process (Перейти к процессам).
11.Щелкните процесс Cmd.exe, выделенный серым цветом.
12.Щелкнув правой кнопкой мыши, выберите команду End Process Tree
(Завершить дерево процессов).
13.B окне Task Manager Warning (Предупреждение диспетчера задач) щелкните
Yes(Да).
Первое окно командной строки исчезнет, но вы по-прежнему сможете наблюдать окно Paint, так как оно является внуком первого из завершенных процессов Command Prompt. A поскольку второй (родительский процесс Paint) тоже завершен, связь между родителем и внуком потеряна.
Для просмотра (и модификации) процессов и информации, связанной с ними, существует целый набор утилит. Следующие эксперименты демонстрируют, как получить ту или иную информацию о процессе с помощью некоторых из этих утилит. Они включаются непосредственно в саму Windows, а также в Windows Support Tools, Windows Debugging Tools, ресурсы Windows и Platform SDK
.Многие из этих утилит выводят перекрывающиеся подмножества информации о базовых процессах и потоках, иногда идентифицируемые по разным именам.
Вероятно, наиболее широко применяемая утилита для анализа активности процессов — Task Manager (Диспетчер задач). (Любопытно, что в ядре Windows нет такого понятия, как задача, так что Task Manager на самом деле является инструментом для управления процессами.) Следующий эксперимент показывает разницу между тем, что Task Manager перечисляет как приложения и процессы.
ЭКСПЕРИМЕНТ: просмотр информации о процессах через диспетчер задач
Диспетчер задач Windows отображает список выполняемых в системе процессов. Его можно запустить тремя способами: 1) нажав клавиши Ctrl+Shift+Esc; 2) щелкнув панель задач правой кнопкой мыши и выбрав команду Task Manager (Диспетчер задач); 3) нажав клавиши Ctrl+Alt+Del. После запуска диспетчера задач откройте вкладку Processes (Процессы). Заметьте, что процессы идентифицируются по имени образа, экземплярами которого они являются. B отличие от некоторых объектов в Windows процессам нельзя присваивать глобальные имена. Для просмотра более подробных сведений выберите из меню View (Вид) команду Select Columns (Выбрать столбцы) и укажите, какая дополнительная информация вас интересует.
Если вкладка Processes окна диспетчера задач со всей очевидностью показывает список процессов, то содержимое вкладки Applications (Приложения) нуждается в пояснениях. Ha ней отображается список видимых окон верхнего уровня всех объектов «рабочий стол» интерактивного объекта WindowStation. (По умолчанию существуют два объекта «рабочий стол», но вы можете создать дополнительные рабочие столы через Windows-функцию
CreateDesktop.)Колонка Status (Состояние) дает представление о том, находится ли поток — владелец окна в состоянии ожидания Windows-сообщения. «Running» («Выполняется») означает, что поток ожидает ввода в окно, a «Not Responding» («He
отвечает») — что не ожидает (т. е. занят либо ждет завершения операции ввода-вывода или освобождения какого-либо синхронизирующего объекта).
Вкладка Applications позволяет идентифицировать процесс, которому принадлежит поток, владеющий каким-либо окном задачи. Для этого щелкните правой кнопкой мыши имя задачи и выберите команду Go To Process (Перейти к процессам).
Утилита Process Explorer показывает больше информации о процессах и потоках, чем любой другой доступный инструмент; вот почему она используется нами во многих экспериментах, которые вы увидите в этой книге. Ниже перечислены некоторые уникальные сведения, выводимые утилитой Process Explorer, и ее возможности:
(o)полное имя (вместе с путем) выполняемого образа;
(o)маркер защиты процесса (список групп и привилегий);
(o)выделение изменений в списке процессов и потоков;
(o)список сервисов внутри процессов — хостов сервисов с выводом отображаемого имени (display name) и описания;
(o)процессы, которые являются частью задания, и детальные сведения о заданиях;
(o)процессы, выполняющие .NET/WinFX-приложения, и сведения, специфичные для .NET (например, список доменов приложений и счетчики производительности, относящиеся к CLR);
(o)время запуска процессов и потоков;
(o)полный список файлов, проецируемых в память (не только DLL-модулей);
(o)возможность приостановки процесса;
(o)возможность принудительного завершения индивидуальных потоков;
(o)простота выявления процессов, использующих наибольшую долю процессорного времени за определенный период. (Оснастка Performance позволяет просматривать процент использования процессора для заданного набора процессов, но не показывает автоматически процессы, созданные после начала сеанса мониторинга.)
Process Explorer также упрощает доступ к информации, предоставляемой другими утилитами, создавая единую точку ее просмотра:
(o)дерево процессов с возможностью свертывания отдельных частей этого дерева;
(o)открытые описатели в процессе без предварительной настройки (утилиты Microsoft для вывода открытых описателей требуют предварительной установки общесистемного флага и перезагрузки);
(o)список DLL (и файлов, проецируемых в память) в каком-либо процессе;
(o)активность потоков в каком-либо процессе;
(o)стеки потоков пользовательского режима (с сопоставлением адресов именам, используя механизм поддержки символов для инструментов отладки);
(o)стеки системных потоков режима ядра (с сопоставлением адресов именам, используя механизм поддержки символов для инструментов отладки);
(o)разница в переключении контекстов (context switch delta) (более наглядное представление активности процессора, как поясняется в главе 6);
(o)лимиты памяти режима ядра (пулов подкачиваемой и неподкачиваемой памяти) (остальные утилиты показывают только текущие размеры). Попробуем провести первый эксперимент с помощью Process Explorer.
ЭКСПЕРИМЕНТ: просмотр детальных сведений о процессах с помощью Process Explorer
Скачайте последнюю версию Process Explorer и запустите ее. При первом запуске вы увидите сообщение о том, что на данный момент символы не сконфигурированы. Когда они корректно сконфигурированы, Process Explorer может обращаться к символьной информации для отображения символьного имени стартовой функции потока и функций в его стеке вызовов (для этого нужно дважды щелкнуть процесс и выбрать вкладку Threads). Эта информация полезна для идентификации того, что именно делают потоки внутри процесса. Для доступа к символам вы должны установить Debugging Tools (об этом мы еще поговорим в данной главе). Потом щелкнуть Options, выбрать Configure Symbols и набрать подходящий путь Symbols. Например:
B предыдущем примере для доступа к символам использовался сервер символов по требованию (on-demand symbol server), а копии файлов символов хранились на локальном компьютере в папке
c:\symbols. Подробнее о конфигурировании сервера символов см. по ссылке h
ttp:/
/www.microsoft.com/whdc/ddk/debugging/symbols.mspx
.
При запуске Process Explorer по умолчанию выводит список процессов в верхней половине окна, а список открытых описателей для выбранного на данный момент процесса — в нижней половине. Если вы задержите курсор мыши над именем процесса, Process Explorer также показывает описание образа, название компании и полный путь.
Вот как использовать некоторые базовые возможности Process Explorer:
1. Отключите нижнюю секцию, сбросив View, Show Lower Pane. (Нижняя секция может отображать открытые описатели или проецируемые DLL и файлы — об этом речь пойдет в главах 3 и 7.)
2. Обратите внимание на то, что процессы, являющиеся хостами сервисов, по умолчанию выделяются розовым цветом. Ваши собственные процессы выделяются синим. (Эти цвета можно настроить.)
3. Задержите курсор мыши над именем образа и обратите внимание на то, что в подсказке отображается полный путь.
4. Щелкните View, Select Columns и добавьте путь образа.
5. Отсортируйте по колонке процессов и вы увидите, что представление в виде дерева исчезло. (Вы можете либо вывести представление в виде дерева, либо сортировать по любой из отображаемых колонок.) Снова щелкните для сортировки по алфавиту в обратном порядке (от Z к А). После этого очередной щелчок вернет представление в виде дерева.
6. Сбросьте View, Show Processes From All Users для отображения только ваших процессов.
7. Перейдите в Options, Difference Highlight Duration и смените значение на 5 секунд. Потом запустите новый процесс (какой угодно) и обратите внимание на то, что этот процесс выделяется зеленым в течение 5 секунд. Закройте новый процесс и заметьте, что этот процесс выделяется красным в течение 5 секунд, прежде чем исчезнуть из древовидного списка. Эта функция может пригодиться для обнаружения создаваемых и завершаемых процессов в системе.
8. Наконец, дважды щелкните какой-нибудь процесс и изучите вкладки, доступные в окне свойств процесса. (Эти вкладки понадобятся нам в дальнейших экспериментах; там же мы поясним, какую информацию они сообщают.)
Поток(thread) — некая сущность внутри процесса, получающая процессорное время для выполнения. Без потока программа процесса не может выполняться. Поток включает следующие наиболее важные элементы:
(o)содержимое набора регистров процессора, отражающих состояние процессора;
(o)два стека, один из которых используется потоком при выполнении в режиме ядра, а другой — в пользовательском режиме;
(o)закрытую область памяти, называемую локальной памятью потока (thread-local storage, TLS) и используемую подсистемами, библиотеками исполняющих систем (run-time libraries) и DLL;
(o)уникальный идентификатор потока (во внутрисистемной терминологии также называемый идентификатором клиента: идентификаторы процессов и потоков генерируются из одного пространства имен и никогда не перекрываются);
(o)иногда потоки обладают своим контекстом защиты, который обычно используется многопоточными серверными приложениями, подменяющими контекст защиты обслуживаемых клиентов.
Переменные регистры, стеки и локальные области памяти называются
контекстом потока.Поскольку эта информация различна на каждой аппаратной платформе, на которой может работать Windows, соответствующая
структура данных специфична для конкретной платформы. Windows-функция
GetThreadContextпредоставляет доступ к этой аппаратно-зависимой информации (называемой блоком CONTEXT).
Волокна и потоки
Волокна (fibers) позволяют приложениям планировать собственные «потоки» выполнения, не используя встроенный механизм планирования потоков на основе приоритетов. Волокна часто называют «облегченными» потоками. Они невидимы ядру, так как Kernel32.dll реализует их в пользовательском режиме. Для использования волокна нужно вызвать Windows-функцию
ConvertTbreadToFiber,которая преобразует поток в волокно. Полученное волокно может создавать дополнительные волокна через функцию
CreateFiber(у каждого волокна может быть свой набор волокон). Выполнение волокна (в отличие от потока) не начинается до тех пор, пока оно не будет вручную выбрано вызовом
SwitchToFiber.Волокно работает до завершения или до переключения процессора на другое волокно вызовом все той же
SwitcbToFiber.Подробнее о функциях, связанных с волокнами, см. документацию Platform SDK.
Хотя у потоков свой контекст выполнения, каждый поток внутри одного процесса делит его виртуальное адресное пространство (а также остальные ресурсы, принадлежащие процессу). Это означает, что все потоки в процессе могут записывать и считывать содержимое памяти любого из потоков данного процесса. Однако потоки не могут случайно сослаться на адресное пространство другого процесса. Исключение возможно в ситуации, когда тот предоставляет часть своего адресного пространства как
раздел общей памяти(shared memory section), в Windows API называемый объектом «проекция файла» (file mapping object), или когда один из процессов имеет право на открытие другого процесса и использует функции доступа к памяти между процессами, например
ReadProcessMemoryи
WriteProcessMemory.
Кроме закрытого адресного пространства и одного или нескольких потоков у каждого процесса имеются идентификация защиты и список открытых описателей таких объектов, как файлы и разделы общей памяти, или синхронизирующих объектов вроде мьютексов, событий и семафоров (рис. 1-2).
Каждый процесс обладает контекстом защиты, который хранится в объекте
— маркере доступа.Маркер доступа содержит идентификацию защиты и определяет полномочия данного процесса. По умолчанию у потока нет собственного маркера доступа, но он может получить его, и это позволит ему подменять контекст защиты другого процесса (в том числе выполняемого на удаленной системе Windows). Подробнее на эту тему см. главу 8.
Дескрипторы виртуальных адресов (virtual address descriptors, VAD) — это структуры данных, используемые диспетчером памяти для учета виртуальных адресов, задействованных процессом (см. главу 7).
Windows предоставляет расширение для модели процессов —
задания(jobs). Они предназначены в основном для того, чтобы группами процессов можно было оперировать и управлять как единым целым. Объект-задание позволяет устанавливать определенные атрибуты и накладывать ограничения на процесс или процессы, сопоставленные с заданием. B этом объекте также хранится информация обо всех процессах, которые были сопоставлены с заданием, но к настоящему времени уже завершены. B каких-то отношениях объект-задание компенсирует отсутствие иерархического дерева процессов в Windows, а в каких-то — даже превосходит по своим возможностям дерево процессов UNIX.
Более детальное описание внутренней структуры заданий, процессов и потоков, механизмов создания потоков и процессов, а также алгоритмов планирования потоков вы найдете в главе 6.
Виртуальная память
B Windows реализована система виртуальной памяти, основанная на плоском (линейном) адресном пространстве. Она создает каждому процессу иллюзию того, что у него есть собственное большое и закрытое адресное пространство. Виртуальная память дает логическое представление, не обязательно соответствующее структуре физической памяти. B период выполнения диспетчер памяти, используя аппаратную поддержку, транслирует, или
проецирует(maps), виртуальные адреса на физические, по которым реально хранятся данные. Управляя проецированием и защитой страниц памяти, операционная система гарантирует, что ни один процесс не помешает другому и не сможет повредить данные самой операционной системы. Ha рис. 1-3 показано, как три смежные страницы виртуальной памяти проецируются на три разрозненные страницы физической памяти.
Поскольку у большинства компьютеров объем физической памяти намного меньше общего объема виртуальной памяти, задействованной выполняемыми процессами, диспетчер памяти перемещает, или подкачивает (pages), часть содержимого памяти на диск. Подкачка данных на диск освобождает физическую память для других процессов или самой операционной системы. Когда поток обращается к странице виртуальной памяти, сброшенной на диск, диспетчер виртуальной памяти загружает эту информацию с диска обратно в память. Для использования преимуществ подкачки в приложениях никакого дополнительного кода не требуется, так как диспетчер памяти опирается на аппаратную поддержку этого механизма.
Размер виртуального адресного пространства зависит от конкретной аппаратной платформы. Ha 32-разрядных х86-системах теоретический максимум для общего виртуального адресного пространства составляет 4 Гб. По умолчанию Windows выделяет нижнюю половину этого пространства (в диапазоне адресов от x00000000 до x7FFFFFFF) процессам, а вторую половину (в диапазоне адресов от x80000000 до xFFFFFFFF) использует в собственных целях. Windows 2000 Advanced Server, Windows 2000 Datacenter Server, Windows XP (SP2 и выше) и Windows Server 2003 поддерживают загрузочные параметры /3GB и /USERVA, которые указываются в файле Boot.ini (см. главу 5), что позволяет процессам, выполняющим программы со специальным флагом в заголовке исполняемого образа, использовать до 3 Гб закрытого адресного пространства и оставляет операционной системе только 1 Гб. Этот вариант дает возможность приложению вроде сервера базы данных хранить в адресном пространстве своего процесса большие порции базы данных и тем самым уменьшить частоту проецирования отдельных представлений этой базы. Две структуры виртуальных адресных пространств, поддерживаемые 32-разрядной Windows, показаны на рис. 1-4.
Хотя три гигабайта лучше двух, этого все равно недостаточно для проецирования очень больших баз данных. B связи с этим в 32-разрядных Windows появился механизм Address Windowing Extension (AWE), который позволяет 32-разрядному приложению выделять до 64 Гб физической памяти, а затем проецировать представления (views), или окна (windows), на свое 2-гигабайтное виртуальное адресное пространство. Применение AWE усложняет управление проекциями виртуальной памяти на физическую, но снимает проблему прямого доступа к объему физической памяти, превышающему лимиты 32-разрядного адресного пространства процесса.
64-разрядная Windows предоставляет процессам гораздо большее адресное пространство: 7152 Гб на Itanium-системах и 8192 Гб на х64-системах. Ha рис. 1-5 показана упрощенная схема структур 64-разрядных адресных пространств (детали см. в главе 7). Заметьте, что эти размеры отражают не архитектурные лимиты для данных платформ, а ограничения реализации в текущих версиях 64-разрядной Windows.
Подробнее о реализации диспетчера памяти, в том числе о трансляции адресов и управлении физической памятью в Windows, см. главу 7.
Режим ядра и пользовательский режим
Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows использует два режима доступа к процессору (даже если он поддерживает более двух режимов): пользовательский (user mode) и ядра (kernel mode). Код
Диспетчер задач в Windows — один из самых важных инструментов операционной системы. С помощью него Вы можете увидеть, из-за чего тормозит компьютер, какая программа «съедает» всю память, процессорное время, постоянно что-то записывает на жесткий диск или же обращается к сети.
В Windows 10 и 8 был представлен новый и гораздо более продвинутый диспетчер задач, тем не менее, диспетчер задач Windows 7 также является серьезным инструментов, использовать который должен уметь каждый пользователь Windows. Некоторые из типичных задач стало значительно проще выполнять в Windows 10 и 8. См. также: что делать, если диспетчер задач отключен администратором системы
Как вызвать диспетчер задач
Вызвать диспетчер задач Windows можно различными способами, вот три наиболее удобных и быстрых:
- Нажмите Ctrl + Shift + Esc где угодно, находясь в Windows
- Нажмите Ctrl + Alt + Del
- Кликните правой кнопкой мыши по панели задач Windows и выберите пункт «Запустить диспетчер задач».
Вызов диспетчера задач из панели задач Windows
Надеюсь, этих способов будет достаточно.
Есть и другие, например, можно создать ярлык на рабочем столе или вызвать диспетчер через «Выполнить». Подробнее на эту тему: 8 способов открыть диспетчер задач Windows 10 (подойдет и для предыдущих ОС). Перейдем к тому, что именно можно делать с помощью диспетчера задач.
Просмотр загрузки процессора и использования памяти RAM
В Windows 7 диспетчер задач по умолчанию открывается на вкладке «Приложения», на которой можно увидеть список программ, быстро закрыть из них с помощью команды «Снять задачу», которая работает даже в случае если приложение зависло.
Эта вкладка не позволяет видеть использование ресурсов программой. Более того, на данной вкладке отображаются не все программы, запущенные на вашем компьютере — то программное обеспечение, которое работает в фоновом режиме и не имеет окон, здесь не отображается.
Диспетчер задач Windows 7
Если Вы перейдете на вкладку «Процессы», можно будет увидеть список всех запущенных на компьютере программ (для текущего пользователя), включая фоновые процессоры, которые могут быть невидимы или находиться в системном трее Windows. Кроме этого, на вкладке процессы отображается процессорное время и используемая запущенной программой оперативная память компьютера, что в некоторых случаях позволяет сделать полезные выводы о том, что именно тормозит систему.
Чтобы увидеть список процессов, запущенных на компьютере, нажмите кнопку «Показать процессы всех пользователей».
Диспетчер задач Windows 8 процессы
В Windows 8 главной вкладкой диспетчера задач является «Процессы», на которой отображается вся информация об использовании программами и содержащимися в них процессами ресурсов компьютера.
Как убить процессы в Windows
Убить процесс в диспетчере задач Windows
Убить процессы — означает прекратить их выполнение и выгрузить из памяти Windows. Чаще всего возникает необходимость убить фоновый процесс: например, вы вышли из игры, но компьютер тормозит и вы видите, что файл игра.exe продолжает висеть в диспетчере задач Windows и кушать ресурсы или какая-то программа грузит процессор на 99%. В этом случае, вы можете кликнуть правой кнопкой мыши по этому процессу и выбрать пункт контекстного меню «Снять задачу».
Проверка использования ресурсов компьютера
Производительность в диспетчере задач Windows
Если в диспетчере задач Windows Вы откроете вкладку «Производительность», то вы сможете увидеть общую статистику использования ресурсов компьютера и отдельные графики для оперативной памяти, процессора и каждого ядра процессора. В Windows 8 на этой же вкладке будет отображаться и статистика использования сети, в Windows 7 эта информация доступна на вкладке «Сеть». В Windows 10 на вкладке производительность стала доступна также информация о нагрузке на видеокарту.
Просмотр использования доступа к сети каждым процессом по отдельности
Если у Вас тормозит Интернет, но непонятно, какая именно программа что-то качает, вы можете узнать это, для чего в диспетчере задач на вкладке «Производительность» нажмите кнопку «Открыть монитор ресурсов».
Монитор ресурсов Windows
В мониторе ресурсов на вкладке «Сеть» есть вся необходимая информация — можно увидеть, какие программы пользуются доступом в Интернет и используют ваш трафик. Стоит отметить, что в списке будут и приложения, которые не используют доступ в сеть Интернет, но задействуют сетевые возможности для коммуникации с устройствами компьютера.
Аналогичным образом в мониторе ресурсов Windows 7 Вы можете отследить использование жесткого диска, оперативной памяти и других ресурсов компьютера. В Windows 10 и 8 большую часть этой информации можно увидеть, находясь на вкладку «Процессы» диспетчера задач.
Управление, включение и выключение автозагрузки в диспетчере задач
В Windows 10 и 8 диспетчер задач обзавелся новой вкладкой «Автозагрузка», на которой Вы можете увидеть список всех программ, запускающихся автоматически при старте Windows и использование ими ресурсов. Здесь же вы можете убрать ненужные программы из автозагрузки (однако, здесь отображаются не все программы. Подробнее: Автозагрузка программ Windows 10).
Программы в автозагрузке в Диспетчере задач
В Windows 7 для этого вы можете воспользоваться вкладкой Автозагрузка в msconfig, либо воспользоваться сторонними утилитами для очистки автозагрузки, например CCleaner.
На этом завершу свой краткий экскурс в Диспетчер задач Windows для начинающих, надеюсь, он Вам был полезен, раз уж Вы дочитали досюда. Если вы поделитесь этой статьей с другими — будет просто замечательно.