2.3.1 Система инициализации
Система инициализации предназначена для конфигурирования программы и запуска сервера. С нее начинается выполнение программы в силу того, что она включает в себя функцию main().
При разработке программы были определены следующие параметры:
· LogMode - режим журналирования, может принимать значения short (краткий режим журналирования) и verbose (вывод расширенных сообщений).
· LogDir - каталог, в который будет осуществляться запись журнальных файлов.
· Address - адрес в формате xxx.xxx.xxx.xxx, который будет использован для привязки серверного сокета.
· Port - номер порта, который будет использован для привязки серверного сокета.
· MaxClients - максимальное число одновременно обслуживаемых клиентов.
· AccountFile - путь к файлу, содержащему учетные записи пользователя.
· ModulesDir - каталог, содержащий подключаемые модули (в виде динамических библиотек).
Система инициализации производит трехшаговую установку параметров:
1. Устанавливаются значения по умолчанию.
2. Загружаются значения из файла конфигурации.
3. Загружаются значения из аргументов командной строки.
Каждый последующий шаг имеет приоритет над предыдущим; это означает, что если для параметра существует строка в файле конфигурации, то будет учитываться значение, загруженное из файла конфигурации; а если значение параметра указано еще и в командной строке, то будет использовано именно оно.
После определения значений параметров система инициализации производит настройку соответствующих систем (сервера, системы журналирования и системы безопасности) через предоставляемый ими интерфейс.
Система инициализации также осуществляет настройку обработчика сигнала SIGINT (см. п. 3.2.2) в целях возможности корректно прервать работу сервера. Для этого создается переменная типа int, изначально содержащая значение 1. При возникновении сигнала функция обработки осуществляет сброс переменной в 0, тем самым делая условие цикла приема подключений ложным, что приводит к выходу из цикла и завершения работы сервера.
- 1. Исследовательский раздел
- 1.1 Постановка задачи
- 1.2 Передача данных
- 1.2.1 Протоколы передачи данных
- 1.3 Системная информация ОС Linux
- 1.3.1 Расположение системной информации
- 1.3.2 Файловая система /proc
- 2. Технологический раздел
- 2.1 Выбор языка программирования
- 2.2. Программные средства
- 2.2.2 Семафоры и мьютексы
- 2.3 Структура модулей программы
- 2.3.1 Система инициализации
- 2.3.2 Сервер и система управления динамическими библиотеками
- 2.3.3 Система журналирования
- 2.4 Динамические библиотеки
- 2.4.1 PROCESSES - информация о процессах
- 2.4.2 MEMINFO - информация о системной памяти
- 2.4.3 DISKFREE - информация о свободном месте на дисках
- 2.4.4 NETWORK - информация о сетевых устройствах
- 2.4.5 VERSION - версия операционной системы
- 2.4.6 INDEX - страница помощи
- 2.5 Использование программы
- 2.5.1 Настройка сервера
- 2.5.2 Доступ к серверу
- 2.5.3 Завершение работы сервера