Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1666 / 116 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 2:

Использование ОС Linux в качестве сервера электронной почты

Утилита make

Со временем проекты на С и С++ становились все сложнее. Приходилось работать с несколькими исходными файлами, каждый из которых имел свой файл заголовка. Компиляция отдельных исходных файлов порождала несколько объектных файлов, которые затем необходимо было связать в определенной комбинации для получения выполняемых файлов, а это довольно громоздкая и неприятная работа. Для упрощения этих задач большинством компиляторов языка С и С++ используется утилита make. В функции этой утилиты входит управление созданием выполняемых файлов на основе изменений в исходных файлах или согласно конфигурации, заданной переменными в конфигурационном файле make.

В проекте GNU имеется версия утилиты make, которая полностью совместима с компилятором gcc. На момент выхода данного курса текущая версия утилиты make была 3.78.1.

Главной составляющей утилиты make является Makefile. В нем указывается алгоритм компиляции исходного кода для создания выполняемой программы. Пример Makefile приведен в листинге 2.10.

1 # Makefile -- Make file for test program
2 #
3
4 # Edit the following for your installation
5
6 CC = gcc
7 #===================================
8
9 # Compiler and linker flags
10
11 CFLAGS = -0
12 LFLAGS = -0
13
14 # This program's object code files
15
16 OBJS = test.o
17
18 # File dependencies
19
20 all: test
21
22 objs: $(OBJS)
23
24 clean:
25 rm -f $(OBJS)
26 rm -f test
27
28 test: $(OBJS)
29 $(CC) -o $@ $(LFLAGS) $(OBJS) $(LIBS)
30
31 test.o: test.c
32 $(CC) -c $(CFLAGS) -o $@ $<
Листинг 2.10. Пример Makefile

В строках 6, 11,12 и 16 задаются переменные Makefile. Эти переменные могут изменяться пользователем в соответствии с ресурсами системы. В строке 18 объявляется создание так называемых действий системы. Каждое действие можно запускать отдельно, задавая его имя как параметр команды make. Например, чтобы запустить действие clean, которое удаляет все старые объекты и выполняемые файлы, нужно в командной строке набрать

make clean

Для создания объектных файлов для тестовой программы просто наберите

make objs

Если же в командной строке просто задать make, то она выполнится с целью all и создаст выполняемый файл test.

Распространители ОС Linux

Если у вас уже кружится голова от предлагаемых вариантов и версий ОС Linux, не волнуйтесь. К счастью, достаточно умные люди уже собрали все эти лоскутки одеяла в одно целое для нашего с вами удобства. Предварительно собранные пакеты операционной системы Linux называются дистрибутивами Linux (Linux distribution).

Большинство дистрибутивов доступны как за определенную плату, так и бесплатно. Часто у некоторых людей возникают вопросы, каким образом компании могут оплачивать бесплатное программное обеспечение. Ответом может служить общественная лицензия проекта GNU. Девиз распространения системы Linux таков: "Бесплатно — разговор, а за пиво плати". Распространители ОС Linux вправе назначать ту цену на свои продукты, которую они считают приемлемой для общественности, т.е. которую эта общественность готова заплатить за их продукт. "Бесплатным" распространение считается потому, что программное обеспечение, входящее в пакет распространителя, содержит исходные тексты всех программ и вы имеете право модифицировать их по своему усмотрению. Большинство компаний-распространителей ОС Linux предлагают бесплатные версии (так же, как "бесплатное пиво") своих систем на общественных началах.

Основная работа компаний — дистрибьюторов ОС Linux заключается в соединении различных версий ядра, оболочки и других утилит в единую целостную операционную систему. Очень часто это не так легко, как может показаться на первый взгляд. Каждая утилита должна быть определенным образом сконфигурирована и помещена в дистрибутивный пакет таким образом, чтобы она без проблем устанавливалась и надлежащим образом работала с операционной системой.

Большинство дистрибьюторов ОС Linux определенным образом пакуют программы, входящие в поставку ОС. Затем эти "запакованные" программы можно легко установить или удалить из системы, не влияя при этом на работу системы вцелом. Главным образом применяется метод пакования RPM, перешедший из дистрибутива Linux Red Hat. Все необходимые для работы файлы программа RPM пакует в один дистрибутивный файл. Установить либо удалить программное обеспечение программа RPM может с помощью одной простой команды.

В табл. 2.8 представлен список наиболее заметных распространителей ОС Linux на сегодняшний день. Приведены также версии ядра и библиотек языка С, входящих в поставку.

Таблица 2.8. Список распространителей ОС Linux
Дистрибутив Версия ядра Версия GLIBC
Caldera OpenLinux 2.3 2.2.10 2.1.1
Debian Linux 2.1 2.0.36 2.1
Mandrake 6.1 Linux 2.2.13pre 2.1.1
Red Hat 6.2 Linux 2.2.12 2.1.2
Slackware 7.0 2.2.13 2.1.2
SuSe 6.2 Linux 2.2.10 2.1.1

Как видно из табл. 2.8, дистрибутивы ОС Linux не очень сильно отличаются версиями ядра и библиотек языка С. Выбирая дистрибутив Linux для установки в качестве сервера, убедитесь, что в нем поддерживаются все требования, необходимые для нормальной работы приложений, которые вы собираетесь использовать.

Резюме

Основной составляющей сервера электронной почты на базе Linux является сама операционная система Linux. Сервер состоит из нескольких логических компонентов, но его сердцем является ядро системы Linux. Ядро управляет такими компонентами операционной системы, как память, процессы, устройства и файловая система. Кроме ядра, для нормальной работы ОС требуются различные утилиты. Группой проекта GNU была создана самая крупная библиотека UNIX-совместимых утилит для работы с ядром ОС Linux. Оболочка bash shell обеспечивает механизм взаимодействия пользователей с операционной системой, позволяя им запускать программы. Компилятор gcc дает пользователям возможность создавать выполняемые программы с использованием языков программирования С и С++. Утилита make широко используется для преобразования исходных текстов упакованных программ в выполняемые модули. В настоящее время доступно много дистрибутивов ОС Linux, включающих в один пакет все необходимые для работы утилиты вместе с определенным ядром Linux. Новичков довольно часто смущает множество доступных дистрибутивов ОС Linux. Если вы приобретаете новый дистрибутив ОС Linux для вашей компании, то ознакомьтесь с предложениями от различных распространителей этой операционной системы. Многие из них предлагают специальные пакеты услуг для бизнес-пользователей.

Игорь Орещенков
Игорь Орещенков
Беларусь, Белорусский государственный университет, 1999