1.1 Постановка задачи
При разработке серверного программного обеспечения необходимо учитывать ряд требований, которые могут не учитываться в процессе разработки пользовательских приложений. Это и повышенные требования к устойчивости работы, и необходимость рассмотрения вопроса безопасности передачи данных, и наличие надежной системы ограничения доступа, и минимизация используемых программой ресурсов операционной системы.
В случае разработки серверной программы наблюдения за состоянием Linux-системы был выделен ряд требований, которые в процессе разработке в той или иной степени были удовлетворены:
· Должна быть возможность подключения к программе посредством программного обеспечения, установленного на большинстве компьютеров и самых разнообразных операционных системах, например, Интернет-браузера; это приводит к тому, что программой должны в определенной степени поддерживаться распространенные протоколы передачи данных;
· Программа должна поддерживать возможность одновременного подключения нескольких клиентов; при этом не должно быть взаимного влияния между частями программы, отвечающими за обработку запросов от различных клиентов: ошибка при работе с одним из клиентов не должна приводить к краху всей программы и не должна влиять на работу с другими клиентами;
· Доступ подключаемых пользователей к информации о системе должен быть ограничен с помощью механизма учетных записей, причем данные о пользователях должны храниться в зашифрованном виде;
· Модули, использующиеся для получения информации о системе, должны быть динамически подключаемыми с целью возможности добавлять новые модули, не прерывая работу программы и, тем более, без ее повторной компиляции;
· Программа должна соответствовать стандарту POSIX и использовать только стандартные библиотеки, входящие в состав большинства UNIX-систем.
- 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 Завершение работы сервера