![](/user_photo/2706_HbeT2.jpg)
- •Введение
- •Лабораторная работа № 1 основы интерфейса пользователя с posix-совместимой ос на уровне командной строки
- •Указания к работе
- •Информация, необходимая для начала работы
- •Основные команды ос unix
- •Последовательность выполнения работы
- •Контрольные вопросы
- •Лабораторная работа № 2 анализ файловой структуры posix-совместимой ос. Команды для работы с файлами и каталогами
- •Указания к работе
- •Физическая модель диска
- •Логическая модель диска
- •Общие черты файловых систем Unix / Posix-совместимых ос
- •Команды для работы с файлами и каталогами
- •Копирование файлов и каталогов
- •Перемещение и переименование файлов и каталогов
- •Права доступа
- •Изменение прав доступа
- •Контекстный поиск в файле
- •Проверка использования диска
- •Управление процессами
- •Получение информации о процессах
- •Последовательность выполнения работы
- •Контрольные вопросы
- •Лабораторная работа № 3 экранный интерфейс для posix-совместимых ос
- •Указания к работе
- •Окна mc
- •Выполнение команд ос Unix
- •Типы файлов
- •Работа с отмеченными файлами
- •Вызов меню
- •Настройка окон
- •Порядок сортировки
- •Прервать
- •Другие режимы отображения
- •Справка (f1)
- •Переименование-Перемещение (f6)
- •Создание Каталога (f7)
- •Удаление (f8)
- •Выход (f10, Shift-f10)
- •Быстрая смена каталога (Alt-c)
- •Различные команды
- •Меню Options
- •Пункт «Внешний вид»
- •Пункт «Биты символов…»
- •Отображение символов Полный 8-битный ввод 7-бит Дальше Прервать
- •Пункт «Подтверждение»
- •Пункт «Распознавание клавиш…»
- •Пользовательские меню
- •Выполнение файлов
- •Последовательность выполнения работы
- •Контрольные вопросы
- •Лабораторная работа № 4 экранный редактор VI/vim
- •Указания к работе Текстовые редакторы
- •Редактор VI (Visual display editor)
- •Основные группы команд редактора Команды управления курсором
- •Команды позиционирования
- •Команды редактирования
- •Команды редактирования в режиме командной строки
- •Последовательность выполнения работы
- •Контрольные вопросы
- •Лабораторная работа № 5 базовые средства для создания приложений в posix-совместимых ос
- •Указания к лабораторной работе
- •Система контроля версий
- •Компиляция исходного текста и построение исполняемого файла
- •Тестирование и отладка
- •Тестовый пример для лабораторной работы
- •Исходный текст программы abcd.C для лаботаторной работы № 5
- •Последовательность выполнения работы
- •Контрольные вопросы к работе
- •Лабораторная работа № 6 сетевые средства posix-совместимых ос. Использование сетевых команд
- •Указания к работе
- •Обзор сетевых команд для tcp/ip
- •Последовательность выполнения работы
- •Контрольные вопросы
- •Лабораторная работа № 7 анализ функционирования и диагностика ip-сетей
- •Указания к работе
- •Аппаратный уровень (уровень сетевого интерфейса)
- •Сетевой уровень
- •Адресация в ip-сетях
- •Internet-адреса
- •Команды диагностики сети
- •Последовательность выполнения работы
- •Контрольные вопросы
- •Лабораторная работа № 8
- •Чтение присланных сообщений
- •Как ответить на сообщения
- •Удаление сообщений
- •Прекращение работы с программой mail
- •Использование почтовых псевдонимов (alias)
- •Система обмена сообщениями netnews (usenet)
- •Разговор в сети с другим пользователем
- •Телеконференции в реальном времени
- •Замечания по основным командам irc
- •Последовательность выполнения работы
- •1. Программа mail
- •1.1. Отправление почты
- •1.2. Чтение присланных сообщений
- •3. Программа talk
- •4. Программа irc
- •Контрольные вопросы
- •Оглавление
- •Николай Лаврентьевич Долозов основы операционных систем и сетевых технологий Учебно-методическое пособие
- •630092, Г. Новосибирск, пр. К. Маркса, 20
Компиляция исходного текста и построение исполняемого файла
Основное назначение компилятора с языка Си (в GNULinux) заключается в компиляции всей программы в целом и получении исполняемого модуля.
Одно из полезных свойств компилятора Си – его способность по суффиксам определять типы файлов. По суффиксу ".c" компилятор распознает, что файл abcd.c должен компилироваться, а по суффиксу ".o", что файл abcd.о является объектным модулем и для получения исполняемой программы необходимо выполнить редактирование связей. Простейший пример командной строки для компиляции программы abcd.c и построения исполняемого модуля abcd имеет вид
$ cc -o abcd abcd.c
При разработке большой программы, состоящей из нескольких исходных файлов заголовков, приходится постоянно следить за файлами, которые требуют перекомпиляции после внесения изменений. Программа make освобождает пользователя от такой рутинной работы и служит для документирования взаимосвязей между файлами. Описание взаимосвязей и соответствующих действий хранится в так называемом make-файле, который по умолчанию имеет имя makefile или Makefile. Например, makefile для программы abcd.c мог бы иметь вид:
#
# Makefile for abcd.c
#
# Compile abcd.c normaly
abcd:abcd.c
cc -o abcd abcd.c
# Compile abcd.c be using debugging
testabcd:abcd.c
cc -o testabcd -g abcd.c
# End Makefile for abcd.c
В общем случае make-файл содержит последовательность записей (строк), определяющих зависимости между файлами. Первая строка записи представляет собой список целевых (зависимых) файлов, разделенных пробелами, за которыми следует двоеточие и список файлов, от которых зависят целевые.
Текст, следующий за точкой с запятой, и все последующие строки, начинающиеся с литеры табуляции, являются командами OC Linux, которые необходимо выполнить для обновления целевого файла. Таким образом, спецификация взаимосвязей имеет формат:
target1 [ target2...]: [:] [dependment1...] [;commands]
[#commentary][(tab)commands][#commentary],
где # специфицирует начало комментария, так как содержимое строки, начиная с # и до конца строки, не будет обрабатываться командой make;
: – последовательность команд ОС Unix должна содержаться в одной строке make-файла (файла описаний), есть возможность переноса команд (\), но она считается как одна строка;
:: – последовательность команд ОС Unix может содержаться в нескольких последовательных строках файла описаний.
Приведенный выше make-файл для программы abcd.c включает два способа компиляции и построения исполняемого модуля.
Первый способ предусматривает обычную компиляцию с построением исполняемого модуля с именем abcd. Второй способ позволяет включать в исполняемый модуль testabcd возможность выполнить процесс отладки на уровне исходного текста.
Тестирование и отладка
Тестирование и отладка следуют за устранением всех синтаксических ошибок, выявленных при компиляции. Для отладки могут быть использованы различные программы отладки на уровне исходного кода. В качестве примера такой программы рассмотрена программа gdb. Для ее использования необходимо выполнить команду (для нашего примера) $ make testabcd, которая создаст исполняемый код (файл testabcd) для отладки.
После этого запустить отладчик gdb командой:
$ gdb testabcd
На экране появится информация об отладчике и в последней строке приглашение программы gdb в виде:
(gdb)для ввода команд отладчику.
Основными командами отладчика gdb являются:
backtrace– выводит весь путь к текущей точке останова, т. е. названия всех функций, начиная от main(); иными словами, выводит весь стек функций;
breakпараметр – устанавливает точку останова, параметром может быть номер строки или название функции;
continue– продолжает выполнение программы от текущей точки до конца;
display – добавляет выражение в список выражений, значения которых отображаются каждый раз при остановке программы;
finish– выполняет программу до выхода из текущей функции; отображает возвращаемое значение, если такое имеется;
help [команда] – информация о команде или общая информация об использовании отладчикаgdb;
list– пролистывает 10 строк вниз, начиная с текущей;
next– пошаговое выполнение программы, но, в отличие от команды step, не выполняет пошагово вызываемые функции;
printвыражение – выводит значение какого-либо выражения;
run– запускает программу на выполнение;
step– пошаговое выполнение программы;
quit– выход из отладчика.