Материал: Лабы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Для установки операционной системы необходимо в виртуальный привод подключить скаченный на 3-м шаге образ установочного диска. Для этого необходимо в списке виртуальных машин выделить созданную нами виртуальную машину и в верхней части окна нажать на кнопку «Настроить».

В появившимся окне необходимо перейти во вкладку «Носители», выбрать виртуальный привод и подключить скаченный образ установочного диска.

Дополнительно в окне настроек виртуальной машины можно настроить остальные параметры работы.

  1. Установить операционную систему Ubuntu Linux на виртуальную машину

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

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

После выбора языка необходимо выбрать один из предложенных сценариев: использовать операционную систему без установки или установить операционную систему на жесткий диск виртуальной машины. Для выполнения задания лабораторной работы необходимо выбрать пункт «Установить Ubuntu».

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

Далее необходимо задать часовой пояс. В зависимости от выбранного часового пояса будет рассчитываться смещение времени относительно нулевого меридиана.

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

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

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

Выводы

В данной лабораторной работе мы приобрели навыки установки OracleVirtualBox, познакомились с процессом создания виртуальной машины. Выполнили установку и начальную настройку операционной системы UbuntuLinux. Созданная в процессе выполнения виртуальная машина понадобится для выполнения последующих лабораторных работ.

Полная установка OracleVirtualBox и операционной системы заняла 1час 15 минут.

Архитектура операционной системы LINUX.

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

Операционная система LINUX представляет собой иерархическую многоуровневую структуру (рис. 1). На нижнем уровне располагается аппаратное обеспечение, состоящее из центрального процессора, памяти, дисков, терминалов и других устройств. На вышележащем уровне находится операционная система, функция которой заключается в управлении аппаратным обеспечением и предоставлении всем программам интерфейса системных вызовов, которые позволяют программам создавать процессы, файлы и др. ресурсы и управлять ими. Программы обращаются к системным вызовам, помещая аргументы в регистры центрального процессора (иногда в стек) и выполняя команду эмулированного прерывания для переключения из пользовательского режима в режим ядра и передачи управления операционной системе LINUX. На языке С нельзя написать команду эмулированного прерывания, поэтому процедуры написаны на ассемблере, но могут вызываться из программ, написанных на С. Процедуры представляют собой библиотечные функции, по одной на системный вызов.

Каждая такая процедура помещает аргументы в определенное место и выполняет команду эмулированного прерывания TRAP. Чтобы обратиться к системному вызову read, программа, написанная на языке С должна вызвать библиотечную процедуру ,read. Стандарт POSIX определяет библиотечные процедуры, соответствующие системным вызовам, их параметры, их действия и результат выполнения этих действий. LINUX содержит большое количество стандартных программ, некоторые из них описываются стандартом POSIX 1003.2: компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами.

Рис. 1 Уровни операционной системы LINUX

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

Ядро операционной системы LINUX состоит из нескольких уровней (рис. 2). Нижний уровень ядра состоит из драйверов устройств и процедуры диспетчеризации процессов. драйверы системы LINUX подразделяются на два класса: драйверы символьных устройств и драйверы блочных устройств. Основное различие между ним заключается в том, что на блочных устройствах разрешается операция поиска, а на символьных нет.

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

Символьные устройства могут использоваться двумя способами. Некоторым программам (например, текстовым редакторам vi и emacs), требуется нажатая клавиша без обработки. Для этого служит ввод-вывод с необработанного терминала (телетайпа). Другое программное обеспечение, например оболочка shell, принимает на входе уже готовую текстовую строку, позволяя пользователю редактировать ее, пока не будет нажата клавиша Enter. Такое программное обеспечение пользуется вводом с терминала в обработанном виде и дисциплинами линии связи.

Рис. 2. Структура ядра операционной системы LINUX.

Сетевое программное обеспечение часто бывает модульным, с поддержкой множества различных устройств и протоколов. Уровень выше сетевых драйверов выполняет функции маршрутизации, гарантируя, что правильный пакет направляется правильному устройству или блоку управления протоколами. Большинство систем LINUX содержат в своем ядре полноценный маршрутизатор Интернета. Над уровнем маршрутизации располагается стек протоколов (включая протоколы IР и ТСР). Над сетевыми протоколами располагается интерфейс сокетов, позволяющий программам создавать сокеты1 для отдельных сетей и протоколов. Для использования сокетов пользовательские программы получают дескрипторы файлов.

Над дисковыми драйверами располагаются буферный кэш и страничный кэш файловой системы. В ранних системах LINUX буферный кэш представлял собой фиксированную область памяти, а остальная память использовалась для страниц пользователя. В современных системах границы не существует, и любая страница памяти может использоваться для выполнения поставленной задачи. Над буферным кэшем располагаются файловые системы. Большинством систем LINUX поддерживают несколько файловых систем, включая быструю файловую систему Беркли, журнальную файловую систему, а также различные виды файловых систем System V. Файловые системы совместно используют общий буферный кэш. Выше файловых систем помещается именование файлов, управление каталогами, управление жесткими и символьными связями, а также другие свойства файловой системы, одинаковые для всех файловых систем.

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

В некоторых системах LINUX управление потоками вынесено в пространство пользователя. Над планировщиком процессов расположена программа для обработки сигналов и отправки их в требуемом направлении, а также программа, занимающаяся созданием и завершением процессов. Верхний уровень представляет собой интерфейс системы. Слева располагается интерфейс системных вызовов, который принимает все системные вызовы и направляет их одному из модулей низших уровней в зависимости от природы системного вызова. Правая часть верхнего уровня представляет собой вход для аппаратных и эмулированных прерываний, включая сигналы, страничные прерывания, разнообразные исключительные ситуации процессора и прерывания ввода-вывода.

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

Файловая система: изучение команд работы с файлами и каталогами Введение

Файловая система— порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов (и каталогов), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

Цель лабораторной работы

Лабораторная работа выполняется в среде, установленной и настроенной в процессе выполнения лабораторной работы №1 или в среде, установленной в компьютерном классе.

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

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

Основные команды для работы с файловой системой

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

  • . – ссылка на текущий каталог. Текущим называется каталог, с которым работает операционная система, если ей не указать другого каталога.

  • .. – ссылка на родительский каталог. Родительским каталогом называется каталог, в котором находится текущий.

  • cat – команда объединения/слияния данных. Имя команды является сокращением от английского слова concatenate.

cat filename.txt – выводит в стандартный поток вывода содержимое файла filename.txt. Если после команды указать несколько имен файлов, разделенных символом пробела, содержимое файлов будет объединено в один блок и выведено в стандартный поток вывода.

Есть возможность перенаправить вывод на устройство или в файл, используя оператор “>”. Пример: cat filename1.txt filename2.txt > filename3.txt. В данном примере содержимое файлов filename1.txt и filename2.txt будет объединено и записано в файл filename3.txt. При этом если файл filename3.txt существовал, он будет перезаписан. Если необходимо дописать информацию в конец файла, необходимо использовать оператор “>>”. Пример: catfilename1.txt>>filename2.txt. Данные из файла filename1.txt будут дописаны в конец файла filename2.txt. Если filename2.txt не существовало, он будет создан.

Также команда cat используется для организации конвейера для ввода информации с клавиатуры в файл. В этом случае формат команды следующий: cat>filename.txt<<EOF. По выполнении команды последовательно будет запрашиваться информация с клавиатуры. Для завершения ввода необходимо с новой строки ввести последовательность “EOF”.

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

  • echo– команда, предназначенная для вывода строки текста в стандартный поток вывода. Команда поддерживает возможность перенаправления вывода (см. примеры для команды cat).

  • tree - команда выводит содержимое текущего каталога в виде дерева.

  • grep – команда строковой фильтрации текстовых данных. Она использует компактный недетерминированный алгоритм сопоставления. В качестве параметра принимает строку шаблона для поиска, сформированную в соответствии с правилами составления паттернов для регулярных выражений (стандарт PERL). Команда может использоваться как самостоятельно, принимая на вход имя файла, так и в составе конвеера.

  • ls – команда для вывода в стандартный поток вывода содержимого каталога.

  • mkdir – команда для создания директории. Для выполнения команды необходимо обладать правами на запись для текущего каталога. Идентификатор владельца и группы нового каталога устанавливаются соответственно равными реальным идентификаторам владельца и группы процесса, в контексте которого выполняется команда.

  • nano – консольный текстовый редактор для Unix и Unix-подобных операционных систем.

  • pwd – команда UNIX-подобных системах, которая выводит полный путь от корневого каталога к текущему рабочему каталогу: в контексте которого (по умолчанию) будут исполняться вводимые команды.

  • sort– команда для сортировки содержимого файла в алфавитном или нумерологическом порядке. Если задать несколько файлов, то команда sort соединит их и, рассортировав, выдаст единым выводом. По умолчанию, объектом сортировки будут строки, однако опции позволяют выбирать объект сортировки: колонки, столбцы и прочие элементы форматирования файла. Разделителем между ними служат пробелы, однако соответствующие опции позволяют задать иные разделители.

  • uniq– команда, с помощью которой можно вывести или отфильтровать повторяющиеся строки в файле. Если входной файл задан как («-») или не задан вовсе, чтение производится из стандартного потока ввода. Если выходной файл не задан, запись производится в стандартный поток вывода. Вторая и последующие копии повторяющихся соседних строк не записываются. Повторяющиеся входные строки не распознаются, если они не следуют строго друг за другом, поэтому может потребоваться предварительная сортировка файлов.

  • wc– команда подсчета строк, слов и символов С помощью команды wc можно подсчитать число строк, слов и символов в указанном файле. Если указано более одного файла в командной строке, то команда wc осуществляет подсчет строк, слов и символов в каждом файле и затем выдает общее число.