- •1 Понятие операционной Системы. Иерархическая структура. Привилегированный режим.
- •2 Многослойная структура ос
- •3 Характеристики современных ос. Многопоточность. Распределенные ос. Концепция ос на основе микроядра. Функции микроядра.
- •4.Принципы построения ос. Переносимость операционной системы.
- •1.Принцип модульности
- •2.Принцип виртуализации
- •3.Принцип особого режима работы
- •4.Принцип мобильности
- •5 Виды процессов
- •6 Многопоточная модель процесса. Создание потоков. Преимущества много поточности. Уровни потоков
- •7 Цели и необходимость синхронизации процессов и потоков. Критическая секция. Блокирующие переменные. Семафоры Дейкстры.
- •8 Тупики. Восстановление после тупиков. Предотвращение тупиков за счет нарушения условий возникновения.
- •9. Синхронизирующие объекты ос разных процессов. Мьютекс. Сигналы. Почтовый ящик.
- •10) Функции ос по управлению памятью. Физический и виртуальный адрес. Способы преобразования виртуального адреса в физический.
- •11) Соотношение объемов виртуального адресного пространства и физической памяти. Части виртуальных адресных пространств.
- •12 Распределение памяти фиксированными разделами. Распределение памяти динамическими разделами.
- •13 Перемещаемые разделы памяти. Свопинг. Виртуальная память. Разделяемые сегменты памяти.
- •14. Страничное распределение. Сегментное распределение. Сегментно-страничное распределение.
- •Сегментное распределение
- •15 Иерархия запоминающих устройств. Кэш-память. Способы отображения основной памяти на кэш. Схемы выполнения запросов в системах с кэш-памятью.
- •16 Задачи ос по управлению файлами и устройствами. Организация параллельной работы устройств ввода-вывода и процессора.
- •17 Согласование скоростей обмена и кэширование данных. Разделение устройств и данных между процессами. Обеспечение удобного логического интерфейса между устройствами и остальной частью системы.
- •18 Поддержка синхронных и асинхронных операций ввода-вывода в ос. Многослойная модель подсистемы ввода - вывода.
- •19. Логическая организация файловой системы. Типы файлов. Иерархическая структура файловой системы. Имена файлов. Монтирование. Атрибуты файлов. Логическая организация файла.
- •Иерархическая файловая система
- •Логическая организация файла
- •20 Физическая организация файловой системы. Диски, разделы, секторы, кластеры. Адресация файла.
- •21 Физическая организация fat.
- •22 Физическая организация ntfs.
- •23 Регистры процессора. Привилегированные команды. Средства поддержки сегментации памяти.
- •24. Аппаратно-программные особенности процессоров. Виртуальное адресное пространство. Защита данных при сегментной организации памяти. Сегментно-страничный механизм.
- •25 Особенности 64-ох разрядной архитектуры процессоров.
- •26) Модель osi. Стек протоколов tcp/ip.
- •27 Пакеты и инкапсуляция. Ethernet-заголовок. IPv4-заголовок. IPv6-заголовок.
- •28 Пакеты и инкапсуляция. Arp-заголовок. Icmp-заголовок.
- •29. Пакеты и инкапсуляция. Udp-заголовок. Tcp-заголовок.
- •30 Сетевые файловые системы. Принципы построения. Интерфейс сетевой файловой службы. Файловые серверы типа stateful и stateless.
- •31 Определение unix. Архитектурные особенности ос unix. Стандарты. Лицензии.
- •32 Различия дистрибутивов Linux.
- •33 Ядро Linux.
- •35) Bash. Команды управления каталогами. Команды управления файлами. Команды chown и chgrp
- •4.6.2. Команда mkdir
- •4.6.3. Команда cat
- •4.6.4. Команда cp
- •36 Bash. Сценарии. Маски
- •37 Компилятор gcc.
- •38 Работа с файлами и директориями в Unix. Функции open, write, read, opendir, scandir.
- •39. Posix. Работа с потоками. Синхронизация потоков при помощи мьютексов и условных переменных.
- •40 Создание и использование статических библиотек.
- •41 Создание и использование динамических библиотек. Раннее и позднее связывание.
- •42 Socket api. Атрибуты сокета. Адреса. Функции для работы с dns. Функции socket, bind, listen, connect, close.
- •43 Socket api. Реализация tcp- сервера и клиента.
- •44 Socket api. Реализация udp- сервера и клиента.
- •45 Socket api. Использование низкоуровневых сокетов Понятие сокета
- •Атрибуты сокета
- •Установка соединения (сервер)
- •Установка соединения (клиент)
- •Обмен данными
- •Закрытие сокета
- •46) Socket api. Неблокирующие сокеты. Пример реализации tcp- сервера.
- •47 OpenSsl. Генерация псевдослучайной последовательности.
- •48 OpenSsl. Шифрование и дешифрование ассиметричных алгоритмов.
- •49.Программирование драйверов в Linux. Виды драйверов. Методы включения драйвера в ядро. Отличие драйверов от обычных приложений. Файлы устройств. Функции драйвера устройства.
- •52 Программирование интерфейсов. Библиотека qt. Структура программы на qt.
35) Bash. Команды управления каталогами. Команды управления файлами. Команды chown и chgrp
Эти команды служат для смены владельца файла и группы файла. Выполнять смену владельца может только суперпользователь, смену группы может выполнить сам владелец файла или суперпользователь. Для того, чтобы иметь право сменить группу, владелец должен дополнительно быть членом той группы, которой он хочет дать права на данный файл. Формат этих двух команд аналогичен:
[root]# chown vasja имя-файла
[root]# chgrp usersgrp имя-файла
4.6.2. Команда mkdir
Команда mkdir позволяет создать подкаталог в текущем каталоге. В качестве аргумента этой команде надо дать имя создаваемого каталога. Во вновь созданном каталоге автоматически создаются две записи: . (ссылка на этот самый каталог) и .. (ссылка на родительский каталог). Чтобы создать подкаталог, вы должны иметь в текущем каталоге право записи. Можно создать подкаталог не в текущем, а в каком-то другом каталоге, но тогда необходимо указать путь к создаваемому каталогу:
[user]$ mkdir /home/kos/book/glava5/part1
Команда mkdir может использоваться со следующими опциями:
-m mode — задает режим доступа для нового каталога (например, -m 755);
-p — создавать указанные промежуточные каталоги (если они не существуют).
4.6.3. Команда cat
Команда cat часто используется для создания файлов (хотя можно воспользоваться и командой touch). По команде cat на стандартный вывод (т. е. на экран) выводится содержимое указанного файла (или нескольких файлов, если их имена последовательно задать в качестве аргументов команды). Если вывод команды cat перенаправить в файл, то можно получить копию какого-то файла:
[user]$ cat file1 > file2
Собственно, первоначальное предназначение команды cat как раз и предполагало перенаправление вывода, так как эта команда создана для конкатенации, т. е. объединения нескольких файлов в один:
[user]$ cat file1 file2 ... fileN > new-file
Именно возможности перенаправления ввода и вывода этой команды и используются для создания новых файлов. Для этого на вход команды cat направляют данные со стандартного ввода (т. е. с клавиатуры), а вывод команды — в новый файл:
[user]$ cat > newfile
После того, как вы напечатаете все, что хотите, нажмите комбинацию клавиш <Ctrl>+<D> или <Ctrl>+<C>, и все, что вы ввели, будет записано в newfile. Конечно, таким образом создаются, в основном, короткие текстовые файлы.
4.6.4. Команда cp
Хотя для копирования файлов иногда пользуются командой cat, но в Linux существует для этого специальная команда cp. Ее можно применять в одной из двух форм:
[user]$ cp [options] source destination
[user]$ cp [options] source_directory new_directory
В первом случае файл или каталог source копируется, соответственно, в файл или каталог destination, а во втором случае файлы, содержащиеся в каталоге source_directory копируются в каталог new_directory. Для копирования надо иметь права на чтение файлов, которые копируются, и права на запись в каталог, в который производится копирование.
Если в качестве целевого указывается существующий файл, то его содержимое будет затерто, поэтому при копировании надо соблюдать осторожность. Впрочем, можно использовать команду cp с опцией -i, тогда перед перезаписью существующего файла будет запрашиваться подтверждение (очень рекомендую вам всегда использовать эту опцию!).
У команды cp имеется еще несколько полезных опций (табл. 4.3).
Еще одной часто используемой командой для работы с файлами в Linux является команда поиска нужного файла find. Команда find может искать файлы по имени, размеру, дате создания или модификации и некоторым другим критериям.
Общий синтаксис команды find имеет следующий вид:
find [список_каталогов] критерий_поиска
Параметр "список_каталогов" определяет, где искать нужный файл. Проще всего задать в качестве начального каталога поиска корневой каталог /, однако, в таком случае поиск может затянуться очень надолго, так как будет просматриваться вся структура каталогов, включая смонтированные файловые системы (в том числе сетевые, если таковые есть). Можно сократить объем поиска, если задать вместо одного корневого каталога список из нескольких каталогов (естественно, тех, в которых может находиться искомый файл):
[user]$ find /usr/share/doc /usr/doc /usr/locale/doc -name instr.txt
Началом "критерия_поиска", определяющего, что именно должна искать программа find, считается первый аргумент, начинающийся на "-", "(", ")"', "," или "!". Все аргументы, предшествующие "критерию_поиска", трактуются как имена каталогов, в которых надо производить поиск. Если не указано ни одного пути, поиск производится только в текущем каталоге и его подкаталогах.
