Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec01.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
241.66 Кб
Скачать

8.3 Программные каналы

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

int pipe (int fifo[2]).

Аргумент fifo является массивом, состоящим из двух целых чисел, присваиваемых ему интерфейсом pipe. В большинстве систем Unix канал является однонаправленным, т. е. для чтения данных из канала процесс использует дескриптор файла fifo[0], а для записи данных в канал – другой дескриптор файла fifo[1].

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

#include <iostream.h>

#include <stdio.h>

#include <sys/wait.h>

#include <unistd.h>

int main()

{

int child_pid;

int fifo[2], status;

int sf=sizeof(float);

float buf1=2;

pipe(fifo);

write(fifo[1],&buf1,sf);

child_pid=fork();

if (child_pid==0)

{ float buf2;

read(fifo[0],&buf2,sf);

buf2=buf2+1;

write(fifo[1],&buf2,sf);

exit(0);

};

wait(&status);

read(fifo[0],&buf1,sf);

cout << "buf1=" << buf1;

}

Тема 9. Web и Ftp сервисы

9.1 Конфигурирование Web-сервера

В качестве Web-сервера в Unix чаще всего используется Apache (90%). Он может работать с базами данных и выполнять обработку сценариев на Perl.

В отличие от SMTP и FTP протокол HTTP не поддерживает сеансы. Когда клиент соединяется с сервером, позволяет выполнить только один запрос, а потом закрывает соединение.

Если на компьютере с Unix работает Telnet, можно, например, передать запрос на Web-сервер:

имя или адрес

telnet localhost 80

корневой каталог Web- сервера

GET / HTTP/1.0

- завершение тела запроса, в данном случае

тело отсутствует

Здесь будет выдана информация о сервере и файл index.html,

<HTML><BODY> Test</BODY></HTML>

Можно запустить тестовый браузер lynx

lynx localhost

Будет выдано

INDEX OF/

* Parent directopy

* index. html

Далее можно выбрать и открыть файл браузера типа index. html.

Можно также запустить полноценный браузер типа Netscape Communicator, который сразу выдает экран со словом «Test».

Инсталляция сервера выполняется обычно из порта, либо из исходных файлов. Главный файл конфигурации Apache называется httpd.conf. После инсталляции сервер запускается автоматически.

Проверить, запущен ли в системе сервер httpd, можно командой

информация о процессах,

относительно от терминала

ps - x

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

В ситуации, когда на компьютере запущено более десятка httpd, остановку или перезагрузку нужно применять к главному процессу. Однако лучше для этого использовать команду

apachectl start

apachectl stop

Для определенных частей Web-сайта доступ можно сделать ограниченным.

Допустим, что доступ к определенным файлам или каталогам должен быть ограничен списком фиксированых IP-адресов. Выполнить эту операцию можно на глобальном уровне файлом httpd.conf. Однако гораздо эффективнее воспользоваться файлом .htacces в каталоге, элементы которого нужно защитить.

Пример содержимого файла .htaccess:

Order deny, allow

Deny from all

allow from 100.1.3.4

allow from company.com

Можно также организовать доступ к ресурсам по паролю. Это также делается с помощью .htaccess , но несколько сложнее. Для доступа по паролю еще нужен дополнительный файл .htpassword с именами и паролями пользователей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]