291
Линукс Общество България Линукс за Българи 12 март 2002 г.

LINUX(Bulgarian Language)

Embed Size (px)

Citation preview

Page 1: LINUX(Bulgarian Language)

Линукс Общество България

Линукс за Българи

12 март 2002 г.

Page 2: LINUX(Bulgarian Language)

Съдържание

I Въведение 3

1 Как да използваме тази книга 7

2 За авторите и Българското Линукс Общество 92.1 Българско Линукс Общество / LUG-BG . . . . . . . . . . . . 9

2.2 Кои сме ние, авторите? . . . . . . . . . . . . . . . . . . . . . . 10

II GNU, Linux и UNIX 11

3 Какво е Linux? 133.1 От къде идва името Линукс? . . . . . . . . . . . . . . . . . . . 13

3.2 История на Линукс . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.1 UNIX - предшественика на Linux . . . . . . . . . . . . 14

3.2.2 Създаването на Linux . . . . . . . . . . . . . . . . . . . 14

4 Какво е OpenSource 174.1 История на GNU обществото . . . . . . . . . . . . . . . . . . 18

III Инсталиране на Линукс 21

5 Какво представляват операционните системи 23

6 Linux дистрибуции 256.1 Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6.2 RedHat Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6.3 S.u.S.E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6.4 Slackware Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

i

Page 3: LINUX(Bulgarian Language)

ii СЪДЪРЖАНИЕ

7 Инсталиране на Mandrake Linux 29

7.1 Преди да започнем (изисквания) . . . . . . . . . . . . . . . . . 29

7.2 Начални стъпки . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

7.3 Инсталация на Mandrake Linux 8.1 . . . . . . . . . . . . . . . . 30

7.4 Конфигуриране на Mandrake . . . . . . . . . . . . . . . . . . . . 42

7.4.1 Потребители . . . . . . . . . . . . . . . . . . . . . . . . 42

7.4.2 Настройка на мрежата . . . . . . . . . . . . . . . . . . 44

7.4.3 Настройка на периферните устройства . . . . . . . . 49

7.4.4 Конфигуриране на X . . . . . . . . . . . . . . . . . . . . 57

8 Какво представляват пакетите 63

8.1 Как да добавим нови пакети . . . . . . . . . . . . . . . . . . . 63

8.2 Автоматично обновяване на пакетите . . . . . . . . . . . . 63

8.3 Други пакетни менажери . . . . . . . . . . . . . . . . . . . . . . 63

IV Най-основното за работата с Линукс 65

9 Кои команди можем да използваме за помощ 69

10 Какво представлява потребителски account 71

10.1 Как да си сменим паролата . . . . . . . . . . . . . . . . . . . . 71

11 Какво представляват файловете 73

11.1 Изпълнимият файл . . . . . . . . . . . . . . . . . . . . . . . . . 73

11.2 Файлови атрибути . . . . . . . . . . . . . . . . . . . . . . . . . 74

11.3 Основни команди за работа с файлове и директории . . . . 75

11.3.1 Промяна на файловите атрибути . . . . . . . . . . . . 75

11.3.2 Копиране, местене и преименуване на файлове . . . . 76

11.3.3 Разпечатване на файлове . . . . . . . . . . . . . . . . . 76

11.3.4 Създаване и изтриване на файлове . . . . . . . . . . . 77

11.3.5 Команди за работа с директории . . . . . . . . . . . . 78

12 Други полезни програми 79

12.1 Файлове . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

12.2 Комуникация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Page 4: LINUX(Bulgarian Language)

СЪДЪРЖАНИЕ iii

13 Работа с текстов редактор 8313.1 Работа с pico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8313.2 Използване на vi . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

13.2.1 Команден режим и редактиране . . . . . . . . . . . . . 8513.2.2 Режим на редактиране . . . . . . . . . . . . . . . . . . . 8613.2.3 Команден режим . . . . . . . . . . . . . . . . . . . . . . . 86

V Графични среди 89

14 Какво представлява X-Windows 9114.1 Конфигуриране . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9214.2 Кирилизиране на X . . . . . . . . . . . . . . . . . . . . . . . . . . 9214.3 Стартиране . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

15 Графични среди и графични менажери 9315.1 Какво представляват графичните менажери . . . . . . . . . 9315.2 Защо има различни графични менажери . . . . . . . . . . . . . 9315.3 Какво представляват графичните среди . . . . . . . . . . . . 94

16 Работа с KDE 9516.1 Стартиране на KDE . . . . . . . . . . . . . . . . . . . . . . . . 9516.2 Конфигуриране . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9516.3 Кирилизация и локализация . . . . . . . . . . . . . . . . . . . . 9516.4 Програми за KDE . . . . . . . . . . . . . . . . . . . . . . . . . . 9516.5 Как да се свържем с Интернет . . . . . . . . . . . . . . . . . . 95

17 Работа с GNOME 9717.1 Стартиране на GNOME . . . . . . . . . . . . . . . . . . . . . . 9717.2 Конфигуриране . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9717.3 Кирилизация и локализация . . . . . . . . . . . . . . . . . . . . 9717.4 Програми за GNOME . . . . . . . . . . . . . . . . . . . . . . . . 9717.5 Как да се свържем с Интернет . . . . . . . . . . . . . . . . . . 97

18 Други графични менажери и среди 9918.1 XFce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

18.1.1 Какво представлява XFce . . . . . . . . . . . . . . . . . 10018.1.2 Предимства . . . . . . . . . . . . . . . . . . . . . . . . . 10018.1.3 Стартиране . . . . . . . . . . . . . . . . . . . . . . . . . 10118.1.4 Конфигуриране . . . . . . . . . . . . . . . . . . . . . . . . 10118.1.5 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Page 5: LINUX(Bulgarian Language)

iv СЪДЪРЖАНИЕ

18.2 blackbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10218.2.1 Какво е Blackbox . . . . . . . . . . . . . . . . . . . . . . . 10218.2.2 Предимства . . . . . . . . . . . . . . . . . . . . . . . . . 10218.2.3 Стартиране на Blackbox . . . . . . . . . . . . . . . . . . 10318.2.4 Работа с Blackbox . . . . . . . . . . . . . . . . . . . . . . 103

Прозорци . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Менютата . . . . . . . . . . . . . . . . . . . . . . . . . . 104

18.2.5 Конфигуриране . . . . . . . . . . . . . . . . . . . . . . . . 10418.2.6 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . 104

18.3 IceWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10618.3.1 За IceWM накратко . . . . . . . . . . . . . . . . . . . . . 10618.3.2 Предимства . . . . . . . . . . . . . . . . . . . . . . . . . 10618.3.3 Стартиране на IceWM . . . . . . . . . . . . . . . . . . . 10718.3.4 Работа с IceWM . . . . . . . . . . . . . . . . . . . . . . . 10718.3.5 Конфигуриране . . . . . . . . . . . . . . . . . . . . . . . . 10718.3.6 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . 107

18.4 WindowMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10818.4.1 За WindowMaker накратко . . . . . . . . . . . . . . . . 10818.4.2 Предимства . . . . . . . . . . . . . . . . . . . . . . . . . 10818.4.3 Стартиране на WindowMaker . . . . . . . . . . . . . . 10918.4.4 Конфигуриране . . . . . . . . . . . . . . . . . . . . . . . . 10918.4.5 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . 110

VI Linux в моят Офис 111

19 Офис пакети за Линукс 11319.1 KOffice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11319.2 GNOME Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11419.3 HancomOffice 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 11519.4 Corel R©WordPerfect Office 2000 . . . . . . . . . . . . . . . . . . 115

20 Инсталиране и работа с OpenOffice 11720.1 Накратко за OpenOffice.org . . . . . . . . . . . . . . . . . . . . 11720.2 Инсталиране . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11820.3 Използване . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

21 Инсталиране и работа с ApplixWare 121

22 Инсталиране и работа с GIMP 123

Page 6: LINUX(Bulgarian Language)

СЪДЪРЖАНИЕ v

23 CAD/CAM приложения за Linux 125

VII Мултимедия под Линукс 127

24 Програми за слушане на музика 129

25 Линукс - Нашето домашно видео 131

VIII Съвместа работа с Windows 133

26 Споделяне на файлове 13526.1 Да потанцуваме Samba . . . . . . . . . . . . . . . . . . . . . . . 13526.2 Как да конфигурираме SAMBA . . . . . . . . . . . . . . . . . . 13626.3 Споделяне на файлове . . . . . . . . . . . . . . . . . . . . . . . . 136

26.3.1 Специалната homes секция . . . . . . . . . . . . . . . . 13726.3.2 Достъп до файловете на Windows машина . . . . . . 138

26.4 Печат на мрежов принтер . . . . . . . . . . . . . . . . . . . . 138

27 X под Windows 13927.1 Да си инсталираме X . . . . . . . . . . . . . . . . . . . . . . . . 13927.2 Как да ползваме WiredX . . . . . . . . . . . . . . . . . . . . . . 14027.3 XDMCP и REXEC . . . . . . . . . . . . . . . . . . . . . . . . . . 14027.4 Проблеми . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

28 Емулатори 143

IX Администриране на Линукс 145

29 Групи и потребители 14729.1 Потребител root . . . . . . . . . . . . . . . . . . . . . . . . . . . 14729.2 Добавяне и премахване на групи и потребители . . . . . . . 14729.3 Специалните файлове /etc/passwd и /etc/shadow . . . . . . . . . 14729.4 Командата su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

30 Файловата система 14930.1 Организация на файловете . . . . . . . . . . . . . . . . . . . . . 14930.2 Що е виртуална файлова система . . . . . . . . . . . . . . . . 14930.3 Монтиране на дискове . . . . . . . . . . . . . . . . . . . . . . . 149

30.3.1 Файловете /etc/fstab и /etc/mtab . . . . . . . . . . . . . . 149

Page 7: LINUX(Bulgarian Language)

vi СЪДЪРЖАНИЕ

30.4 Мрежови файлови системи . . . . . . . . . . . . . . . . . . . . 149

31 Отдалечено администриране 15131.1 Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15131.2 rsh, rexec, rlogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15131.3 Secure Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

32 Команди ползвани от напредналите потребители 153

33 Конзола, шел и терминали 15533.1 Какво е bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15533.2 Други шелове . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15533.3 Как да си сменим шел-а . . . . . . . . . . . . . . . . . . . . . . . 15533.4 Кирилизиране на конзолата . . . . . . . . . . . . . . . . . . . . 155

34 Мрежата 15734.1 TCP/IP протокол . . . . . . . . . . . . . . . . . . . . . . . . . . . 15734.2 Локална мрежа - LAN . . . . . . . . . . . . . . . . . . . . . . . . 157

34.2.1 мрежови карти . . . . . . . . . . . . . . . . . . . . . . . 15734.2.2 настройване на IP-то (ifconfig) . . . . . . . . . . . . . . 157

34.3 Dial-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15734.3.1 Какво е PPP . . . . . . . . . . . . . . . . . . . . . . . . . . 15734.3.2 Използване на pppsetup . . . . . . . . . . . . . . . . . . . 157

34.4 Команди за работа в мрежа . . . . . . . . . . . . . . . . . . . . 15734.4.1 ftp, hostname, netstat, ping, telnet . . . . . . . . . . . . . . 15734.4.2 mail, fetchmail, sendmail, mutt, pine . . . . . . . . . . . . 15734.4.3 Използване на WEB - lynx . . . . . . . . . . . . . . . . . 157

34.5 Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

35 Стартиране на системата 15935.1 Start-up скриптове . . . . . . . . . . . . . . . . . . . . . . . . . . 15935.2 Демони . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15935.3 inetd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15935.4 cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

36 Какво представлява Линукс ядрото 16136.1 Няколко общи думи за ядрото . . . . . . . . . . . . . . . . . . 16136.2 Защо е добре да го обновяваме периодично . . . . . . . . . . . 16136.3 Прекомпилиране на кернела . . . . . . . . . . . . . . . . . . . . 162

36.3.1 Кернелът . . . . . . . . . . . . . . . . . . . . . . . . . . . 16236.3.2 Модули . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Page 8: LINUX(Bulgarian Language)

СЪДЪРЖАНИЕ vii

36.3.3 Настройка на новото ядро . . . . . . . . . . . . . . . . 166

36.3.4 Закърпване на ядрото ( patching) . . . . . . . . . . . . . 167

X Администриране на мрежови услуги 169

37 Пощаааа! Или конфигуриране на Sendmail 17137.1 Инсталиране на Sendmail . . . . . . . . . . . . . . . . . . . . . . 171

37.1.1 Подготвителни стъпки . . . . . . . . . . . . . . . . . . 171

37.1.2 Самата инсталация . . . . . . . . . . . . . . . . . . . . 173

37.1.3 Настройка на конфигурационните файлове на Sendmail176

37.2 Sendmail Restricted Shell . . . . . . . . . . . . . . . . . . . . . . . 178

37.3 Настройка на записите на DNS . . . . . . . . . . . . . . . . . 179

37.3.1 Настройка на DNS - записите за домейна. . . . . . . . 179

37.3.2 Избор на пощенски сървър за крайна обработка завходящата електронна поща. . . . . . . . . . . . . . . 183

37.3.3 Избор на сървър за RELAY или междинна обработ-ка на входящята поща. . . . . . . . . . . . . . . . . . . . 183

37.4 Обработка на изходящия трафик . . . . . . . . . . . . . . . . 184

37.4.1 Настройки на sendmail.cf . . . . . . . . . . . . . . . . . 184

37.4.2 Използване на /etc/mail/mailertable за маршрутизира-не на изходящия пощенски трафик . . . . . . . . . . . . 187

37.4.3 Настройки на базата за достъп /etc/mail/access . . . . 187

37.5 Обработка на входящия трафик . . . . . . . . . . . . . . . . . 189

37.5.1 Настройка на /etc/mail/local-host-names . . . . . . . . . 189

37.5.2 Настройка на /etc/aliases . . . . . . . . . . . . . . . . . . 190

37.5.3 Как потребителя може да препраща своята елект-ронна поща сам. . . . . . . . . . . . . . . . . . . . . . . . 193

37.5.4 Настройка на /etc/mail/access . . . . . . . . . . . . . . . 193

37.6 Обработка на трафик, базирана на MX записи . . . . . . . . 195

37.6.1 Настройка за препредаване на електронна поща поMX ресурсен запис. . . . . . . . . . . . . . . . . . . . . . 195

37.6.2 Мерки за извърване на настройките от страна наобслужваниете от вас домейни. . . . . . . . . . . . . . 196

37.7 Виртуален хостинг . . . . . . . . . . . . . . . . . . . . . . . . . 197

37.7.1 Идея . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

37.7.2 Примерна конфигурация на виртуален хостинг на елек-тронна поща без наличието на пощенски сървър уклиента. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

Page 9: LINUX(Bulgarian Language)

viii СЪДЪРЖАНИЕ

37.7.3 Примерна конфигурация на виртуален хостинг на елек-тронна поща с наличието на пощенски сървър у кли-ента. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

37.8 Тунели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20337.8.1 Идея . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20337.8.2 Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20437.8.3 Настройки от страна на вашия сървър за електрон-

на поща . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20437.8.4 Настройки на сървъра на поредника mail.relay-domain.examp20437.8.5 Настройки на сървъра на получателя mail.other-domain.examp20537.8.6 Трансформации на адреса на получателя при преда-

ването в тунела . . . . . . . . . . . . . . . . . . . . . . . 20637.9 Корпоративни настройки . . . . . . . . . . . . . . . . . . . . . 206

37.9.1 Увод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20637.9.2 Описание . . . . . . . . . . . . . . . . . . . . . . . . . . . 20737.9.3 Подготовка на сървърите за имена . . . . . . . . . . . 20937.9.4 Обслужване на входящата електронната поща за

публичното адресно пространство . . . . . . . . . . . 21037.9.5 Обслужване на входящата електронна поща за вир-

туалното адресно пространство . . . . . . . . . . . . 21137.9.6 Обслужване на изходящия трафик . . . . . . . . . . . . 212

38 Настройка на BIND 215

XI Програмиране под Линукс 217

39 Програмиране на обвивката 21939.1 Скриптове в BASH . . . . . . . . . . . . . . . . . . . . . . . . . 21939.2 Скриптове в TCSH . . . . . . . . . . . . . . . . . . . . . . . . . 21939.3 Регулярни изрази . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

40 Програмни езици за Линукс 221

41 Среди за програмиране 22341.1 Въведение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22341.2 Безплатни програмни среди . . . . . . . . . . . . . . . . . . . . 223

41.2.1 Source Navigator . . . . . . . . . . . . . . . . . . . . . . . 22341.2.2 KDevelop . . . . . . . . . . . . . . . . . . . . . . . . . . . 22441.2.3 wxStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22541.2.4 Glimmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Page 10: LINUX(Bulgarian Language)

СЪДЪРЖАНИЕ ix

41.2.5 jEdit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22641.2.6 NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22641.2.7 Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22741.2.8 Scintilla and Scite . . . . . . . . . . . . . . . . . . . . . . . 22741.2.9 Moleskine . . . . . . . . . . . . . . . . . . . . . . . . . . . 22841.2.10Anjuta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22841.2.11Quanta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22941.2.12phpmole-IDE . . . . . . . . . . . . . . . . . . . . . . . . . 22941.2.13RHIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22941.2.14motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23041.2.15JED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

41.3 Комерсиални среди за писане . . . . . . . . . . . . . . . . . . . 23041.3.1 C-Forge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23141.3.2 CodeWarrior . . . . . . . . . . . . . . . . . . . . . . . . . . 23141.3.3 JX Development Suite . . . . . . . . . . . . . . . . . . . . 23241.3.4 Moonshine . . . . . . . . . . . . . . . . . . . . . . . . . . . 23241.3.5 SNiFF+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23241.3.6 Kylix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23341.3.7 JBuilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23341.3.8 CodeGuide . . . . . . . . . . . . . . . . . . . . . . . . . . . 23441.3.9 Komodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23441.3.10Wing IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . 23541.3.11Visual SlickEdit . . . . . . . . . . . . . . . . . . . . . . . . 23541.3.12mBedded Builder . . . . . . . . . . . . . . . . . . . . . . . 235

41.4 Методи на типичният UNIX програмист . . . . . . . . . . . 23641.4.1 VIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23641.4.2 Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

41.5 Други полезни инструменти . . . . . . . . . . . . . . . . . . . 23741.5.1 Doxygen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23741.5.2 AStyle и Indent . . . . . . . . . . . . . . . . . . . . . . . . 23841.5.3 CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

XII Приложения 239

42 The GNU General Public License 241

43 The GNU Library General Public License 249

44 GNU Free Documentation License 259

Page 11: LINUX(Bulgarian Language)

СЪДЪРЖАНИЕ 1

45 The GNU General Public License - Български Превод 267

46 Речник на термините 277

47 Сайтове за Линукс 279

48 Благодарности 281

Page 12: LINUX(Bulgarian Language)

2 СЪДЪРЖАНИЕ

Page 13: LINUX(Bulgarian Language)

Част I

Въведение

3

Page 14: LINUX(Bulgarian Language)
Page 15: LINUX(Bulgarian Language)

5

Тази книга е посветена на тези млади хора, които имат желание илиса поне малко любопитни да разберат какво е Линукс и как се работи снего.

Ние, Българското Линукс Общество, пишейки тази книга, искаме даизразим нашата подкрепа към онези свободомислещи хора, които вяр-ват, че Линукс е операционната система на двадесет и първи век.

Ние искаме да Ви помогнем.И ще го направим!

Page 16: LINUX(Bulgarian Language)

6

Page 17: LINUX(Bulgarian Language)

Глава 1

Как да използваме тазикнига

Книгата е предназначена за читатели имащи елементарни компю-търни познания но също така, надявам се може да е полезна и за по-напреднали Linux потребители. Не Ви гарантирам, че прочитайки тазикнига ще станете компютърен гений или Linux гуру, но във всеки случайцелта ми е да Ви науча да използвате безпроблемно Linux в офиса или до-ма си. Също така ще научите и някои любопитни факти от историятана Linux или UNIX изобщо.

Най-важната цел обаче ми е да да премахна Вашите страх и пред-разсъдъци по отношение на тази прекрасна операционна система. Linux,освен, че е една безплатна (или по-скоро евтина) алтернатива на попу-лярните (и платени) операционни системи, но е и лесна среда, която Випозволява да си вършите работа, да се забавлявате или да се потопитевъв безгрижните и сигурни мрежови комуникации.

Една забележа, която искам да вмъкна още в самото начало е, чеспазвайки принципите на Linux и GNU обществото изцяло, тази книгаможе да се разпространява безплатно и е позволено да се копира, прин-тира .. и др., до тогава, докато се спазва GNU Лиценза за СвободнаДокументация (GNU FDL), чийто текст можете да прочетете в краяна книгата.

7

Page 18: LINUX(Bulgarian Language)

8 ГЛАВА 1. КАК ДА ИЗПОЛЗВАМЕ ТАЗИ КНИГА

Page 19: LINUX(Bulgarian Language)

Глава 2

За авторите иБългарското ЛинуксОбщество

2.1. Българско Линукс Общество / LUG-BG

Българското GNU/Линукс Общество е създадено предимно от Ли-нукс потребители, които си помагат взаимно в работата си. В момен-та б българското интернет пространство можете да намерите многосайтове относно Линукс и други Open Source проекти. Няма да давамадреси тук, защото тях можете да ги прочетете в приложенията къмкнигата.

Смятам, обаче да обърна внимание на единственият засега пощен-ски списък или така нареченият LUG-BG (Linux User Group - Bulgaria).Това е група за обмен на информация по електронна поща, ориентира-на основно към потребителите на ОС Linux, които освен всичко другообичат да говорят и пишат на български език.

Именно в този пощенски списък се зароди идеята да се създаде книгав полза на начинаещите Линукс потребители. Именно затова, няколкоентусиасти започнаха писането на Линукс учебник, който можете данамерите на http://www.linux-bulgaria.org/.

Въпреки, че е полезен донякъде аз смятам този учебник, не особенноподходящ за наистина начинаещи потребители и именно това ме под-тикна да започна тази книга. Много се радвам, че в момента има някол-ко други ентусиасти, които се решиха да ми помогнат. Именно затоване искам да смятате, че тази книга е дело на една определена личност.Това е продукт от работата на един екип от специалисти, интусиасти

9

Page 20: LINUX(Bulgarian Language)

10 ГЛАВА 2. ЗА АВТОРИТЕ И БЪЛГАРСКОТО ЛИНУКС ОБЩЕСТВО

и дори начинаещи потребители, които ни помагат със своите забележ-ки.

2.2. Кои сме ние, авторите?

Валентин Вълчев - главен редактор и писачГеорги Данчев - по-малко главен редактор и писачВеселин Колев - върл фен на Sendmail и автор на съответната глава....тук може да бъде и вашето име

Page 21: LINUX(Bulgarian Language)

Част II

GNU, Linux и UNIX

11

Page 22: LINUX(Bulgarian Language)
Page 23: LINUX(Bulgarian Language)

Глава 3

Какво е Linux?

Linux, каквато в повечето случаи се разбира, когато говорят за неяе операционна система. Най-накратко, това е програма, която контро-лира вашият компютър и неговите устройства. Тя също Ви помага даобщувате с него - да му задавате команди и да получавате резултатитена монитора или принтера или на някакво друго външно устройство.

Линукс е една много добра алтернатива на популярната операционнасистема Windows, създадена и разпространявана от Microsoft Corporation.Някои от предимствата на Линукс е, че е безплатна и стабилна. Ло-шото е, че не чак токова приятелски настроена към потребителя, нотова се компенсира със динамичния растеж и все повечето нови прило-жения, които излизат.

Ако се чудите защо хората избират Линукс, според мен главнатапричина е любопитството. Търсейки алтернатива на скъпи и не осо-бенно добри операционни системи потребителите чуват за Линукс отприятели, от новините или от списания.

Други избират Линукс, защото се нуждаят от операционна систе-ма, която може да върви седмици, месеци, години дори. Други, защотосе нуждаят от добра и евтина алтернатива на скъпите mainframe ком-пютри. Някои пък се чувстват ограничени от еднообразните среди наWindows и MacOS и затова избират да се впуснат в експерименти съсразличните графични среди достъпни за Линукс.

На последно място, но не и по важност са бивши потребители наЛинукс, които вече за нищо на света не биха си сложили отново Windowsили някаква друга операционна система освен Linux.

3.1. От къде идва името Линукс?

Знаете как обикновено родителите кръщават децата си - обикнове-но на някой роднина. Така и Линукс е кръстена на своят баща - Линус

13

Page 24: LINUX(Bulgarian Language)

14 ГЛАВА 3. КАКВО Е LINUX?

Торвалдс. Когато създава Линукс, той не е смятал, че ще добие такавапопулярност и макар да са минали само 10 години от създаването и Ли-нукс вече има и своя собствена история, която можете да прочететев следващата секция.

3.2. История на Линукс

3.2.1. UNIX - предшественика на Linux

Както споменах по-горе Linux e UNIX базирана операционна систе-ма. Самата UNIX съществува от преди повече от тридесет години.Тя е била създадена в Bell Laboratories през 1969 година от Кен Томп-сън и Денис Ричи, като наследник на една друга, многопотребителскаоперационна система Multics.

UNIX е много уникална операционна система. Първо, защото е напи-сана изцяло на програмният език C, за разлика от останалите операци-онни системи, които били разработвани дотогава на асемблер. Асемб-лерът е език, много близък до машинният код на процесора за който епредназначен и затова програми, написани на асемблер не можели леснода бъдат преправени за друг процесор. Именно това спъвало развитие-то на операционните системи в онези времена. След като била прена-писана изцяло на C, език от по-високо ниво, UNIX можело да бъде леснои бързо прехвърляна на различни процесори. Именно тогава настъпилбумът на UNIX и неговото огромно и повсеместно разпространение.

Заедно с това се появили и първите клонинги на UNIX и някои оттях съществуват и досега.

В крайна сметка основната причина за популярността на UNIX би-ла именно тази негова преносимост. С цел да се запази тази гъвкавостUNIX системите били изградени с един основен принцип - програмите,които идвали с операционната система били малки и бързи. Те взаи-модействали помежду си в така наречените скриптове с чиято помощЗа shell скриптовете ще

можете да научите вследващите части на кни-гата

можело да се организира едно относително автоматизиране на задачи-те.

3.2.2. Създаването на Linux

Linux води своите корени от MINIX - един от многобройните кло-нинги на UNIX. MINIX е била също така безплатна операционна систе-ма и нейният създател Андрю Таненбаум също предотстъпил достъпдо кода и, като по този начин оставил университетските среди средкоито била разпространена, да я развиват и да се учат от нея.

Тогава, като студент в Хелзинският университет, Линус Торвалдс,раздразнен от ограниченията на MINIX и от невъзможността да си ку-

Page 25: LINUX(Bulgarian Language)

3.2. ИСТОРИЯ НА ЛИНУКС 15

пи скъпо струващите UNIX системи, решил да създаде своя собственаоперационна система. Така се появил Линукс. Минало малко време дока-то се стабилизират първите "исторически"версии, които сега можетеда намерите в Интернет на адрес http://www.kernel.org/pub/linux/kernel/Historic.

По същото това време, GNU фондацията разработила и GNU PublicLicense (GPL). Фактът, че Линукс предотставял кода на своята опера-ционна система под този лиценз, бил основната предпоставка за разви-тието и ескалиращата поддръжка на току що зародилия се Linux.

Page 26: LINUX(Bulgarian Language)

16 ГЛАВА 3. КАКВО Е LINUX?

Page 27: LINUX(Bulgarian Language)

Глава 4

Какво е OpenSource

Понеже концепцията за отвореният код е отговорна за бързоторазвитие на UNIX и по–точно навлизането му като операционна сис-тема за персонален компютър е нужно да Ви дадем поне малка идея затова какво представлява инициативата за отворен код.

OpenSource е термин, който се дава на софтуер, написан и разпрост-раняван под условията дефинирани във Open Source лиценза. Това горе–долу е дефиницията за отворен код (OSD). Цялата и скучна дефиниция,ако ви интересува, можете да намерите на http://www.opensource.org/.

Първото изискване на OSD е, че всеки open–Source пакет трябва дасе разпространява напълно свободно, макар това да не означава, че неможете и да го продавате.

Не разбирайте грешно горното изискване. То не значи, че трябва дапечелите по–малко, а гарантира свободното разпространение на соф-туера.

Второто изискване е, че освен програмата, вие трябва да предотс-тавяте и изходният програмен код. На това се базира модела на отво-реният код за развитие и подобрение на софтуера. Получавайки изход-ният код хиляди програмисти могат да работят по вашият продукт,да оправят грешки и да добавят нова функционалност. По този начинвие нищо не губите а само печелите, защото те фактически работятза вас и при това напълно безплатно.

Разбира се има и други изисквания, но те не са толкова важни, а исмятам че никак няма да ви бъдат интересни. Важното е да разберете,че основната идея, която е застъпена, е свободното разпространение иразвитие на софтуера.

Този модел, позволява непрекъснато еволюиране на продукта за раз-лика от рядко публикуваните ъпгрейди на затворени и консервативнисофтуерни фирми. В следствие на това open–source програмите в по-вечето случаи са по–надеждни от останалите. Максимата "получаваш

17

Page 28: LINUX(Bulgarian Language)

18 ГЛАВА 4. КАКВО Е OPENSOURCE

това за което плащаш"в този случай не е валидна.Купувайки такъв софтуер, можете да бъдете сигурни, че той ще

върви много добре и дори при най–малки проблеми, компанията от ко-ято сте го купили, ще ви обърне необходимото внимание. Разбира се,ви можете и да не купите този софтуер и ако сте добър специалистможете да се справите с повечето проблеми, или да помолите хората,записани в някой специализиран пощенски списък да ви помогнат – и теможе и да го направят, но може и да е късно. Ако обаче сте купили соф-туера, вие сте купили не самата програма, ами възможността да сесвързвате при всеки случай с отдела по поддръжка към фирмата.

Това определено е едно удобство както при големи корпорации, такаи при средни и малки фирми.

В крайна сметка атрактивното при open–source продуктите е тях-ната ниска цена, както и по–високото качество.

4.1. История на GNU обществото

Преди да ви разкажа накратко историята на GNU бих искал да ви ра-зясня какво точно означава това. Самото съкращение идва от "GNU’sNot Unix което преведено на български ще рече "ГНУ не е UNIX".

GNU е анонсирана от Ричард Сталман към краят на Септември,1983 година, с идеята да се създаде UNIX–подобна операционна систе-ма, която да може да се разпространява свободно. Фактически GNUпроекта официално бил създаден през Януари, 1984 г.

Разработването на цялостна, завършена система изисква наистинамного работа. Така с течение на времето, назряло мнението, че GNUсистемата може да съдържа и не GNU, но пак така свободен софту-ер като TeX и X–Windows. Именно заради това трябва да се разграни-чават термините GNU система и колекцията от GNU софтуер. Из-ползването на друг софтуер не ограничава разпространението на тазисистема, докато този софтуер е свободен за разпространение.

Разбира се за развитието на този проект трябвало и компилато-ри. Нито един съществуващ компилатор, обаче, не се харесал на РичардСталман и така след време той започнал работа по най–известния иизползван компилатор в момента – GCC. Разбира се, тогава GCC озна-чавало GNU C Compiler, докато това съкращение вече се разбира катоGNU Compiler Collection и може да компилира не само C ами и C++,Pascal, Fortran .. и др.

По това време, г–н Ричард Сталман започнал и работа по GNUEmacs . Този редактор станал популярен и много хора искали да го имат.Emacs е текстов редак-

тор. За разлика от поз-натите до тогава редак-тори, той бил много по–напреднал

Проблемите, които имало с разпространението в интернет и факта,че Сталман бил вече напуснал работа го принудили да започне свой биз-нес – като дистрибутор на свободен софтуер.

Page 29: LINUX(Bulgarian Language)

4.1. ИСТОРИЯ НА GNU ОБЩЕСТВОТО 19

Парадоксално било, че по това време свободните програми се разп-ространявали без никакъв лизенз и разбира се големи компании ги моди-фицирали и превръщали в комерсиален продукт. Именно това било при-чината да се замисли над нов лиценз, който би могъл да предотвратитази комерсиализация и затваряне на софтуера.

Това е така нареченият GNU GPL и изисква всяка модификация наGPL софтуер също да бъде разпространявана под същият лиценз. Товагарантирало, че свободният софтуер, каквото и развитие да търпи, щеси остане пак свободен.

Програмите, лицензирани под GPL се разпространявали доста ус-пешно и това подтикнало създателят му да основе фондацията за сво-боден софтуер (Free Software Fondation). Тя станала факт през 1985 г.Идеята е била да се спонсорира създаването на такъв свободен софту-ер. Всеки, разбира се можел да се сдобие с него напълно безплатно, нопри желание можел и може да спонсорира тази фондация. В момента тясе издържа единствено от дитрибутиране на свободен софтуер и виевинаги можете да си поръчате някое от многото CD–та със софтуерили добре оформени и разпечатани ръководства.

Хората, които работят за FSF се грижат за развитието на най–използваният свободен софтуер.

Free Software Fondation е пример за това, как може да се прави бизнесот свободен софтуер.

Page 30: LINUX(Bulgarian Language)

20 ГЛАВА 4. КАКВО Е OPENSOURCE

Page 31: LINUX(Bulgarian Language)

Част III

Инсталиране на Линукс

21

Page 32: LINUX(Bulgarian Language)
Page 33: LINUX(Bulgarian Language)

Глава 5

Какво представляватоперационните системи

Операционните системи са програми, които спомагат за комуника-цията ви с компютъра. Друга задача на операционната система е дауправлява устройствата на компютъра, това включва клавиатурата,монитора, принтера ... и много други устройства коите бихте могли дазакачите на един персонален компютър.

Операционната система за грижи и за разпределение на ресурситемежду отделните програми и потребители.

За да разберете по-ясно какво представляват ще ви дам няколко при-мера: UNIX и Linux са операционни системи. Разбира се доста остаря-лата DOS, както и широко разпространената Windows също са опера-ционни системи.

Обаче в повечето случаи с една операционна система не можете данаправите нищо особенно. За да работите с нея и да се чувствате удоб-но ви трябват допълнителни приложения.

При Windows и DOS част от тези приложения идват със самитеоперационни системи, при Linux обаче не е така. Много хора не са наяс-но, но Linux е само кернел - т.е ядрото на операционната система. Тойможе да управлява устройства, задачи ... но сам по себе си е напълнонеизползваем.

Именно за това съществуват Linux дистрибуции, които съдържат всебе си както ядрото на Линукс, така и тези необходими допълнителнипрограми. За тях ще научите малко по-долу.

23

Page 34: LINUX(Bulgarian Language)

24 ГЛАВА 5. КАКВО ПРЕДСТАВЛЯВАТ ОПЕРАЦИОННИТЕ СИСТЕМИ

Page 35: LINUX(Bulgarian Language)

Глава 6

Linux дистрибуции

Както споменах по-горе, много хора не са наясно и говорят за Линукскато за дистрибуция. Така, че този "Линукс"който вие евентуално стеси купили в магазина и бързате да се върнете в къщи за да инсталиратесъс сигурност е някоя Линукс Дистрибуция.

С тези CD–та освен ядрото на Линукс вие сте получили и множес-тво много полезни програмки без които нищо не бихте могли да напра-вите.

Освен най–необходимите програми дистрибуцията обикновено идваи с други приложения. Така, че за дистрибуция можете да разбиратеколекция от избрани и квалифицирани по тематика програми, системнисредства и ядрото на Линукс.

Сега вече знаете защо Линукс не е дистрибуция. Естествено товапоражда въпроса дали различните дистрибуции са еднакви. Отговоръте – не. Каква е причината за това? – Ами много проста. Повечето дис-трибуции включват свободен софтуер, който също така се изгражда ина свободен принцип. Така че при тази свобода няма начин да са еднакви.

Горе–долу различните дистрибуции са удобни за различни цели. Даречем има специални дистрибуции предназначени за джобни компют-ри, други за още по–малки устройства, трети и най-разпространени заперсонален компютър. В тази книга ние ще разгледаме последните ипо–специално Linux Mandrake.

Но преди да се запознаем с Mandrake ще ви разкажа за някои други,също така известни дистрибуции.

25

Page 36: LINUX(Bulgarian Language)

26 ГЛАВА 6. LINUX ДИСТРИБУЦИИ

6.1. Debian

Debian 1 е една уникална дистрибуция отличава се от разглеждани-те тук пакети по това, че се разработва от ентусиасти и се издържаот дарения. Подходящ е за опитни потребители. За разлика от дру-гите дистрибуции за Debian няма разпечатано ръководство, но пък вИнтернет на адрес http://www.debian.org/doc/ddp можете да намеритенай-различни ръководства и документи. Debian обаче е дистрибуциятас най-много пакети. Цялата дистрибуция е огромна и АКО решите дая инсталирате цялата (повярвайте ми - няма нужда) ще ви трябватмного свободни гигабайти .за тези които не са мно-

го наясно с думата гига-байти приемайте, че то-ва значи наистина МНО-ГО

Друго уникално при Debian е начинът на управление на пакетите. Итъй като Debian се развива с невероятна скорост, вие можете без ника-къв проблеми да обновявате системата си по интернет. Тази системае до толкова развита, че можете да си инсталирате Debian само с 2дискети и интернет връзка. Естествено за такава инсталиция трябваособенно добра връзка.

Не ви съветвам, обаче, да инсталирате Debian ако не сте опитенпотребител. Debian може и да е раят за UNIX гурута но всеки останалпросто ще се изгуби в него.

Ако все пак решите да опитате Debian имайте предвид, че послед-ните новости за него, както и някои преведени ръководства можете данамерите на адрес http://debian.gabrovo.com/.

6.2. RedHat Linux

RedHat 2 Linux е една от най-разпространените Linux разновиднос-ти. Тя се доставя с подробна книга на разбираем за всеки език. Инста-лацията обикновено е лесна и за начинаещ потребител макар многотоопции които се предлагат.

RedHat също е първата комерсиална дистрибуция на Линукс. Еднов-ременно с пакетът вие можете да си купите и часове за поддръжка, вкоито можете да се обаждате на отдела по поддръжка на компания-та и те с удоволствие ще ви отговорят на всякакви въпроси. Имайтепредвид обаче, че там говорят английски.

Имайки предвид горното RedHat Linux е особенно добър за офиси.Той перфектен и за програмисти. Освен това RedHat се поддържа иот много софтуерни компании които продават комерсиални продукти.Това никак не е за пренебрегване, понеже в повечето случаи тези комер-сиални продукти може и да не работят на друга дистрибуция зарадиразличията помежду им.

1http://www.debian.org/2http://www.redhat.com/

Page 37: LINUX(Bulgarian Language)

6.3. S.U.S.E 27

Аз лично бих си инсталирал RedHat защото те плащат на много го-лям брой програмисти за да развиват и усъвършенстват Линукс.

6.3. S.u.S.E

Тази дистрибуция е на една немска фирма и естествено е напълнолокализирана и можете да правите и четете всичко на немски. Ако неразбирате английски, но знаете немски S.u.S.E 3 може да ви се сторимного удобна. Инсталацията и и много елементарна и ще пробва да от-крие какви устройства има закачени на компютъра ви. Това е една мно-го прегледна дистрибуция и е особенно подходяща за начинаещи. Освенonline помощта можете да разчитате и на книгата, написана понятнои за начинаещи.

6.4. Slackware Linux

Slackware 4 е една от най-уважаваната от напредналите потреби-тели които искат да имат максимален контрол над всичко и това дастава лесно и бързо. За UNIX гурутата обаче лесно и бързо значи не-понятни текстови файлове, в които конфигурацията се прави на ръка -естествено с любимият текстов редактор (обикновено VI).

Именно това прави Slackware Linux една от най-използваните дист-рибуции за сървъри. Впрочем това нямаше да е достатъчно ако ПатрикВолкердинг (този който работи над нея) не наблягаше на стабилност-та.

Slackware за разлика от другите дистрибуции не притежава авто-матизирано средство за ъпгрейд на системата, но това не я прави по-малко предпочитана. Просто когато пред теб стои нещо достатъчностабилно и устоява и срещу хакери, не ти трябва нищо друго.

3http://www.suse.com/4http://www.slackware.com/

Page 38: LINUX(Bulgarian Language)

28 ГЛАВА 6. LINUX ДИСТРИБУЦИИ

Page 39: LINUX(Bulgarian Language)

Глава 7

Инсталиране на MandrakeLinux

Тази глава е предназначена за тези читатели, които никога предине са се сблъсквали с инсталационният процес на някоя Линукс дист-рибуция. Ако вече имате инсталиран Линукс можете най-спокойно дапропуснете тази част.

Аз лично ви препоръчвам дори и да не мислите тепърва да инстали-рате Линукс да хвърлите все пак някакъв поглед на главата. Освен какточно протича инсталационният процес вие ще научите и някои нещакоито биха могли да се окажат полезни в по-нататъшната ви практикас тази безплатна и удобна операционна система.

7.1. Преди да започнем (изисквания)

Преди да започнете инсталацията си ако сте на работа уведометевашият системен администратор и го помолете той да ви помогне.Във всеки случай той би трябвало да е по-добре запознат от вас и оп-ределено помощта му никак няма да Ви е излишна.

Ако инсталирате Mandrake Linux на своят собствен компютър то-гава единственото на което трябва да се надявате са вашите собстве-ни сили, приятели или някой познат и добър Linux гуру, който може дави помогне.

Преди обаче да решите да изтеглите Mandrake Linux по интернетили направо да си купите трите диска от най-близкият магазин къдетопродават софтуер, Ви съветвам да проверите дали Линукс ще може даработи с вашият компютър. За да проверите това, пуснете любимиятси WEB Browser и отидете на http://www.linux-mandrake.com/en/hardware.php3.

29

Page 40: LINUX(Bulgarian Language)

30 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

На тази страница можете да проверите дали всеки един елемент отвашата компютърна конфигурация се разбира с Линукс.

Не вярвам, че е голям проблем ако не можете да подкарате звуко-вата си карта под Линукс но все пак е неприятно - нали за това стеси я купили. Затова отново ще ви кажа: Не се доверявайте на сляпатаслучайност и проверете! Най-малкото ще спестите време и нерви.

7.2. Начални стъпки

Първата стъпка която трябва да направите е да се сдобиете съсMandrake Linux 8.1. Попитайте приятелите си дали случайно някой яняма, потърсете в някой магазин за софтуер или в краен случай си ядръпнете директно от интернет.

Можете и да си я поръчате. Стандартната дистрибуция съдържатри CD-ROM-а всеки по 525 долара. Когато си я купите веднъж можетеда я ползвате на колкото искате компютри, като при това не се налагазакупуването на нови, допълнителни лицензи.

Когато вече имате пред себе си пакета с трите CD-та на MandrakeLinux 8.1 можем да започнем с

7.3. Инсталация на Mandrake Linux 8.1

За да можете да инсталирате бързо и лесно тази дистрибуция сенуждаете от сравнително добър компютър и CD-ROM устройство, откоето можете да заредите операционната система.

За целта поставете първият диск от дистрибуцията в CD-ROMустройството и рестартирайте компютъра си. Убедете се, че опера-ционната система ще бъде заредена не от локалния диск или дискета, аот CD-то.

Ако всичко е наред ще видите един куп странни надписи, които веро-ятно не сте виждали досега и след това ще ви се покаже първият екранна инсталационната програма на Mandrake Linux.

И така, първото което трябва да направите е да изберете език.Ако сте инсталирали някоя друга операционна система ви гарантирам,че ще останете много доволни от факта, че можете да следите це-лият инсталационен процес на български език. Погледнете примернатакартинка по-долу:

Page 41: LINUX(Bulgarian Language)

7.3. ИНСТАЛАЦИЯ НА MANDRAKE LINUX 8.1 31

След като изберете език, а аз ви съветвам това да е български, ще висе покаже екран в който да прочетете лиценза който се задължавате даспазвате в случай че инсталирате тази дистрибуция. Ако сте съгласнис него изберете бутона "Приеми както на картинката долу:

След като приемете лиценза, ще ви се наложи да изберете типът

Page 42: LINUX(Bulgarian Language)

32 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

на инсталацията - за експерти или лесната, удобна и бърза препоръчи-телна инсталация. Дори и милиони пъти преди това да сте инсталира-ли Mandrake пак не ви съветвам да избирате експертната инсталация.Препоръчителната е най-добрият вариант, при това без да огранича-ва особенно изборът Ви, както ще се уверите малко по-надолу. Така чезасега още една стъпка напред към Линукс, избирайки "Препоръчител-на"инсталация:

Не мисля, че имаше нещо сложно досега, но сложното тепърва пред-стои. Обаче ако сте забелязали добре досега имаше картинки от всекиекран, който ще видите и тази традиция смятам да продължи - та-ка, че да не се объркате и да се радвате на безпроблемният живот сЛинукс.

И като казах трудно, идва най-тежкият момент - избиране на мяс-тото където ще инсталираме Линукс. За съжаление (а можеби за ра-дост) Линукс не се опитва да се прави на особенно интелигентен точнов този момент. Ако сте на работа - сега е момента да извикате сис-темния администратор да ви помогне. Не забравяйте, че каквото и даправите това може да изтрие много важни данни от вашият диск.

Така че ето няколко съвета:

– преди да инсталирате Линукс осигурете достатъчно място за не-го (стига и 1GB).

– ако разполагате с някоя програма за разделяне на дисковото прос-транство използвайте я за да заделите място както за самият

Page 43: LINUX(Bulgarian Language)

7.3. ИНСТАЛАЦИЯ НА MANDRAKE LINUX 8.1 33

Линукс, така и за SWAP дял - който ще се ползва от операционна-та система.

– като избирате големина на SWAP дял, гледайте тя да е два пътиповече от наличната RAM в компютъра ви.

– НЕ ИЗБИРАЙТЕ опцията "Изтрий целият диск"освен ако дискътви е съвсем нов и нямате никакви данни записани на него.

– Ако не сте създали предварително място на диска за Линукс иSWAP дял използвайте опцията "Клиентско разделяне на диска"испазвайте инструкциите, внимавайки да не изтриете нещо важно.

Ако предварително сте създали място за Линукс, изберете "Използ-ване на съществуващ дял както по-долу:

и смело натиснете "Ок".

Когато свършите с тази най-трудна и най-вече опасна част, можемда продължим, избирайки софтуера от който се нуждаем:

Page 44: LINUX(Bulgarian Language)

34 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Вече забелязахте между какви пакети може да избирате, а сега ще викажа по няколко думи за всеки един от тях. Имайте предвид, че можетеда получите и допълнителна информация, като ги посочите с мишкатаи я оставите за малко въху тях - без да я мърдате.

– Изберете Офисна работна станция ако смятате да използватекомпютърът си в офис. Тази опция включва пакети за тексто-обработка, електронни таблици, калкулатор, програми за правенена ефектни презентации, органайзери и много други полезни прог-рами, които можете да използвате и извън офиса.

– Ако желаете да използвате компютъра си като Игрална станцияизберете тази опция. Така ще добавите много малки игри, пасиан-си, а дори и истински 3D RPG-та.

– Мултимедийна станция е препоръчвана опция, ако желаете да мо-жете да просвирвате цифрови аудио формати, както и да гледатедигитализирани клипове и филми.

– Интернет станция е разумен избор, когато имате достъп до ин-тернет. Избирайки тази опция ще добавите WEB браузъри, Mailклиенти, и такива с които можете да преглеждате трафика отмногото News сървъри.

– Ако работите в локална мрежа изберете опцията Мрежов ком-пютър (клиент). Тя ще добави необходимите инструменти за дакомуникирате и обменяте файлове с колегите и приятелите си.

– Винаги избирайте пакетът Настройка. Той не само е много поле-зен - той е необходим, за безпроблемната ви работа с Линукс.

Page 45: LINUX(Bulgarian Language)

7.3. ИНСТАЛАЦИЯ НА MANDRAKE LINUX 8.1 35

– Ако сте в научните среди или просто се интересувате от мате-матика, обичате да чертаете сложни графики, изберете Научнаработна станция.

– А Конзолни инструменти съдържа много малки и полезни прог-рамки, които можете да ползвате под конзолата на Линукс. Дории да работите само с графичната му част, все някога тези инст-рументи могат да ви окажат неоценима помощ. Не се страхувай-те да ги изберете, освен че са мног полезни, тя няма и да заематогромно място от дисковото ви пространство.

– Ако желаете да се учите или вече сте готови да програмиратепод Линукс изберете Разработка. Този пакет включва множествокомпилатори за най-различни езици, като C/C++, Pascal, Smalltalk,Lisp, Python, Perl и др. Освен различните компилатори ще намери-те и много средства за разработка - визуални и конзолни, които щеви помогнат да организирате програмният код, както и да авто-матизирате производството на програми. Естествено ще иматедостъп и до мног малки, големи, но най-важно полезни библиотеки,които можете да ползвате във вашата работа.

– Документация е един напълно излишен пакет ако разполагате синтернет. Линукс се развива невероятно бързо и документация-та също така бързо остарява. Ако все пак се нуждаете от нея -инсталирайте я.

– Сървър WEB/FTP е много полезен пакет за разработчици на WEBприложения, или за хора, които просто разполагат с постояннаинтернет връзка и са решили да си направят собствена страница,която хостват сами, на своят компютър. Обикновено няма сми-съл да избирате тази опция.

– Сървър Поща/Groupware/Новини - подобно на горният пакет емалко излишен за типична инсталация на домашен компютър. Аковсе пак ви е необходим можете да го инсталирате без проблем.

– Сървър Бази-Данни ще ви инсталира една или повече бази данни,които можете да избирате. Имайте предвид, че това не са стан-дартните електронни таблици, които са се инсталирали с паке-та "Офисна работна станция"а истински бази данни които могатда разбират и работят със SQL заявки. Инсталирайте ги ако на-истина се нуждаете от тях и имайте предвид, че базите данниобикновено изискват доста голямо дисково пространство.

– Сървър Firewall/Рутер е опция, която също вероятно няма да ис-кате да инсталирате. Въпреки това, тя може да е много полезна,особенно ако имате постоянна връзка с интернет и искате да сезащитите от хакери или да споделите връзката си с някой прия-тел или колега. Имайте предвид, че и без този пакет можете дасе чувствате достатъчно сигурни.

Page 46: LINUX(Bulgarian Language)

36 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

– С опцията FND/NIS се инсталират много специални програми, ко-ито позволяват по-добра комуникация и централизирана админис-трация на мрежа изградена само от UNIX компютри. Сами разби-рате, че този пакет е необходим, само когато целият ви офис илимрежа е само от UNIX или Linux компютри и при това техниятброй не е много малък.

– Мрежов компютър, сървър е опцията, която трябва да изберете,ако желаете да комуникирате със машини, на които е инсталиранWindows. Инсталирайки този пакет, вие ще се виждате като частот Network Neghbourhood.

– От графичните среди KDE работна станция е един много разу-мен избор. Ако сте свикнали с Windows няма да имате проблемии с KDE - освен голямото въодушевление, когато го видите и ра-достта от работата с него.

– GNOME работна станция инсталира пакета GNOME заедно смного полезни програми предназначени за него. GNOME е най-големиятконкурент на KDE и е горе долу почти еднакъв по функционал-ност. Ако желаете обаче, нещо ново, свежи идеи и един почти Artдесктоп GNOME е идеален избор. Освен, че е красив и може дада изглежда по много различни начини, които можете да избиратес него можете да вършите без проблем работата си със същотоудоволствие което бихте изпитвали с KDE. Моят личен съвет еда инсталирате и KDE и GNOME - докато разберете коя повечеви харесва.

– Избирайки опцията Други графични desktop-и ще инсталирате ня-кои други, по-малки графични среди, но също доста функционални.Някои от тези графични среди са описани във следващите главиот книгата.

Ако не сте забелязали аз съм избрал и една допълнителна опция - Из-биране пакети един по един. Тази опция по принцип не е необходима, носпоред мен, стандартната процедура пропуска да инсталира някои на-истина полезни инструменти и избирането на тази опция ми позволявада ги добавя ръчно.

Натискайки бутона Ok например, мога да избера един много полезен,малък и бърз графичен десктоп, какъвто е blackbox:

Page 47: LINUX(Bulgarian Language)

7.3. ИНСТАЛАЦИЯ НА MANDRAKE LINUX 8.1 37

От конзолните инструменти също така е много полезен пакетътmc:

Ако желаете да изпълнявате приложение написани за Windows, но нежелаете да имате инсталиран Windows на компютъра си ви съветвамда инсталирате една допълнителна програма, наречена WINE:

Page 48: LINUX(Bulgarian Language)

38 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Налага ли ви се да правите често графики или да редактирате сним-ки? Обичате ли да добавяте различни специални ефекти на картинки?- Ако отговорът е да, тогава ви съветвам да инсталирате и пакетътgimp-data-extras:

Page 49: LINUX(Bulgarian Language)

7.3. ИНСТАЛАЦИЯ НА MANDRAKE LINUX 8.1 39

Следващият задължителен пакет за графичната среда е XFree86-cyrillic-fonts:

с който ще добавите няколко допълнителни шрифта, които поддър-жат кирилица, към вашата система. Ако искате изобщо да четете ки-рилица - не забравяйте да инсталирате този пакет!

Допълнително можете да инсталирате още един графичен менажер- icewm-light заедно с програмата за настройка - icepref:

Page 50: LINUX(Bulgarian Language)

40 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

След като сме добави тези няколко нужни и ненужни пакета можемда продължим с инсталацията натискайки бутона Инсталирайте.

Ако сте избрали пакета Мрежов компютър, сървър ще видите след-ният диалог:

Page 51: LINUX(Bulgarian Language)

7.3. ИНСТАЛАЦИЯ НА MANDRAKE LINUX 8.1 41

Натиснете бутона "Да"и продължете с истинската инсталация, ко-ято изглежда ето така:

Някъде към края ще ви се наложи да смените някое от CD-та. Пог-леднете по-долу:

Page 52: LINUX(Bulgarian Language)

42 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Когато сте готови можете да продължите с бутона "Ок".Сега вече имате Линукс на диска си, а ние можем да продължим със

следващата част...

7.4. Конфигуриране на Mandrake

След като вече имате инсталиран Линукс можем да продължим сконфигурирането му. Имайте предвид начална конфигурация, която сеизвършва по време на инсталационният процес.

7.4.1. Потребители

А той започва със въвеждане на паролата на потребителя root. Товае потребителят който се грижи, така да се каже администрира ваша-та машина. Той има най-много привилегии и има права да прави неща,които обикновените потребители нямат. Това обаче го прави достаопасен - затова изберете някоя наистина добра парола. Впрочем етокак изглежда екрана:

Както споменах по-горе, потребителят root е колкото привилеги-рован, толкова и опасен. Затова НИКОГА не се логвайте в систематакато root. Използвайте потребителски акаунт, които можете да съз-дадете:

Page 53: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 43

Можете да сменяте иконите като щракате с мишката върху тях.Някои от тях наистина са интересни.

Продължете с въвеждането на потребители:

ако е необходимо. За да завършите процеса натиснете бутона Гото-во.

Page 54: LINUX(Bulgarian Language)

44 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Следва диалогът:

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

7.4.2. Настройка на мрежата

Следващото което трябва да настроим е мрежата. Естествено аконямате такава можете да пропуснете тази глава давайки на диалогапо-долу отрицателен отговор:

Page 55: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 45

Ако обаче имате някаква мрежова връзка ще трябва да отговоритеположително. Оставете опцията Използвай автоматично засичанеизбрана - тя ще ви е много полезна.

Следва избиране на какъв точно тип мрежова връзка използвате. Вповечето случаи това ще бъде модемна, но е възможно да имате локал-на мрежа. Mandrake поддържа и ISDN, ADSL и кабелна връзка:

Page 56: LINUX(Bulgarian Language)

46 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Тук обаче не можем да опишем настройката на всички затова ще сеограничим с настройка на модема и на локалната мрежова връзка.

Ако сте избрали модемна връзка ще видите следващият диалог:

Попълнете всички полета правилно. Ако се съмнявате в нещо обаде-те се на вашият провайдер и му обяснете, че се опитвате да си инста-

Page 57: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 47

лирате Линукс и затова се нуждаете от малко повече данни. Запишететова което ви каже във съответните полета и накрая потвърдете сОк.

Ако разполагате с по-нова мрежова карта то тя най-вероятно щебъде намерена автоматично и в следващият диалог ще можете да нас-троите вашата локална връзка.

Отново - ако сте на работа най-добре питайте вашият системенадминистратор за точните настройки или направо го помолете да по-пълни диалога, както и следващият:

Page 58: LINUX(Bulgarian Language)

48 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

След това можете да изберете коя от мрежовите връзки използва-те за интернет достъп. Ето така изглежда съответният диалог:

Изберете правилният отговор и продължете с

Page 59: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 49

7.4.3. Настройка на периферните устройства

Ако не знаете какво са периферни устройства - това са всички ус-тройства, които връзвате на компютъра и стоят извън неговата ку-тия. В случая обаче, ще направим едно изключение и заедно със перифер-ните устройства, като мишката, клавиатура и принтера, ще настроими звуковата карта.

Вече сте настроили мрежата и на екранът ви се е появил нов диалогподобен на този по-долу:

Първото което ще направим е да променим клавиатурната подред-ба. Може да ви се струва странно, но Българска не е много добър избор.Затова щракаме на бутона и се появява нов екран:

Page 60: LINUX(Bulgarian Language)

50 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

В който избираме нова клавиатурна подредба, а именно US клавиа-тура (международна). Няма да ви обяснявам защо точно така трябвада направим, но ще ви успокоя, че по-късно, пак ще можете да пишетена кирилица без никакъв проблем.

Потвърждавате избора си с натискане на бутона Ok и продължава-ме нататък:

Page 61: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 51

Сега е ред да инсталираме принтера. Ако нямате принтер прескоче-те следващите няколко страници, ако пък имате щракнете върху "прин-тер".

В случая ще инсталираме HP LaserJet който е мрежов принтер изпол-зващ устройство от типа JetDirect. За целта избираме от показалиятсе диалог избираме Мрежов принтер (socket):

Page 62: LINUX(Bulgarian Language)

52 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Ако принтерът ви не е точно такъв мрежов принтер изберете пра-вилната опция. Ако принтерът ви е закачен на паралелният порт товасъс сигурност е локален принтер, CUPS и LPR принтери са обикновенопринтери, закачени на някой друг UNIX мрежов сървър, а SMB прин-тер е мрежов принтер, закачен на някоя Windows работна станция илисървър.

Като изберете правилната опция потвърдете и ще ви се появи новпрозорец за настройка на връзката. В случаят при мен това е следниятдиалог:

Page 63: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 53

В полето Име на хост на принтера се попълва мрежовият адрес илииме на принтера. По всяка вероятност няма да ви се наложи да сменятеПорт-a.

След като попълним тази информация, трябва да опишем принтера,което става във следният екран:

Page 64: LINUX(Bulgarian Language)

54 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Внимание, за име на принтер напишете нещо с латински букви!! Опи-сание и местоположение могат да бъдат най-произволни. Те служатнай-вече самият вие да се ориентирате. След като попълните и товаще трябва да изберете конкретният модел на принтера. това стававъв следният диалог:

Виждате, че аз съм избрал LaserJet 1100. Вие обаче трябва да избере-те модела на вашият принтер.

След като изберете правилният принтер трябва да го конфигурира-те. Конфигурацията става лесно и бързо, като избирате от даденитеви опции, както е показано на картинката долу:

Page 65: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 55

Ако принтерът ви е мастилено струен бъдете сигурен, че попълва-те правилно зададените опции. Можете да избирате и между икономи-чен и стандартен режим на печатане. Потвърдете настройките кои-то сте задали и продължете към следващият екран с натискането набутона Ок:

Page 66: LINUX(Bulgarian Language)

56 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Сега имате възможност да тествате вашият принтер. Лично аз неви съветвам да печатате тестова страница със снимка, понеже прех-върлянето на картинката към принтера отнема доста време, а и стан-дартният тест в повечето случай е напълно достатъчен.

Изчакайте малко докато се появи следващият диалог:

Не бързайте да натискате бутона Не. Изчакайте няколко минутиако трябва, проверете дали принтерът ви има хартия и дали е включен.Ако след минутка все още нямате нищо отпечатано тогава натиснетеНе и почнете всичко отначало. В противен случай натиснете другиятбутон и продължете по-нататък.

Следващият въпрос на който ще трябва да отговорите е дали иска-те да инсталирате още един принтер:

Page 67: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 57

Ако е нужно - отговорете положително, в противен случай кликнетена бутона Не и можем да продължим с

7.4.4. Конфигуриране на X

X е графичната среда и за да работи трябва да укажете някои нещакато типа на монитора и видео картата. При първоначалното тест-ване ще ви се покаже екран, който ще се скрие след определен период отвреме и след това ще бъде заместен от следният диалог:

Page 68: LINUX(Bulgarian Language)

58 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Ако сте видяли предишният екран и сте доволни можете да продъл-жите с натискане на бутона Ок. Ако не можете да промените настрой-ките на монитора, графичната карта и разделителната способност. Азлично разполагам с ATI Rage 128 и затова искам да си сменя типа на ви-део картата, така че избирам опцията Променете графичната картаи ми се показва следващият екран:

Page 69: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 59

в който избирам правилният модел на моята видео карта. Вие същоможете да направите това и ако картата ви се поддържа най-добре даизберете правилният драйвер. В противен случай, макар и да работи,графичната ви среда ще бъде малко, а понякога и повече бавна.

След като потвърдите настройките на избраната карта ще ви сепояви диалог като този по-долу:

Page 70: LINUX(Bulgarian Language)

60 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Имате възможност да избирате между два графични сървъра - XFree4.1.0 и XFree 3.3.6. Аз лично горещо ви препоръчвам по-новата версия,която не само е по-добра но е и по-бърза.

Направете правилният избор, потвърдете и се връщаме към позна-тият екран:

Page 71: LINUX(Bulgarian Language)

7.4. КОНФИГУРИРАНЕ НА MANDRAKE 61

ВНИМАНИЕ!! Задължително тествайте новата конфигурация. Несе надявайте на сляпата случайност тя да работи. Само една проверкаможе да ви лиши от главоболия по-късно.

С настройката на графичната система приключва и инсталациятана Mandrake Linux 8.1:

Поздравления и от мен!

Page 72: LINUX(Bulgarian Language)

62 ГЛАВА 7. ИНСТАЛИРАНЕ НА MANDRAKE LINUX

Page 73: LINUX(Bulgarian Language)

Глава 8

Какво представляватпакетите

8.1. Как да добавим нови пакети

8.2. Автоматично обновяване на пакетите

8.3. Други пакетни менажери

63

Page 74: LINUX(Bulgarian Language)

64 ГЛАВА 8. КАКВО ПРЕДСТАВЛЯВАТ ПАКЕТИТЕ

Page 75: LINUX(Bulgarian Language)

Част IV

Най-основното заработата с Линукс

65

Page 76: LINUX(Bulgarian Language)
Page 77: LINUX(Bulgarian Language)

67

UNIX, както и Linux е мултипотребителска операционна система.Това означава, че едновременно могат да работят повече от един пот-ребител. Именно заради това всеки потребител трябва да има потре-бителско име и парола, които се изискват всеки път, когато искате даработите с Linux. Двойката име и парола се нарича account (акаунт).

Ще трябва да имате такъв акаунт на компютъра на който искатеда експериментирате и преди да започнете се налага да ги въведете наподканващият ред на екрана.

Ако сте работили досега с DOS или Windows, ще ви се наложи да заб-равите за стандартните разширения на файловете. Ще ви се наложида свикнете и с факта, че в UNIX малките и големите букви се разг-раничават в имената на файловете и файлът myFile не е същият катоmyfile. Ще разберете също, че нямате право да пипате чужд файл, дока-то неговият собственик не ви позволи.

Може също така да ви се стори странно, че нямате една единственапрограма която да ви свърши работата, а се налага да използвате многомалки програмки, но това е философията на UNIX.

Но нека да започнем!

Page 78: LINUX(Bulgarian Language)

68

Page 79: LINUX(Bulgarian Language)

Глава 9

Кои команди можем даизползваме за помощ

Първото което искам да запомните е, че в Linux винаги и за всич-ко си има помощ. С командата man винаги можете да поискате помощ man е абревиатура на

manual – ръководство,можеби така ще ви енай-лесно да я запомните

за определена команда. Ето и един пример. Ви не знаете какво значикомандата ls за която ще научим по–късно и затова ще прочетем ръко-водството и със следната команда:

man lsНа екрана ще ви се покаже за какво служи командата ls. Не очаквай-

те всичко да е на български. В повечето случай ще е на английски, койтое особенно необходим в светът на компютрите.

Друга команда с която бихте могли да поискате помощ е info. Нейни-ят синтаксис е напълно еднакъв, но лично според мен самата програмае много трудна за работа. В много случай, обаче, информацията от infoе много по-подробна от тази, предотставена ви от man.

Можете да проверите дали нямате инсталирана една друга програ-ма - pinfo, която обединява горните две програми и е наистина многолесна за употреба.

В следващите глави ще ви обясним как работят няколко малки прог-рами, но това в повечето случай е твърде малко. Винаги можете даприбегнете до man, info или pinfo в случай, че искате да научите повечеили се нуждаете от допълнителна помощ.

69

Page 80: LINUX(Bulgarian Language)

70 ГЛАВА 9. КОИ КОМАНДИ МОЖЕМ ДА ИЗПОЛЗВАМЕ ЗА ПОМОЩ

Page 81: LINUX(Bulgarian Language)

Глава 10

Какво представлявапотребителски account

Както споменах в началото на тази част от книгата потребителс-кият акаунт е двойката от вашето потребителско име и парола. Самиразбирате нуждата от акаунтите при многопотребителска системакаквато е Линукс, в противен случай всеки би могъл да разглежда ва-шите файлове, чете вашата поща и да осъществява други дейностинарушаващи вашето право на лична свобода.

Този акаунт се налага да използвате всеки път когато искате даработите с компютъра. Когато го включите на екрана ще ви се появиподканващо съобщение да си въведете потребителското име (username)и след това паролата (password).

Именно за това е нужно АБСОЛЮТНО ВИНАГИ да избирате мак-симално трудна за отгатване парола, която обаче вие лесно бихте пом-нили. Лично аз много обичам да избирам за парола най-обикновена дума,замествайки латинските букви “о“ със нула, “L“ и “i“ със единица, “a“ със@. Вие също можете да си измислите такива заместители и по тозиначин да направите паролата си много трудна за отгатване.

10.1. Как да си сменим паролата

Смяната на паролата става с командата passwd, която е стандарт-на за всички UNIX операционни системи. Когато си сменяте паролатаще ви се наложи да въведете старата си парола и след това два пътиновата – за да объркате случайно при въвеждането.

Ето какво ще ви се покаже на екрана, когато въведете командата:

fire@usb:~/book$ passwd

71

Page 82: LINUX(Bulgarian Language)

72 ГЛАВА 10. КАКВО ПРЕДСТАВЛЯВА ПОТРЕБИТЕЛСКИ ACCOUNT

Changing password for fireOld password:

След като научихте едно от най-важните неща за многопотреби-телските ситеми е време да продължим нататък.

Page 83: LINUX(Bulgarian Language)

Глава 11

Какво представляватфайловете

Преди да научим повече за файловете първо трябва да ви кажа каквопредставляват те. Файловете с две думи са вашите данни. Всеки вашдокумент, картинка, снимка .. изобщо всичко, което се съхрянява накомпютъра е под формата на файлове.

Обикновено файловете се наименуват по специален начин. Те си иматиме и разширение. Едно време, когато все още се ползваше DOS иметона файла беше ограничено до 8 символа, а разширението до 3. Линукскато съвременна операционна система ви позволява практически неог-раничена дължина на името.

Ако сте ползвали досега компютър вие успявате да разпознаете ти-па на файловете си по разширението. Това донякъде важи и за Линукс, нос малки изключение – онези изпълними файлове, които познавате катоEXE–та, просто не съществуват под UNIX. А как да ги разграничаватеще научите в следващата секция.

11.1. Изпълнимият файл

Това са така наречените програми. Ако досега сте работили с Windowsвероятно сте свикнали, че файловете завършващи на .exe са програми. ВЛинукс, обаче, не е така. Всеки файл може да е изпълним и това се опре-деля не от разширението на файла. Това е така, понеже UNIX разчитамного на малки приложни програми, наречени скриптове. Тези скрипто-ве съдържат най-обикновен текст за някакъв програмен език който сеинтерпретира.

Тези скриптове също съдържат и програмата – интерпретатор, ко-ято ги изпълнява.

73

Page 84: LINUX(Bulgarian Language)

74 ГЛАВА 11. КАКВО ПРЕДСТАВЛЯВАТ ФАЙЛОВЕТЕ

За да може да се работи лесно с такива скриптове в UNIX за изпъл-нимите файлове са въведени специални атрибути, които показват, четой не съхранява данни, ами може да извършва някакво действие.

Колкото до традиционните програми в Линукс – те просто няматразширение. Ако имате програма, която под DOS или Windows е запазе-на на диска с име prog.exe, то в Линукс, нейното име ще бъде само prog иестествено ще има указан флаг, че е програма. А какви са тези флаговеще научим по-долу.

11.2. Файлови атрибути

Вече знаете, че файловете притежават атрибути. Още в DOS мо-жеше да правите файловете си скрити и защитени от запис благодаре-ние на файловите атрибути. В Линукс е много подобно, макар и тезиатрибути да са малко разширени.

Атрибутите които можете да давате на един файл е дали можеда се чете, пише или е изпълнима програма. Те се означават символнотака:

– r (read) - това означава, че имате право да прочетете файла.

– w (write) - подобно на DOS този атрибут защитава файлът отизтриване и презаписване

– x (execute) - този специален атрибут прави от най-обикновен файлпрограма. За същият стана въпрос в предишната секция.

Поради фактът, че Линукс е мултипотребителска операционна сис-тема, тези атрибути са обединени в три групи

– owner - тази група определя правата за достъп на притежателя нафайла

– group - определят достъпа до файла от членовете на групата вкоято той участва

– world - определя достъпа на всички останали потребители

Но нека видим как изглеждат тези атрибути наистина:

fire@usb:~/book/part1$ ls -latotal 17drwxr-xr-x 2 fire users 112 Sep 29 11:27 ./drwxr-xr-x 13 fire users 416 Sep 29 11:27 ../-rw-r--r-- 1 fire users 4312 Sep 22 18:23 linux.tex-rw-r--r-- 1 fire users 5697 Sep 23 17:30 opensource.texfire@usb:~/book/part1$

Погледнете първата колона. Разпознавате ли атрибутите за коитоставаше въпрос по-горе? Не са ли вече познати?

Page 85: LINUX(Bulgarian Language)

11.3. ОСНОВНИ КОМАНДИ ЗА РАБОТА С ФАЙЛОВЕ И ДИРЕКТОРИИ75

11.3. Основни команди за работа с файлове и ди-ректории

11.3.1. Промяна на файловите атрибути

Както разбрахте в предишната секция, файловите атрибути се из-ползват за даване и премахване на определен тип достъп до файловетеви, както и да указвате кои файлове са програми. За промяна на тезиатрибути винаги можете да ползвате програмата chmod.

Тази команда има много лесен синтаксис, който можете да запом-ните много лесно.

Докато разглеждате примерите по-долу, надявам се, че ще успея дави покажа как да работите с тази програма.

Например за да направим един файл, наречен dates.txt достъпен записане (write) от абсолютно всички можем да напишем:

chmod +w dates.txt

Това ще направи файлът ви достъпен за писане от абсолютно всеки!Когато искате да защитите файлът от презапис просто трябва дапремахнете write достъпа до него. И това става с командата:

chmod -w dates.txt

Разбира се при смяна на останалите атрибути синтаксисът е мно-го подобен. При промяна на read достъпът заменяте буквата w с r ианалогично за да укажете, че файлът ви (не) е изпълним използвате бук-вичката x.

Горният синтаксис, обаче сменя едновременно и трите атрибутаотговарящи за достъпа на притежателя на файла (user), групата на ко-ято принадлежи (group) и останалите потребители (others). С команда-та по-долу, ще дадете write достъп до всички потребители от вашатагрупа:

chmod g+w dates.txt

Ако замените символа g с u или o, вие ще контролирате съответнодостъпът на собственика на файла (user) – т.е вие самият или достъ-път на всички останали (others).

Естествено ако трябва да промените повече от един атрибут неви се налага да викате няколко пъти същата команда. Например, акожелаете да ограничите достъпът за запис (write) но позволите файлътви да бъде четен от групата ви, можете да напишете следното:

chmod o-w+r dates.txt

Толкова за атрибутите засега.

Page 86: LINUX(Bulgarian Language)

76 ГЛАВА 11. КАКВО ПРЕДСТАВЛЯВАТ ФАЙЛОВЕТЕ

11.3.2. Копиране, местене и преименуване на файлове

Ако сте работили с DOS знаете, че за копиране, преместване и пре-именуване на файлове се използват командите copy, move, ren. Само, чев UNIX това не е съвсем така.Ще се убедите колко мър-

зеливи били тези програ-мисти, защото двубукве-ните команди в UNIX санещо доста често среща-но явление.

Още, когато била създадена UNIX и пред компютрите стояли самопрограмисти, които ги мързяло да пишат дълги редове командата закопиране е била cp – нещо като съкращение на думата copy. По същиятначин и командата move е била съкратена до mv.

Синтаксисът на тези две команди е следният:

cp файл предназначениеmv файл предназначение

Това означава, че ако искате да копирате или преместите файлътdates.txt в директория archive можете да ползвате съответно команди-те:

cp dates.txt archiveилиmv dates.txt archive

По аналогичен начин можете да запазите копие от файлът ви поддруго име:

cp dates.txt old-dates.txt

Така ще имате два файла с имена dates.txt и old–dates.txt които са снапълно еднакво съдържание.

Можеби вече сте се досетили, че ако в горният пример заместитеcp с mv тогава просто ще преименувате файлът:

mv old-dates.txt new-dates.txt

Така файлът, който преди се е казвал old–dates.txt, сега е преименуванна new–dates.txt.

С командата mv можете да премествате и преименувате не са-мо файлове, но и директории, като синтаксисът е напълно идентичен.Просто заменяте името на файла с името на директорията която ис-кате да преместите или преименувате.

11.3.3. Разпечатване на файлове

Под разпечатване на файлове трябва да разбирате разпечатване натекстови файлове. Вие, естествено можете да разпечатате и някояпрограма, но аз лично не ви съветвам – няма да можете да разберетеабсолютно нищо.

Обаче за разпечатване на най-обикновени файлове можете да полз-вате програмата cat. Името и идва от английската дума concat, която

Page 87: LINUX(Bulgarian Language)

11.3. ОСНОВНИ КОМАНДИ ЗА РАБОТА С ФАЙЛОВЕ И ДИРЕКТОРИИ77

означава свързвам. Това може да ви се струва не особено логично, но внякоя от следващите глави ви обещавам, че ще разберете защо все пактази програма се казва така.

За момента обаче, ние ще разпечатаме нашият файл dates.txt етотака:

cat dates.txt

Ако файлът ви е прекалено дълъг и не се събира на екрана, първитередове а екрана ще ви се изгубят и няма да можете да го прочететецелият. За да не става така можете да използвате някоя от командитедадени по-долу:

cat dates.txt | moreилиcat dates.txt | less

С тези команди можете да прегледате съдържанието на файла си настраници, като за да ги сменяте ползвате клавиша ENTER.

11.3.4. Създаване и изтриване на файлове

В повечето случай програмите с които работят сами ще ви попи-тат дали да си запазите файлът и ще го създадат. Ако обаче искате данапишете някаква най-елементарна бележка можете да го направитемного бързо използвайки командата cat - да, същата която се ползва иза разпечатване на файлове. Погледнете примерът долу:

fire@usb:~/book/part1$ cat >note.txtThis is simple and QUICK note!

fire@usb:~/book/part1$

Тоест за да създадете текстов файл използвате командата:

cat > име_на_файл

За да запишете файлът, след като вече сте написали вашата бе-лежка трябва да натиснете едновременно бутоните CTRL и D. Такивакомбинации ще записваме като CTRL-D.

Ако по-късно искате да изтриете бележката, която създадохме по-горе можете да го направите с командата rm ето така:

rm note.txt

Запомнете, rm е много опасна програма, особенно в ръцете на пот-ребител root. Затова НИКОГА не работете като root. Винаги използ-вайте някое друго потребителско име.

Page 88: LINUX(Bulgarian Language)

78 ГЛАВА 11. КАКВО ПРЕДСТАВЛЯВАТ ФАЙЛОВЕТЕ

11.3.5. Команди за работа с директории

Сега ще разберете как да създавате изтривате и сменяте текуща-та директория.

Подобно на DOS и в UNIX за създаване, изтриване и сменяне на те-кущата директория се използват командите mkdir, rmdir и cd. Синтак-сисът им е следният:

mkdir име_на_директорияrmdir име_на_директорияcd име_на_директория

Естествено не можете да създадете вече създадена директория илидиректория, чието име съвпада с името на някой файл от текущатадиректория. Също така не можете да изтривате и директории в коитоима някакви файлове или други директории.

Единственото ограничени за командата cd пък, е тази директорияда съществува.

В UNIX има и още една команда - pwd която се използва за да раз-берете коя е текущата директория. Просто напишете pwd и на екранаще ви се отпечата името на директорията в която се намирате. Тазикоманда можете да запомните лесно като ви я дешифрирам - тя идваот Print Working Directory. Представяте ли си колко са били бесни онезипрограмисти, че не са можели да я съкратят само до два символа?

Ако искате да разберете какво е съдържанието на текущата дирек-тория използвайте командата ls. Сигурно в примерите по-горе вече стея забелязали - сега обаче знаете и за какво точно се използва.

По подразбиране ls няма да ви покаже атрибутите на файловете вдиректорията. Ако искате да видите и тях пробвайте със следнатакоманда: ls –l.

Page 89: LINUX(Bulgarian Language)

Глава 12

Други полезни програми

В тази глава ще ви запозная с някои малки, но полезни и често изпол-звани програми за конзолата на Линукс.

12.1. Файлове

Като за начало ще научим малко за програмата less. За тази прог-рама вече стана дума в предишната глава. С две думи, приложениетои е да странира твърде големи файлове. Подобна на командата moreможете да скролирате екрана със просто натискане на интервал (кла-виша space). less обаче, ви позволява да скролирате и само по един ред- както напред, така и назад. Т.е. тя е една много удобна програмка заразглеждане на текстови файлове.

Следващата команда с която ще ви запозная е командата tail. Можеда ви се стори безмислено но тази команда показва на екрана последни-те няколко реда от най-обикновен текстов файл. Един пример в койтоискам да видя последните 5 реда от файлът dates.txt е показан по–долу:

tail -5 dates.txt

Ако замените цифрата 5 с някакво друго число – да речем 20, то ко-мандата tail ще ви изведе последните 20 реда от този файл. Ако се чу-дите за какво точно би ви послужила тази команда отговорът е многопрост - за разглеждане на логове. В UNIX и съответно Linux логове-те се пазят в най-обикновени текстови файлове и с помощта на тазикоманда вие можете да прочетете последните записи в тях. Разбирасе ако искате да следите постоянно какви логове получавате би биломного неудобно да спирате и пускате периодично програмата tail. То-ва обаче не е наложително ако ползвате опцията –f. Ако тази опция езададена tail ще следи за промяна на файла и автоматично ще изкарвапоследните записани данни на екрана.

79

Page 90: LINUX(Bulgarian Language)

80 ГЛАВА 12. ДРУГИ ПОЛЕЗНИ ПРОГРАМИ

Напълно нормално е да има противоположна програма на tail и товае head. Тя има много подобен синтаксис и е много удобна да разгледатенабързо началото на даден файл. Например ако сте запазили текстана някакъв важен e–mail който сте получили, но сте забравили от когое можете да използвате head да прочетете първите няколко реда нафайла.

Следващите няколко команди ще ви помогнат да намерите файлкойто сте загубили. С командата locate можете да търсите файл поимето му. Например:

locate data

Така ще получите списък от всички файлове на дисковете, коитосъдържат в името си data. Командата locate не винаги дава коректнирезултати. Ако току що сте създали файла който търсите вероятноняма да го открие. В такъв случай помага програмата find. Заедно с оп-ция -name можете да търсите за определен файл или по файлова маскатекущата или някоя друга директория. Например ако търсите всичкитекстови файлове в текущата директория и под-директориите и мо-жете да напишете:

find -name ’*.txt’

Списъкът който ще получите ще съдържа всички файлове в текуща-та директория и нейните под-директории които завършват на .txt. Акообаче търсите програма, можете да ползвате which. Пробвайте каквоще ви изведе следната команда:

which ls

И така, с последните три команди можете да намерите определенфайл. Ако обаче не знаете името на файла, а само част от съдържание-то му или просто искате да проверите дали някой файл съдържа някак-ви точно определени данни използвайте програмата grep. Синтаксисътна командата е даден по-долу:

grep <търсен стринг> <файлова маска>

Където– търсен стринг - данните които търсите– файлова маска - може да бъде или име на файл или маска, която

обединява два или повече файла.Ето и един пример. За да проверим всички текстови файлове в те-

кущата директория дали съдържат ‘13:30‘ можем да напишем следнияткоманден ред:

grep "13:30" *.txt

Така grep ще ви изведе по няколко реда от всеки файл, който съдържатърсените данни.

Page 91: LINUX(Bulgarian Language)

12.2. КОМУНИКАЦИЯ 81

12.2. Комуникация

Освен с файлове, при мултипотребителски операционни системи висе налага да работите и с останалите потребители. Следващите ко-манди ще ви помогнат да комуникирате с тях.

Ако искате да проверите кой освен вас работи в момента на съща-та машина използвайте командата who. Придърпайте клавиатурата,напишете я и вижте какво ще получите.

Когато искате да напишете бързо и кратко съобщение на някой вашколега можете да използвате write. Синтаксисът е следният:

write <user>

Където user е потребителското име на колегата ви. Напишете ко-мандата, натиснете ENTER и след това напишете съобщението си,като за край въведете символа CTRL–D. Ако искате да пратите по-добно съобщение не на определен потребител а на всички потребители,които работят в момента в системата използвайте wall. Тя се използ-ва по абсолютно същия начин като write с изключение, че параметърътuser не е необходим.

Когато трябва да проведете по–дълъг разговор най–добре е да из-ползвате командата talk. За разлика от горните команди с talk може-те да разговаряте с потребители и на други UNIX или Linux компютри.Синтаксисът на командата е следният:

talk <user>@<computer>

Където user е потребителското име на вашият приятел, а computerе името на компютърът който използва. Ако той използва същияткомпютър който използвате вие, пробвайте следният синтаксис:

talk <user>

Не забравяйте, че необходимо изискване за последните три командида работят е вие и вашият приятел или колега да работите по едно исъщо време.

Page 92: LINUX(Bulgarian Language)

82 ГЛАВА 12. ДРУГИ ПОЛЕЗНИ ПРОГРАМИ

Page 93: LINUX(Bulgarian Language)

Глава 13

Работа с текстовредактор

Едно от нещата за които се използват компютрите е въвежданетои преглеждане на текстови документи. За писане на документи напос-ледък се използват големи и функционални офис пакети, с които може-те да форматирате вашите документи, да ги направите по атрактив-ни, но малките текстови редактори са неоценими помощници, когатотрябва да си запишете някаква бърза бележка или да направите бързикорекции в кода на програма, която сте написали.

В следващите глави ще ви запознаем с два популярни конзолни тек-стови редактора за UNIX, които също така работят и безпроблемнона Linux.

13.1. Работа с pico

Pico е един от най-лесните за използване конзолни текстови редак-тори за UNIX създаване някога. Той е много интуитивен и по всяковреме ви предоставят минимална помощ за операциите които можетеда извършвате със съответният текстов файл. Pico е елементарен ибърз редактор с който да надраскате някой e-mail на вашите приятелиили колеги. Не случайно той много често се разпространява с един същотолкова интуитивен e-mail клиент, какъвто е Pine.

Лесната работа с този редактор е основното му предимство. Поня-кога обаче, неговите ограничения, карат по-напредналите потребителида използват други, по-сложни, но и по-гъвкави текстови редактори.

Pico можете да стартирате с командата pico. Това ще стартираредактора за създаване на нов файл. Ако искате със стартирането на

83

Page 94: LINUX(Bulgarian Language)

84 ГЛАВА 13. РАБОТА С ТЕКСТОВ РЕДАКТОР

pico да отворите вече създаден файл за редактиране, използвайте съ-щата команда последвана от името на файла, който ще променяте илипросто преглеждате.

Ето така изглежда редактирането на обикновен текст със pico:

Най-отгоре се намира статус линията на която са показани верси-ята на Pico, по средата - името на текущият файл и отдясно, ако стемодифицирали файлът ще се покаже Modified.

Редът за съобщения е третият отдолу нагоре. Там pico ще ви показ-ва евентуални съобщения за грешки и непознати команди. На същиятред ще въвеждате търсеният стринг, когато използвате командатаSearch или името на файла, когато използвате Read или Write.

Долните два реда винаги и по всяко време ще ви дадат полезна ин-формация за достъпните команди, както и достъп до много точни-ят и удобен помощник, който можете да извикате с комбинациятаCTRL+G.

Ако сте забелязали командите започват със символът ^. Този сим-вол в случаят обозначава, че трябва да натиснете бутонът CTRL заед-но със буквата, която се намира след ^. Или ^O е аналогично записванена клавишната комбинация CTRL+O.

В работа си може да ви се сторят полезни някои клавишни комбина-ции които не са показани в помощника:

^A премества курсора в началото на реда^E премества курсора в края на реда

Още нещо, много удобно е извикването на pico с опция -f. Това ще випозволи да използвате функционалните бутони F1 .. F12 вместо CTRLкомбинациите.

Page 95: LINUX(Bulgarian Language)

13.2. ИЗПОЛЗВАНЕ НА VI 85

Същевременно с тези удобства Pico ви позволява да проверите ва-шият текст за прости синтактични грешки. За съжаление не можетеда проверявате български текст все още, но използвайки командата ^Тили бутона F12 можете да сте сигурни, че текста на английски койтосте написали е правилен.

Ако вече pico ви се струва прекалено лесно, винаги можете да проб-вате един малко по-добър, но и по-сложен текстов редактор, какъвтое Vi.

13.2. Използване на vi

Редакторът VI е един от най-разпространените и е достъпен завсички типове UNIX системи, включително и Линукс. Тази глава щеви научи на елементарни познания, които ще ви помогнат да боравитес него. Можеби на някои от вас Vi ще ви стори много неудобен и тру-ден редактор и ако вие сте от тях - ползвайте Pico. Ако обаче искатеда имате един наистина добър и най-вече мощен редактор тогава Viвероятно е един много добър избор.

За да стартирате този редактор използвайте командата vi - такаще започнете да редактирате нов файл. Ако желаете да редактиратевече създаден файл използвайте същата команда последвана от иметона файла.

Преди обаче да ви запозная с основните команди трябва да ви разяс-ня:

13.2.1. Команден режим и редактиране

За разлика от pico или някой други редактори които сте използвалиVi се различава с това, че можете да работите в един от двата режима- команден или на редактиране.

Когато сте в режим на редактиране всеки бутон който натиснетеот клавиатурата се разбира като текст, който се добавя във файлът.Когато обаче сте в команден режим, всяки натиснат от ваш бутон сеинтерпретира като команда.

С помощта на командите вие можете да манипулирате по всяка-къв начин въведеният текст - да изтривате текст, да замествате, датърсите определени фрази. Изобщо командният режим на Vi е толковамощен, че с негова помощ можете да направите такива неща, коитоса невъзможни с други редактори. Можете дори да извиквате външнипрограми! Подобно на командите в UNIX така и при Vi повечето ко-манди са възможно най-кратки, дори в повечето случаи еднобуквени.

Впрочем, когато пуснете Vi автоматично влизате в команден ре-жим. За да пуснете режима на редактиране можете да използвате ко-

Page 96: LINUX(Bulgarian Language)

86 ГЛАВА 13. РАБОТА С ТЕКСТОВ РЕДАКТОР

мандата a-ppend или i-nsert - това става с просто натискане на буто-ните a или i.

13.2.2. Режим на редактиране

Когато сте в режим на редактиране смятайте, че се намирате внай-обикновен текстов редактор. Разбира се имате на разположениеняколко удобни клавишни комбинации:

CTRL-W изтрива предишната думаCTRL-U изтрива текущият ред

ESC влизане в команден режим

13.2.3. Команден режим

Докато сте в команден режим разполагате с някои прости командиза предвижване като:

Команда Курсорът отиваb в началото на предишната думаw в началото на следващата думаe в края на следващата дума0 в началото на реда$ в края на реда( началото на изречението) краят на изречението{ началото на параграфа} краят на параграфа

Когато искате да изтриете текст използвайте следните команди:

Команда Функцияx изтрива текущият символD изтрива символите до края на редаdb изтрива символите от текущият до началото на думатаde изтрива символите от текущият до краят на думатаdd изтрива целият редdw изтрива текущата дума

Когато сбъркате използвайте командата undo.

Когато вършите работата по файла, можете да го запишете с ко-мандата :w а за да отворите нов - :o именафайл. По същият начин из-лизате с командата :q, а ако искате да излезете, едновременно с товазаписвайки промените по файла използвайте :wq, а когато не желаетеда запишете промените при изход - :q!.

Между впрочем командите започващи с : са тези които правят Viтолкова мощен. Един опитен програмист използвайки тези команди

Page 97: LINUX(Bulgarian Language)

13.2. ИЗПОЛЗВАНЕ НА VI 87

може да направи неща за които обикновеният потребител дори не пред-полага.

Разбира се не мога да ви опиша всички команди, които можете да из-ползвате. Затова реших да ви запозная само със тези - най-обикновени,които ще ви помогнат да започнете. Ако наистина харесвате Vi може-те да прочетете някои от купищата документи посветени на него и данаучите много трикове, които могат да са ви полезни.

Впрочем ето как изглежда най-обикновена програма редактирана сVi:

Също, ако използвате Vi за редактиране на .java файлове можетедори да ги компилирате, използвайки командата :!javac myprog.java

Page 98: LINUX(Bulgarian Language)

88 ГЛАВА 13. РАБОТА С ТЕКСТОВ РЕДАКТОР

Page 99: LINUX(Bulgarian Language)

Част V

Графични среди

89

Page 100: LINUX(Bulgarian Language)
Page 101: LINUX(Bulgarian Language)

Глава 14

Какво представляваX-Windows

Дизайна на графичната система в UNIX а също и в Linux на повече-то хора, работили само с Windows или MacOS, ще им се стори твърдеобъркваща но за сметка на това тя е невероятно гъвкава и съм убеден,че по–късно ще оцените това. Тази система се нарича X-Windows, ноние ще и викаме за по-накратко X (хикс).

X-Windows системата се състои от три части:

– Графичен сървър,

– Графични библиотеки

– Графичен менажер и програми

Графичният сървър е стандартизиран и се развива като стандартот "The X Consortium". Работата на графичният сървър е да предоста-вя платформено независим механизъм за достъп до устройства катоклавиатурата, мишката и монитора.

Графичните библиотеки са вторият, междинен слой. Те предоста-вят възможност на крайните приложение да визуализират своята ин-формация на X сървъра. Те осигуряват начина на комуникация с графич-ният сървър и стандартни компоненти - като бутони, прозорци, спи-съци и други.

91

Page 102: LINUX(Bulgarian Language)

92 ГЛАВА 14. КАКВО ПРЕДСТАВЛЯВА X-WINDOWS

14.1. Конфигуриране

14.2. Кирилизиране на X

14.3. Стартиране

Обикновено има два начина за стартиране на графичната среда. Еди-ният начин е традиционен и става чрез командата startx. Ако графич-ният ви сървър е правилно конфигуриран, той ще се стартира заедносъс графичният менажер, който системният администратор ви е изб-рал. Разбира се вие сами можете да контролирате избора на графиченменажер и това се прави много лесно. Просто трябва да създадете въввашата home директория файл с име /.xinitrc. Обикновено съдържание-то на този файл е ключовата дума exec последвана от пълният път доизбраният от вас графичен менажер. Ето съдържанието на моят файл:

exec /usr/X11R6/bin/wmaker

Другият начин е чрез използването на Display Manager, какъвто еXDM. Това е програма, която обикновено се пуска още със стартиране-то на Linux и ви лишава от не дотам голямото удоволствие на обикно-вената текстова конзола. Ако видите на екрана една малко прозорче посредата, което ви приканва да въведете потребителското си име и па-рола тогава бъдете сигурен/сигурна, че това е някакъв Display Manager.

Page 103: LINUX(Bulgarian Language)

Глава 15

Графични среди и графичнименажери

15.1. Какво представляват графичните менаже-ри

Графичният менажер се грижи за графичните обекти като бутони,менюта, скролери. Той също се грижи за прозорците - как те се показ-ват на екрана, дава възможност да ги местите, минимизирате, макси-мизирате. В някои случай графичният менажер се грижи и да ви предос-тави допълнителни виртуални екрани.

Mенажерa, заедно с крайните потребителски програми сформиратпоследната част на графичната система.

X-Windows системата позволява да си сменяте без проблем графич-ните менажери а това променя и изгледът на вашият десктоп. Така,избирайки и експериментирайки с различни десктопи (а те наистина самного) можете да бъдете сигурен, че никога няма да ви писнат.

15.2. Защо има различни графични менажери

На този въпрос мога да ви отговоря само с въпрос - А защо има тол-кова хора на земята? Благодарение на графичните менажери вие мо-жете да направите десктопа на компютъра си точно така както гоискате. Когато един менажер не ви харесва веднага го сменяте с друг.Само, че някои прекалено придирчиви хора изглежда не са харесали нитоедин и затова са се хванали и са си написали свой собствен. Така те састанало много и различни. Не оставяйте обаче с грешни впечатление -

93

Page 104: LINUX(Bulgarian Language)

94 ГЛАВА 15. ГРАФИЧНИ СРЕДИ И ГРАФИЧНИ МЕНАЖЕРИ

не можете просто ей така да си напишете собствен менажер. За товави трябва добра подготовка и знания как се се програмира X.

Заедно с графичните менажери, са се появили е themes. Това е пакетот файлове, който може да разнообрази десктопа ви. Повечето съвре-менни графични менажери поддържат лесна и бърза смяна на изгледаблагодарение на тези пакети.

Те са специфични за всеки един менажер, но в интернет на адресhttp://www.themes.org/ можете да намерите различни themes за най-известните.

15.3. Какво представляват графичните среди

В повечето случай графичните менажери нямат нищо общо с пот-ребителските програми. Обаче, когато те се разпространяват заедноние наричаме това графична среда. Такава среда ви предоставя многомалки, а дори и големи програми, които правят животът ви много по-лесен.

В следващата глава ще разберете за една такава графична среда,наречена K Desktop Environment или накратко KDE.

Page 105: LINUX(Bulgarian Language)

Глава 16

Работа с KDE

16.1. Стартиране на KDE

16.2. Конфигуриране

16.3. Кирилизация и локализация

16.4. Програми за KDE

16.5. Как да се свържем с Интернет

95

Page 106: LINUX(Bulgarian Language)

96 ГЛАВА 16. РАБОТА С KDE

Page 107: LINUX(Bulgarian Language)

Глава 17

Работа с GNOME

17.1. Стартиране на GNOME

17.2. Конфигуриране

17.3. Кирилизация и локализация

17.4. Програми за GNOME

17.5. Как да се свържем с Интернет

97

Page 108: LINUX(Bulgarian Language)

98 ГЛАВА 17. РАБОТА С GNOME

Page 109: LINUX(Bulgarian Language)

Глава 18

Други графични менажерии среди

В тази глава, ще ви запозная с някой от най-разпространените гра-фични менажери. Разбира се това са само една много малка част, ноописването на абсолютно всички е наистина непосилна задача. Въпре-ки това аз съм убеден, че ако GNOME и KDE не са ви харесали много,то тук ще намерите поне един подходящ графичен менажер за вашитеизисквания и вкус.

99

Page 110: LINUX(Bulgarian Language)

100 ГЛАВА 18. ДРУГИ ГРАФИЧНИ МЕНАЖЕРИ И СРЕДИ

18.1. XFce

18.1.1. Какво представлява XFce

XFce е олекотена графична среда. Работата по него е почнала , ко-Повече информация заXFce в интернет можетеда намерите на адресhttp://www.xfce.org

гато главният и разработчик решил, че му трябва малка, бърза но ифункционална графична среда с която да работи под Linux.

KDE и GNOME са доста "тежки"среди - огромни, тромави, с прека-лено много функционалност, която рядко се налага да използваш. CDE емного подобна на тях, но определено е доста по-бърза, лошото при неяе, че се плаща допълнително.

Така че, е много лесно конфигуруем, стабилен, бърз и не на последноместо - изглежда добре. Лично според мен той почти напълно копираизгледа на CDE и всеки който някога е работил със Solaris/CDE няма даима особени проблеми и с XFce.

XFce, макар и да е доста функционален не изисква много бърз и скъппроцесор, както и много памет. Идеален е за система от среден клас.

Разбира се няма да ви оставя да се чудите какво представлява. Етомоят екран, използвайки XFce:

18.1.2. Предимства

Предимствата на XFce се състоят в това, че той е доста бърз, ка-то това в никакъв случай не е за сметка на функционалността. Интер-фейсът му е много изчистен и притежава доста програми (е не толко-

Page 111: LINUX(Bulgarian Language)

18.1. XFCE 101

ва колкото KDE или GNOME) които правят животът ви по-лек. Нямада ви казвам, че е удобен, а и няма да имате абсолютно никакъв проб-лем, ако искате да ползвате някои от програмите на GNOME или KDE.XFce е достатъчно интелигентен и освен своите менюта той показ-ва менютата и на двете среди. Тъй като ползва GTK, всички програмикоито сте ползвали под GNOME ще се вписват много добре във графич-ната ви среда и няма да се различават по цвят. Освен това XFce можеда бъде напълно интернационализиран, но макар и да има поддръжка намного езици българският все още не се поддържа. Разбира се, ако стекирилизирали своята X среда, винаги можете да пишете и четете тек-стове написани на кирилица.

Друго удобство е вграденият файлов менажер, с чиято помощ може-те да разглеждате файловете си. За разлика от Konqueror или Nautilusтой не поддържа отваряне на интернет сайтове, бързо преглеждане нафайлове и картинки, но определено не заема толкова ресурси и е многопо-бърз.

18.1.3. Стартиране

За да можете да работите с XFce единственото което трябва данаправите е да напишете командата:

xfce_setup

Това е напълно достатъчно. Рестартирайте X и готово!

18.1.4. Конфигуриране

Щракнете с мишката, избирате меню "Setings"и избирате какво данастройвате. Освен това можете да щракнете и върху бутона за кон-фигуриране на toolbar-a (този бутон е като палитра на художник) заоще, допълнителни настройки.

Разбира се винаги можете да се побърникате из конфигурационнитефайлове които ще намерите в ./xfce/. Но преди да направите това про-четете документацията. Ако не знаете английски то непременно гонаучете, защото документацията не е преведена на български а и освентова при работа с компютър английският никога не е излишен.

18.1.5. Заключение

Ако наистина искате удобна, бърза среда, разполагаща с достатъч-но добри инструменти, но нямате бърза машина, то XFce е точно завас. XFce няма да ви разочарова. Изчистеният му интерфейс е многоприятен а и някак много напомня на CDE - чухте ли фенове на Solaris?

Page 112: LINUX(Bulgarian Language)

102 ГЛАВА 18. ДРУГИ ГРАФИЧНИ МЕНАЖЕРИ И СРЕДИ

18.2. blackbox

18.2.1. Какво е Blackbox

Blackbox е графичен менажер, специално оптимизиран за бързина иОфициалната страницана Blackbox в Internet мо-жете да намерите на ад-рес http://blackbox.alug.org/

големина. Той е много малък и много бърз. Макар и да не е пълна гра-фична среда той изглежда невероятно добре и напълно функционален.Както повечето графични менажери той може да изглежда по многоразлични начини в зависимост от Вашето желание. Начинът му на кон-фигуриране е много естествен, бърз и елементарен - всичко става чрезнатискане на десният бутон на мишката. Има toolbar, който макар даизползва не-традиционен начин за превключване между приложениятае доста удобен. Благодарение на малкият си размер и бързина той емного удобен за използване от отдалечен графичен сървър (Погледнетеглавата "X под Windows").

Ако искате да знаете как изглежда - това е моят десктоп с Blackbox

18.2.2. Предимства

– Минимални изисквания - В цялата си история Blackbox винаги се естремял към една цел - минимализъм. Това, обаче не значи, че тойне трябва да изглежда добре, нито пък да е ограничен и безличенграфичен мениджър. Целта винаги е била бързината.

– Бързина и леснота при използване - Blackbox никога не е имал це-лият набор от инструменти за боравене с клиентки приложения,

Page 113: LINUX(Bulgarian Language)

18.2. BLACKBOX 103

които притежава една завършена графична среда. Разбира се тойби бил неудобен ако не притежаваше поддръжка на повече от единдесктоп, лесни и изчистени менюта за контрол и скриващи се про-зорци които заместват иконите.

– Вградена обработка на графики - Самият Blackbox никога не е под-държал и няма да поддържа зареждане на графики. Той, обаче имавградена графична поддръжка за представяне на елементарни пре-ливащи палитри. Така не се налага зареждането и съхраняването впаметта на огромни графики.

18.2.3. Стартиране на Blackbox

Ако сте във конзолен режим и нямате стартиран X сървър можетеда стартирате Blackbox със командата:startx ‘which blackbox‘Ако X сървърът ви се стартира автоматично можете да създадетефайл с име /.xsession и ./xinitrc със следното съдържание:#!/bin/shexec blackbox

18.2.4. Работа с Blackbox

Прозорци

Както повечето графични менажери, основното за работа с прозор-ци е техният titlebar. Там е показано заглавието на прозореца и трибутон с които можете да минимизирате, максимизирате и затворитепрозорецът. Ако щракнете върху titlebar-а и задържите бутона натис-нат можете да преместите прозореца. На системното меню има някоиопции, които вероятно на повечето хора, не използвали UNIX няма дабъдат познати. Това са:

– Stick - ако бъде избрана тази опция, прозорецът ви ще присъствавъв всеки виртуален десктоп.

– Shade - при избиране на тази опция или при двойно щракване намишката върху titlebar-а на прозореца, той ще се скрие, като titlebar-а му ще остане видим. Тази опция е много подобна на минимизира-нето. Разликата е вместо икона, прозорецът се вижда като едналиния със пълното заглавието на приложението. Възстановяване-то от това положение става по същият начин - със двойно щрак-ване на titlebar-a или от системното му меню.

– SentTo - тази команда ви позволява да "изпратите"текущия прозо-рец в избран от Вас виртуален десктоп.

Page 114: LINUX(Bulgarian Language)

104 ГЛАВА 18. ДРУГИ ГРАФИЧНИ МЕНАЖЕРИ И СРЕДИ

Toolbar

Toolbar-ът показва текущият виртуален десктоп, името на актив-ният прозорец и часовникът. Със стрелките можете да се прехвърлятемежду приложенията и десктопите.

Менютата

Има три вида менюта. Първият - това са менютата на прозорци-те, които бяха описани по-горе. Следват менютата за виртуалнитедесктопи които се активират чрез щракане на средния бутон на миш-ката върху активният десктоп. Освен списъкът със достъпните дес-Ако нямате среден бутон

тази функционалност мо-же да се емулира, като на-тиснете едновременно идвата бутона на мишка-та.

ктопи, можете да видите и списък от прозорците във всеки десктоп,както и списък на минимизираните прозорци. Ето и как изглежда еднотакова меню

Третият вид меню е основното меню. За разлика от останалите то-ва меню може да се конфигурира. Основната му задача е да предоставина потребителя възможност да стартира програми и конфигурира дър-жането и изгледа на графичният менажер. Това меню е достъпно катокликнете с десният бутон на мишката върху десктопа.

18.2.5. Конфигуриране

Конфигурацията на Blackbox се пази в най-обикновени текстови фай-лове. Те са с много проста структура и единственото по-сложно е кон-фигурирането на основното меню. Самият Blackbox няма удобно гра-фично приложение с което да редактирате своите менюта но има мно-го програми които биха ви позволили да направите това. Посететестраницата на Blackbox в интернет - там има достатъчно линкове смного малки и полезни програмки специално за Blackbox. Също там, щенамерите линкове с детайлно описание как да промените изгледът навашият графичен менажер.

18.2.6. Заключение

Blackbox е един много бърз и удобен графичен менажер. Макар и дос-та малък той е напълно функционален и прекрасен за работа през отда-

Page 115: LINUX(Bulgarian Language)

18.2. BLACKBOX 105

лечен X терминал. За разлика от огромните, тромави среди, Blackboxпредоставя лесен меню-базиран интерфейс за работа. Лично аз препо-ръчвам да използвате Blackbox когато не работите много често съсграфични приложения и не се нуждаете от пълната функционалност наедна завършена графична среда.

Page 116: LINUX(Bulgarian Language)

106 ГЛАВА 18. ДРУГИ ГРАФИЧНИ МЕНАЖЕРИ И СРЕДИ

18.3. IceWM

18.3.1. За IceWM накратко

IceWM е малък, бърз и удобен графичен менажер за X11 системи. Ед-Детайлна информация заIceWM в Internet може-те да намерите на адресhttp://www.icewm.org/

но от основните предимства на IceWM е, че той може да бъде конфи-гуриран да изглежда както познатите графични среди част от коитосамо са Motif, OS/2 Warp 4, OS/2 Warp 3 и Windows 95. Също така сеопитва да предоставят същата функционалност достъпна чрез миш-ката и през клавиатурата.

Ето и как как изглежда:

18.3.2. Предимства

– Поддръжка на различни изгледи.

– Поддръжка на много виртуални екрани.

– Лесен за работа.

– Възможно е да се настрои да не се различава по нищо от познати-ят Ви Windows 95x.

– Поддържа интернационализация (За съжаление български все ощене се поддържа).

– Напълно съвместим със KDE и GNOME.

Page 117: LINUX(Bulgarian Language)

18.3. ICEWM 107

18.3.3. Стартиране на IceWM

Ако сте във конзолен режим и нямате стартиран X сървър можетеда стартирате IceWM със командата:startx ‘which icewm‘Ако X сървърът ви се стартира автоматично можете да създадетефайл с име /.xsession и ./xinitrc със следното съдържание:#!/bin/shexec icewm

18.3.4. Работа с IceWM

Както споменах по-горе IceWM може да бъде настроен да изглеждаи работи както познатият ви Windows 9x. Той е много лесен и удобенза работа. Няма възможност да Ви писне - можете винаги когато по-искате да смените как изглежда. Ако искате да експериментирате сизгледите най-добре е да посетите страницата http://icewm.themes.org/.

18.3.5. Конфигуриране

Конфигурацията на IceWM е във обикновени текстови файлове, нонеопитен потребител може много да се обърка. Затова има една многохубава и проста програмка наречена IcePrefs, която можете да си издър-пате от http://members.nbci.com/SaintChoj/icepref.html. Ако искате да ре-дактирате менютата си IceME, достъпен от http://iceme.sourceforge.net/,ще ви окаже неоценима помощ.

18.3.6. Заключение

За разлика от Blackbox който е доста по-малко конфигуруем, IceWMе много по-динамичен и много по-удобен за работа от бивши Windowsпотребители. Ако компютърът ви е по-стар и не можете да понасятевлаченето на GNOME и KDE, не харесвате Blackbox и сте привърженикна традиционният Windows интерфейс, то IceWM е точно за Вас. Еднопредимство което не споменах по-горе, и което според мен е направожестоко е, че тези програми, които са описани във меню-тата, но Виенямате инсталирани, не се показват. Така няма да се чудите защо някояпрограма не тръгва, след като сте я избрали от менюто.

Page 118: LINUX(Bulgarian Language)

108 ГЛАВА 18. ДРУГИ ГРАФИЧНИ МЕНАЖЕРИ И СРЕДИ

18.4. WindowMaker

18.4.1. За WindowMaker накратко

WindowMaker не е чак толкова малък графичен менажер като IceWMИнтернет страни-цата на wmaker ehttp://www.windowmaker.org/

и Blackbox, но за сметка е поне толкова функционален, колкото са GNOMEи KDE. Window Maker оригинално е замислен да работи заедно със GNUStepDesktop Environment. Във всеки случай той успява да възстанови елеган-тният изглед на NEXTSTEP[tm]. Той е бърз, богат на възможности,лесен за конфигуриране и използване. Window Maker се разпространявапод GNU лиценз и за да бъде все по-добър се грижат много програмистипо целият свят.

Window Maker е съвместим и работи с популярните среди GNOME иKDE и се разпространява заедно със мощно средство за конфигуриранеи редактиране на менютата. Той е един от малкото графични менаже-ри които не изискват редактиране на конфигурационните файлове наръка.

Ето и как как изглежда:

18.4.2. Предимства

Window Maker е един съвременен графичен менажер с невероятновъзможности. Не може да се каже, че той е напълно функционална гра-фична среда като KDE, GNOME или CDE, но Window Maker определено

Page 119: LINUX(Bulgarian Language)

18.4. WINDOWMAKER 109

е един от най-добрите графични менажери. Въпреки огромните възмож-ности, които сметнах, че не бих могъл да опиша, Window Maker не изис-ква много ресурси.

18.4.3. Стартиране на WindowMaker

За да можете да работите с WindowMaker единственото което тряб-ва да направите е да напишете командата:wmaker.instТова е напълно достатъчно. При следващото стартиране на X Вие щеработите с WindowMaker.

18.4.4. Конфигуриране

Wmaker притежава доста мощен и удобен инструмент за конфигури-ране. С него можете да контролирате както изгледа, така и държането- как и къде да се позиционират новите прозорци, как да се минимизиратпрозорците, можете да контролирате как да изглеждат графиките, даредактирате менютата, изобщо имате пълен контрол над средата -тя е във вашите ръце.

Ето как изглежда тази програмка:

Page 120: LINUX(Bulgarian Language)

110 ГЛАВА 18. ДРУГИ ГРАФИЧНИ МЕНАЖЕРИ И СРЕДИ

18.4.5. Заключение

Ако досега не сте си избрали някой графичен менажер - това е ваши-ят правилен избор!

Page 121: LINUX(Bulgarian Language)

Част VI

Linux в моят Офис

111

Page 122: LINUX(Bulgarian Language)
Page 123: LINUX(Bulgarian Language)

Глава 19

Офис пакети за Линукс

В тази глава ще ви запознаем с някои по–известни офис пакети заЛинукс. Ще ви запознаем с някои както безплатни, така и комерсиалнипродукти които биха могли да ви свършат перфектна работа и безп-роблемно да заменят офис пакета, който сте ползвали доскоро. Ще сеучудите, дори, че някои офис пакети които вероятно сте виждали и поддруги операционни система са достъпни и за Линукс. Разбира се ние щеви дадем само началните знания които са ви необходими да започнете.По-късно в процеса на употреба на някой от тези офис пакети вие щенаучите много нови трикове които няма да намерите тук.

На някои офис пакети смятаме да обърнем повече внимание, а надруги по–малко. За вторите ше научите още в тази глава:

19.1. KOffice

KOffice е проект за офис пакет към K Desktop Environment (KDE).Именно за това, този пакет е особенно подходящ ако използвате KDEза своя графична среда. Разбира се можете да го ползвате и под всекидруг графичен менажер, стига да имате инсталирани основните библи-отеки на KDE. Ето какво съдържа този пакет:

– KWord е програма за редактиране на текст. С нейна помощ може-те да създавате професионално изглеждащи документи. Ако няко-га сте работили с продукта на Adobe – FrameMaker, ще ви е многолесно да свикнете и тази програма. Както повечето професионал-ни програми за работа с документи имате и вграден коректор.

– KSpread е много мощна програма за електронни таблици. С неяможете да си водите счетоводството в къщи.

– KPresenter е програма, с която можете да правите без проблемефектни презентации и да вземете акъла на вашите клиенти.

113

Page 124: LINUX(Bulgarian Language)

114 ГЛАВА 19. ОФИС ПАКЕТИ ЗА ЛИНУКС

– Kivio пък ще ви помогне да създадете различни диаграми. Ако стеработили с Visio R© няма да имате проблеми и с Kivio.

– Kontour е редактор на векторни изображение.

– Krayon пак се използва за редактиране на изображение, но тозипът на растерни. Тя е много подобна на GIMP, която ще в ня-коя от следващите глави, както и на познатия на всички Adobe c©Photoshop R©.

– Kugar е средство за генериране на отчети и доклади.

– KChart ще ви позволи да визуализирате своите статистически дан-ни в ефектни диаграми.

KOffice е наистина един много добър пакет, който се вписва прек-расно в KDE. Той наистина стига почти до нивото на познатият виMicrosoft Office.

Ако желаете да научите повече за този безплатен продукт можетеда посетите страницата му в интернет – http://www.koffice.org/.

19.2. GNOME Office

Както знаете KDE и GNOME са два конкуриращи се продукти ивсеки се стреми да е по–напред от другият и в същото време да неизостава. Така, че не е странно да има и GNOME офис пакет.

Ето само част от този офис пакет:

– Gnumeric според мен е най-добрата електронна таблица за Линукс.Тя не само не отстъпва на Microsoft Excel ами и в доста случаи чпревъзхожда.

– Gfax е програма, с която можете лесно и бързо да пращате факсо-ве на своите делови партньори.

– GIMP, както споменах преди малко е програма за редактиране наизображения. На нея ще се спрем повече в следващите глави.

– Achtung е аналог на KPresenter.

– AbiWord е почти професионален редактор, с които можете да нап-равите много добре изглеждащи документи.

– Evolution е един невероятен mail клиент – лесен за използване, ин-туитивен и с много възможности.

– Dia, както бихте се досетили от името, е програма за рисуване надиаграми. С нея без проблеми можете да направите най-различниUML модели.

Ако искате да научите повече за този безплатен офис пакет, пог-леднете в интернет на адрес http://www.gnome.org/gnome–office/.

Page 125: LINUX(Bulgarian Language)

19.3. HANCOMOFFICE 2.0 115

19.3. HancomOffice 2.0

Това е един професионален, но комерсиален продукт. От сайтът нафирмата (http://www.hancom.com/), която го произвежда можете да сикупите този офис пакет за 45 долара. Самият аз никога не съм пробвалтози пакет, но изглежда той съдържа текстообработваща програма,програма за електронни таблици, за правене на презентации и за редак-тиране на графични изображение.

19.4. Corel R© WordPerfect Office 2000

Това е един наистина професионален продукт съдържащ много прог-рами с които вероятно познавате, ако сте ползвали същият продуктза Windows. Няма нищо по-различно в Линукс версията и всичките вилюбими приложения са там:

– WordPerfect R© 9

– Quattro R© Pro 9

– Corel R© PresentationsTM 9

– CorelCENTRALTM 9

– Paradox R© 9

Ако искате да притежавате този пакет, а можеби също CorelDRAW R©Graphics Suite for Linux R© просто посетете страниците на Corel посве-тени на Линукс - http://linux.corel.com/.

Page 126: LINUX(Bulgarian Language)

116 ГЛАВА 19. ОФИС ПАКЕТИ ЗА ЛИНУКС

Page 127: LINUX(Bulgarian Language)

Глава 20

Инсталиране и работа сOpenOffice

20.1. Накратко за OpenOffice.org

Преди няколко години фирмата Sun Microsystems отвори кода на свояофис пакет StarOffice и го предостави на разработчиците които иматжелание да се включат в разработването на офис пакет с отворенкод. Новият офис пакет бе наречен OpenOffice.org ( OpenOffice е запа-зена марка и за това е правилно отворения офис пакет да се наричаOpenOffice.org, който се хоства на www.openoffice.org) и е лицензиранпод лиценза LGPL. Sun също са част от тази общност въпреки, че про-дължават да поддържат своя StarOffice, който вече се базира в голяма-та си част върху кода идващ от OpenOffice.org. Разликата между дватаофис пакета е, че Sun плаща за някой т.н. third party компоненти за даги включи в своя StarOffice и техния лиценз не позволява отварянетона кода им. За това StarOffice се разпространява само в бинарен фор-мат, т.е. не можете да се сдобиете със сорса и да си го компилиратепри вас, но това не е от решаващо значение. Някои от тези third partyкомпоненти които ги има в StarOffice, а пък ги няма в OpenOffice.orgса: някои специфични азиатски шрифтове както и някои templates, ClipArt Gallery, базата данни Adabas D, Help системата и някои допълни-телни филтри за някои специфични файлови формати. Но това съвсемне лишава OpenOffice.org от възможности. След инсталацията сами щесе убедите какви възможности има той за работа със своите и чуждифайлови формати. Освен това OpenOffice има версии за няколко опера-ционни системи, т.е неговия код е преносим за разлика от други добреизвестни ни офис пакети.

117

Page 128: LINUX(Bulgarian Language)

118 ГЛАВА 20. ИНСТАЛИРАНЕ И РАБОТА С OPENOFFICE

20.2. Инсталиране

Можете да си инсталирате OpenOffice.org след като изтеглите би-нарната версия за Линукс от http://www.openoffice.org/ и я разпакетира-те, след което да стартирате инсталиращата програма setup. Ако дакажем сте изтеглили 638 версията, тогава изпълнете:

tar xfz install638_linux_intel.tar.gz

след което ще се появи директория install, влезте в нея и стартирайте./setup ще стартира инсталационната програма която ще ви зададе ня-колко въпроса: да си изберете какви модули да бъдат инсталирани, къдеда бъдат инсталирани, може да си попълните някои ваши персоналниданни, евентуално да посочите пътя до JRE ако не бъде открито (аковъобще го ползвате) и т.н.

Другият вариант е да изтеглите сорса на OpenOffice.org и да проче-тете внимателно инструкциите за това как да го компилирате с же-ланите от вас възможности и след това да го инсталирате. Това е по-тежкия вариант, но ако все пак настоявате да го направите по този на-чин, инструкциите са на адрес http://www.openoffice.org/dev_docs/source/build_linux.html.

Имайте предвид, че сорса е доста голям и компилацията ше отнемеизвестно време, освен това ще ви е необходимо доста свободно дисковопространство.

Page 129: LINUX(Bulgarian Language)

20.3. ИЗПОЛЗВАНЕ 119

20.3. Използване

В директорията където сте инсталирали OpenOffice.org ще откри-ете трите изпълними файла:

– soffice - стартира нова OpenOffice.org сесия

– spadmin - за добавяне на принтери и шрифтове

– setup - инсталационната програма с която можете да добавитенови модули или да премахнете вече инсталирани такива, ако понякаква причина сте повредили програмите които сте инстали-рали с последната инсталация можете да ги ре-инсталирате, илипък да премахнете изцяло текущата инсталация

Използването на OpenOffice.org е съвсем интуитивно, ако сте рабо-тили с MS Office преди това не би трябвало да срещнете затруднения сналичните менюта. Можете да стартирате ръчно soffice или пък да сипоставите на вашия десктоп връзка към този файл. По подразбиранесе стартира текстообработващата програма, след която можете дастартирате другите програми за обработка на електронни таблици,презентации, чертане и т.н.

Page 130: LINUX(Bulgarian Language)

120 ГЛАВА 20. ИНСТАЛИРАНЕ И РАБОТА С OPENOFFICE

Page 131: LINUX(Bulgarian Language)

Глава 21

Инсталиране и работа сApplixWare

121

Page 132: LINUX(Bulgarian Language)

122 ГЛАВА 21. ИНСТАЛИРАНЕ И РАБОТА С APPLIXWARE

Page 133: LINUX(Bulgarian Language)

Глава 22

Инсталиране и работа сGIMP

123

Page 134: LINUX(Bulgarian Language)

124 ГЛАВА 22. ИНСТАЛИРАНЕ И РАБОТА С GIMP

Page 135: LINUX(Bulgarian Language)

Глава 23

CAD/CAM приложения заLinux

125

Page 136: LINUX(Bulgarian Language)

126 ГЛАВА 23. CAD/CAM ПРИЛОЖЕНИЯ ЗА LINUX

Page 137: LINUX(Bulgarian Language)

Част VII

Мултимедия под Линукс

127

Page 138: LINUX(Bulgarian Language)
Page 139: LINUX(Bulgarian Language)

Глава 24

Програми за слушане намузика

Бумът на електронната музика се дължи най вече на MP3. Този бумне подмина и Линукс и той много отдавна има възможност за просвир-ване както на MP3 музика, така и на музика компресирана с някои други,нови, също популярно формати като Ogg например.

Един от най-популярните MP3 player-и за Линукс е XMMS, коеторазкодирано значи "X Multimedia System". Това е аналог на една друга по-пулярна програма за Windows - WinAmp. XMMS, подобно на WinAmp имавъзможност да се разширява с плъгини, които допълват неговата фун-кционалност. За разлика от своят Windows събрат, XMMS има плъгин,с който може дори да се гледат филми, кодирани в последният DivXформат.

Разбира се можете да използвате и скинове. Впрочем ако имате лю-бим скин за WinAmp можете без проблем да го използвате и под XMMS.Тук двете програми са напълно съвместими. Ако не вярвате - погледне-те на картинката по-долу:

Последните новини около тази програмка, както и информация занови плъгини и скинове можете да намерите на адрес http://www.xmms.org.

129

Page 140: LINUX(Bulgarian Language)

130 ГЛАВА 24. ПРОГРАМИ ЗА СЛУШАНЕ НА МУЗИКА

Page 141: LINUX(Bulgarian Language)

Глава 25

Линукс - Нашето домашновидео

http://xine.sourceforge.net/http://www.mplayerhq.hu http://free.top.bg/anglo/iso8859-1_bulgarian_maritza_bold-

1.0.0.tar.gz

131

Page 142: LINUX(Bulgarian Language)

132 ГЛАВА 25. ЛИНУКС - НАШЕТО ДОМАШНО ВИДЕО

Page 143: LINUX(Bulgarian Language)

Част VIII

Съвместа работа сWindows

133

Page 144: LINUX(Bulgarian Language)
Page 145: LINUX(Bulgarian Language)

Глава 26

Споделяне на файлове

Възможността да се обменят файлове е особенно важна за рабо-тата в офис. Създателите на UNIX много отдавна са измислили NFS,което ще рече Network File System. За разлика от UNIX, обаче, Windows Всъщност NFS е измисле-

на от специалистите наSUN Microsystems

използва по-различен протокол за споделяне на файлове, наречен ServerMessage Block или за по-кратко SMB. Същият този протокол поняко-га наричат NetBIOS или LanMan. За да може Линукс да комуникира исподеля файлове с Windows група ентусиасти са написали един от най-популярните пакети, наречена SAMBA. SAMBA освен поделяне на фай- Официалната страница

на SAMBA в интернет еwww.samba.org. Там същоможете да намерите до-пълнителна информацияи програми.

лове позволява и отдалечено администриране на Windows компютри.

26.1. Да потанцуваме Samba

Както вие се нуждаете от музика за да можете да танцувате съссвоята любима/своя любим, така и Линукс се нуждае от SAMBA за дазатанцува заедно със Windows. Така че за да можете да споделяте сво-ите файлове с колегите които работят под Windows вие трябва да сиинсталирате SAMBA. За радост, почти всички Линукс дистрибуции видават възможност да инсталирате този пакет. Ако при първоначална-та инсталация сте забравили да направите това, прочетете докумен-тацията с която вероятно се разпространява избраната от вас дист-рибуция и инсталирайте Samba, според дадените там указания.

След това трябва да стартирате необходимите програми. В случаятова са двата ’демона’ smbd и nmbd . За да разберете дали те са пусна-ти напишете в конзолата си ps axf | grep smbd. Ако имате някакъврезултат, то вероятно не само smbd ами и nmbd са пуснати.

Разбира се, макар и пуснати, те нищо няма да направят ако не стеги конфигурирали. А как се конфигурират ще разберете в следващатачаст.

135

Page 146: LINUX(Bulgarian Language)

136 ГЛАВА 26. СПОДЕЛЯНЕ НА ФАЙЛОВЕ

26.2. Как да конфигурираме SAMBA

Конфигурацията на пакета, както при повечето UNIX приложениясе съдържа във най-обикновен текстов файл, който може да се редак-тира на ръка и за SAMBA този файл се казва smb.conf и по всяка веро-ятност ще намерите във /etc директорията.

Този файл е организиран на секции, като основната секция е нареченаglobal.

Ето как изглежда една такава секция:

[global]workgroup = PSBserver string = Samba %v. Local time %T.security = sharewins server = 192.168.1.1

В случаят тази конфигурация указва, че искам да работя в work-група, наречена PSB. Полето server string указва какво да бъде описани-Ако сте забелязали във

описанието на компютъ-ра си съм сложил ед-ни много странни симво-ли. Тези странни симво-ли се заместват авто-матично, като %v е ек-вивалент на версията наSamba, а %T се замествасъс точното време.

ето на компютъра ми в мрежата. Като security опция съм избрал share- която е удобна за работа в среда, където има само Windows 9x маши-ни без Domain контролер. Допълнителната опция, която съм добавил еwins server. В случай, че нямате такъв сървър в офиса си НЕ СЛАГАЙТЕ

Попитайте системнияадминистратор за winsсървър.

тази опция.Този конфигурация е толкова проста, че със сигурност ще работи.

Ако мрежата ви изисква по-специални конфигурационни файлове или ра-ботите в NT Domain, тогава по-добре се посъветвайте със специалист,какъвто в повечето случаи ще е вашият системен администратор.

26.3. Споделяне на файлове

За да споделите своите файлове със вашите колеги или приятелитрябва да допълним още малко конфигурационният файл. За да сподели-те някоя своя директория ще ви се наложи да добавите секция, подобнана тази по-долу:

[working]comment = Please don’t delete important data.path = /home/fire/workingpublic = yeswritable = yesguest ok = true

– Горната секция дефинира споделена директория, която от Windowsще е достъпна като

Page 147: LINUX(Bulgarian Language)

26.3. СПОДЕЛЯНЕ НА ФАЙЛОВЕ 137

mynameworking, където myname е името на моят компютър.

– comment е коментарът който съм сложил на тази директория, за-щото наистина не искам моите колеги за изтрият някои важнифайлове.

– Опцията path указва пътят на директорията, която искам да спо-деля. В случаят тя е /home/fire/working.

– public означава, че тази директория е достъпна за всеки, койтоима правилно потребителско име и парола за моят компютър (неважи при security=share).

– writable е индикация, че искам да предоставя на моите колеги въз-можност да записват файлове във тази директория. Не правететова ако не вярвате много на колегите си или се съмнявате, чемогат да изтрият наистина важни документи или данни. Ако стесъмнителни, сложете стойността на тази опция да е no.

– guest ok, когато е указано true означава, че всеки, дори без да при-тежава потребителско име и парола за вашият компютър можеда разглежда вашата споделена директория.

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

26.3.1. Специалната homes секция

Homes секцията е много подобна на тези, описани по-горе. Единст-вената разлика е, че в тази секция не се подава опцията path. В тазиспециална секция се споделят директориите на потребителите. Товаще рече, че всеки ваш колега, кото има потребителско име и съответ-но парола, ще може да вижда своята home директория на вашият ком-пютър през Network Neighbourhood.

Обикновено тази секция, ако присъства е със съдържание много по-добно на даденото по-долу:

[homes]public = nobrowseable = nowritable = yes

Тук опцията browseable, което по подразбиране е yes, е указана дабъде no. Така homes директорията няма да се вижда, когато някой раз-глежда вашият компютър. Това обаче не значи, че вашите колеги нямада виждат своите директории. Напротив, директорията на вашият ко-лега john, ще е достъпна като \\myname\john, myname отново е иметона компютъра ви.

Page 148: LINUX(Bulgarian Language)

138 ГЛАВА 26. СПОДЕЛЯНЕ НА ФАЙЛОВЕ

26.3.2. Достъп до файловете на Windows машина

За съжаление, единствената програма, която идва със SAMBA, спе-циално за разглеждане на други компютри от Network Neighbourhood еsmbclient. Тази програмка е много подобна на конзолен ftp клиент и опре-делено не е особенно лесна за ползване от потребител свикнал с графич-ните приложения. SAMBA, обаче разполага със една програмка, нарече-на smbmount, която ви позволява да монтирате директориите коитовашите колеги са споделили. Така техните директории ще изглеждаткато част от вашата локална файлова система и вие ще можете да ра-ботите с тях, така, както работите със файловете на вашия собственкомпютър.

Друга ценна програмка, наречена XSMBrowser 1, може да е в полза напотребителите използващи XWindows. Може да я дръпнете от интер-нет и това гарантирано ще стане бързо, защото е само 80КВ.

Потребителите на KDE също могат да разглеждат локалната мре-жа с Konqueror, ако преди това са пуснали LISA - един малък робот,който проверява и индексира компютрите в мрежата.

26.4. Печат на мрежов принтер

1http://www.public.iastate.edu/ chadspen/install.html

Page 149: LINUX(Bulgarian Language)

Глава 27

X под Windows

X Windows системата се базира на TCP. Това ще рече, че комуни-кацията между X сървърът и X клиента се осъществява по мрежата.Именно това ни позволява да работим с UNIX графични приложенияпод Windows. Единственото което ни трябва е графичен сървър.

Ако се чудите на кой му трябва да си пуска UNIX приложения подWindows, отговорът е много прост. Ако ви се налага да работите въвхетерогенна среда и във вашият офис има много различни компютри сразлични операционни системи, няма да ви се налага всеки път да ре-стартирате компютърът си за да пуснете Windows или UNIX.

27.1. Да си инсталираме X

Има много X сървъри за Windows, но аз няма да ги изброявам всички-те тук. За съжаление повечето от тях са доста скъпи, и не смятам чеса по джоба на средностатистическият Българин. MI/X е вероятно най-

евтиния X сървър. ОсвенMI/X има PS–Xware,Omni–X, X–ThinPro иXWin–32, който споредмен е много добър

Именно затова избрах да ви покажа как се работи с една не чак тол-кова бърза или особенно добра X Windows система. Тази система е Javaбазирана и ако вече имате инсталирана Java на вашият компютър нямада изисква инсталиране на никакъв друг допълнителен софтуер. Защосе спрях на тази версия ли? - Ами защото Win32-XFree 1 – единстве-ният безплатен X Server за Windows според мен не е по-бърз от този,Java базиран вариант. От друга страна, макар и малко, 25-те долара заMicroImages–X 2, може да се окажат извън бюджета на една българскафирма.

1http://sources.redhat.com/win32–x112Сайтът на MicroImages X e http://www.microimages.com/mix

139

Page 150: LINUX(Bulgarian Language)

140 ГЛАВА 27. X ПОД WINDOWS

27.2. Как да ползваме WiredX

За целта ви е необходим WEB Browser, като Internet Explorer, Mozilla,Netscape или Opera. Освен това е необходимо да имате връзка с интер-нет и инсталирана Java . Забравих да ви кажа още, че ви трябва и ком-Ако все още не сте инста-

лирали Java не се притес-нявайте, при отварянетона страницата на WiredXще можете да си я инста-лирате автоматично.

пютър.

Ако горните предпоставки са налице, отворете любимият си бро-узер и напишете http://www.wiredx.net/ в полето за адреса. Ако за пръвпът посещавате страницата, ще ви се наложи да се регистрирате - несе безпокойте, това е много лесна и бърза процедура.

След като вече сте регистрирани, можете да въведете избранотопотребителско име и вашата парола. . От страницата която ще виИма две версии на

WiredX. Едната се на-рича WiredX Lite и епо-олекотен и бърз вари-ант. По-голямата версияима допълнителна под-дръжка за просвирване назвуци, компресия на дан-ните и REXEC за коетоще спомена по-късно.

се покаже, можете да настроите параметрите на вашият X сървър.От предложените опции ви съветвам да избере Copy&Paste - enable,Extensions SHAPE & MIT-SHM, JEsd - enable (ако държите на звука).Всички споменати по-горе опции са от секцията Miscelaneous. Съвет-вам си също да си поиграете с настройките на "Screen Width & Height"така,че да виждате целият X Server на екрана си и да не ви се налага да скро-лирате.

Какво означават другите опции ще ви запозная в следващата секция.

27.3. XDMCP и REXEC

Обикновено за отдалечено ползване на UNIX машини се използваедин протокол наречен REXEC . Този протокол ви дава възможност даREXEC = Remote

EXECute стартирате команда на отдалечен UNIX или Linux сървър. Това изис-ква да въведете вашето потребителско име и парола за този сървър,както и самата команда. Това е един от начините да подкарате гра-фични приложения на отдалечена машина и да ги визуализирате при вас.Просто стартирайте любимият си графичен менажер и му кажете чеискате да се визуализа на вашият екран. Това става със опцията -displayhost:X, където host е името или IP-то на вашият компютър, а X е но-мерът на дисплея, който за WiredX стандартно е 2.

Друг начин е използването на XDMCP. Това е стандартен прото-кол за X Windows системата, която ви позволява да се вържете на от-далечен компютър и да намерите всички компютри поддържащи тозипротокол и позволяващи да се свържете с тях.

За да използвате XDMCP с WiredX трябва да го настроите. Товастава като изберете правилната опция за XDMCP. На картинката по-долу можете да видите как става това:

Page 151: LINUX(Bulgarian Language)

27.3. XDMCP И REXEC 141

В случаят аз съм решил да се вържа със компютър, който в локал-ната мрежа се казва usb.psb. Забележете че съм избрал опцията querymode, която означава, че съм напълно сигурен, че този компютър под-държа XDMCP протокола.

Broadcast режимът можете да ползвате, когато не знаете кой точ-но компютър поддържа този протокол и така вие ще се свържете спървият, който ви отговори.

По интересен е indirect query mode. Ако изберете този режим и в по-лето за адрес попълните 255.255.255.255 то на екранът ще ви се покажесписък от компютри, които биха ви позволили да се свържете с тях.

След като сте се свързали с компютъра който сте избрали на ек-рана ще ви се появи съобщение в което ще ви подканят да въведетепотребителско име и парола. Това съобщение може да изглежда различ-но в зависимост от това как е настроен отсрещният компютър, но накартинката долу ще видите как изглежда при мен:

От менюто Session можете да изберете кой графичен менажер ис-кате да ползвате. Като въведете правилно потребителско име и паро-

Page 152: LINUX(Bulgarian Language)

142 ГЛАВА 27. X ПОД WINDOWS

ла ще видите същият екран, който бихте видяли ако стояхте на тозикомпютър.

Ако не вярвате погледнете тази картинка:

27.4. Проблеми

Най-често срещаният проблем при използването на отдалечен X сашрифтовете. В повечето случаи е гарантирано, че те няма да бъдатсъщите. Решението е да се ползва шрифтов сървър. Обикновено сис-темният администратор може да е пуснал такъв, така че, първотокоето можете и трябва да направите е да отидете, да повисите 15 ми-нути при него, за да ви обясни къде е пуснал такъв сървър или ако не еда го убедите че е ужасно наложително и спешно.

За да работите с такива шрифтове трябва да го укажете изричноукажете на вашият графичен сървър. Някои графични сървъри обаче ня-ма да ви разберат и единственото което ви остава е да се примиритес фактът, че просто ще изглежда малко по-различно.

Добрата новина е, че макар и да изглежда по-различно, Линуксът виняма да престане да работи добре.

Page 153: LINUX(Bulgarian Language)

Глава 28

Емулатори

http://www.vmware.com/ http://www.winehq.com/ http://www.dosemu.org/

143

Page 154: LINUX(Bulgarian Language)

144 ГЛАВА 28. ЕМУЛАТОРИ

Page 155: LINUX(Bulgarian Language)

Част IX

Администриране на Линукс

145

Page 156: LINUX(Bulgarian Language)
Page 157: LINUX(Bulgarian Language)

Глава 29

Групи и потребители

29.1. Потребител root

29.2. Добавяне и премахване на групи и потреби-тели

29.3. Специалните файлове /etc/passwd и /etc/shadow

29.4. Командата su

147

Page 158: LINUX(Bulgarian Language)

148 ГЛАВА 29. ГРУПИ И ПОТРЕБИТЕЛИ

Page 159: LINUX(Bulgarian Language)

Глава 30

Файловата система

30.1. Организация на файловете

30.2. Що е виртуална файлова система

30.3. Монтиране на дискове

30.3.1. Файловете /etc/fstab и /etc/mtab

30.4. Мрежови файлови системи

149

Page 160: LINUX(Bulgarian Language)

150 ГЛАВА 30. ФАЙЛОВАТА СИСТЕМА

Page 161: LINUX(Bulgarian Language)

Глава 31

Отдалеченоадминистриране

31.1. Telnet

31.2. rsh, rexec, rlogin

31.3. Secure Shell

151

Page 162: LINUX(Bulgarian Language)

152 ГЛАВА 31. ОТДАЛЕЧЕНО АДМИНИСТРИРАНЕ

Page 163: LINUX(Bulgarian Language)

Глава 32

Команди ползвани отнапредналитепотребители

153

Page 164: LINUX(Bulgarian Language)

154 ГЛАВА 32. КОМАНДИ ПОЛЗВАНИ ОТ НАПРЕДНАЛИТЕ ПОТРЕБИТЕЛИ

Page 165: LINUX(Bulgarian Language)

Глава 33

Конзола, шел и терминали

33.1. Какво е bash

33.2. Други шелове

33.3. Как да си сменим шел-а

33.4. Кирилизиране на конзолата

155

Page 166: LINUX(Bulgarian Language)

156 ГЛАВА 33. КОНЗОЛА, ШЕЛ И ТЕРМИНАЛИ

Page 167: LINUX(Bulgarian Language)

Глава 34

Мрежата

34.1. TCP/IP протокол

34.2. Локална мрежа - LAN

34.2.1. мрежови карти

34.2.2. настройване на IP-то (ifconfig)

34.3. Dial-up

34.3.1. Какво е PPP

34.3.2. Използване на pppsetup

34.4. Команди за работа в мрежа

34.4.1. ftp, hostname, netstat, ping, telnet

34.4.2. mail, fetchmail, sendmail, mutt, pine

34.4.3. Използване на WEB - lynx

34.5. Firewalls

157

Page 168: LINUX(Bulgarian Language)

158 ГЛАВА 34. МРЕЖАТА

Page 169: LINUX(Bulgarian Language)

Глава 35

Стартиране на системата

35.1. Start-up скриптове

35.2. Демони

35.3. inetd

35.4. cron

159

Page 170: LINUX(Bulgarian Language)

160 ГЛАВА 35. СТАРТИРАНЕ НА СИСТЕМАТА

Page 171: LINUX(Bulgarian Language)

Глава 36

Какво представляваЛинукс ядрото

36.1. Няколко общи думи за ядрото

Във всяка операционна система ядрото (често наричано кърнъл отанглийската дума kernel) е просто софтуер като всеки друг, който осъ-ществява взаимодействието между хардуера на машината приложения-та, които стартирате върху нея. Всъщност Линукс е едно ядро и поне-же потребителския софтуер в голямата си част идва от проекта GNU,за това така формираната операционна система е правилно да се нари-ча GNU/Linux. Възможно е никога да не ви се наложи да компилиратеLinux ядро, но обикновено на някакъв етап от работата ви с Linux то-ва се случва. Понякога това се прави веднага след самата инсталация.Ядрата, които идват с дистрибутивите са вече доста големи и натру-фени заради идеята да са способни да поддържат възможно най-многоразличен хардуер, а вие едва ли се нуждаете от всичко това. Много по-добре е да пре-компилирате ядрото с поддръжка само на вашия хардуери да изхвърлите излишното от него , особено ако не променяте честокомпонентите на компютъра си. Така ще имате малко ядро, което щесе зарежда по-бързо и ще заема по-малко памет. Компилирането на новоядро съвсем не изисква да познавате изходния му код и може да бъде ед-но от най-лесните рутинни дейности които ще извършвате на вашатаЛинукс машина.

36.2. Защо е добре да го обновяваме периодично

Поради това, че ядрото на Линукс е постоянно в разработка - до-бавят му се нови възможности, оптимизират се тези които вече са

161

Page 172: LINUX(Bulgarian Language)

162 ГЛАВА 36. КАКВО ПРЕДСТАВЛЯВА ЛИНУКС ЯДРОТО

реализирани и се отстраняват откритите бъгове за това е добре дасе следи за новостите в поредното излязло ядрото и евентуално акоще ни бъде от полза можем да преминем към някоя по-нова версия, азащо не и последната. Някои по-опитни потребители предпочитат даизползват малко по-стари версии на ядрото понеже те са достатъчнодобре тествани. В общи линии ядрото се обновява ако наистина има-те нужда от това. Ново ядро можете да получите от www.kernel.org, sunsite.unc.edu, техните огледални сайтове, както и от много другиместа, разбира се също и от FTP сървърите на вашата предпочитанадистрибуция. Обикновено ядрото е архив във формат tar.gz и името нафайла съдържа и номера на версията му linux-x.y.p, където x е версията,y е номера на конкретната реализация, а p е номер на patch. Patch сенаричат малки промени в ядрото, които се правят непрекъснато с целвключване на нови функции или подобряване на предишния код. Когатономера на реализацията ( y) е четно число ядрото се нарича стабилно,а когато е нечетно това е ядро, което е в стадий на разработка - нещокато бета-версия, когато едно такова ядро премине достатъчно тес-тове, то излиза като стабилно с четен номер. Например ядрата 2.0.36и 2.2.13 са стабилни, а ядро версия 2.3.74 е развойно. Всяка дистрибуцияпо правило инсталира стабилно ядро.

36.3. Прекомпилиране на кернела

36.3.1. Кернелът

Всички действия по конфигурирането, компилирането и донастрой-ката на новото ядро трябва да извършите като root. Няма да ви е из-лишно да имате boot-дискета в случай, че нещо се обърка. Командатаmkbootdisk (mkboot) в някои дистрибуции ще ви е от полза за целта ина-че ще трябва да прочетете някъде как да си направите такава диске-та. Вероятността да попаднете на непредвиден проблем не е голяма,но все пак се случва, особено ако компилирате много ново и недоста-тъчно тествано ядро или преминавате от версия 2.0 към 2.2. И едноуточнение - от тук нататък предполагаме, че имаме Linux с ядро 2.2.9и искаме да компилираме ново с версия 2.2.14. Трябва да копирате ар-хива с новото ядро в директория /usr/src. Погледнете какво се съдържатам - би трябвало да видите архива, който току-що сте копирали, еднадиректория с вашето старо ядро linux-2.2.9 и вероятно една символнавръзка linux, която сочи към старото ви ядро. В някои дистрибуции ня-мате директория и връзка към нея, а само директория, която се наричаlinux. Ако е така трябва да преименувате директорията linux напримертака:

mv linux linux-2.2.9

Page 173: LINUX(Bulgarian Language)

36.3. ПРЕКОМПИЛИРАНЕ НА КЕРНЕЛА 163

Ако пък имате символна връзка трябва просто да я изтриете без дапреименувате нищо:

rm linux

Сега да разархивираме новото ядро:

tar xvfz linux-2.2.14.tar.gz

В този момент вече можете да изтриете архива linux-2.2.14.tar.gzако имате недостиг на място. Сега в / usr/src ще видите новосъздаденадиректория linux, която съдържа изходния код на новото ядро. Нека дая преименуваме като linux-2.2.14 и да създадем символна връзка linux,сочеща към нея. След това трябва да влезем в новата директория за дазапочнем конфигурирането.

mv linux linux-2.2.14ln -s linux-2.2.14 linuxcd /usr/src/linux

За многообразието от опции и възможности при компилирането наядрото може да се напише книга (и такива има), но общия съвет, койтомога да ви дам е, че когато не разбирате нещо е по-добре да го остави-те в неговото състояние по подразбиране. Имате на разположение ня-колко инструмента за конфигуриране. Всъщност това са няколко makeкоманди - по подробно за тях можете да прочетете в README файлакъм ядрото. Например ще ви оставя сами да разберете за какво служикомандата make mrproper като точно тук е момента да я изпълнитеако решите. Иначе първият класически инструмент за конфигуриранесе стартира с

make config

Това е текстово базиран метод, който ще ви попита за абсолют-но всичко въпрос след въпрос, което е страшно отегчително и ще виотнеме ужасно много време.

make menuconfig

Това отново е текстов интерфейс, но е базиран на менюта и е многопо-функционален и удобен за работа от предишния. Аз лично го предпо-читам. Можете да го стартирате и под X. Третият се стартира скомандата make xconfig и както може би се досещате предлага графи-чен интерфейс с бутони. Има още една много удобна възможност акоконфигурацията на старото ви ядро ви е удовлетворявала и не желае-те да включвате нови функционалности в новото ядро или да махатестари. Можете да компилирате новото ядро с конфигурацията на ста-рото. Трябва само да отидете в директорията, където е изходния код

Page 174: LINUX(Bulgarian Language)

164 ГЛАВА 36. КАКВО ПРЕДСТАВЛЯВА ЛИНУКС ЯДРОТО

на старото ядро и да копирате скрития файл .config в / usr/src/linux, следкоето да напишете командата

make oldconfig

Две думи как се работи с конфигураторите - за всеки елемент има-те до три възможности - да го включите в ядрото, да го компилиратекато външен модул, който ще се зарежда при boot-ване на ядрото илида не го компилирате въобще. В Linux обществото има спорове за товакое е по-добре - да имаме малко ядро с модули около него или да ком-пилираме по-голямо ядро, включвайки модулите, които са необходимивътре в него. Истината винаги е някъде по средата. Трябва да преце-ните кое е необходимо да включите в ядрото и кое да оставите катоrun-time модул. Защото ако примерно имате по някаква причина две илитри звукови карти, защо трябва да имате драйверите и за трите ед-новременно компилирани в ядрото - оставете ги на модули и зареждай-те само този, който ви е необходим. Именно в това е силата на Linux- неговата гъвкавост. След като сте конфигурирали ядрото трябва даизпълните последователно командите:

make depmake cleanmake bzImage

Вместо последната команда можете да направите make zImage, нотя ще направи gzip-компресия на ядрото, за разлика от първата, ко-ято компресира с bzip2 и дава като резултат много по-малко ядро.На този етап не ви остава нищо друго освен да изчакате компили-рането да приключи - това отнема различно време в зависимост оттова, какви са изчислителните способности на компютъра ви. Добраидея е да следите за грешки по време на компилирането въпреки, чеако проблемът е серозен процесът просто ще спре. Ако компилиранетона ядрото е преминало успешно трябва да направим същото и с моду-лите. Готовите модули след инсталация се разполагат в директория/lib/modules/<версия> в случая / usr/lib/2.2.14, ако обаче това не е първа-та компилация на това ядро е добра идея да преместим компилиранитепреди това модули на същото ядро, защото в противен случай ще гипрепокрием. Например така:

mv /lib/modules/2.2.14 /lib/modules/2.2.14.backup

Сега отново в директория /usr/src/linux трябва да подадем команди-те:

make modulesmake modules install

Ако не сте получили някакви грешки можете да се поздравите - има-те ново ядро.

Page 175: LINUX(Bulgarian Language)

36.3. ПРЕКОМПИЛИРАНЕ НА КЕРНЕЛА 165

36.3.2. Модули

Най-общо казано модулите представляват "парчета"обектен код,компилиран отделно от ядрото, който може да бъде свързван дина-мично към него или съответно отделян от него. С други думи някой отвъзможностите на ядрото могат да бъдат компилирани като модули,които могат да бъдат зареждани или премахвани по време на работа насистемата. Като модули могат да се реализират драйвери на различнихардуерни устройства, файлови системи и др. Зареждането на модулиобикновено се извършва от някой стартиращ скрипт, но вие също бих-те могли ръчно да премахвате и зареждате модулите на ядрото. Зацелта ви е необходим пакета modules.tar.gz който със сигурност има-те инсталиран във вашата дистрибуция (ако не, може да го свалитеот всеки Линукс сайт) и естествено да имате компилирано ядро с под-дръжка на модули. Този пакет съдържа командите:

insmod - за добавяне на модул към ядротоrmmod - за премахване на модул от ядротоlsmod - показва текущо заредените модули

Например когато модулът идва със сорса на ядрото и е компилирани инсталиран от там като такъв, пътят до него има вида:

insmod /lib/modules/’kernel-version’/’path-to-module’/module.o

когато модулът е външен, посочете пътя до него:insmod /path/to/your/module.o

Премахването става по същия начин, а за да видите текущо заре-дените модули просто изпълнете lsmod. Някой от модулите идват съссорса на ядрото, а други пък се разпространяват отделно от него (т.н.външни модули). Така че всеки може да си напише модул за ядрото (сти-га да знае как;), ако му е необходима функционалност която не е включе-на в стандартно разпространявания сорс на Линукс ядрото. Понякогае възможно при зареждане на някой модул да получите съобщение загрешка от рода на "unresolved symbols"или "symbols missing". Това означа-ва че този модул или е компилиран за друга версия на ядрото (когатосе сменя версията на ядрото се пре-компилират и модулите, въпреки чеима начин да се форсират нещата и да се зареди модул който не е ком-пилиран за съответната версия на ядрото, но проблеми най-вероятноще има) или че е написан с грешки или се нуждае от друга функционал-ност на ядрото, която до мoмента не е компилирана нито в самотоядро(compiled-in), нито пък е заредена като модул (compiled as module).Относно последното, трябва да разрешите зависимостите от коитосе нуждаят модулите. Това става с командата

depmod -a

Page 176: LINUX(Bulgarian Language)

166 ГЛАВА 36. КАКВО ПРЕДСТАВЛЯВА ЛИНУКС ЯДРОТО

при което ще бъде създадена база данни със зависимостите на моду-лите, това е файла /lib/modules/’kernel–version’/modules.dep. След това зазареждане можете да използвате вместо insmod, командата modprobe.Например:

modprobe /path/to/your/module.o

Тази команда "знае"за зависимостите на отделните модули и ще гиразреши, зареждайки каквото и когато е необходимо. При зареждане-то на някой от модулите трябва да се укажат някои параметри катономер на прекъсване на даденото хардуерно устройство, ако чрез тозимодул е реализиран драйвера за него. Конкретните параметри за тезимодули ще намерите в тяхната документация.

36.3.3. Настройка на новото ядро

Току-що компилираното ядро се казва bzImage (или zImage) и ще гонамерите в директория /usr/src/linux/arch/i386/boot (ако разбира се ком-пютърът ви не е Intel PC съвместим вместо i386 там трябва да очаква-те да има директория с името на вашата архитектура примерно alpha).Най-напред да си запазим старото ядро - за него сме сигурни, че рабо-ти, докато новото още не сме го изпробвали - обикновено то се нами-ра в директория /boot, където след малко ще преместим и новото. Дапреименуваме старото ядро, както и стария System.map файл (за каквослужи последния не е тема на настоящата статия) и да копираме нови-те. Ако организацията на /boot директорията ви е със символни връзкит.е. System.map не е самия файл, а връзка, сочеща към истинския файл,който се казва по друг начин, както е в Red Hat Linux това би станалосъс следните команди:

cd /bootrm /boot/System.maprm /boot/vmlinuzcp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.14ln -s /boot/vmlinuz-2.2.14 /boot/vmlinuzcp /usr/src/linux/System.map /boot/System.map-2.2.14ln -s /boot/System.map-2.2.14 /boot/System.map

Ако във вашата дистрибуция нямате символни връзки трябва данаправите нещо такова:

cd /bootmv bzImage vmlinuz-2.2.9mv System.map System.map-2.2.9cp /usr/src/linux/arch/i386/boot/bzImage /bootcp /usr/src/linux/System.map /boot

Page 177: LINUX(Bulgarian Language)

36.3. ПРЕКОМПИЛИРАНЕ НА КЕРНЕЛА 167

Ако вашата дистрибуция (напр. Red Hat) ползва initrd image той сеполучава с командата:

/sbin/mkinitrd /boot/initrd-2.2.14.img 2.2.14

Остава да конфигурираме boot-мениджъра LILO. За целта отворе-те файла /etc/lilo.conf с предпочитания от вас текстов редактор. Щенамерите фрагмент от файла, който е подобен на този:

image = /boot/vmlinuz-2.2.9-12label = linuxinitrd = /boot/initrd-2.2.9.imgread-onlyroot = /dev/hda1

Това е частта, която boot-ва вашето старо ядро - добре е да си гооставите за да можете да се върнете към него при необходимост. Акосте преименували ядрото или initrd имидж-файла трябва да отразитепромените съответно в реда image и initrd.

Трябва да добавите аналогичен фрагмент за новото ядро, който биизглеждал примерно така:

image = /boot/vmlinuz-2.2.14label = newinitrd = /boot/initrd-2.2.14.imgread-onlyroot = /dev/hda1

Това е всичко - запишете файла / etc/lilo.conf и от командния ред из-пълнете:

/sbin/lilo

36.3.4. Закърпване на ядрото ( patching)

Вместо да download-вате изцяло ново ядро можете да upgrade-ватестарото си с така наречените patches. Обикновено patch файла е около20-30 K и ще ви спести тегленето на мегабайти изходен код на новотоядро. Проблемът е, че patch-овете трябва да прилагате последовател-но т.е. за да преминем от ядро 2.2.9 до 2.2.14 са ни необходими patch-ове2.2.10, 2.2.11, 2.2.12, 2.2.13 и 2.2.14, които трябва един по един и последо-вателно да прилагаме към старите си сорсове. Имената на тези фай-лове изглеждат така patch-2.2.12, което означава, че това е upgrade заядро 2.2.11 до 2.2.12. За разлика от изходните кодове на самото ядро заpatch-овете е без значение къде ще ги разположите важна е само дирек-торията , от която подавате командите и тя трябва да е /usr/src

Всеки patch се прилага с командата:

Page 178: LINUX(Bulgarian Language)

168 ГЛАВА 36. КАКВО ПРЕДСТАВЛЯВА ЛИНУКС ЯДРОТО

gunzip -c patchfile | patch -p0

където patchfile е пълното име на patch-файла включително и пътядо него напр. /home/bobo/patch-2.2.11.

Можете да проверите дали patch-а е приложен правилно с команди-те:

find /usr/src/linux -follow -name ’*.rej’ -printfind /usr/src/linux -follow -name ’*#’ -print

Ако някоя от тези две команди върне като резултат някакви фай-лове по някаква причина някаква част от patch-а не е била приета кактотрябва. Ако не сте достатъчно наясно какъв е проблема единствениясъвет, който мога да ви дам е да си download-нете ново ядро и да започ-нете отначало.

И накрая едно, може би, излишно уточнение, но все пак - тези patch-ове към ядрото са всъщност “кръпки към неговите изходни кодовет.е. към сорса на ядрото, а не към компилираното ядро т.е. след катоприложим patch-овете не отпада следващия етап с компилирането нановото ядро.

Page 179: LINUX(Bulgarian Language)

Част X

Администриране намрежови услуги

169

Page 180: LINUX(Bulgarian Language)
Page 181: LINUX(Bulgarian Language)

Глава 37

Пощаааа! Иликонфигуриране на Sendmail

37.1. Инсталиране на Sendmail

37.1.1. Подготвителни стъпки

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

1. Да предположим следния случай: Вие сте администратор в офисс неголям брой служители, всеки от които си има пощенска кутия. До-мейнът, който е регистрирал офиса е: bg-firma.com и съответно всекислужител си има и пощенска кутия от вида: име-фамилия@bg-firma.com.Всички работни станции в офиса имат истински IP-та: 216.55.177.30-55 (със съответни hostnames: workstat1.bg-firma.com до workstat25.bg-firma.com. Мейл сървърът има IP (той може да има няколко, но ние взи-маме предвид едно от тях) - 216.55.177.29 с hostname mail.bg-firma.com.

Съответно Вашият офис е клон на офис в САЩ, с домейн: @usa-company.com, като в САЩ си има отделен пощенски (SMTP+POP3) сър-вър, който обслужва домейна. Част от Вашите колеги имат пощенскикутии от типа: име-фамилия@usa-company.com. Те могат да четатпощата си от мейл сървъра в САЩ (т.е. POP3 демона на американскиямейл сървър позволява конекции отвсякъде), но не могат да изпращат,тъй като IP-тата на тези служители от българският офис не се при-емат за локални от мейл сървъра в САЩ. Поради това, Вашият новмейл сървър трябва да допуска Вашите служители да изпращат презнего поща от домейн @usa-company.com.

2. Преди да тръгнете да инсталирате нов мейл сървър, добре е дапроверите в DNS базата, кой сървър (IP) е избран да обработва пощата

171

Page 182: LINUX(Bulgarian Language)

172 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

за домейна @usa-company.com. Това се прави с програмата nslookup:

tokata@bunker:/etc/mail$ nslookupDefault Server: ns.abacustrade.comAddress: 62.176.110.171Aliases: 171.110.176.62.in-addr.arpa

Избираме произволен DNS сървър, който да питаме за данните, зада видим дали са глобални настройките

> server ns.netplus.bgDefault Server: ns.netplus.bgAddress: 212.7.192.1

> set type=MX> bg-firma.comServer: ns.netplus.bgAddress: 212.7.192.1

bg-firma.com preference = 10, mail exchanger = mail.bg-firma.combg-firma.com preference = 20, mail exchanger = some.secondary.host.domain.combg-firma.com nameserver = ns.provider-na-bg-firmata.netbg-firma.com nameserver = ns2.provider-na-bg-firmata.netmail.bg-firma.com internet address = 216.55.177.29some.secondary.host.domain.com internet address = 193.200.201.202ns.provider-na-bg-firmata.net internet address = 193.200.200.11ns2.provider-na-bg-firmata.net internet address = 193.200.200.20>

От това виждаме, че първичният (този с най-малка цена, в случая10) хост, който обработва пощата за @bg-firma.com е mail.bg-firma.comс IP 216.55.177.29, което е и нашата машина. Значи всичко е ОК. Преми-наваме нататък.

3. Да предположим, че вече имате инсталиран Sendmail на машината,където ще извършите тази инсталация. Това най-вероятно е Sendmail’а,който е дошъл с дистрибутива, инсталиран направо от пакета при са-мата инсталация на дистрибутива. Ако този Sendmail е конфигурирани работещ, то Ви препоръчвам да направите един backup поне на кон-фигурационните си файлове. Най-вероятно текущо инсталираният ВиSendmail е с версия > 8.9.0. То тогава конфигурационните му файлове поподразбиране се намират в директорията /etc/mail (а ако не са - вижтев /etc). Става въпрос за:

– основния конфигурационен файл (sendmail.cf)

– пощенските синоними (aliases / aliases.db)

– виртуалните пощенски кутии и домейни (virtusertable / virtusertable.db)

Page 183: LINUX(Bulgarian Language)

37.1. ИНСТАЛИРАНЕ НА SENDMAIL 173

– списъка с домейните и хостовете, които системата приема за ло-кални (local-host-names)

– списъка с външните домейни, за които този мейл сървър приемада релейва (relay-domains)

– и всички други. После тези файлове ще са ви необходими.

Аз лично бих ги изкопирал в друга директория и после ще ги използ-вам, за да възобновя настройките:

root@bunker:/home/tokata# find / -name sendmail.cf -print/etc/mail/sendmail.cfroot@bunker:/home/tokata# mkdir /tmp/sm-backuproot@bunker:/home/tokata# chmod 600 /tmp/sm-backup/root@bunker:/home/tokata# cp /etc/mail/* /tmp/sm-backup/

3. Изтеглете от Интернет (ако вече не сте го направили), пакетана Sendmail. За пример аз ще ползвам версията 8.12.1. След това го ра-зархивирайте.

tokata@bunker:~$ ls -ltotal 1756-rw-r--r-- 1 tokata users 1790933 Nov 26 18:32 sendmail.8.12.1.tar.gztokata@bunker:~$ tar zxvf sendmail.8.12.1.tar.gztokata@bunker:~$ cd sendmail-8.12.1/tokata@bunker:~/sendmail-8.12.1

37.1.2. Самата инсталация

1. Преди да започнете, желателно е да прочетете документациятапо инсталиране. Там има подробно описано всичко стъпка по стъпка.

Заб. всички указани директории са релативни спрямо корена на инс-талираният сорс на Sendmail.

tokata@bunker:~/sendmail-8.12.1$ vi INSTALL

2. Идете в директорията devtools/OS и изберете файла с Вашата OS.В 99% от случаите, това е Linux. После го преместете в директорияdevtools/Site с името site.Linux.m4 или site.config.m4

tokata@bunker:~/sendmail-8.12.1$ cd devtools/OStokata@bunker:~/sendmail-8.12.1/devtools/OS$ ls -ltokata@bunker:~/sendmail-8.12.1/devtools/OS$ cp Linux ../Site/config.Linux.m4tokata@bunker:~/sendmail-8.12.1/devtools/OS$ ls -l ../Sitetotal 8-rw-r--r-- 1 tokata users 660 Dec 17 1999 README-rw-r--r-- 1 tokata users 733 Nov 26 19:47 config.Linux.m4

3. После идете в директорията sendmail и пуснете Build скрипта.

Page 184: LINUX(Bulgarian Language)

174 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

tokata@bunker:~/sendmail-8.12.1/devtools/Site$ cd ../../sendmail/tokata@bunker:~/sendmail-8.12.1/sendmail$ sh Build

4. След като компилацията свърши, отидете в директория cf/cf. Из-берете .mc файла, който отговаря на типа OS и го преименувайте/копирайтепод име sendmail.mc (Заб. по мои спомени, във версия 8.11.6 и надолу сеизползваше config.mc, а не sendmail.mc, но това както ще видите, нямазначение)

tokata@bunker:~/sendmail-8.12.1/sendmail$ cd ../cf/cftokata@bunker:~/sendmail-8.12.1/cf/cf$ cp generic-linux.mc sendmail.mc

5. В този конфигурационен файл sendmail.mc се съдържа информация,която до голяма част определя поведението на бъдещия мейл сървър.Там се добавят различните настройки и свойства като виртуални до-мейни, методите по които ще се определя релейването и др. Пълниясписък на свойствата (features) може да се видят в cf/feature. Можетеда му хвърлите едно око, преди да го редактираме. После ще му добавимнякои основни свойства. Ето как може да изглежда файла след редакти-рането:

divert(-1)## Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.# All rights reserved.# Copyright (c) 1983 Eric P. Allman. All rights reserved.# Copyright (c) 1988, 1993# The Regents of the University of California. All rights reserved.## By using this file, you agree to the terms and conditions set# forth in the LICENSE file which can be found at the top level of# the sendmail distribution.### This is a generic configuration file for Linux.# It has support for local and SMTP mail only. If you want to# customize it, copy it to a name appropriate for your environment# and do the modifications there.#divert(0)dnlVERSIONID(‘$Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp $’)FEATURE(‘use\_cw\_file’)dnlOSTYPE(linux)dnlDOMAIN(generic)dnlFEATURE(‘virtusertable’, ‘hash /etc/mail/virtusertable’)dnlFEATURE(access\_db)dnlFEATURE(blacklist\_recipients)dnl

Page 185: LINUX(Bulgarian Language)

37.1. ИНСТАЛИРАНЕ НА SENDMAIL 175

MAILER(local)dnlMAILER(smtp)dnl

6. След като сте го редактирали, компилирайте макроса .m4 към .cfформат ето така:

tokata@bunker:~/sendmail-8.12.1/cf/cf$ sh Build sendmail.cfUsing M4=/usr/bin/m4rm -f sendmail.cf/usr/bin/m4 ../m4/cf.m4 sendmail.mc > sendmail.cf || ( rm -f sendmail.cf && exit 1 )chmod 444 sendmail.cf

Ако случайно получите някаква грешка при инсталацията, то изт-рийте новосъздадения файл sendmail.cf, коригирайте грешката и опи-тайте пак.

След успешната компилация в директорията cf/cf ще имате създаденконфигурационен файл за Sendmail - sendmail.cf.

(Заб. по принцип в тази стъпка се компилира и конфигурационниятфайл за Sendmail Submission демона, но не мисля че ще Ви е нужен).

7. Ако нямате директория /etc/mail - сега е времето да я създадете.За това естествено ще Ви трябват root права. След това инсталирай-те създадения sendmail.cf на мястото му. Не се безпокойте, че инста-лационния процес копира и файла submit.cf

root@bunker:/home/tokata/sendmail-8.12.1/cf/cf# mkdir /etc/mailroot@bunker:/home/tokata/sendmail-8.12.1/cf/cf# sh Build install-cfUsing M4=/usr/bin/m4../../devtools/bin/install.sh -c -o root -g bin -m 0444 sendmail.cf /etc/mail/sendmail.cf../../devtools/bin/install.sh -c -o root -g bin -m 0444 submit.cf /etc/mail/submit.cf

8. След като започнахме със създаването на директории, нека да про-дължим. По принцип Sendmail съхранява входящата поща в директория/var/spool/mail, а изходящата опашка, чакаща обработка - /var/spool/mqueue.При Sendmail 8.12.1 се създава и нова директория за опашки: /var/spool/clientmqueue,но не се безпокойте - инсталационният процес ще си я създаде сам. Аконямате директории mqueue и mail - създайте ги.

9. При Sendmail 8.12.1 се създава отделен username и група, под чиитоправа Sendmail ще извършва повечето операции (за които се е "разб-рало"наскоро, че не изискват root права). Създайте user smmsp и групаsmmsp:

root@bunker:/home/tokata/sendmail-8.12.1/sendmail# groupadd smmsproot@bunker:/home/tokata/sendmail-8.12.1/sendmail# useradd -g smmsp -s /bin/false smmsp

По този повод не е лошо да прочетете файла SECURITY в директо-рията sendmail. Но не правете засега нищо повече :)

10.Сега идва решителният момент - инсталирането на програматаSendmail. Ако в момента при Вас е стартиран Sendmail процес - спрете

Page 186: LINUX(Bulgarian Language)

176 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

го. После отидете в директория sendmail и стартирайте инсталацион-ния процес:

root@bunker:/home/tokata/sendmail-8.12.1/cf/cf# cd ../../sendmail/root@bunker:/home/tokata/sendmail-8.12.1/cf/cf# sh Build install

С тази стъпка в /usr/sbin ще имате създаден файл sendmail, както идиректория /var/spool/clientmqueue. Съответно Sendmail ще им наложисъответните битове за достъп и ownership.

11. Сега ще инсталираме всички допълнителни пакети за Sendmail:

root@bunker:/home/tokata/sendmail-8.12.1/sendmail# cd ..root@bunker:/home/tokata/sendmail-8.12.1# cd vacation/root@bunker:/home/tokata/sendmail-8.12.1/vacation# sh Build installroot@bunker:/home/tokata/sendmail-8.12.1/vacation# cd ..root@bunker:/home/tokata/sendmail-8.12.1# cd testroot@bunker:/home/tokata/sendmail-8.12.1/test# sh Build install

По този начин правите и за: smrsh,rmail,makemap,praaliases,makemap,editmapи т.н.

12. Сега ще оправим и конфигурационните файлове. Нали си спом-няте, че в началото копирахме директорията /etc/mail в /tmp? Сега евреме да я преместим обратно. Направете го. Ако пък досега не стеимали Sendmail, създайте нужните файлове в /etc/mail:

root@bunker:/etc/mail# touch aliasesroot@bunker:/etc/mail# touch virtusertableroot@bunker:/etc/mail# touch accessroot@bunker:/etc/mail# touch local-host-namesroot@bunker:/etc/mail# touch relay-domains

13. След това е нужно да се убедим, че всички файлове са с нужниятсобственик и права. За справки, може да погледнете файла SECURITYв директорията sendmail.

37.1.3. Настройка на конфигурационните файлове на Sendmail

1. Първо, ще редактираме файла local-host-names. В този файл се съ-държат всички hostnames, които машината приема за локални. Там сепоставят всички hostnames и IP-та, от които машината ще приемапоща. В случая това са Вашите компютри в офиса. По подразбиранеSendmail се компилира така, че да не изисква да се изписва всеки хост из-рично. Т.е. може да напишете (и си го напишете) във файла: bg-firma.comи то ще приема като локални всички хостове, които включват в име-то си bg-firma.com. Включете ако искате и всички имена, под които епознат mail сървъра, в случая: mail.bg-firma.com.

root@bunker:/etc/mail# echo "bg-firma.com" > local-host-names

Page 187: LINUX(Bulgarian Language)

37.1. ИНСТАЛИРАНЕ НА SENDMAIL 177

2. Редактирайте файла relay-domains и сложете в него всички домей-ни, за които пощенския сървър ще релейва поща (в случая: bg-firma.comи usa-company.com).

root@bunker:/etc/mail# echo "bg-firma.com" > relay-domainsroot@bunker:/etc/mail# echo "usa-company.com" >> relay-domains

3. Да предположим, че имената на всички абонати са включени катоакаунти в /etc/passwd (сложете им като shell /bin/false например). Тезиабонати ще могат да получават поща. Да предположим обаче, че е нуж-но да се създаде виртуален акаунт "sales писмата за който да се полу-чават от целия търговски отдел, а именно: spas,rumi,kristina. За целтаще създадете т.нар. alias. Всичко е много просто. Редактирайте файлаaliases и в него сложете:

sales: spas, rumi, kristina

root@bunker:/etc/mail# echo "sales: spas,rumi,kristina" > aliases

След като го направите е нужно да "компилирате"текстовия файлвъв формат база-данни. Това става така:

root@bunker:/etc/mail# makemap hash aliases.db < aliases

Заб. същите команди изпълнете и за файловете: access и virtusertable,макар в тях да няма нищо

root@bunker:/etc/mail# makemap hash virtusertable.db < virtusertableroot@bunker:/etc/mail# makemap hash access.db < access

4. Сега остават само малки конфигурации по sendmail.cf. Отворетего за редакция. Аз лично бих Ви препоръчал като минимум да пипнетепо следните опции:

* Намерете долния ред и го закоментирайте (поставете # пред не-го). Това ще спре Sendmail Submission демона, който всъщност не мисляче ще Ви бъде нужен.

O DaemonPortOptions=Port=587, Name=MSA, M=E

* Намерете долния ред и заменете authwarnings с GoAway. Това щеспре любопитни персони и роботи да събират вътрешна информацияот мейл сървъра Ви с командите EXPN и VRFY.

O PrivacyOptions=authwarnings

5. Сега остават последните и решителни стъпки. Да изпълните ко-мандата newaliases и след това да стартирате Sendmail демона:

root@bunker:/etc/mail# newaliases/etc/mail/aliases: 1 aliases, longest 18 bytes, 23 bytes totalroot@bunker:/etc/mail# sendmail -L sm-mta -bd -q4m

Page 188: LINUX(Bulgarian Language)

178 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

последната опция на Sendmail задава интервала, през който ще сеизпразва опашката (в случая 4 минути). Инсталациите от дистрибуци-ите по слагат по подразбиране на 15 минути, но за слабо натоваренипощенски сървъри, дори и 4 минути е много.

6. Последна стъпка: проверете в списъка със стартираните процесиза наличието на Sendmail и после вижте в логовете за някакви съобще-ния:

root@bunker:/etc/mail# ps -auxtokata 728 0.0 1.9 1988 1204 pts/0 S 12:57 0:00 -bashroot 741 0.0 1.9 2012 1232 pts/0 S 12:58 0:00 -suroot 954 0.0 2.4 3140 1576 ? S 13:58 0:00 sendmail: accepting connectionsroot 999 0.0 1.3 2576 848 pts/0 R 14:06 0:00 ps -aux

Nov 27 13:56:56 bunker sendmail[948]: alias database /etc/mail/aliases rebuilt by tokataNov 27 13:56:56 bunker sendmail[948]: /etc/mail/aliases: 1 aliases, longest 18 bytes, 23 bytes totalNov 27 13:58:47 bunker sm-mta[954]: starting daemon (8.12.1): SMTP+queueing@00:04:00

7. Изтествайте с няколко писма. Не забравяйте да добавите ред вrc скриптовете, за да се стартира Sendmail демона автоматично прирестарт. Не забравяйте да сложите и pop3 демон.

37.2. Sendmail Restricted Shell

smrsh (Sendmail Restricted Shell) е едно допълнение към Sendmail, на-писано с цел подобряване на сигурността. Shell’чето наистина си вършидобра работа и е жалко, че твърде много системни администратори,които ползват Sendmail, не му обръщат нужното внимание, или въоб-ще не знаят за какво служи.

smrsh може да се инсталира опционално още при инсталирането наSendmail. За целта трябва да се влезе в директорията smrsh на разархи-вирания сорс на Sendmail и да се изпълни "sh Build install".

След като това бъде извършено, компилирания smrsh трябва да бъдепреместен в /usr/libexec, като битовете за достъп да се установят наr-x–x–x (chmod 511).

Следваща стъпка е да преценим кои команди е нужно да стартираSendmail. Това се определя основно от три неща:

1. Съдържанието на файла със синонимите (/etc/mail/aliases), в коитоможе да се съдържат филтри, пренасочващи пощата за даден абонаткъм определени програми.

2. Файловете .forward (т.е. тяхното съдържание).

3. Допълнителни програми, които се стартират от Sendmail. За та-кива например могат да се броят различните антивирусни филтри.

Page 189: LINUX(Bulgarian Language)

37.3. НАСТРОЙКА НА ЗАПИСИТЕ НА DNS 179

Заб. Крайно нежелателно е да се включат в списъка интерпретато-ри като sh, csx, ksh, perl, sed, tcl и др.

След като сме решили кои програми се нуждае да стартира Sendmail,трябва да създадете директорията /usr/adm/sm.bin и в нея да изкопира-те всички тези програми.

Заб.1: ако искате да смените директорията /usr/adm/sm.bin с някоядруга, то трябва да укажете това в сорса на smrsh преди компилацията.

Заб.2: въпреки, че някои администратори слагат в /usr/adm/sm.binлинкове към истинските програми, аз ви препоръчвам да не го правите,а да си изкопирате самите програми. Внимавайте също за битовете задостъп и ownership’a.

Като заключителна стъпка остава да пре-конфигурирате Sendmailда използва smrsh вместо /bin/sh. Тази промяна се извършва във файлаsendmail.cf (за версии на Sendmail след 8.9.0 - директория /etc/mail). В то-зи файл трябва да намерите реда, в който се дефинира директиватаMprog. След като го намерите този ред, просто заменете P=/bin/sh с/usr/libexec/smrsh. Всичко останало го оставете както си е, рестарти-райте Sendmail (с HUP сигнал), и тествайте дали всичко работи.

37.3. Настройка на записите на DNS

37.3.1. Настройка на DNS - записите за домейна.

Ако искате вашия домейн да получава електронната си поща е необ-ходимо да укажете в дефинициите за домейна кои сървъри ще се отго-ворни за обработката на електронната поща. За обработката на елек-тронната поща за даден домейн са отговорни сървърите, чиито именаса упоменати в т.нар. МХ Resource Record (МХ Ресурсни записи). MXидва от съкращението на Mail eXchanger. Всеки МХ ресурсен запис но-си в дефиницията си число, което се нарича тегло. Колкото е по-малкотеглото (числото), толкова по-висок ще бъде приоритета и толковапо - предпочитан ще бъде даден сървър в обработката на електронна-та поща към вашия домейн. Т.е. пощенските сървъри за обслужване навходящата поща за даден домейн образуват йерархия, като на върха натази йерархия стой пощенския сървър с най - малко тегло, т.е. с най -висок приоритет. Преди да направите записите, внимателно прецене-те през кои сървъри ще преминава вашата електронна поща, надежднили са те, работещи ли са, администрират ли се правилно.

Нека разгледаме един пример за да бъде всичко ясно в детайли. Запример ще използваме зоната на домейна на Софийският Университет"Св. Климент Охридски":

$TTL 86400 ; 1 day@ IN SOA ns.uni-sofia.bg. root.ns.uni-sofia.bg. (

Page 190: LINUX(Bulgarian Language)

180 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

380 ; serial36000 ; refresh (10 hours)3600 ; retry (1 hour)3600000 ; expire (5 weeks 6 days 16 hours)36000 ; minimum (10 hours))

NS ns.ucc.uni-sofia.bg.NS ns.digsys.bg.NS ns.uni-sofia.bg.NS ady.uni-sofia.bg.MX 10 ns.uni-sofia.bg.MX 20 ady.uni-sofia.bg.MX 100 sofia.eunet.bg.

ns A 62.44.96.1ady A 62.44.96.7

В този запис виждаме три дефинирани MX ресурсни записа с триразлични тегла. (Имайте предвид, че теглата може да са равни и та-къв пример ще разгледаме по-нататък). С най-голям приоритет (с най-ниско тегло) е сървъра ns.uni-sofia.bg. Предполага се, че върху него сеизвършва крайната обработка на входящата поща. Следващи по нама-ляване на приоритета са ady.uni-sofia.bg и sofia.eunet.bg (другото име наsofia.eunet.bg е sofia.digsys.bg) и е ясно, че те са сървъри за междинна об-работка на пощата, които могат да възникнат ако ns.uni-sofia.bg илиady.uni-sofia.bg излязат от строя за известно време.

Нека проследим пътя на едно изпратено писмо до [email protected].Пощенския сървър на изпращача ще опита първо да се свърже с тозисървър за поща, който има най - висок приоритет (най - малко чис-ло), т.е. ще опита връзка към ns.uni-sofia.bg. Ако по някаква причинаns.uni-sofia.bg не може да приеме пощата (напр. в момента сървъра ев профилактика, подменя се хардуер или софтуер, броят на възможни-те едновременни сесии за приемане поща е изчерпан и др.), изпращачаще опита връзка със следващия по тегло пощенски сървър, а именно сady.uni-sofia.bg. Ако този сървър е в мрежата и връзката с него е въз-можна, той ще приема пощата за uni-sofia.bg като ще съхрани входя-щата поща докато ns.uni-sofia.bg не влезе отново в стоя и тогава щему я предаде. Ако ady.uni-sofia.bg също не е достъпен по една или другапричина, пощата за домейна uni-sofia.bg ще бъде насочена към следва-щия по намаляване на приоритета сървър, а именно към sofia.eunet.bg.Там пощата ще се натрупва докато се появи връзка или възможност засесия за предаване на електронна поща поне с ady.uni-sofia.bg (разбира сенай-добрия вариант е да се появи възможност за връзка с ns.uni-sofia.bg)и ще бъде предадена за последваща обработка.

По принцип сървъра с най-голям приоритет е вашия сървър, но то-ва не е задължително да е така. Ако вие не поддържате свой пощенскисървър, но имате домейн и желаете да получавате електронна поща,

Page 191: LINUX(Bulgarian Language)

37.3. НАСТРОЙКА НА ЗАПИСИТЕ НА DNS 181

можете да укажете с най-голям приоритет сървъра на вашия достав-чик или някой друг, до който имате достъп за да изтегляте пощатаси. Така указания сървър ще приеме пощата за вас и вие ще я изтег-ляте върху компютъра си с помощта на клиент за електронна поща,най-често чрез POP3 или IMAP протоколи.

Възможна е схема, в която MX ресурсния запис с най-голям приори-тет да не е крайния сървър, който обработва входящата поща за пот-ребителите, а де е последния видим сървър в йерархията на пощенскисървъри на домейна. Подробно това нещо ще бъде обсъдено в главатаза виртуален хостинг.

Друга йерархия за пощенски сървъри може да включва само един един-ствен пощенски сървър. Това е използваемо в случаите, когато сървърае надежден, добре обслужван и има сигурно връзка с Интернет. Катопример за такава йерархия може да се посочи йерархията за пощенскисървъри в домейна nasa.gov. Там има само един сървър за обслужване навходящата електронна поща:

nasa.gov mail exchanger = 5 X500ROOT.nasa.gov

Можете да получите информация за йерархията на сървърите заелектронна поща на даден домейн с помощта на инструмента nslookup.Ето как съм получил информацията за nasa.gov:

[root@www /root]# nslookup> set type=mx> nasa.govServer: 127.0.0.1Address: 127.0.0.1#53Non-authoritative answer:nasa.gov mail exchanger = 5 X500ROOT.nasa.gov.Authoritative answers can be found from:nasa.gov nameserver = NASANS5.nasa.gov.nasa.gov nameserver = MX.NSI.nasa.gov.nasa.gov nameserver = NASANS1.nasa.gov.nasa.gov nameserver = NASANS3.nasa.gov.nasa.gov nameserver = NASANS4.nasa.gov.X500ROOT.nasa.gov internet address = 192.77.84.46MX.NSI.nasa.gov internet address = 128.102.18.31NASANS1.nasa.gov internet address = 192.77.84.32NASANS3.nasa.gov internet address = 198.116.144.49NASANS4.nasa.gov internet address = 198.116.144.33NASANS5.nasa.gov internet address = 198.116.144.161>exit[root@www /root]#

Има и трети случай на задаване на йерархията на пощенските сър-въри. Тя почива на използването на много MX ресурсни записи, но с едно

Page 192: LINUX(Bulgarian Language)

182 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

и също тегло (приоритет). Ето пример за домейн, който е предпочелтози вид йерархия (отново сам проверил това с инструмента nslookup):

[root@www /root]# nslookup> lanl.govServer: 127.0.0.1Address: 127.0.0.1#53Non-authoritative answer:lanl.gov mail exchanger = 0 mailrelay2.lanl.gov.lanl.gov mail exchanger = 0 mailrelay3.lanl.gov.lanl.gov mail exchanger = 0 mailrelay1.lanl.gov.Authoritative answers can be found from:lanl.gov nameserver = ns1.es.net.lanl.gov nameserver = nsx.lanl.gov.lanl.gov nameserver = nsx2.lanl.gov.mailrelay1.lanl.gov internet address = 128.165.3.6mailrelay2.lanl.gov internet address = 128.165.5.47mailrelay3.lanl.gov internet address = 128.165.3.1nsx.lanl.gov internet address = 204.121.3.1nsx2.lanl.gov internet address = 204.121.6.1>exit[root@www /root]#

Не мислете, че и трите сървъра са крайно обработчици за входяща-та поща. Много по - вероятно е те да я предават към централен сър-вър във вътрешната мрежа, където тя да се разпределя към локалнитепотребители. Подробности от това решение ще разгледаме в главатаза виртуален хостинг.

Бързите отговори на DNS за вашия домейн са гаранция за бързатаобработка на потока електронна поща от и към вас. Затова е необхо-димо преди да започнете да конфигурирате сървъра си за електроннапоща да се убедите, че всичко с DNS е наред. Първо проверете най -внимателно MX ресурсните записи, убедете се, че зоната на домейнави се трансферира нормално и че в нея няма грешки. Можете да по-питате системните администратори, чиито DNS сървъри използватекато вторични за вашата зона, дали зоната ви се трансферира нормал-но и дали не дава съобщения за грешки. Понякога при вас всичко можеда изглежда много добре, но вторичния сървър да не може да изтеглизоната ви, защото например сте забравили да го включите в списъка схостове, на които е позволен трансфер или пък при описанието на зона-та сте задали употребата на ключ, който трансфериращия сървър непознава и др.

Page 193: LINUX(Bulgarian Language)

37.3. НАСТРОЙКА НА ЗАПИСИТЕ НА DNS 183

37.3.2. Избор на пощенски сървър за крайна обработка завходящата електронна поща.

Когато избирате сървър за крайна обработка на входящата елект-ронна поща, съблюдавайте следните препоръки:

– - определете дали сървъра ще се използва само за обработка наелектронна поща или ще има и други функции. Ако вие ще управля-вате пощата на не повече от 10 - 20 потребители, можете спокой-но да направите компромис с ресурсите на сървъра и да пуснетевърху него и още услуги. Ако обаче потребителите са много и об-мена на електронна поща е интензивен помислете дали не можетеда отделите специално един сървър за обслужване на електронна-та поща.

– - поставете сървъра на такова място в мрежовата ви топология,че достъпът до него да е бърз както от вън, така и от вътрешна-та мрежа. Компромиси може да правите, ако имате малко потре-бители и обмена на съобщения чрез електронна поща не е интен-зивен. Ако ще обслужвате академична или корпоративна поща сепостарайте или да запазите дял от трафика само за обслужванена пощата. Още по - добро решение е да имате специална линия задостъп към интернет само за покриване на пощенския трафик.

– - поставете на сървъра за обработка на електронна поща новаоперационна система и нов софтуер за услугите, което ще предла-гате. Така ще се предпазите от допълнителни проблеми свързанис евентуални "дупки"в сигурността и ще повишите неговата про-изводителност. Изключете всички демони, които не са ви нужни исамо ще черпят ресурси от паметта, процесора и твърдия диск.

Запомнете, че не е задължително сървъра, който обслужва вашатавходяща електронна поща да има функциите за поддръжка на изходящияви пощенски поток. Ако имате финансовата възможност може да сипозволите да имате два пощенски сървъра: един за входяща и друг заизходяща електронна поща.

37.3.3. Избор на сървър за RELAY или междинна обработ-ка на входящята поща.

Когато избирате сървър за RELAY (междинна обработка) на вхо-дяща електронната поща се съобразете по възможност със следнитепрепоръки:

– - предпупредете администратора на междинния сървър, че желае-те той да обработва вашата входяща поща. Получете неговотосъгласие и тогава направете съответния МХ ресурсен запис в де-финициите на домейна, чиято поща ще се обслужва.

Page 194: LINUX(Bulgarian Language)

184 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

– - изберете междинните сървъри такива, че връзката ви с тях да ебърза и надеждна. Най - често такива сървъри може да намеритепри вашия доставчик на интернет услуги.

– - добре е междинните сървъри да имат в кеша си за DNS копиеот вашите дефиниции за домейна. Помолете техните админис-тратори да направят DNS сървъра си вторичен (slave) за вашиядомейн, да трансферират домейна ви и да ви позволят достъп доrndc порта на техния DNS ако сте задали "notify yes;"в описаниетона вашата зона в /etc/named.conf. Така, ако направите промен

37.4. Обработка на изходящия трафик

Необходими настройки на sendmail за извършване на обработка наизходящия пощенски трафик

37.4.1. Настройки на sendmail.cf

В различните дистрибуции на LINUX файла sendmail.cf може да сенамира на различно място, ако sendmail е инсталиран от самата дист-рибуция. Ако го инсталирате в последствие той ще се намира по под-разбиране (ако не указвате друго местонахождение преди започване-то на компилацията) в /etc/mail. Тук няма да се спираме на началнитестъпки на компилирането на Sendmail, защото това е описано добре вREADME - файловете към съответния пакет, а и рядко се налага да сезадават ръчно специфичните за Sendmail директории освен ако не стеманяк.

И така, да се върнем на файла sendmail.cf. Борбата с неговия син-таксис от страна на начинаещи (а и на напреднали) е обречена на ка-тастрофален неуспех. Затова не правете нищо освен това, което енаписано тук! Ако се интересувате от подробности в синтаксиса наsendmail.cf се обърнете към сайта на консорциума, който създава и под-държа Sendmail: www.sendmail.org. Там има цял PDF документ, който випредлага нечовешка изчерпателност по въпроса.

Възможни са два пътя на интервенция в самия файл. Единият е, акоизползвате макросния език m4, и направите макросен файл, от койтопосле да създадете sendmail.cf. Лично аз не ви съветвам да правите то-ва, поне в рамките на нужното за реализиране на описаното в тази гла-ва. Другият е чрез директно вписване или отписване на опции или поле-та в самия sendmail.cf. Тук ще подходим именно по втория начин. Така ипоне малко ще научите за синтаксиса му.

По принцип можете да конфигурирате вашия Sendmail да подхождапо два различни начина при изпращането на едно електронно съобщение.

Page 195: LINUX(Bulgarian Language)

37.4. ОБРАБОТКА НА ИЗХОДЯЩИЯ ТРАФИК 185

Първият начин е като пренасочите целия изходен трафик , с изк-лючение на този, предназначен за домейните, чиито smtp сървъри саописани в /etc/mail/mailertable (ще прочетете за това по - надолу), къмсървъра на електронна поща на вашия доставчик, или друг сървър, докойто имате бърз и надежден достъп и който е поддържан добре. Как-во печелите от това сами се досещате. Сървърът, който приема даобслужи вашите изходящи съобщения, се нагърбва с цялата неблагодар-на работа да осигури тяхното изпращане до крайния получател и се на-рича интелигентен хост. Използвайки интелигентен хост вие няматедопълнително натоварване и спестявате често малко трафик.

За да реализирате този подход отворете чрез любимия си текстовредактор файла sendmail.cf и намерете в него този сегмент:

# "Smart" relay host (may be null)DS

Името на интелигентния хост, на който ще препредавате за об-работка вашата изходяща поща се записва плътно след DS. Например,ако името на използвания от вас сървър за препредаване на изходящияви пощенски трафик е mail-realy.isp.examp записа ще изглежда така:

# "Smart" relay host (may be null)DSmail-relay.isp.examp

След това запазете промените във файла и рестартирайте Sendmailза да влязат те в сила.

Когато подбирате сървър за точно тази цел е нужно да се съобра-зите с някои условия. Вие можете да изберете сървър, който е конфи-гуриран да изпълнява заявките ви за обработка на изходния трафик наелектронна поща. Ако се опитвате да използвате за това друг, некон-фигуриран за целта сървър, просто нищо няма да стане и електроннитесъобщения на потребителите ви ще се трупат на опашката на вашиясървър. Ако вече сте избрали сървър, който да отговаря на горнотоусловие, се уверете, че той е добре поддържан и би свършил добре въз-ложента му от вас работа. Най - често такъв сървър ще намерите привашия доставчик на интернет услуги

Тук ще ви предоставим един кратък пример с който можете да про-верите дали даден пощенски сървър може да ви послужи за интелиген-тен хост. Всичко, което ви е нужно е сесия чрез телнет. Какъв е зами-съла? Чрез използване на протокола SMTP да се опитате да изпрати-те електронна поща през въпросния сървър до потребител, който не еползвател на сървъра. Например до потребител на услугата webmail вHotmail или Yahoo.

[baba@virtual baba]$ telnet mail-relay.isp.examp 25Trying 12.0.24.2...Connected to mail-relay.isp.examp (12.0.24.2).

Page 196: LINUX(Bulgarian Language)

186 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

Escape character is ’^]’.220 mail-relay.isp.examp ESMTP Sendmail 8.11.6/8.11.3; Sun, 6 Jan 2002 17:00:46 +0200helo test250 mail-relay.isp.examp Hello virtual.host.isp.examp [192.68.0.111], pleased to meet youmail from: [email protected] 2.1.0 [email protected]... Sender okrcpt to: [email protected] 2.1.5 [email protected]... Recipient okquit221 2.0.0 mail-relay.isp.examp closing connectionConnection closed by foreign host.[baba@virtual baba]$

Обърнете внимание на реда

250 2.1.5 [email protected]... Recipient ok

именно той ви показва, че вие можете да изпращате електронна по-ща през този сървър. Ако вместо това получите съобщение от вида:

250 2.1.5 [email protected]... Relaying denied

това означава, че не можете да изпращате електронна поща презтози пощнески съвър. Можете да преговаряте с неговия системен ад-министратор за да ви даде разрешение за това.

Вторият начин е като оставяте вашия пощенски сървър да изпратисам съобщението до крайния получател след извличане на съответна-та DNS информация за MX ресурсните записи. Това може да се окаженеприятна и тежка задача, ако вие имате линия с малък капацитет илине сте си направили труда да маршрутизирате добре трафика си. Акообаче имате добра линия и надеждно обслужване, то това е предпочи-тания начин за обработка на изходящия ви трафик. Предимството притакава конфигурация е, че в логовете ви се записва информация за то-ва дали съответното съобщение е поето за по - нататъшна обработкаот поне един от хостовете описани в MX ресурсните записи на домейнана получателя. По подразбиране Sendmail се инсталира именно с такъввид настройка. Все пак нищо не пречи да проверите това. За целта от-ворете с любимия си текстов редактор sendmail.cf и проверете дали всегмента

# "Smart" relay host (may be null)DS

след DS има записано име на интелигентен хост. Ако има го изтрий-те без да изтривате DS и без да оставате празни позиции след него.След това запазете промените и рестартирайте Sendmail.

Page 197: LINUX(Bulgarian Language)

37.4. ОБРАБОТКА НА ИЗХОДЯЩИЯ ТРАФИК 187

37.4.2. Използване на /etc/mail/mailertable за маршрутизи-ране на изходящия пощенски трафик

В Sednmail има едно много полезно решение, с което можете да пре-насочвате по избран от вас начин изходящата електронна поща. Фо-рамтът на файла е прост, но много гъвкав. В ляво се записва иметона домейна, а срещу него типа на протокола за обслужване на пощата,следван от името на хоста, към който този трафик се препредава. Етоедин прост пример:

other-domain.examp esmtp:mail.other-domain.examp

В този случай всяко електронно пощенско съобщение от ваш потре-бител към потребител от other-domain.examp се предава по протоколESMTP на хоста mail.other-domain.examp за по - нататъшна обработка.И сега внимавайте много! Такава декларация в mailertable автоматичноигнорира използването на интелигентен хост и MX ресурсните записии посочва единствен път за трафика за описания домейн! Т.е. това мо-же да е както инструмент за повишаване на ефективността на вашияпощенски сървър, така и сериозна спънка, ако хоста, който сте описалив mailertable не работи или връзката към него бъде прекъсната. За даизползвате подобна екстра е необходимо да преглеждате редовно запи-сите на вашия лог - файл на пощенския сървър.

Повече подробности за използването на това решние можете да на-мерите в главите за създаване на тунели за електронната поща в Ин-тернет и за виртуален хостинг.

37.4.3. Настройки на базата за достъп /etc/mail/access

Този инструмент контролира достъпа на клиентите до функциитена Sendmail. Промените в него се правят с текстови редактор. Следпромяна е нужно да се изпълни в команден ред следната команда:

makemap hash /etc/mail/access.db < /etc/mail/access

за да се създаде съответната база от данни за бърз достъп. Не сеналага да рестартирате Sendmail след промени, извършвани тук.

В този файл е нужно да опишете, препоръчително IP адресите и по- малко препоръчително имената на хостове, на клиентите, които щеобслужвате. Всеки запис се прави на нов ред, като лявата му част съ-държа IP адреса или името на хоста, а дясната политиката RELAY, ко-ято ще му позволи да изпраща електронни съобщения през вашия пощен-ския сървър. Неописаните тук адреси, автоматично получават забранада изпращат електронни пощенски съобщения за произволен потреби-тел от произволен домейн през вашия сървър, но запазват правото си за

Page 198: LINUX(Bulgarian Language)

188 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

изпращане на поща до потребители на домейни, описани в /etc/mail/local-host-names и за такива, за които вашия пощенски сървър е описан в MXресурсните им записи.

Например за да разрешите на клиент с IP адрес 192.168.0.5 да може даизпраща изходящата си електронна поща през вашия пощенски сървър енеобходимо да направите следния запис (на отделен ред):

192.168.0.5 RELAY

Ако искате да разрешите на цялата мрежа 192.168.0.0 със маска 255.255.255.0да може да използва вашия сървър за изпращане на електронна поща енужно да направите следния запис

192.168.0 RELAY

Обърнете внимание, че тук може да се задава по този начин най -малко мрежа със 24 - битова субнет маска, т.е. 255.255.255.0. Ако има-те мрежа от по - малък клас ще се наложи да зададете IP адресите,включени в нея на отделни редове. Това е малко отегчително, но пъкнали не се налага да го правите всеки ден.

Сега да поговорим за задаването на имена на хостове. По принциптова е удобно и не савсем, както се казва зависи от съответната ситу-ация. Задавайки дадено име на хост или дори пък име на домейн, вие ав-томатично иницирате проверка от страна на DNS за проверка в ARPAна съответната мрежа. Ако там се намери запис, който да даде съот-ветствие между име на хост и IP всичко е наред, ако ли пък не, заявкатаза изпращането на поща от клиента през вашия сървър се отхвърля.

Ето един пример. Вие имате домейн за вашата VPN мрежа, условнонаречен virtual-domain.examp. Разполагате с мрежа 192.168.0.0/255.255.255.0.DNS - ът ви поддържа както virtual-domain.examp, така и 0.168.192.in-addr.arpa. Искате да дадете право на клиентите от virtual-domain.exampда изпращат своята електронна поща през вашия сървър. За целта за-писвате името на домейна в /etc/mail/access:

virtual-domain.examp RELAY

Нека във файла с описанието на домейна virtual-domain.examp в DNSда имаме записа

host1.virtual-domain.examp A 192.168.0.5...

но нямаме за него описание за POINTER във файла за зоната 0.168.192.in-addr.arpa. Тогава макар, че този клиент е описан в дефинициите на до-мейна, той няма да бъде допуснат от Sendmail да изпраща електроннапоща, защото за него няма съответния POINTER. Когато се следва по-литика RELAY спрямо име на хост или име на домейн,винаги се търсиинформация от съответната ARPA. Aко в зоната 0.168.192.in-addr.arpaсе направи POINTER:

Page 199: LINUX(Bulgarian Language)

37.5. ОБРАБОТКА НА ВХОДЯЩИЯ ТРАФИК 189

...5 PTR host1.virtual-domain.examp...

всичко ще бъде наред. Когато host1.virtual-domain.examp се свързва свашия пощенски сървър, от заявката се извлича IP адреса му, прави сезапитване към съответната ARPA на мрежата, към която той при-надлежи и ако POINTER на този IP сочи към host1.virtual-domain.examp,на клиентското електронно съобщение се дава ход за обработка за из-пращане.

Ако е нужно да специфицирате само даден хост в рамките на съ-ответен домейн, задайте пълното му квалифицирано име, както то еописано в DNS. По този начин ще забраните на друг хост от този до-мейн да използва сървъра ви за обработка на изходящата си поща. То-ва обаче може да ви изиграе и много лош номер. Ако администраторана домейна virtual-domain.examp направи субдомейн с името host1.virtual-domain.examp, всички описани в ARPA клиенти, чиито POINTER сочикъм host1.virtual-domain.examp ще получат достъп за изпращане до ва-шия сървър за електронна поща. Освен това в различни ARPA за раз-лични зони може да се направи едно описание host1.virtual-domain.examp,т.е. много IP адреси ще са с едно и също име, което сами разбирате, чене е никак приятно. Затова е по - добре да работите с IP адреси, тамфалшификацията е малко по - трудна.

Ако вие сте доставчик за други клиенти, които искат да ползват ва-шия пощенски сървър за обработка на изходния си поток от електроннапоща е нужно да укажете IP адресите на изпращачите в /etc/mail/access.Добре е да позволите това на всички IP адреси на клиентите си, все пакте затова си плащат.

37.5. Обработка на входящия трафик

Настройка на sendmail за обработка на входящата електронна поща.

Входяща електронна поща Ще наричаме трафика на електронни съ-общения от външни потребители към локални потребители за вашиядомейн или такъв, за който поддържате виртуален хостинг.

37.5.1. Настройка на /etc/mail/local-host-names

При приемане на електронна поща това е най - важната настрой-ка. Тя указва на sendmail кои преминали през сървъра съобщения да об-работва за получаване от локалните потребители. Също така тук сеуказват и имената за домейните за които се осъществява виртуаленхостинг или за които ще бъдат изграждани тунели.

Page 200: LINUX(Bulgarian Language)

190 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

Формата на самия файл е простa. Името на домейн, чиято елект-ронна поща се приема се поставя на отделен ред (също така тук ука-жете името на домейн, който обслужвате като виртуален хостинг илитози, за който реализирате тунел). Ако вие искате да сте краен обра-ботчик на пощата за your-domain.examp и искате да обслужвате катовиртуален хостинг входящата поща на virt-domain.examp, посочете тeх-ните имена на отделни редове в /etc/mail/local-host-names:

virt-domain.exampyour-domain.examp

Това можете да направите чрез текстовия редактор на MidnightCommander, чрез Emacs, Vi и други подобни. След записа запазете про-мените във файла и рестартирайте sendmail. Ако сте със RehHat илиMandrake можете да направите това от съответните скриптове в/etc/rc.d/init.d/ :

[root@mail root]# /etc/rc.d/init.d/sendmail restartShutting down sendmail: [ OK ]Starting sendmail: [ OK ][root@mail root]#

След тази стъпка вашия сървър за поща е готов да приема входяща-та поща за your-domain.examp и да я обработи и достави за съответни-те потребители или да я обработи по правилата за виртуален хостинг,ако такива са зададени.

ВНИМАНИЕ! Никога не задавайте в /etc/mail/local-host-names именана домейни, за които сте междинен сървър съгласно MX ресурснитезаписи. Това е груба грешка и ще доведе до следните проблеми:

– - съобщенията за другия домейн, за който сте поели ролята намеждинен сървър, няма да се предадат на неговия сървър за крайнаобработка (все едно се превръщате в черна дупка за трафика запоща).

– - съобщенията за потребителите на други домейни ще бъдат об-работвани като за локални потребители. Ако вие имате потре-бителско име, съвпадащо с това на потребител от другия домейн,потребителят ви с това име ще получи чужда поща. Ако няма съв-падение в потребителските имена на изпращача ще бъде върнатосъобщение за грешка, което ще казва, че в системата няма потре-бител с това име и може да се стигне до огромен скандал.

37.5.2. Настройка на /etc/aliases

Файлът /etc/aliases/ съдържа дефиниции за псевдоними на потребите-лите на системата ви. Понякога потребителското име, с което даденпотребител влиза в системата може да е трудно за запомняне или да

Page 201: LINUX(Bulgarian Language)

37.5. ОБРАБОТКА НА ВХОДЯЩИЯ ТРАФИК 191

не съдържа достатъчно информация за потребителя, като собствено-то или фамилното му име. Например потребителското име ogy234 илиstudent23098 доста трудно се запомнят и едва ли могат да послужат зауспешна електронна комуникация.

Ето тук идват на помощ псевдонимите. Ако на потребителя student23098се направи псевдоним Ivan.Ivanov, то всяка електронна поща изпратенадо [email protected] ще се получи от потребителя student23098.Може за един потребител да се направят произволен брой псевдоними.Все пак не прекалявайте, за да се възцари хаос, в който да не знаете койкой е!

Форматът на файла /etc/aliases е лесен за възприемане. На всеки новред в ляво се пише псевдонима, а в дясно потребителя, за който тозипсевдоним важи, като веднага след псевдонима се поставя ": например:

Ivan.Ivanov : student23098Good.Student : student23098и т.н.

ВНИМАНИЕ! След запазване на промените във файла /etc/aliases отстрана на използвания от вас текстови редактор, изпълнете като rootкомандата newaliases за да получите файла /etc/aliases.db, който ще съ-държа базата данни с псевдонимите и асоциираните с тях субекти.Sendmail и други програми не работят директно със /etc/aliases, а с /etc/aliases.dbза да бъде достъпа по - бърз (отделете малко време да разгледате щоза файл е това, но не променяйте нищо в него). Дори и да не изпълни-те командата newaliases при следващото рестартиране на sendmail тяще се изпълни автоматично, но нейната идея е да можете да променя-те потребителското си пространство от гледна точка на сървъра запоща без да се налага да го рестартирате.

Както на един потребител можете да направите произволен бройпсевдоними, така и към един псевдоним може да прикачите произволенброй потребители. Това става най - лесно чрез обявяване на псевдонима,както това е направено по-горе, но при изброяването на потребители-те те се разделят със запетайка, например:

Ivan.Ivanov: student23098,root,webmaster

След това изпълнете newaliases за да изградите базата от данни забърз достъп от страна на Sendmail.

Когато правите подобни неща имайте предвид, че при получаванетона пощата си, потребителя не може да види, че тя се получава и отдруги потребители, но другите потребители могат да видят, че тя несе получава за тях, тъй като в полето "To:"на електронното писмо щестои псевдонима на получателя.

Един друг фокус с /etc/aliases се състои в това, че псевдонимите мо-гат да дублират потребителски имена, ако се направи рекурсивно по-викване. Това е така, защото при обработката на входящата пощa

Page 202: LINUX(Bulgarian Language)

192 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

sendmail първо търси за съответствие на полето "To:"в базата от дан-ни, получена от /etc/aliases. Ако там не се намери съответствие се про-верява в списъка с потребителите на системата. Т.е. ако вие дублира-те с псевдоним даден потребител, неговата поща може да се получа-ва на още много места и от още потребители. Това може да е кактополезно така и много опасно. Необходимо е внимателно да преценитеплюсовете и минусите от едно подобно действие. Например, ако иска-те пощата за потребителя boss да се чете от root и student можете данаправите следния запис в /etc/aliases:

Ivan.Ivanov: student23098, rootboss: Ivan.Ivanov

Отново изпълнете newaliases за да получите нов /etc/aliases.db.Другото, което виждате в този пример е, че можете един псевдо-

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

не потребител, а пощенски адрес, например:

Ivan.Ivanov: [email protected]

Последното разглеждане за възможностите за обработка на вхо-дящата поща е свързано с изтегляне на списък от потребители отфайл. Това прави възможно запазването на прегледността на файла/etc/aliases, като не го претрупва и го прави лесен за преглеждане. Етоедин пример. Вие сте решили да направите пощенски списък, т.е. такъвадрес, изпратените писма до който се получават от дадена група вашиили чужди потребители. Във файла /etc/list1 сте указали на отделен редпотребители:

[email protected]

Отворете сега /etc/aliases и опишете псевдонима list1:

list1: :include:/etc/list1

Запазете промените и изпълнете newaliases за да получите новатабаза от данни с псевдоними. Оттук нататък всяко съобщение, коетобъде изпратено до [email protected] ще бъде изпратено и до все-ки един от потребителите чиито потребителски имена са изброенив /etc/list1. Разбира се, този списък е един прекрасен механизъм за осъ-ществяване на SPAM. Добре ще е, ако адреса му не става общественодостояние за да не става обект на рекламни кампании.

ВНИМАНИЕ! Ако сте променили /etc/aliases и промените ви не вли-зат в сила, изплълнете newaliases. Ако тогава се появи съобщение за

Page 203: LINUX(Bulgarian Language)

37.5. ОБРАБОТКА НА ВХОДЯЩИЯ ТРАФИК 193

грешка, погледнете дали сте спазили формата на /etc/aliases. Версиитена Sendmail от 8.12.0 насам, използват за собственик на процесите сисобствен потребител (за разлика от по-ранните версии, където собс-твеник на процесите беше root). Тогава при рестартиране на Sendmailняма да се изпълни успешно командата newaliases (както става това впо-старите версии), защото тя е изпълнима само от потребителя root.Ще ви се наложи да влезетe в системата като потребител root и ръчнода изпълните newaliases.

37.5.3. Как потребителя може да препраща своята елект-ронна поща сам.

Съществува механизъм чрез който можете да позволите на вашитепотребители да прехвърлят автоматично пристигащата за тях елек-тронна поща на желан от тях адрес. Това може да стане като те напра-вят в своята лична директория (най - често /home/user) файл .forward. Внего е нужно да напишат адреса, на който искат да им бъде препращанаелектронната им поща. Форматът на този файл е съвсем прост, на новред обявявате адреса за препращане. Ето един пример. Потребителятви student23098 решава да прехвърля пощата си на адреса си в hotmail.comдокато е на специализация в чужбина. Той създава в /home/student23098файла .forward и в него записва:

student\[email protected]

Разбира се, той може да препраща пощата си и на повече от единадрес, просто за целта трябва да ги опише всичките във файла .forwardна отделен ред.

37.5.4. Настройка на /etc/mail/access

Базата от данни на /etc/mail/access служи както за контрол на пос-тъпващите съобщения, така и за контрол на политиката за изпращанена електронна поща през вашия сървър. Тук ще се спрем по - подробно наполитиката спрямо входящия пощенски поток. В главата за обработкана изходящия трафик ще поговорим за управлвние на пощата премина-ваща през вашия пощенски сървър.

Какво можете да правите с помощта на /etc/mail/access за да управ-лявате входния трафик?

На първо място ще споменем възможността да ограничите неже-ланата към вас поща (не си помисляйте за тотално ликвидиране наSPAM - а към вас). Можете да забраните даден пощенски адрес или цялдомейн да изпраща електронна поща за локалните ви потребители. Зацелта отворете с любимия си текстови редактор файла /etc/mail/access

Page 204: LINUX(Bulgarian Language)

194 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

и на отделен ред опишете или целия адрес, или домейна или изпраща-щия хост. Например, ако не искате да получавате нежелана поща от[email protected] направете следния запис:

[email protected] REJECT

Ако искате да не приемате поща от нито един пощенски адрес, об-служван на домейн black-domain.examp просто укажете домейна на от-делен ред:

black-domain.examp REJECT

Ако направите такъв запис, можете спокойно да изтриете този за[email protected], защото дефиницията за елиминиране на целиядомейн включва и този адрес, както и всички останали.

Сигурно сега сте си задали въпроса: "Добре, но ако аз искам да елими-нирам всички потребители освен един, тогава какво да направя?". Тозивъпрос е съвсем справедлив. Едва ли вие ще можете да опишете всич-ки пощенски адреси на даден домейн. Първо защото едва ли ще иматедостъп до подобна информация и второ, дори и да имате ще се налаганепрекъснато да я опреснявате. Разбира се sendmail предлага лек за та-зи болка и то именно в /etc/mail/access. Ако искате да блокирате всичкиадреси на домейна black-domain.examp, но да позволите на [email protected] да изпраща електронна кореспонденция до вашите потре-бители можете да направите следното:

[email protected] OKblack-doman.examp REJECT

Това е един много добър начин за филтруване. Но трябва много давнимавате! Ако вашия сървър е упоменат в MX записите в дефиниции-те за друг домейн като междинен обработчик, зададените от вас пра-вила автоматично ще важат и за него. Т.е. потребителите на всекидомейн, пощата за който се транслира чрез вас, ще са подложени насъщите права за рестрикции по адреси за входящата поща, както и ва-шите потребители. Решението на този проблем не е еднозначно. Катоедно решение може да се посочи твърда политика от ваша страна споедкоято всеки домейн, които ползва вашия сървър за междинен, съгласноMX записите в дфиницията на домейна си, ще трябва да се съобразявас вашите рестрикции по входящи адреси. Това е доста егоистичен под-ход и не може да се нарече никак колегиален. Друго решение е да иметедва пощенски сървъра. Единия да може да изппълнява функциите на MXхост за други домйни, а другия да е скрит, напр. чрез VPN или техника-та ремапинг, която ще споменем в следващите глави и да не може да сеизползва за транслиране на електронна поща.

Page 205: LINUX(Bulgarian Language)

37.6. ОБРАБОТКА НА ТРАФИК, БАЗИРАНА НА MX ЗАПИСИ 195

37.6. Обработка на трафик, базирана на MX за-писи

Настройка на sendmail за обработка на входящата електронна пощаза други домейни, реализирано на база на MX ресурсни записи в зонитена другите домейни.

Вие можете да изпълнявате ролята на междинен обработчик на по-тока на електронна поща за даден домейн само въз основата на MXресурсните записи в дефиницията на въпросния домейн.

37.6.1. Настройка за препредаване на електронна поща поMX ресурсен запис.

Тази настройка се извършва с две стъпки.

За да можете да препредавате пощата за даден домейн само възосновата на MX ресурсните записи е нужно първо да включите в мак-росния файл за създаване на Sendmail следната дефиниция:

FEATURE(‘relay\_based\_on\_MX’);dnl

След това създайте от макросния файл (предполагаме, че при вастой е /etc/mail/sendmail.mc) с помощта на интерпретатора m4 новияsendmail.cf:

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

Рестартирайте Sendmail за да може програмата да прочете ново-създадения си конфигурационен файл.

Сега следва стъпката, която често се пропуска. Нужно е да опише-те името на вашата машина, която фигурира в MX ресурсните записив /etc/mail/local-host-names. Ако не направите това ви се гарантира, ченяма да можете да зпочнете препредаването на електронната пощаза други домейни. Често вашия пощенски сървър може да има различниимена в рамките на различни домейни, на които той е член. За да няма-те проблеми опишете всички тези имена в /etc/mail/local-host-names.

Ето и един работен пример. Нека вашия пощенски сървър има име

mail.your-domain.examp

и с него е описан в MX ресурсните записи на домейните, електрон-ната поща за които ще препредавате. Необходимо е да опишете товаиме в /etc/mail/local-host-names така:

mail.your-domain.examp

Page 206: LINUX(Bulgarian Language)

196 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

да запазите промените и да рестартирате Sendmail.

Ако сте изпълнили правилно указанията всичко трябва да е наред ипрепредаването да работи. Все пак е добре да се уверите в това. Ако неработи и не виждате нищо нередно в конфигурацията проверете DNSинформацията за обслужвания от вас домейн. Ако администратора наобслужвания домейн е направил току що промените, с които указва, чевие ще препредавате неговата поща съгласно MX ресурсните записи,е много вероятно новата информация да не се е опреснила върху DNSсървърите, които използвате. Така ще се наложи да изчакате докатоинформацията се опресни и чак тогава можете да накрате да заработипрепредаването на входящия пощенски поток за даден домейн. Добървариант е вие да изтегляте зоната на дадения домейн при вас. По та-къв начин вашия DNS винаги ще има актуално копие с DNS информаци-ята на обслужваните домейни и няма да пита за това външни сървъриза имена, следователно няма да има проблеми породени от стара и не-валидна вече информация.

37.6.2. Мерки за извърване на настройките от страна наобслужваниете от вас домейни.

Нека сега да направим преглед на мерките, които трябва да преп-риемат администраторите на домейните, които искат да използватвашия пощенски сървър за междинен обработчик за входящия си потокна електронна поща.

Първо те трябва да контактуват с вас и да поискат ващето разре-шение за да транслират поток през вас. Това го изисква елементарнатаетика.

Втората мярка, която те трябва да предприемат е да укажат ва-шия пощенски сървър в йерархията от пощенски сървъри, която е изг-радена в дефинициите на техния домейн.

Тук отново за пример ще посоча домейна на Софийския Универси-тет. В неговите дефиниции за домейн е изградена следната йерархияот пощенски съвъри:

MX 10 ns.uni-sofia.bg.MX 20 ady.uni-sofia.bg.MX 100 mail.netissat.bg.

Този домейн използва два сървъра за междинна обработка в случай напроблеми със крайния обработчик на пощенския трафик ns.uni-sofia.bg.Първия от тези междинни сървъри е ady.uni-sofia.bg. Въпреки че той евътрешен за мрежата на разглеждания домейн, върху него може да пос-тъпи пощенски поток в случай на проблеми с главния обработчик. Тойще запази в своята опашка пощата предназначена за потребителите на

Page 207: LINUX(Bulgarian Language)

37.7. ВИРТУАЛЕН ХОСТИНГ 197

uni-sofia.bg докато не бъде възстановена връзката с ns.uni-sofia.bg. Вто-рия междинен обработчик е mail.netissat.bg. Това е пощенски сървър отмрежата на доставчика на Софийския Университет. Ако по някакъв на-чин връзката с компютърния център на Университета бъде нарушенаили ако и двата пощенски сървъра ns.uni-sofia.bg и ady.uni-sofia.bg са не-достижими, именно mail.netissat.bg ще поеме ролята на междинен обра-ботчик на входящия пощенски трафик за университетските потреби-тели и ще пази в себе си съобщенията за тях докато не се появи връзкапоне с ady.uni-sofia.bg. Когато се появи връзка и с двата университет-ски пощенски сървъра обаче, mail.netissat.bg ще опита първо контакт сns.uni-sofia.bg,а само при неуспех за връзка с ns ще се опита да се свържес ady.uni-sofia.bg, защото ще спази йерархията, зададена в дефинициитена домейна.

Като последна мярка прегледайте внимателно файла /etc/mail/access.Имайте предвид, че ако там бъде зададена политика REJECT за дадендомейн или потребител, то тази политика ще е в сила и за транслира-ните през вас като входен трафик пощенски съобщения за други домей-ни. Например, ако в /etc/mail/access сте записали

domain1.examp [email protected] REJECT

то всяко електронно писмо от споменатия домейн и потребителще бъде отхвърлено за доставяне, дори и ако е адресирано до потре-бители на домейн, за който вашия пощенски сървър е само междиненобработчик.

Да ви напомня, че ако промените нещо в /etc/mail/access и искате тода влезе в сила, ще се наложи отново да построите базата с данни, откоято да чете sendmail, с помощта на следната команда:

makemap hash /etc/mail/access.db < /etc/mail/access

37.7. Виртуален хостинг

Обслужване на електронната поща за виртуален домейн

37.7.1. Идея

Виртуалния домейн е домейн, чието съществуване не предполага из-граждането на собствена мрежова структура, или ако има такава тотя е под формата на VPN (Виртуална Частна Мрежа). Това означава,че описаните в DNS MX ресурсни записи с най - висок приоритет за до-мейна не принадлежат на неговата мрежова структура, а ползват най- често чужда такава.

Page 208: LINUX(Bulgarian Language)

198 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

Това е удобен вариант за малки организации, които използват част-ните виртуални мрежи на своите доставчици и не искат да заплащатза използването на публични IP адреси или ако имат публични IP адре-си не искат или не могат да поддържат свой собствен DNS сървър исървър за електронна поща.

Съществуват два подхода за изграждане на виртуалния хостинг наелектронна поща. При първия собственика на виртуалния домейн нямасвой сървър за електронна поща, а използва този на своя доставчик. Привтория собственика има свой пощенски сървър, но той е в рамките начастна виртуална мрежа.

37.7.2. Примерна конфигурация на виртуален хостинг наелектронна поща без наличието на пощенски сър-вър у клиента.

Май не може да бъде измислено по евтино от това решение. То еогромно улеснение за клиенти, които нямат финансовата възможностда изградят и поддържат свой сървър за електронна поща или простоимат малък брой абонати и не си заслужава да влагат пари в неизполз-ваеми мощности.

Направата на този тип виртуален хостинг ще илюстрираме чрезедин пример за да може написаното да е максимално ясно. При товапредполагаме, че името на вашия сървър за обработка на входящия тра-фик на електронна поща е mail.your-domain.examp.

Да си предсатвим, че се налага да обслужвате виртуалния домейнvirtual-domain.examp. Като всеки добър доставчик, който се грижи заклиентите си, вие сте изградили базата с данни за DNS, която сте опи-сали домейна и сте поставили съответните MX ресурсни записи. MXресурсния запис с най - висок приоритет сочи към вашия пощенски сър-вър mail.your-domain.examp. Разбира се, може и да сочи към mail.virtual-domain.examp, но IP адреса му да съвпада с този на mail.your-domain.examp.По този начин вие ще дадете IP адреса на вашия пощенски сървър наимето на пощеския сървър с най - висок приоритет в състава на MXресурсните записи на виртуалния домейн. По подобрен начин на тео-рия можете да поддържате виртуален хостинг на електронната пощана произволен брой домейни, но на практика ще се наложи внимателнода пресметнете натоварването на вашия сървър и да предвидите далитой ще се справи с целия поток от информация.

Във файла /etc/mail/local-host-names на mail.your-domain.examp, на от-делен ред опишете името на виртуалния домейн:

virtual-domain.examp

След това запазете промените и рестартирайте Sendmail. Вече стеготов да получавате електронната поща за потребителите на този

Page 209: LINUX(Bulgarian Language)

37.7. ВИРТУАЛЕН ХОСТИНГ 199

домейн. Сега остава да направите локалните настройки за потребите-лите на виртуалния домейн.

Следва стъпката за създаване на потребителски профайли за вирту-алния домейн върху вашия сървър. Ако създадете потребителски про-файли на потребителите на виртуалния домейн вие ще се ангажирате ис осигуряването на POP3 или IMAP достъп за въпросните потребите-ли. Преценете сами дали това ви устройва. Ако нямате нищо противтова можете да създадете потребителите на виртуалния домейн ка-то ваши локални потребители. Така те ще могат да получат достъп идо други ваши услуги, което в повечето случаи е полезно, например дос-тъп до FTP и оттам виртуален хостинг на web сървър и т.н. Можетеда им дадете и правото да използват .forward файловете в домашнатаси директория за да пренасочват входящата си поща.

За пример нека разгледаме създаването и обслужването на потреби-телите

pencho1babamu

Добре е, те да не съвпадат с имена на ваши потребители. Ако ис-кате направете им и по един и повече псевдоними чрез /etc/aliases (товасамо може да ви е от полза, защото потребителя ще разбере, че се гри-жите за наго и винаги му предлагате повече).

Повечето от внимателните читатели на това място ще възклик-нат: добре, но ако аз изпратя електронна поща до [email protected]тя ще се получи при pencho1 без той да притежава адрес към домей-на your-domain.examp и обратното, ако your-domain.examp има потре-бител chocho, то той автоматично ще получи адреса [email protected]. Това е така, защото всички са локални потребители напощенския сървър mail.your-domain.examp, който обслужва много домей-ни, толкова, колкото са зададени в /etc/mail/local-host-names. Помисле-те какво ще стане ако се изпрати писмо до [email protected].Сървърът mail.your-domain.examp ще провери за virtual-domain.examp въвфайла /etc/mail/local-host-names, ще открие там съответствие за иметона домейн, после ще потърси локалния потребител root и ще доставипощата в неговата кутия и това ще е без значение към потребителна кой домейн от описаните се изпраща това писмо. Т.е. и писмотодо [email protected] и до [email protected] ще се полу-чат в пощенската кутия на локалния потребител root. Сами разбира-те, че така локалните потребители автоматично ще получат адресикъм всички хоствани от вас домейни. За да не се получи подобно досад-но дублиране можете да създадете филтър за потребителите на дадендомейн. Той се реализира посредством записи в /etc/mail/access.

Ето последователността при изграждането на подобен филтър:Забраняваме на потребителите на виртуалния домейн да имат по-

щенски адреси към нашия публичен домейн. За целта в /etc/mail/access

Page 210: LINUX(Bulgarian Language)

200 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

отхвърляме всякаква електронна поща за тях, ако след потребителс-кото им име следва името на друг домейн, на който те не са потреби-тели:

[email protected] 550 No such [email protected] 550 No such user

Кода 550 е код за отхвърляне на съобщението и се следва от причи-на, която се изписва в изпратеното до подателя съобщение за отхвър-лянето на крайната доставка на неговатa електронна поща. Т.е. ако[email protected] изпрати писмо до [email protected], порадиналичието на кода 550 Sendmail ще върне писмото до [email protected] на [email protected] като в допълнителната информация,която ще предостави ще напише и причината - No such user.

След това им позволяваме да са потребители на своя домейн (virtual-domain.examp):

[email protected] [email protected] OK

и след това указваме на Sendmail да не приема писма за никои дру-ги потребители на въпросния домейн, ако те не са разрешени тук в/etc/mail/access:

virtual-domain.examp 550 No such user

След това запазваме промените и изпълнямваме командата за изг-раждането на базата с данни за бърз достъп:

makemap hash /etc/mail/access.db < /etc/mail/access

и сме готови с тази задача, която с право може да се смята за "висшпилотаж"в Sendmail.

Нека сега да представим другия основен вариант. Вие правите вир-туален хостинг на даден домейн, но не искате да дефинирате потре-бителите на виртуалния домейн локално. За да направите това е не-обходимо всеки потребител на virtual-domain.examp да има пощенскиадрес другаде, напр. в някоя свободая web базирана електронна поща.Този вариант може да бъде реализиран в Sendmail достатъчно едноз-начно. За целта ще се наложи да комбинирате записи в /etc/mail/access и/etc/mail/virtusertable. Отново ще дадем пример с потребителите pencho1и babamu.

В /etc/mail/access дефинирайте за кои потребители на виртуалния до-мейн ще обслужвате електронна поща. Записвате всеки адрес на пот-ребител на отделен ред, в лявата страна, а в дясната страна описватеполитиката за приемане "OK":

[email protected] [email protected] OK

Page 211: LINUX(Bulgarian Language)

37.7. ВИРТУАЛЕН ХОСТИНГ 201

Отново направете отхвърляне за други потребители на virtual-domain.examp,които не са описани тук:

virtual-domain.examp 550 No such user

Сега запазете промените в /etc/mail/access и изпълнете комендата заполучаването на базата от данни за бърз достъп:

makemap hash /etc/mail/access.db < /etc/mail/access

Сега да поработим върху файла /etc/mail/virtusertable. В него трябвада поддържате следния синтаксис:

[email protected] [email protected]@virtual-domain.examp [email protected]

По този начин ще насочите входящата електронна поща за [email protected] и [email protected] към съответние им webбазирани адреси.

Запазете промените и изпълнете командата за да произведете ба-зата от данни за бърз достъп:

makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

Сега всичко би трябвало да работи нормално.Накрая може да споменем и един друг трик във виртуалния хостинг

със Sendmail. Можете да нправите така, че писмата за всички потре-бители на даден виртуален домейн да се получават от един единственлокален потребител или на един единствен web базиран адрес. За целтаизтрийте всичко, което е записано в /etc/mail/access за дадения виртуа-лен домейн. Сега ще работим само със /etc/mail/virtusertable.

Ако искаме всички входящи електронни писма за virtual-domain.exampда се получават в кутията на локалния потребител pencho1 е нужно данаправим следния запис:

@virtual-domain.examp pencho1

Ако обаче се налага цялата входяща кореспонденция за virtual-domain.exampда се насочи към един web базиран пощенски адрес, напр. [email protected],то записа в /etc/mail/virtusertable ще изглежда така:

@virtual-domain.examp [email protected]

Остана ни само да изградим отново базата от данни с бърз достъпчрез изпълнението на командата:

makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

и сме с готови и с послената разновидност на реализацаията на вир-туален хостинг.

Page 212: LINUX(Bulgarian Language)

202 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

37.7.3. Примерна конфигурация на виртуален хостинг наелектронна поща с наличието на пощенски сървъру клиента.

При решаването на подобна задача се предполага, че сървъра на кли-ента е в рамките на частната ви виртуална мрежа, т.е. и в случая нямавидимост от страна на хостовете в Интернет към 25/tcp порт на сър-въра за електронна поща на нашия краен клиент, но такава видимостсъществува от вашия сървър за електронна поща.

Преди да започнете се убедете, че MX ресурсните записи на вирту-алния домейн са наред и че този с най - голям приоритет сочи към вашпощенски сървър mail.your-domain.examp. След това редактирайте ръч-но /etc/mail/local-host-names като на нов ред поставите името на вирту-алния домейн, който ще обслужвате:

virtual-domain.examp

Запазете промените и рестартирайте Sendmail. Сега сте готови даприемате входящата поща за virtual-domain.examp. Оттук нататък сечувствайте свободни да използвате техниката на ремапинг. Това щерече да накарате Sendmail да премехне оригиналното име на домейна-получател, да постави на негово място името на сървъра на клиента запримене на електронна поща и после да го маршрутизира допълнително.Това се прави с помощта на /etc/mail/virtusertable и /etc/mail/mailertable.Ако сървъра на клиента за получаване на електронната поща за локал-ните клиенти на virtual-domain.examp има име във частната виртуалнамрежа mailer-company1.vpn.your-domain.examp то в /etc/mail/virtusertableсе прави записа

@virtual-domain.examp \%[email protected]

а в /etc/mail/mailertable се записва

mailer-company1.vpn.your-domain.examp esmtp:mailer-company1.vpn.your-domain.examp

Промените в двата файла се запазват и се изпълняват командите:

makmap hash /etc/mail/virtusertable.db < /etc/mail/virtusertablemakmap hash /etc/mail/mailertable.db < /etc/mail/mailertable

След тези промени входящата поща до [email protected] сти-га до вашия пощенски сървър mail.your-domain.examp. Оттам Sendmailправи ремапинг като преадресира писмото от [email protected]към [email protected]. Тъй като mailer-company1.vpn.your-domain.examp не е домейн, а хост, за който няма MX ресурсни записи,се налага пощенския трафик към него да бъде еднозначно маршрутизи-ран от Sendmail. Това маршрутизиране се прави въз основа на записа в/etc/mail/mailertable без да се ползва никаква DNS информация. Може до-ри mailer-company1.vpn.your-domain.examp да бъде дефиниран във файла

Page 213: LINUX(Bulgarian Language)

37.8. ТУНЕЛИ 203

/etc/hosts и да не е описан във вашия локален DNS. Това често е удобс-тво!

Задължително е в /etc/mail/local-host-names на mailer-company1.vpn.your-domain.examp да има записа

mailer-company1.vpn.your-domain.examp

за да може да приема електронна поща за локалните си потребите-ли след ремапинга от страна на mail.your-domain.examp. Преадресацияна името на домейна на получателя в хода нa ремапинг може да се пред-стави чрез следната схема:

Intenet - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -> mail.your-domain.exampTo:[email protected] |

VТо: [email protected]

|V

mailer-company1.vpn.your-domain.examp|V

To: user

Сега сте напълно готови да поемете и маршрутизирате вътрешновходящия трафик на virtual-domain.examp.

37.8. Тунели

Тунели за предаване на електронна поща

37.8.1. Идея

Тунелите за предаване на електронна поща са начин за инструментза индивидуална маршрутизация на електронната поща. От направатаим се печели време и трафик, но изискват задълбочени познания и добраподдръжка за направата и поддръката им.

Идеята при създаването на тунелите е проста. Нека да си припом-ним как става маршрутизирането на трафика на електронната пощасъгласно MX ресурсните записи. Първо се прави опит за връзка с хоста,който е посочен с най - голям приоритет. Ако връзката се провали сеправи опит за контакт със по - ниския по приоритет хост и т.н. Можеобаче да се постъпи и по съвсем различен начин. Да се потърси неописанв MX ресурсните записи хост, който да има бърз контакт със пощен-ския сървър на съответния домейн. Това изисква проучване на мрежо-вата топология и допълнителна договорка със администраторите насървърите, през които ще се осъществява тунела.

Page 214: LINUX(Bulgarian Language)

204 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

37.8.2. Пример

За да илюстрираме направата на тунел ще дадем еин работен при-мер.

Вие искате електронната поща за потребителите на other-domain.exampда се предава по - бързо като за целта я пренасочвате през пощенс-кия сървър на relay-domain.examp. Предполага се, че сървъра mail.ralay-domain.examp има съответната маршрутизация и поддръжка, с помощ-та на която може да достави пощата за other-domain.examp много по- бързо в сравнение с традиционния начин като я предаде директно наmail.other-domain.examp, който е краен обработчик на пощенския тра-фик за other-domain.examp.

Топологията на примерния тунел е следната:

mail.your-domain.examp - - - - - - - - - - - - - - - > Internet|V

mail.relay-domain.examp- - - - - - - - - - - - - - - > Internet|V

mail.other-domain.examp- - - - - - - - - - - - - - - > Internet

37.8.3. Настройки от страна на вашия сървър за елект-ронна поща

Ще е необходимо да опишете тунела в /etc/mail/mailertable:

other-domain.examp esmtp:mail.relay-domain.examp

След като запазите промените във файла, изпълнете в команден редкомандата за получаването на базата от данни, необходима за бърз дос-тъп от страна на Sendmail:

makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable

С това настройката на тунела от ваша страна е приключена.

37.8.4. Настройки на сървъра на поредника mail.relay-domain.examp

Администраторът на mail.relay-domain.examp е необходимо на нап-рави първата промяна във файла /etc/mail/local-host-names като укаже,че ще получава електронната поща за домейна other-domain.examp, т.е.на нов ред да запише:

other-domain.examp

След като запази промените ще му се наложи да рестартира Sendmailза да влязат те в сила. След това се нанася и запис в /etc/mail/virtusertable:

Page 215: LINUX(Bulgarian Language)

37.8. ТУНЕЛИ 205

@other-domain.examp \%[email protected]

Чрез този запис се извършва т.нар. "ремапинг т.е. променя се име-то на домейна на получателя на съобщението като се заличава домейнаother-domain.examp и се постава mail.other-domain.examp. Забележете, чеmail.other-domain.examp не е име на домейн, а име на хост и с този проб-лем ще се занимаем малко по- надолу.

След запазване на промените чрез текстовия си редактор админис-тратора е нужно да изпълни в команден ред:

makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

за да създаде базата от данни за бърз достъп на Sendmail.Тъй като при ремапинга променихме адреса на получтеля на елект-

ронното съобщение като заличихме името на неговия домейн и приба-вихме името на хост за последваща обработка, сега ще се наложи наадминистратора да извърши допълнителна маршрутизация, за да не сетърсят MX ресурсни записи за mail.other-domain.examp. Ако такива бъ-дат потърсени и не бъдат намерени ще се получи грешка и съобщениетоще започне да блуждае и твърде вероятно е то да не се получи. Причи-ната за това, е че не всички администратори описват във зоните сиMX записи за отделните си хостове, а правят това генерално за целиядомейн. Дори и да ги описват, това ще наложи тунела да се прекъснеи да се използва стандартния начин за изпращане на писмата все едноmail.relay-domain.examp е използван за интелигентен хост.

За да няма подобни проблеми и да може тунела да бъде продължен сеправи запис в /etc/mail/mailertable:

mail.relay-domain.examp esmtp:mail.relay-domain.examp

последвано от запазване на промените и задължително от изпълне-нието на командата

makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable

С това задачите на администратора на mail.relay-domain.examp саизпълнени.

Администраторът на този междинен сървър за обработка в тунелапо този начин маршрутизира в същата посока не само електроннатапоща от вашите потребители, но и от всчики други, стига те да яизпратят през неговия пощенски сървър и да е предназначена за потре-бители на other-doman.examp.

37.8.5. Настройки на сървъра на получателя mail.other-domain.examp

Тук настройката е само една, тя се прави в /etc/mail/local-host-names

mail.other-domain.examp

Page 216: LINUX(Bulgarian Language)

206 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

и има за цел да накара пощенския сървър да приема за доставяне къмлокалните се потребители електронната поща насочена чрез ремапин-га към него (припомнете си по - горе, че Sendmail промени името на до-мейна на получателя от other-domain.examp на mail.other-domain.examp).След запазване на промените във файла, администратора е нужно дарестартира Sendmail за да могат те да влязат в сила.

37.8.6. Трансформации на адреса на получателя при преда-ването в тунела

И така нека накрая да сумиаме и илюстрираме подхода, при който сеизползва тунел като отблежим междинните трансформации на адресана получателя чрез техниката на "ремапинг":

mail.your-domain.examp - - - - - - - - - - - - - - - > Internet|VFrom: [email protected]: [email protected]|V

mail.relay-domain.examp- - - - - - - - - - - - - - - > Internet|VFrom: [email protected]: [email protected]|V

mail.other-domain.examp- - - - - - - - - - - - - - - > Internet

37.9. Корпоративни настройки

Примерна схема за изграждането на трафика на електронна поща закорпоративна мрежа

37.9.1. Увод

Очевидно е, че подобно ръководство за употеребата на Sendmail ня-ма да е пълно без да бъде даден пълен работен пример за изгражданетона корпоративна мрежа за електронна поща. Написаното в тази главае насочено към тези читатели, които искат да използват най - пълновъзможностите на Sendmail за обслужване на изходящия и на входящияпощенски трафик на поверената им за администриране корпоративнамрежа.

Page 217: LINUX(Bulgarian Language)

37.9. КОРПОРАТИВНИ НАСТРОЙКИ 207

В една хетерогенна мрежа, каквато в повечето случаи и корпоратив-ната, може да се сблъскате с куп трудности, като се започне от нали-чието на пощенски сървъри с лоша настойка в сигурността и се стигнедо неразбрани системни администратори, които виждат треската вчуждото око, но не и гредата в своето. Опитайте да балансирате меж-ду сигурност и свобода. Това е много трудно, но именно то прави мре-жата ви гъвкава. Само със забрани мрежа и доверие не се гради, кактои със пълна свобода не се гради мрежова сигурност.

Обикновено корпоративните мрежи имат голям трафик на елект-ронна поща. Той може да е толкова голям, че да надхвърля този за web,ftp и др. мрежови услуги. Изходящата електронна поща е тази, коятонатоварва в много голяма степен вашите изходни връзки. Казаното до-тук би трябвало да ви наведе над мисълта за внимателно планиране натрафика ви към Интернет. Ако ще поддържате електронната поща наголяма мрежа е необходимо преди всичко да имате голям изходящ капа-цитет. Ако си мислите, че с бавна модемна изходяща и бърза входящасателитна линии ще можете да обслужвате електронната поща се лъ-жете катастрофално. Достатъчно е един от вашите потребители даизпрати прикачен файл към някое пощенско съобщение за да задръстипътя на изходните заявки и да обезмисли цялата ви бърза сателитнавходяща връзка.

Идеалният вариант за вас е да имате самостоятелна линия за обс-лужване на електронната поща. Така генерирания от тази услуга тра-фик няма да пречи на другия. Повечето големи доставчици на Интер-нет правят подобна услуга на корпоративните си клиенти срещу ми-нимално заплащане. Те ви осигуряват самостоятелен канал с фиксиранкапацитет, който вие да използвате само за предаване или приемане наелектронна поща. Вашата изходяща електронна поща в такъв случайще се наложи да премине през пощенския сървър на доставчика.

Разумен компромис от ваша страна може да направи обаче излиш-но пускането на самостоятелен канал от страна на доставчика самоза обслужване на електронна поща. Можете да направите така, че даотделите определен трафик специално за услугата електронна поща.Така няма да ви се налага да се сблъсквате с прекалено натоварване налиниите ви при приемане и изпращане на много съобщения.

37.9.2. Описание

Ще предполагаме, че вие сте администратор на голяма корпоратив-на мрежа. Поддържате интернет домейн corporate.examp. Всеки отделна фирмата, мрежата на която обслужвате, има собствен сървър заелектронна поща и подмрежа. Повечето отдели са в състава на ваша-та частна виртуална мрежа, а само един отдел има публична мрежа.Всеки отдел има субдомейн в състава на вашия домейн. Ето накраткоописание на отделите и техните субдомейни и мрежи:

Page 218: LINUX(Bulgarian Language)

208 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

Отдел Субдомейн Адресно пространство

Административен admin.corporate.examp 192.168.1.0/255.255.255.0Счетоводен finance.corporate.examp 192.168.2.0/255.255.255.0Маркетинг marketing.corporate.examp 192.168.3.0/255.255.255.0Продажби sales.corporate.examp 62.44.103.0/255.255.255.128

Отдел "Продажби"осъществява електронна търговия, поддържа webсървъри и се нуждае от публично адресно пространство, докато други-те отдели не се нуждаят от такова и разполагат с адресни простран-ства в рамките на вашата частна виртуална мрежа.

За да поддържате виртуалната частна и публичната мрежи изграж-дате съответното backbone адресно пространство:

Адресно пространство backbone адресно пространство

Виртуална частна мрежа 192.168.0.0/255.255.255.0Публично адресно пространство 62.44.96.0/255.255.255.224

Предполагаме, че централния сървър, който вие администриратеима следните адреси:

Адресно пространство IP адрес на централния сървър

Виртуална частна мрежа 192.168.0.1Публично адресно пространство 62.44.96.1Адресно пространство на доставчика 62.44.97.132

Сървърите на отделите имат следните IP адреси към backbone ад-ресните пространства и към обслужваните от тях мрежи:

Сървър на отдел backbone адрес Адрес към вътрешната мрежа

Административен 192.168.0.10 192.168.1.1Счетоводен 192.168.0.11 192.168.2.1Маркетинг 192.168.0.12 192.168.3.1Продажби 62.44.96.2 62.44.103.1

Повечето от вас се сещат, че тук всеки пощенски сървър е поста-вен на съответния рутер. Разбира се, не може всеки отдел да поддържаотделен сървър за електронна поща, защото най-малкото това не ефинансово издържано за по-малки организации, но когато има финансо-вата възможност е добре да се постави сървъра за електронна поща наотделна машина.

Page 219: LINUX(Bulgarian Language)

37.9. КОРПОРАТИВНИ НАСТРОЙКИ 209

37.9.3. Подготовка на сървърите за имена

DNS информацията е особено важна за вас. Опишете внимателнопощенските сървъри и направете необходимите MX ресурсни записи.Всички субдомейни, които са в състава на виртуалната частна мрежане е нужно да бъдат описвани във зоналния файл на домейна corporate.examp.Там опишете само тези субдомейни, които разполагат с IP адреси отпубличното адресно пространство.

...MX 10 mail.corporate.examp.MX 20 mail.isp.examp.MX 30 mail.other-domain.examp.

mail A 62.44.96.1sales MX 10 mail.sales

MX 20 mailMX 30 mail.isp.examp.MX 40 mail.other-domain.examp.

mail.sales A 62.44.103.1admin MX 10 mail

MX 20 mail.isp.examp.MX 30 mail.other-domain.examp.

finance MX 10 mailMX 20 mail.isp.examp.MX 30 mail.other-domain.examp.

marketing MX 10 mailMX 20 mail.isp.examp.MX 30 mail.other-domain.examp.

...

Разбира се можете да отделите отделна зона за субдомейна sales, ане да го описвате, както е направено тук в зоната на corporate.examp.Това е въпрос, който се решава за конкретната ситуация според ваши-те виждания.

След като направите записите в сървъра за имена се убедете, чезоната(зоните) се трансферират добре навън и помолете администра-торите на домейните isp.examp и other-domaim.examp да теглят споме-наите зони, за да могат техните пощенски сървъри да черпят винагипрясна информация за MX ресурсните записи на вашия домейн и негови-те публични субдомейни.

Направете една зона за домейна vpn-mail.corporate.examp. До нея щеимат достъп само участниците във виртуалната частна мрежа и ва-шия сървър за електронна поща. Ограничението е необходимо, защотов нейния състав ще има описани имена, на които ще съответстват IPадреси от виртуалното ви адресно пространство. Ето нашия примерза подобна зона на домейна vpn-mail.corporate.examp:

Page 220: LINUX(Bulgarian Language)

210 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

$TTL 36000 ; 10 hours@ IN SOA vpn-mail.corporate.examp. root.corporate.examp. (

2001112901 ; serial36000 ; refresh (10 hours)3600 ; retry (1 hour)3600000 ; expire (5 weeks 6 days 16 hours)36000 ; minimum (10 hours))

NS vpn-mail.corporate.examp.A 192.168.0.1

admin A 192.168.1.1finance A 192.168.2.1marketing A 192.168.3.1

С нейна помощ по-нататък ще осъществите вътрешното маршру-тизиране за виртуалния хостинг.

37.9.4. Обслужване на входящата електронната поща запубличното адресно пространство

Субдомейнът sales.corporate.examp е в състава на публичното прос-транство. Ако не се налгат ограничения всеки компютър, който имавръзка към Интернет, ще може да комуникира безпрепятствено с ком-пютрите в състава на обслужваното от вас публично адресно прост-ранство. Могат да се изброят сигурно десетки причини, поради коитоне би трябвало да оставяте такъв безпрепятствен достъп до обслув-жани от вас машини. С особена сила важи това за пощенските сървъри.Един пощенски сървър с лошо обслужване може да се превърне в една ог-ромна дупка, през която може да се изпраща SPAM или пък да се превзе-ме отвътре мрежата. Затова внимателно преценете дали си заслужа-ва да позволите безпрепятствен достъп на външния свят до пощенскиясървър mail.sales.corporate.examp.

Ако не искате да дадете пряк достъп филтрирайте порт 25 по про-токол TCP за всички ваши вътрешни клиенти, които разполагат в пуб-лични IP адреси. Тогава целия входящ поток от електронна поща затях ще премине през вашия пощенски сървър. Затова задължително тойтрябва да е упоменат в MX ресурсните записи за субдомейна sales.corporate.exampи да може да препредава електронна поща съгласно изискването на MXзаписите. Освен това се убедете, че на вашия сървър в /etc/mail/local-host-nameс има записа

mail.corporate.examp

защото в противен случай дори да бъде активирана опцията за преп-редаване на електронна поща съгласно MX ресурсните записи, пощата

Page 221: LINUX(Bulgarian Language)

37.9. КОРПОРАТИВНИ НАСТРОЙКИ 211

няма да стигне до пощенския сървър с най-висок приоритет посочен вDNS.

Ако няма такъв запис го направете и не забравяйте да рестартира-те Sendmail след нанесените във файла /etc/mail/local-host-names проме-ни.

В случай, че сървъра на субдомейна sales.corporate.examp се админист-рира надеждно не налагайте забрана на 25/TCP. Доверете се на професи-онализма на неговия системен администратор. Това обаче не изключвада направите горната проверка за информацията в /etc/mail/local-host-names, защото, ако връзката с mail.sales.corporate.examp бъде прекъсна-та, вашия сървър ще поеме входящата електронна поща съгласно йе-рархията в MX ресурсните записи.

37.9.5. Обслужване на входящата електронна поща за вир-туалното адресно пространство

Тук си помогнете със способността на Sendmail да осъществява вир-туален хостинг.

Първо поставете в /etc/mail/local-host-names имената на всички вир-туални субдомейни, електронната поща за чиито потребители искатеда приемате. За описвания тук пример това ще изглежда така:

admin.corporate.exampfinance.corporate.exampmarketing.corporate.examp

Запазете промените и рестартирайте Sendmail. Сега сте готови дапримате поща за записаните по-горе субдомейни. Остава да направитеремапинг и да маршрутизирате. За да направите ремапинг попълнетепо следния начин /etc/mail/virtusertable

@admin.corporate.examp \%[email protected]@finance.corporate.examp \%[email protected]@marketing.coporate.examp \%[email protected]

Запазете промените и изпълнете

makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

за да изградите базата от данни за бърз достъп. Сега следва марш-рутизацията, която се прави в /etc/mail/mailertable

admin.vpn-mail.corporate.examp esmtp: admin.vpn-mail.corporate.exampfinance.vpn-mail.corporate.examp esmtp: finance.vpn-mail.corporate.exampmarketing.vpn-mail.corporate.examp esmtp: marketing.vpn-mail.corporate.examp

Запазете промените във фйла и изградете базата от данни за бърздостъп чрез командата

Page 222: LINUX(Bulgarian Language)

212 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable

Уверете се, че всеки от пощенските сървъри на клиентите е нас-троен да приема електронна поща за споменатите имена на домейни,получени след ремапинга. Ако сървърите са оборудвани със Sendmail енужно в техните файлове /etc/mail/local-host-names да пише следното:

-> на сървъра admin.vpn-mail.corporate.examp:

admin.vpn-mail.corporate.examp

-> на сървъра finance.vpn-mail.corporate.examp:

finance.vpn-mail.corporate.examp

-> на съвъра marketing.vpn-mail.corporate.examp:

marketing.vpn-mail.corporate.examp

Ако това не е така вие или състемния администратор на съответ-ния сървър нанесете нужните промени и рестартирайте Sendmail за давлязат те в сила.

37.9.6. Обслужване на изходящия трафик

Тук има три подхода.Първият подход изисква клиентите на дадения субдомейн да изпол-

зват за изпращане на електронната си поща собствения пощенски сър-вър, а не вашия. Ако искате наистина това, забранете на всички IP ад-реси от даденото адресно пространство да използват вашия пощен-ски сървър за изпращане. Това можете да направите с помощта на/etc/mail/access. Там опишете само адресите на пощенските сървъри наклиентските мрежи от backnone, защото именно от тази адреси, а неот вътрешните, те осъществяват връзка към вас:

192.168.0.10 RELAY192.168.0.11 RELAY192.168.0.12 RELAY62.44.96.2 RELAY

Запазете промените в този файл и изпълнете командата

makemap hash /etc/mail/access.db < /etc/mail/access

за да изградите базата от данни за бърз достъп. От своя стра-на пощенските сървъри на клиенtите трябва да ви зададат в свойтеsendmail.cf файлове като "Smart Host"за да може да насочват изходяща-та си електронна поща през вашия пощенски сървър. Т.е. във sendmail.cfе нужно те да зададат

Page 223: LINUX(Bulgarian Language)

37.9. КОРПОРАТИВНИ НАСТРОЙКИ 213

DSvpn-mail.corporate.examp

ако са в рамките на виртуалната частна мрежа и

DSmail.corporate.examp

ако става въпрос за сървър от публичното адресно пространство.Разбира се, след нанасянето на подобен запис е нужно Sendmail да серестартира.

Вторият подход изисква да разрешите на всички адреси да използ-ват вашия пощенски сървър за изпращане на електронната си поща. Зада направите това опишете в /etc/mail/access всички мрежи, които обс-лужвате:

192.168.062.44.96192.168.1192.168.2192.168.362.44.103

Запазете промените и изградете база от данни за бърз достъп с по-мощта на командата

makemap hash /etc/mail/access.db < /etc/mail/access

Съгласно третия подход оставяте всеки от пощенските сървъри наклиентските мрежи сам маршрутизира електронната си поща без даизползва за това вашия пощенски сървър. За мрежата от публичнотоадресно пространство това няма да е проблем. За да дадете тази въз-можност на сървърите от състава на виртуалното адресно простран-ство е нужно да маскирате техните адреси.

Page 224: LINUX(Bulgarian Language)

214 ГЛАВА 37. ПОЩАААА! ИЛИ КОНФИГУРИРАНЕ НА SENDMAIL

Page 225: LINUX(Bulgarian Language)

Глава 38

Настройка на BIND

215

Page 226: LINUX(Bulgarian Language)

216 ГЛАВА 38. НАСТРОЙКА НА BIND

Page 227: LINUX(Bulgarian Language)

Част XI

Програмиране под Линукс

217

Page 228: LINUX(Bulgarian Language)
Page 229: LINUX(Bulgarian Language)

Глава 39

Програмиране наобвивката

39.1. Скриптове в BASH

39.2. Скриптове в TCSH

39.3. Регулярни изрази

219

Page 230: LINUX(Bulgarian Language)

220 ГЛАВА 39. ПРОГРАМИРАНЕ НА ОБВИВКАТА

Page 231: LINUX(Bulgarian Language)

Глава 40

Програмни езици за Линукс

221

Page 232: LINUX(Bulgarian Language)

222 ГЛАВА 40. ПРОГРАМНИ ЕЗИЦИ ЗА ЛИНУКС

Page 233: LINUX(Bulgarian Language)

Глава 41

Среди за програмиране

41.1. Въведение

Напоследък Линукс доби голяма популярност, не само като сървър,но и като удобна среда за създаване на приложение. Много програмис-ти свикнали да работят под Windows правят и своите първи стъпки вЛинукс, търсейки удобна, бърза и ЛЕСНА среда за писане.

Това един синтезиран, но бегъл анализ на достъпните среди и ре-дактори, които могат да бъдат в полза на UNIX/Linux и WEB програ-мистите. Този преглед не изключва и комерсиални продукти, тъй тенаистина са добри, а и освен това повечето се предлагат и в безплатен,но донякъде лимитиран вариант. Не са пропуснати и традиционнитесредства, като Emacs и VIM.

41.2. Безплатни програмни среди

Предполагам, че повечето програмисти, които са се насочили къмЛинукс като платформа за разработване биха предпочели освен безп-латна операционна система и безплатна среда за писане. Именно зато-ва ще започна с тях. Длъжен съм да ви предупредя, че този списък не епълен и че някои среди, които по принцип са платени но имат и безп-латен вариант не са включени, така че не бързайте да правите своятизбор преди да сте прочели и за комерсиалните такива.

41.2.1. Source Navigator

Source Navigator, заедно с Insight навремето бяха разработки на CygnusSolutions, но след като последните бяха придобити от RedHat са частот RedHat GNUPro Tools. Благодарение на RedHat сега Source Navigator

223

Page 234: LINUX(Bulgarian Language)

224 ГЛАВА 41. СРЕДИ ЗА ПРОГРАМИРАНЕ

и Insight са безплатну среди за програмиране - и при това едни от най-добрите. Source Navigator е инструмент за анализ на код, докато Insightе графичен frontend на GNU дебъгера - GDB. Тези два инструмента садостъпни не само за Линукс, но и за множество други платформи, по-неже са написани на TCL/TK. Source Navigator определено може да сенарече една професионална среда. Едно от най-големите и предимствае автоматичното генериране на make файлове. Поддържа и може да ра-боти с огромни проекти, които можете да разглеждате както в codeредактора, който разбира C, C++, Java, Tcl, FORTRAN и COBOL, такаи във удобният class browser. Ако използвате някакъв език, различен отпосочените по-горе, можете да си напишете свой парсер.

Документацията на тази прекрасна и професионална среда е достаголяма и добра. Вградената поддръжа на Version системи също е многополезна. Поддържат се RCV, CVS, SCCS и ClearCase.

Искам да отбележа още една интресна подробност. В Source Navigatorможете да преглеждате зависимостите между файловете като графо-ве - почти като UML.

В заключение бих казал, че Source Navigator е правилният избор запрофесионални програмисти, които се налага да работят с много ито големи проекти. Работата с огромно количество файлове винаги етрудна, но силата на Source Navigator е, че с него винаги можете многолесно и бързо да се ориентирате в своят проект.

Всичко за тази прекрасна среда можете да намерите на адрес http://sources.redhat.com/sourcenav/.Не пропускайте и секцията "Links където можете да намерите някол-ко допълнителни парсери, code–complete функция и много други малки иполезни помощници.

41.2.2. KDevelop

KDevelop е официалната среда за разработка на KDE. Освен мно-гото предимства, които има, средата се вписва безпроблемно в KDE иименно затова е най-подходящият, можеби, инструмент за разработва-не на KDE и QT приложения. Подобно на комерсиалните продукти тукимате достъп до много Wizzard–и, инструменти за визуално генерира-не на приложения, вграден дебъгер, парсер на класове, който ви създавадърво на методите и ви позволява да избирате метода от там, вместода го търсите из целият файл.

Друго неоценимо предимство е огромната документация на KDE иQT API-тата и лесният, бърз и удобен help Browser.

Друго, което може да ви хареса е възможността за пълно локализи-ране. За съжаление KDevelop все още не е преведен на български, така,че вероятно няма да можете да се възползвате от тази негова възмож-ност.

Page 235: LINUX(Bulgarian Language)

41.2. БЕЗПЛАТНИ ПРОГРАМНИ СРЕДИ 225

За да синтезирам горното ето какво е тази среда: добра, пълна, под-робно описана и богата на документация среда, подходяща за разработ-ка както на малки, така и на големи проекти. А какво не е: малка, бърза(все пак не е обикновен текстов редактор), лоша ;)

Официалният сайт на KDevelop e http://www.kdevelop.org/. Там може-те да намерите и screenshots, документация, както и да проследите ево-люцията на тази наистина добра среда за писане.

41.2.3. wxStudio

wxStudio, който можете да намерите на адрес http://wxstudio.sf.net/ енаследникът на една комерсиална среда, наречена WipeOut - която дъл-го време беше моят фаворит. За съжаление, когато работих с нейнатабезплатната версия, тя можеше да отвори само до 50 файла и не под-държаше version control система. Сега фирмата, която я разработвашесе отказа от проекта и реши да подпомогне свободният софтуер разра-ботвайки wxStudio. Като наследник на WipeOut вярвам, че това е еднадобра и бърза среда.

На сайтът, който дадох по-горе можете да прочете за всичкитепредимства на тази програмна среда, само част от които са възмож-ностите за разширяване на средата със плъгини, генератор на прило-жения, html базиран help browser, дебъгер и интеграция със CVS и дру-ги системи за контрол на кода. Можете да разгледате и няколкотоscreenshots, които за съжаление са доста малки, но ако сте любопитни- това е още една причина за да посетите сайта и дръпнете изходнияткод (аз вече го правя).

Според авторите за момента средата не е чак толкова готова, нов момента усилено се работи над нея. Това ме прави оптимист, че за вбъдеще ще има много нови и по-добри версии.

41.2.4. Glimmer

Glimmer, е друг редактор на код, който претърпя едно доста бързоразвитие е в момента последната версия, която можете да дръпнетеот http://glimmer.sf.net/ е 1.1.12.

Предимствата на този малък редактор са - добрата интеграция сGNOME, бързина, бързина, бързина и накрая, че разбира не само от C, нои от Ada, Bash/Sh, C/C++, DTML, HTML, Java, Latex, GNU Make, ObjectCaml, Perl, PHP, PO (Language Translation), Python, Lisp (guile, scheme, etc),SGML, SQL, Tcl/Tk, WML, XML, и асемблер за Z80. Ухаааа!! Доста го-лям списък за един наистина малък редактор който освен това може дазапаметява последната сесия, което ви гарантира, че на другият ден щепродължите работа си от там, от където сте я зарязали.

Page 236: LINUX(Bulgarian Language)

226 ГЛАВА 41. СРЕДИ ЗА ПРОГРАМИРАНЕ

Добре де бърз е, но не е чак толкова добър. Липсва му поддръжкатана проекти, която отчасти се компенсира с възможността да разглеж-даш из директориите но това не е съвсем същото. Все пак за малкипроекти Glimmer перфектен.

41.2.5. jEdit

jEdit е първият Java редактор, който ще ви представя. Можеби дос-та от вас са песимистично настроени към Java приложения, но jEdit енаистина забележителен! Последната стабилна версия, която е 3.2.2 еедно истинско бижу, а новата, все още бета 4.0 идва с още по-големиобещания.

Едно от най-големите предимства на този редактор е неговатамощна плъгин архитектура, благодарение на която в момента за тозиредактор има над 40 плъгина. Възможността да се редактират над 60вида програмни езици и скриптове също не е за пренебрегване. jEdit раз-познава безпроблемно форматът на текста - UNIX/DOS/MAC и елими-нира гадните проблеми, когато пишете на повече от една платформа.Като казах повече от една платформа се сетих, че именно заради Java-та този редактор е достъпен за всяка операционна система, за коятоима написана Java виртуална машина - това включва всички Windowsверсии (да! дори и за Windows 3.1 има версия;), повечето комерсиалниUNIX, като HP-UX, AIX, Solaris, както и за някои безплатни - Линукс,FreeBSD (но не и OpenBSD), BeOS .. и други.

Впрочем другото, което забравих да спомена е, че с jEdit можете датърсите из своите файлове използвайки пълните възможности на ре-гулярните изрази, да разглеждате съдържанието на локалната файловасистема или на отдалечен FTP сървър, благодарение на вградените фай-лов менажер и ftp клиент. Не му липсва и поддръжката на макроси илипо-скоро удобен и мощен скрипт, като BeanShell.

Не знам дали успях да ви убедя да го инсталирате, но ви съветвампоне да погледнете screenshot–овете на адрес http://www.jedit.org/.

41.2.6. NetBeans

И след като започнахме с Java приложенията защо да не продължим?Този път не с най-обикновен текстов редактор, а с едно напълно функ-ционално и мощно IDE, като NetBeans.

Когато едно време SUN купиха NetBeans не се и надявах, че ще гопревърнат в успял OpenSource продукт. Не се съмнявайте - това е най-пълното Java IDE създавано някога.

Благодарение отчасти на SWING и най-вече на SkinLF можете дапроменяте изгледа му до неузнаваемост, а модулният принцип, на кой-то е изграден го прави един прекрасен редактор за програмен код, WEB

Page 237: LINUX(Bulgarian Language)

41.2. БЕЗПЛАТНИ ПРОГРАМНИ СРЕДИ 227

страници - статични html-и, сървлети и JSP-та, UML дизайнер, прек-расен дебъгер и builder за графични приложение. И това са малка частот предимствата на тази среда. Ако посетите http://www.netbeans.org/ще можете да научите за последните новини около това IDE, кактои за още купища плъгини, а за почитателите на C/C++ още сега бихпрепоръчал да погледнат на http://cpplite.netbeans.org/.

Признавам, че е удобно да имаш интелигентен редактор на код, classbrowser, дебъгер, вградена CVS поддръжка, но понякога това става засметка на скоростта. Абе няма какво да си кривя душата - NetBeans еедна доста баааавна среда и дори и да имате достатъчно RAM и бързпроцесор, пак няма гаранция, че ще върви много по-бързо.

Въпреки това, NetBeans е едно добро IDE, което е особенно подходя-що за Java програмисти.

41.2.7. Eclipse

Ето и още едно Java IDE, но този път от IBM. Не знам за Вас, ноедин от любимите ми сайтове а http://alphaworks.ibm.com - не че товаима отношение към Eclipse, но има към пристрастрието ми към IBM,които за многото години през които съществуват успяха да докажат,че са добри както във хардуера, така и във софтуера който произвеж-дат и именно това ме прави оптимист за бъдещето на Eclipse.

Макар и да е написано на Java, Eclipse се базира не на AWT или SWING,а на SWT библиотеката. Запознатите с нея много лесно ще разберат закакво говоря - а именно за скорост. Факт е, че почти всеки компонентот тази библиотека вика директно native компонентите за съответ-ната платформа.

Като се има предвид, че Eclipse е OpenSource проект това е усло-вие да придобие една наистина голяма популярност. Аз обаче лично сенадявам да не заприлича прекалено много на Visual Age, който е дос-та по-различен от повечето среди за програмиране и с това донякъдеобъркващ.

Предимството на тази среда е, че разчита на малко и бързо ядро,върху която да се градят плъгин компоненти, които изграждат самотоIDE. Това означава, че ще можете да ползвате Eclipse както за разра-ботка на C/C++, Java, така и WEB базирани проекти.

А ето и откъде да дърпате- http://www.eclipse.org/

41.2.8. Scintilla and Scite

Тук вече свършвам със Javа IDE-та и отново се прехвърлям към мал-ките, удобни и бързи редактори. Scintilla е portable компонент за синтак-тично оцветяване на код, който може да се разширява с допълнителни

Page 238: LINUX(Bulgarian Language)

228 ГЛАВА 41. СРЕДИ ЗА ПРОГРАМИРАНЕ

синтактични парсери и предоставя удобни API-та за code complete - ед-на доста удобна джаджа, характерна за големите IDE-та и започналасвоето начало мисля че от Delphi.

SciTE е прост редактор, който използва тази компонента и се раз-вива от същите разработчици, които правят и Scintilla. Казвам простимайки предвид малък, защото в никакъв случай този редактор не епрост. Дори напротив! Направо се шашнах, когато го инсталирах запръв път и редактирах една малка Java програмка с него. Поиграх си сменютата и реших да видя какво ще направи опцията "Compile за мояизненада тя пусна javac. След това при опит да компилирам обикновен.c файл се сети, че за целта трябва да ползва gcc.

Но това не е всичко. Едно от нещата, които ми хареса и не бях виж-дал до тогава в друго IDE е възможността да скривам кода на опре-делени блокове от програмата - for, while, if, функции , класове... Товаправи живота много по-лек и програмирането доста по–приятно, а ко-да по–четим.

Все пак SciTE не е IDE и му липсва поддръжка за проекти, коетонаистина е необходимо, но пък за сметка на това е прекрасен редактори напоследък се е превърнал в любимият ми такъв (когато ползвам X иредактирам код, ползвам до дори и под Windows).

За повече информация, screenshot-ове и за самата програма, посете-те http://www.scintilla.org/. Интересното е, че създателите се мъчат дасъздадат и .NET порт на този компонент, макар, че аз лично бих пред-почел Java такъв.

41.2.9. Moleskine

Moleskine според създателите му, ще стане официалният редакторна програми за GNOME. Moleskine е написан на Python и използва Scintillaза синтактично оцветяване на кода. Това би трябвало, за разлика отSciTE да бъде IDE но лично според мен все още не е. Въпреки това мисля,че е добре да му хвърлите един поглед на адрес http://www.moleskine.f2s.com/.

Впрочем поддържа следните езици: C , C++, HTML (with embeddedPHP, JavaScript and Python), Java, Latex, Makefile, Pascal, Perl, Python, XML.

41.2.10. Anjuta

Anjuta е следващата среда, която се базира на Scintilla. Идеята наавторите е да създадат една добра среда за писане на C/C++, която дасе интегрира безпроблемно в GNOME. Както според тях, така и споредмен проектът все още не е довършен защото често увисва и затова енапълно неизползваем.

Сигурно вече се чудите защо тогава съм го включил в тази статия.Отговорът е много прост - хареса ми как изглежда. Вие също не бива

Page 239: LINUX(Bulgarian Language)

41.2. БЕЗПЛАТНИ ПРОГРАМНИ СРЕДИ 229

да пропускате да го видите на адрес http://anjuta.sf.net/. Ако сте доволнище чакаме заедно следващите по-стабилни версии.

41.2.11. Quanta

Ето и нещо за сериозните WEB developer-и. Създателите на Quantaса се заели с нелеката задача да направят най-добрата среда за разра-ботка на WEB приложения, която някога е съществувала. Аз лично несъм я пробвал, понеже не работя в тази област но Quanta е спечелилане малко награди и привърженици.

Ето и няколко от основните идеи към които се придържат нейнитесъздатели: максимална гъвкавост и контрол, перфектна производител-ност, леснота при употреба - дори и от начинаещи, свобода на работа,без налагане на ограничение.

В допълнение на това Quanta, може да редактира не само статичниHTML файлове, но и да изгражда PHP сайтове, предотставяйки въз-можност на програмистите да откриват лесно грешките си благода-рение на вграденият дебъгер.

За да синтезирам горното бих казал само едно: Quanta е перфектна-та среда за един WEB developer!!

Можете да я дръпнете от http://quanta.sf.net/

41.2.12. phpmole-IDE

Това е още една среда за WEB програмисти, която също разполагас вграден HTML и PHP редактор. Ще ви изненада ли ако кажа, че товае още един от редакторите, които се базират на Scintilla? Това споредмен е едно доста добро предимство, а и като се има предвид, че автори-те са се възползвали от възможността да предотставят code-completeфункция phpmole-IDE, става една доста добра алтернатива на Quanta.

Ако не друго, то поне си струва да хвърлите един поглед:http://www.akbkhome.com/Projects/Phpmole-IDE/.

41.2.13. RHIDE

А това е средата, която ще хване окото, душата и сърцето на люби-телите на Turbo серията на Borland. Rhide е едно доста по-добро копиена редакторите на Turbo Pascal и Turbo C. Ако сте се занимавали с го-респоментатите компилатори и среди убеден съм, че вече бързате дави дам адреса, а той е http://www.rhide.com/.

Няма да пиша един куп щуротии и да ви убеждавам, че това е най-добрата среда или най-лошата. Това във всеки случай е първата средаот досега представените която върви в текстов режим и не изисква X

Page 240: LINUX(Bulgarian Language)

230 ГЛАВА 41. СРЕДИ ЗА ПРОГРАМИРАНЕ

сървър. Е, това е и основната причина да е толкова бърза, а колкото додругото - Turbo маниаците си знаят ;)

Забравих да спомена - средата я има във версии както за Линукс,така и за DOS, където се разпространява като част от DGJPP пакета,или иначе казано gcc за DOS.

Още нещо интересно - можете да намерите TurboVision за Линукс иDOS (DJGPP) на адрес http://www.geocities.com/setedit2001/tvision.html

41.2.14. motor

Motor е още едно IDE за конзолата, което ще намерите на адресhttp://konst.org.ua/eng/software/motor/info.html . Не е Rhide но все пак ста-ва. Впрочем лично на мен никак не ми харесва, макар и да има вграденаCVS поддръжа - нещо, която липсва на Rhide. Колкото до интерфейса -той е ужасен. Затова отказвам да пиша повече за това IDE.

41.2.15. JED

Ето и една доста по-добра алтернатива на Motor. JED е малък тек-стов редактор създаден от John E. Davis. Той е бърз, мощен, безплатени е достъпен за много и различни платформи, включително и Windows.Първоначално този редактор е бил написан за програмисти, но в крайнасметка той е доста удобен и за останалите, обикновени потребители.

JED може да оцветява кода на няколко програмни езика и има достамощен C-подобен език за скриптове и макроси.

Пълна информация за редактора, както и линкове към допълнителнискриптове и режими на редактиране можете да намерите в интернетна адрес http://space.mit.edu/ davis/jed.

41.3. Комерсиални среди за писане

Един от аргументите на върлите противници на Линукс е, че отнего не могат да се правят пари. Дали това е наистина е така? Етоняколко компании които правят пари от това и да ви кажа успяват.И ако се чудите защо успяват, това е защото успешно могат да секонкурират и с безплатните и open source продукти. А как успяват даиздържат на такава конкуренция? - Ами това са фирми, които знаяткакво правят, знаят как да го направят и предлагат наистина добрисреди за програмиране. Някои от тези по-долу наистина си заслужаватпарите.

Впрочем повечето продукти по-надолу имат и безплатни версии, ко-ито са ограничени донякъде или лицензът им те задължава да ги полз-ваш само за не-комерсиални цели. Когато ги използваш за комерсиален

Page 241: LINUX(Bulgarian Language)

41.3. КОМЕРСИАЛНИ СРЕДИ ЗА ПИСАНЕ 231

продукт вече трябва да си платиш - което между впрочем е съвсем ес-тествено.

41.3.1. C-Forge

Code Forge е едно от най-добрите среди за писани, създавани някогаи достъпни за UNIX потребителите. Казвам UNIX, защото освен подЛинукс можете да подкарате средата и под AIX, Solaris, HP-UX, Tru64UNIX, FreeBSD, SCO и дори QNX.

Това е среда за професионалисти. Напълно съм убеден, че вграденатаподдръжка на CVS, SCCS, PRCS, Perforce и RCS системи за контрол накода, както и автоматичното генериране на Makefile-ове, или merge/diffдопълнението ще се сторят излишни на един добър програмист, рабо-тещ в екип. Пълната поддръжка на Drag and Drop между компоненти-те на средата е още едно удобство, а поддръжката на над 30 програмниезици и различни компилатори правят Code Forge една наистина универ-сална среда.

Освен всичко това, благодарение на QT designer, можете да генери-рате лесно и бързо дори визуалният интерфейс на вашата програма.

Средата се разпространява във 3 варианта - комерсиален, което енай-добрият естествено и струва $62 за студент, $75 за единичен ли-ценз и професионален лиценз от $300 за екип от програмисти.

Вторият вариант е evaluation пакет, който съдържа горният пакет,само че престава да работи след 30 дни.

И третият вариант - безплатната версия, която е доста орязана,без поддръжка на контрол на кода, комерсиални компилатори и поддър-жа само C/C++ и Lex.

Лично аз смятам, че за една фирма професионалният вариант не ечак толкова скъп. За повече информация, погледнете официалният сайт- http://www.codeforge.com/

41.3.2. CodeWarrior

CodeWarrior е още едно IDE, което поддържа различни платформи- Windows, MAC, Linux и дори Palm. Има и специална версия за Java споддръжа на последните стандарти около този език, включително заразработка на wireless приложения.

Ако в работата ви се налага да работите със странни контролерии embedded бордове, CodeWarrior е готов да посрещне нуждите ви. Бла-годарение на своята плъгин архитектура Metrowerks предоставят едноспециализирано IDE което напълно ще отговори на нуждите Ви. Впро-чем компанията е един от създателите на Embedded Linux Consortium.

Page 242: LINUX(Bulgarian Language)

232 ГЛАВА 41. СРЕДИ ЗА ПРОГРАМИРАНЕ

CodeWarrior напоследък придоби доста голяма популярност именнозаради поддръжката на странни контролери, процесори , embedded Ли-нукс дистрибуции и последните Java технологии.

Въпреки, че е една доста добра среда и предлаганата добра поддръж-ка, има един факт, който не я прави толкова приемлива, колкото CodeForge- и това е цената. Понеже тя варира в зависимост от лиценза койтосте избрали и бройките които желаете да закупите най-добре е да пог-леднете на сайта на компанията - http://www.metrowerks.com/

41.3.3. JX Development Suite

Това е пакет, който освен интегрирано решение за разработка насофтуер ви предоставя един от най-добрите дебъгери за Линукс плюспакет от графични компоненти. Пакетът включва редактора CodeCrusader, дебъгер Code Medic и библиотеката от графични компонен-ти JX Framework .

Средата поддържа много и различни езици, както и компилатори,има менажер на проекти, интелигентен редактор на код и диаграми,които можете да запазвате като EPS картинки или директно да раз-печатате.

Това е един доста интересен пакет, който успешно се конкурира съсдругите комерсиални среди. Има демо версия, която не може да отвориповече от 5 прозореца наведнъж, но няма други ограничение. Персонал-ният лиценз е $84 но ако имате компания и желаете да закупите повечебройки можете спокойно да се договорите за цената.

Ето и сайта - http://www.newplanetsoftware.com/

41.3.4. Moonshine

Moonshine е една доста интересна среда и много подобна на JX DevelopmentSuite, която се разпространява както в комерсиална, така и във свобод-на, OpenSource версия. На втората обаче и липсва CVS интеграцията,както и някои други неща, присъстващи в комерсиалният вариант. Ко-мерсиалната версия обаче е само $50 и е можеби една от най-евтинитеплатени среди които описах досега. Това също е най-голямото и предим-ство, иначе не може да се мери нито със CodeForge, нито със CodeWarrior.

Може да се дръпне от http://www.rednecksoft.com/.

41.3.5. SNiFF+

Една от най-големите компании напоследък в света на UNIX е WindRiver. Освен, че притежават не без-известната embedded операцион-на система VxWorks наскоро се сдобиха и с BSD/OS. Освен това разви-ват още един куп продукти, като върху тях работят със своята среда

Page 243: LINUX(Bulgarian Language)

41.3. КОМЕРСИАЛНИ СРЕДИ ЗА ПИСАНЕ 233

SNiFF+. Според тях това не е среда за разработка, а среда за анализ накод - и то на голямо количество такъв.

Това е програма, която помага най-вече при разбирането на кода.Вероятно може и да се ползва за създаването на софтуер но наистинанейна цел е поддържането му - а това, както е известно на повечетопрограмисти понякога е доста по-труден и по-продължителен процесот самото му създаване.

Като част от поддръжката влиза и документирането. Всеки прог-рамист знае, че това е най-неприятната част от писането на еднапрограма, но пък SNiFF+ е много удобна и автоматично ще генерираза вас част от коментарите.

А ако екипът, който поддържа вашият проект работи на различ-ни операционни системи знайте, че SNiFF+ я има във версия, както заWindows, така и за Линукс и други популярни UNIX, но това за моментаизключва BSD.

За Java програмистите има и допълнителна програмка с която мо-жете да създавате визуално графичен интерфейс. Така, че в общи линии,SNiFF+ е една наистина сериозна среда, подходяща за големи компании,чиито програмисти работят в екипи и се налага да разбират, модифи-цират и създават проекти със огромен изходен код.

http://www.windriver.com/products/html/sniff.html - за пълна информация.

41.3.6. Kylix

Borland е компания със традиция в предлагането на средства за раз-работване. Докато Линукс беше млад никой не му обръщаше вниманиеи програмистите пишеха под Windows със една прекрасна среда - Delphi.Delphi, когато се появи направи революция. Сега, когато Borland пусна-ха Kylix (вече има и Kylix 2), който позволи на програмистите бързо илесно да прехвърлят своите програми към Линукс това пак е револю-ция.

Kylix е наистина първата среда, различна от Java, която предоста-вя една относителна платформена независимост. Това е продукт съсвисоко качество и издържан в стила на Borland.

Няма да пиша много за това IDE, мисля, че всеки който знае кои саBorland и разбира за какво става въпрос. Незнаещите могат да получатповече информация от http://www.borland.com/kylix

41.3.7. JBuilder

JBuilder е също среда в духа на Delphi но специализирана за Java. Сама-та среда също е написана на Java и върви на всяка операционна система,за която има и виртуална машина.

Page 244: LINUX(Bulgarian Language)

234 ГЛАВА 41. СРЕДИ ЗА ПРОГРАМИРАНЕ

Тук суперлативите отново са много, затова няма много много дая хваля. Ще изтъкна едно предимство - въпреки, че е на Java е достабърза среда, и един недостатък - когато пишеш визуални приложениебълва доста ненужен код - но това е ’feature’ на всeки визуален builder.

Безплатната версия е много добра, но и липсва интеграцията с мно-гото поддържани Application Server-и от Enterprise версията. Впрочем итя е доста добра и си заслужава да се инсталира или поне да се пробва.

Дърпайте от http://www.borland.com/jbuilder/

41.3.8. CodeGuide

Сега ще ви представя още една комерсиална среда за Java. CodeGuideна Omnicore ме привлече със простият си и елегантен интерфейс, кактои най-интелигентният code-complete който съм виждал някога. Среда-та е достъпна за много операционни системи - Linux, Solaris, Windows иMAC OS X, благодарение на това, че е написана също на Java. Разликатае там, че върви доста бързо за SWING приложение и не изисква Java 2!!!

Windows потребителите имат късмет, че могат да пуснат среда-та със Microsoft-ската виртуална машина, която добре интегрирана соперационната система.

Друго предимство е, че използваният компилатор е Jikes, който еняколко пъти по-бърз от традиционният javac.

Ако работите върху WEB базирани проекти интегрираният Tomcatще ви е от полза.

Многото Wizzards, с чиято помощ можете да генерирате класове,интерфейси и да инсталирате WEB приложения са наистина полезни испестяват време.

Поддържат се системи за контрол над кода и за управление на вер-сиите. Собствениците на мишки с mouse-wheell ще са доволни, че среда-та няма да "забрави"и игнорира това толкова полезно допълнение къммишката.

Естествено, като всяко добро IDE, дебъгерът е вграден и позволявапълен контрол над кода и процесите.

Информация за продукта можете да намерите в интернет на адресhttp://www.omnicore.com/. Evaluation версията можете да използвате запериод от 30 дни след което трябва да заплатите доста солена цена.

41.3.9. Komodo

Komodo е една доста атрактивна среда, която въпреки, че се базирана отвореният проект Mozilla не е безплатен, нито е OpenSource. Товаобаче е първата от представените тук среди създадена специално заскрипт езици, най-вече Perl, Python, TCL.

Page 245: LINUX(Bulgarian Language)

41.3. КОМЕРСИАЛНИ СРЕДИ ЗА ПИСАНЕ 235

Можете да са абонирате или да използвате не-комерсиалната версияна Komodo (но само за не-комерсиални продукти). Повече информацияот http://www.activestate.com/Products/Komodo/

41.3.10. Wing IDE

Wing IDE е още едно специализирано IDE този път за разработкана приложения с Python. Тъй като и самата среда е написана на Pythonпрограмистите му, които са и добри специалисти, са създали и удобендебъгер с който да тествате програмите си. Списъкът с предимства-та му е доста дълъг и няма да го дублирам в тази статия, но ако сеинтересувате погледнете на http://archaeopteryx.com/wingide/.

Тъй като самият аз си нямам и грам представа от Python не мога дакажа своите впечатления от средата. Затова оставям на вас дали дарешите дали да я използвате.

41.3.11. Visual SlickEdit

Това е една друга, доста популярна среда. Тъй като аз самият нямамопит ще ви спомена само някои неща, които ми направиха впечатленияот информацията предотставена на http://www.slickedit.com.

Освен стандартните features, който ще намерите в повечето средивъв SlickEdit имате spellchecker, шестнадесетичен редактор, анализа-тор на код и дори редактор на Javadoc коментари.

Поддържат се следните езици: C/C++, C#, CFScript, DB2, dBASE,Delphi, Pascal, HTML, JSP, ASP, PHP, Java, JavaScript, Perl, PL/SQL, Python,REXX, Transact SQL, VBScript, x86 Assembly, XML, DTD, CICS, COBOL,JCL, PL/I.

41.3.12. mBedded Builder

Това може да прозвучи като реклама, но мисля, че си заслужава даопиша и средата, която се разработва от фирмата в която работя.mBedded Builder е безплатна среда за Java програмисти, но ако искатеда притежавате вграден debuger или profiler трябва да платите за него.

Тя е базирана на мощна плъгин архитектура, която позволява взаи-модействие между различните плъгини.

Графичният интерфейс се базира на собствена UI библиотека, ко-ято определено е по-бърза от SWING. Именно заради това, mBeddedBuilder страда по-малко от комплекса на Java средите, а именно, че садоста бавни.

Повече информация от http://dz.prosyst.com/

Page 246: LINUX(Bulgarian Language)

236 ГЛАВА 41. СРЕДИ ЗА ПРОГРАМИРАНЕ

41.4. Методи на типичният UNIX програмист

За един типичен UNIX програмист горните приказки, ще се сторятбезсмислени. За UNIX гуруто има или EMACS или VIM,а това кой ре-дактор е по-добър се спори от създаването им. Естествено аз не искамда разпалвам спорове и затова ще ви кажа, че и двата редактори саимат предимства но и слаби места.

Докато търсих из интернет материал точно за тези два редакто-ра, попаднах на една статия, която лично според мен е доста интереснаи си струва да прочетете, ако разбирате английски. Ще я намерите наадреса по-долу:http://www-106.ibm.com/developerworks/library/dev-linux.html

Преди да продължа по-нататък искам да ви предупредя, че именноза да избегна споровете, които неизбежно се пораждат от феноветена VIM и EMACS аз реших да не ги описвам. Тъй като намерих някоиинтересни линкове сметнах за добре да ви ги дам все пак, като съмдобавил малък коментар за съдържанието на статиите.

41.4.1. VIM

Основното място от където можете да научите за този популярентекстов редактор е http://www.vim.org/, както и http://vim.sf.net/ - VIMOnline. На тези два сайта е събрана почти цялата информация, коятосъществува за VIM, както и множество полезни скриптове.

Първият сайт, който ми се струва доста полезен е част от HOWTOколекцията към Линукс и можете да намерите на адрес:http://www.linuxdoc.org/HOWTO/C-editing-with-VIM-HOWTO

Междувременно намерих, също много добра статия, която можетеда прочетете в интернет:http://www.linuxnewbie.org/nhf/intel/programming/intro_c++.html

И освен това попаднах на интересен и полезен пакет, който можетеда дръпнете от следното URL:http://members.rogers.com/jayglanville/tagsmenu/

VIM е един полезен и бърз редактор, но като среда няма да се харесана програмистите, които обичат да имат достъп до всеки файл отпроекта си само с кликване на мишката.

41.4.2. Emacs

Ако досега не сте чували за Emacs, сега е момента. Това е една дос-та популярна среда - казвам среда, защото Emacs не се ограничава са-мо до обикновен текстов редактор и за него има написани както mail,

Page 247: LINUX(Bulgarian Language)

41.5. ДРУГИ ПОЛЕЗНИ ИНСТРУМЕНТИ 237

News клиент, така и WEB броузер и много други интересни пакети. Ед-но време, когато нямаше възможност да превключваш между конзоли-те потребителите на Emacs си отваряха виртуални "буфери"които импозволяваха да чатят по IRC, пишат mail и едновременно с това да де-бъгват програмите си. Е и сега е така, само че софтуера еволюира исега с Emacs може да се правят доста повече неща. Впрочем интересене фактът, че GNU Emacs 1 е първият open source проект. Освен то-ва има и други версии на Emacs, като XEmacs 2, MULE 3 ( MULtilingualEnhancement to GNU Emacs) и някои други, по-малко известни версии.

Следните URL-та:http://linux.umbc.edu/tutorials/adv-emacs.htmlhttp://www.mit.edu/iap/unixdev/emacs.htmlсъдържат кратки ръководства как да ползвате Emacs като среда заразработка на програми, а тези по долу: http://cedet.sourceforge.nethttp://jdee.sunsite.dk/http://www.xemacs.org/Download/elispPackages.html#Pса някои малки допълнения към Emacs, които го правят доста атрак-тивен като среда за разработка на приложения.

Колкото до личното ми мнение - мисля, че XEmacs е доста добър иудобен. За съжаление толкова мощ в ръцете на един начинаещ потреби-тел може да се стопи прекалено объркваща и дори стряскаща. Именнозатова смятам, че Emacs е за тези потребители, които са натрупаливече достатъчен опит с UNIX.

41.5. Други полезни инструменти

41.5.1. Doxygen

Doxygen e много полезна система за документиране на код с каква-то Java програмистите отдавна разполагат. Doxygen е един прекрасенпомощник, подобен на javadoc, който може да документира освен Javaтака и C/C++ и IDL. Ако искайте вярвайте, но тази програма безпроб-лемно може да замести javadoc и при това генерираната документацияе много по-красиво оформена.

Освен изход във HTML можете да генерирате RTF, man или LaTeXдокумент, от който после можете да направите PostScript или PDF та-къв. Има много опции с които можете да контролирате изходният види дори може да включва графове, показващи зависимостите, наследява-нията .. изобщо една цялостна клас диаграма, която се генерира напълноавтоматично.

1GNU Emacs - http://www.gnu.org/software/emacs/emacs.html2XEmacs или Lucid Emacs - http://www.xemacs.org/3MULE - http://tsukuba.m17n.org/mule/

Page 248: LINUX(Bulgarian Language)

238 ГЛАВА 41. СРЕДИ ЗА ПРОГРАМИРАНЕ

Тази програмка я има както във варианти за Линукс, така и за многодруги UNIX операционни системи. Windows програмистите също не сапропуснати и дори графичният конфигуратор, написан на QT също едостъпен.

Последната версия на пакета, който се обновява доста често може-те да откриете на http://www.stack.nl/ dimitri/doxygen/.

41.5.2. AStyle и Indent

Всички знаят, че когато се пише в екип и всеки използва различенстил на писане - подравняване, допълнително ограждане в скоби, ин-тервали вместо табулация .. и др., е много трудно да четеш програ-мите, написан от друг. Тези два инструмента, които са твърде подоб-ни решават този проблем, благодарение на възможностите си да пре-форматират кода и да го правят четим.

Не се безпокойте, това пре-форматиране в никакъв случай не зна-чи, че ще загубите част от кода си. И двете програми са тествани отмного програмисти и са достатъчно умни, че да не омажат или затри-ят изцяло вашата работа.

Indent или по-точно GNU Indent вероятно вече имате инсталиранана вашата Линукс система. Ако наистина искате да научите повече занея напишете просто man indent и прегледате съдържанието на доку-мента. Колкото до AStyle (или Artistic Style), него можете да го дръпне-те от http://astyle.sf.net/. Това е и предпочитаният от мен инструмент.Не че Indent е лош, но AStyle e малко по-добър.

41.5.3. CVS

CVS или Concurrent Versions System е система за контрол на кода иуправление на версиите. Такава система не е ’добре да я имаш’ ами изис-кване, когато се отнася за големи проекти. CVS е основен инструментза разработчиците на свободен софтуер и дори най-голямото хранили-ще на такъв софтуер - http://sourceforge.net/ използва именно CVS а ненякоя друга система.

Сред множеството комерсиални системи CVS не е само една от най-добрите, но тя е със сигурност най-използваната. Предимство е не са-мо, че е безплатна, ами сигурна и много гъвкава. Тя позволява да бъдеконфигурирана да използва secure транспорт или благодарение на гор-ните два инструмента да бъде конфигурирана при всяко обновяване накода той да бъде и прилично форматиран.

Колкото и да пиша за CVS не мога да кажа всичко в една статия.За нея има написана дори книга, или май бяха няколко. Впрочем самиможете да проверите на адрес http://www.cvshome.org/

Page 249: LINUX(Bulgarian Language)

Част XII

Приложения

239

Page 250: LINUX(Bulgarian Language)
Page 251: LINUX(Bulgarian Language)

Глава 42

The GNU General PublicLicense

Printed below is the GNU General Public License (the GPL or copyleft),under which Linux is licensed. It is reproduced here to clear up some of theconfusion about Linux’s copyright status — Linux is not shareware, and it is notin the public domain. The bulk of the Linux kernel is copyright c© 1993 by LinusTorvalds, and other software and parts of the kernel are copyrighted by theirauthors. Thus, Linux is copyrighted, however, you may redistribute it under theterms of the GPL printed below.

GNU GENERAL PUBLIC LICENSEVersion 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge,MA 02139, USA.Everyone is permitted to copy and distribute verbatim copies of this licensedocument, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom toshare and change it. By contrast, the GNU General Public License is intendedto guarantee your freedom to share and change free software–to make sure thesoftware is free for all its users. This General Public License applies to mostof the Free Software Foundation’s software and to any other program whoseauthors commit to using it. (Some other Free Software Foundation software iscovered by the GNU Library General Public License instead.) You can apply itto your programs, too.

When we speak of free software, we are referring to freedom, not price. OurGeneral Public Licenses are designed to make sure that you have the freedom

241

Page 252: LINUX(Bulgarian Language)

242 ГЛАВА 42. THE GNU GENERAL PUBLIC LICENSE

to distribute copies of free software (and charge for this service if you wish),that you receive source code or can get it if you want it, that you can change thesoftware or use pieces of it in new free programs; and that you know you cando these things.

To protect your rights, we need to make restrictions that forbid anyone todeny you these rights or to ask you to surrender the rights. These restrictionstranslate to certain responsibilities for you if you distribute copies of the software,or if you modify it.

For example, if you distribute copies of such a program, whether gratis or fora fee, you must give the recipients all the rights that you have. You must makesure that they, too, receive or can get the source code. And you must show themthese terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2)offer you this license which gives you legal permission to copy, distribute and/ormodify the software.

Also, for each author’s protection and ours, we want to make certain thateveryone understands that there is no warranty for this free software. If thesoftware is modified by someone else and passed on, we want its recipients toknow that what they have is not the original, so that any problems introducedby others will not reflect on the original authors’ reputations.

Finally, any free program is threatened constantly by software patents. Wewish to avoid the danger that redistributors of a free program will individuallyobtain patent licenses, in effect making the program proprietary. To preventthis, we have made it clear that any patent must be licensed for everyone’s freeuse or not licensed at all.

The precise terms and conditions for copying, distribution and modificationfollow.

Terms and Conditions for Copying, Distribution, andModification

0. This License applies to any program or other work which contains a noticeplaced by the copyright holder saying it may be distributed under theterms of this General Public License. The “Program“, below, refers toany such program or work, and a “work based on the Program“ meanseither the Program or any derivative work under copyright law: that is tosay, a work containing the Program or a portion of it, either verbatim orwith modifications and/or translated into another language. (Hereinafter,translation is included without limitation in the term “modification“.) Eachlicensee is addressed as “you“.Activities other than copying, distribution and modification are not coveredby this License; they are outside its scope. The act of running the Programis not restricted, and the output from the Program is covered only if its

Page 253: LINUX(Bulgarian Language)

243

contents constitute a work based on the Program (independent of havingbeen made by running the Program). Whether that is true depends onwhat the Program does.

1. You may copy and distribute verbatim copies of the Program’s sourcecode as you receive it, in any medium, provided that you conspicuouslyand appropriately publish on each copy an appropriate copyright noticeand disclaimer of warranty; keep intact all the notices that refer to thisLicense and to the absence of any warranty; and give any other recipientsof the Program a copy of this License along with the Program.You may charge a fee for the physical act of transferring a copy, and youmay at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it,thus forming a work based on the Program, and copy and distribute suchmodifications or work under the terms of Section 1 above, provided thatyou also meet all of these conditions:

a. You must cause the modified files to carry prominent notices statingthat you changed the files and the date of any change.

b. You must cause any work that you distribute or publish, that in wholeor in part contains or is derived from the Program or any part thereof,to be licensed as a whole at no charge to all third parties under theterms of this License.

c. If the modified program normally reads commands interactively whenrun, you must cause it, when started running for such interactiveuse in the most ordinary way, to print or display an announcementincluding an appropriate copyright notice and a notice that thereis no warranty (or else, saying that you provide a warranty) andthat users may redistribute the program under these conditions, andtelling the user how to view a copy of this License. (Exception: ifthe Program itself is interactive but does not normally print such anannouncement, your work based on the Program is not required toprint an announcement.)

These requirements apply to the modified work as a whole. If identifiablesections of that work are not derived from the Program, and can bereasonably considered independent and separate works in themselves,then this License, and its terms, do not apply to those sections whenyou distribute them as separate works. But when you distribute the samesections as part of a whole which is a work based on the Program, thedistribution of the whole must be on the terms of this License, whosepermissions for other licensees extend to the entire whole, and thus toeach and every part regardless of who wrote it.Thus, it is not the intent of this section to claim rights or contest yourrights to work written entirely by you; rather, the intent is to exercise theright to control the distribution of derivative or collective works based onthe Program.

Page 254: LINUX(Bulgarian Language)

244 ГЛАВА 42. THE GNU GENERAL PUBLIC LICENSE

In addition, mere aggregation of another work not based on the Programwith the Program (or with a work based on the Program) on a volume ofa storage or distribution medium does not bring the other work under thescope of this License.

3. You may copy and distribute the Program (or a work based on it, underSection 2) in object code or executable form under the terms of Sections1 and 2 above provided that you also do one of the following:

a. Accompany it with the complete corresponding machine-readablesource code, which must be distributed under the terms of Sections 1and 2 above on a medium customarily used for software interchange;or,

b. Accompany it with a written offer, valid for at least three years, togive any third party, for a charge no more than your cost of physicallyperforming source distribution, a complete machine-readable copy ofthe corresponding source code, to be distributed under the terms ofSections 1 and 2 above on a medium customarily used for softwareinterchange; or,

c. Accompany it with the information you received as to the offer todistribute corresponding source code. (This alternative is allowedonly for noncommercial distribution and only if you received theprogram in object code or executable form with such an offer, inaccord with Subsection b above.)

The source code for a work means the preferred form of the work formaking modifications to it. For an executable work, complete source codemeans all the source code for all modules it contains, plus any associatedinterface definition files, plus the scripts used to control compilation andinstallation of the executable. However, as a special exception, the sourcecode distributed need not include anything that is normally distributed(in either source or binary form) with the major components (compiler,kernel, and so on) of the operating system on which the executable runs,unless that component itself accompanies the executable.If distribution of executable or object code is made by offering access tocopy from a designated place, then offering equivalent access to copy thesource code from the same place counts as distribution of the source code,even though third parties are not compelled to copy the source along withthe object code.

4. You may not copy, modify, sublicense, or distribute the Program exceptas expressly provided under this License. Any attempt otherwise to copy,modify, sublicense or distribute the Program is void, and will automaticallyterminate your rights under this License. However, parties who have receivedcopies, or rights, from you under this License will not have their licensesterminated so long as such parties remain in full compliance.

Page 255: LINUX(Bulgarian Language)

245

5. You are not required to accept this License, since you have not signed it.However, nothing else grants you permission to modify or distribute theProgram or its derivative works. These actions are prohibited by law ifyou do not accept this License. Therefore, by modifying or distributingthe Program (or any work based on the Program), you indicate youracceptance of this License to do so, and all its terms and conditions forcopying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program),the recipient automatically receives a license from the original licensorto copy, distribute or modify the Program subject to these terms andconditions. You may not impose any further restrictions on the recipients’exercise of the rights granted herein. You are not responsible for enforcingcompliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringementor for any other reason (not limited to patent issues), conditions are imposedon you (whether by court order, agreement or otherwise) that contradictthe conditions of this License, they do not excuse you from the conditionsof this License. If you cannot distribute so as to satisfy simultaneously yourobligations under this License and any other pertinent obligations, then asa consequence you may not distribute the Program at all. For example, if apatent license would not permit royalty-free redistribution of the Programby all those who receive copies directly or indirectly through you, then theonly way you could satisfy both it and this License would be to refrainentirely from distribution of the Program.If any portion of this section is held invalid or unenforceable under anyparticular circumstance, the balance of the section is intended to applyand the section as a whole is intended to apply in other circumstances.It is not the purpose of this section to induce you to infringe any patents orother property right claims or to contest validity of any such claims; thissection has the sole purpose of protecting the integrity of the free softwaredistribution system, which is implemented by public license practices. Manypeople have made generous contributions to the wide range of softwaredistributed through that system in reliance on consistent application ofthat system; it is up to the author/donor to decide if he or she is willing todistribute software through any other system and a licensee cannot imposethat choice.This section is intended to make thoroughly clear what is believed to be aconsequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countrieseither by patents or by copyrighted interfaces, the original copyright holderwho places the Program under this License may add an explicit geographicaldistribution limitation excluding those countries, so that distribution ispermitted only in or among countries not thus excluded. In such case,this License incorporates the limitation as if written in the body of thisLicense.

Page 256: LINUX(Bulgarian Language)

246 ГЛАВА 42. THE GNU GENERAL PUBLIC LICENSE

9. The Free Software Foundation may publish revised and/or new versionsof the General Public License from time to time. Such new versions will besimilar in spirit to the present version, but may differ in detail to addressnew problems or concerns.Each version is given a distinguishing version number. If the Programspecifies a version number of this License which applies to it and “any laterversion“, you have the option of following the terms and conditions eitherof that version or of any later version published by the Free SoftwareFoundation. If the Program does not specify a version number of thisLicense, you may choose any version ever published by the Free SoftwareFoundation.

10. If you wish to incorporate parts of the Program into other free programswhose distribution conditions are different, write to the author to askfor permission. For software which is copyrighted by the Free SoftwareFoundation, write to the Free Software Foundation; we sometimes makeexceptions for this. Our decision will be guided by the two goals of preservingthe free status of all derivatives of our free software and of promoting thesharing and reuse of software generally.

NO WARRANTY11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENTPERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISESTATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHERPARTIES PROVIDE THE PROGRAM “AS IS“ WITHOUT WARRANTYOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITYAND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISKAS TO THE QUALITY AND PERFORMANCE OF THE PROGRAMIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIROR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW ORAGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER,OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTETHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOUFOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTALOR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USEOR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOTLIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATEOR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR AFAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHERPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HASBEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

Page 257: LINUX(Bulgarian Language)

247

Appendix: How to Apply These Terms to Your NewPrograms

If you develop a new program, and you want it to be of the greatest possibleuse to the public, the best way to achieve this is to make it free software whicheveryone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attachthem to the start of each source file to most effectively convey the exclusion ofwarranty; and each file should have at least the “copyright“ line and a pointerto where the full notice is found.

one line to give the program’s name and a brief idea of what it does.Copyright c© 19yy name of authorThis program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as publishedby the Free Software Foundation; either version 2 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warrantyof MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free Software Foundation,Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.If the program is interactive, make it output a short notice like this when it

starts in an interactive mode:

Gnomovision version 69, Copyright (C) 19yy name of author Gnomovisioncomes with ABSOLUTELY NO WARRANTY; for details type‘show w’. This is free software, and you are welcome to redistributeit under certain conditions; type ‘show c’ for details.

The hypothetical commands ‘show w’ and ‘show c’ should show the appropriateparts of the General Public License. Of course, the commands you use may becalled something other than ‘show w’ and ‘show c’; they could even be mouse-clicks or menu items — whatever suits your program.

You should also get your employer (if you work as a programmer) or yourschool, if any, to sign a “copyright disclaimer“ for the program, if necessary.Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program‘Gnomovision’ (which makes passes at compilers) written by JamesHacker.signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice

Page 258: LINUX(Bulgarian Language)

248 ГЛАВА 42. THE GNU GENERAL PUBLIC LICENSE

This General Public License does not permit incorporating your programinto proprietary programs. If your program is a subroutine library, you mayconsider it more useful to permit linking proprietary applications with the library.If this is what you want to do, use the GNU Library General Public Licenseinstead of this License.

Page 259: LINUX(Bulgarian Language)

Глава 43

The GNU Library GeneralPublic License

GNU LIBRARY GENERAL PUBLIC LICENSEVersion 2, June 1991

Copyright c© 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge,MA 02139, USA

Everyone is permitted to copy and distribute verbatim copies of this licensedocument, but changing it is not allowed.

[This is the first released version of the library GPL. It is numbered 2 becauseit goes with version 2 of the ordinary GPL.]

Preamble

The licenses for most software are designed to take away your freedom toshare and change it. By contrast, the GNU General Public Licenses are intendedto guarantee your freedom to share and change free software–to make sure thesoftware is free for all its users.

This license, the Library General Public License, applies to some speciallydesignated Free Software Foundation software, and to any other libraries whoseauthors decide to use it. You can use it for your libraries, too.

When we speak of free software, we are referring to freedom, not price. OurGeneral Public Licenses are designed to make sure that you have the freedomto distribute copies of free software (and charge for this service if you wish),that you receive source code or can get it if you want it, that you can change thesoftware or use pieces of it in new free programs; and that you know you cando these things.

To protect your rights, we need to make restrictions that forbid anyone todeny you these rights or to ask you to surrender the rights. These restrictions

249

Page 260: LINUX(Bulgarian Language)

250 ГЛАВА 43. THE GNU LIBRARY GENERAL PUBLIC LICENSE

translate to certain responsibilities for you if you distribute copies of the library,or if you modify it.

For example, if you distribute copies of the library, whether gratis or for afee, you must give the recipients all the rights that we gave you. You must makesure that they, too, receive or can get the source code. If you link a programwith the library, you must provide complete object files to the recipients so thatthey can relink them with the library, after making changes to the library andrecompiling it. And you must show them these terms so they know their rights.

Our method of protecting your rights has two steps: (1) copyright the library,and (2) offer you this license which gives you legal permission to copy, distributeand/or modify the library.

Also, for each distributor’s protection, we want to make certain that everyoneunderstands that there is no warranty for this free library. If the library ismodified by someone else and passed on, we want its recipients to know thatwhat they have is not the original version, so that any problems introduced byothers will not reflect on the original authors’ reputations.

Finally, any free program is threatened constantly by software patents. Wewish to avoid the danger that companies distributing free software will individuallyobtain patent licenses, thus in effect transforming the program into proprietarysoftware. To prevent this, we have made it clear that any patent must be licensedfor everyone’s free use or not licensed at all.

Most GNU software, including some libraries, is covered by the ordinaryGNU General Public License, which was designed for utility programs. Thislicense, the GNU Library General Public License, applies to certain designatedlibraries. This license is quite different from the ordinary one; be sure to readit in full, and don’t assume that anything in it is the same as in the ordinarylicense.

The reason we have a separate public license for some libraries is that theyblur the distinction we usually make between modifying or adding to a programand simply using it. Linking a program with a library, without changing thelibrary, is in some sense simply using the library, and is analogous to running autility program or application program. However, in a textual and legal sense,the linked executable is a combined work, a derivative of the original library,and the ordinary General Public License treats it as such.

Because of this blurred distinction, using the ordinary General Public Licensefor libraries did not effectively promote software sharing, because most developersdid not use the libraries. We concluded that weaker conditions might promotesharing better.

However, unrestricted linking of non-free programs would deprive the usersof those programs of all benefit from the free status of the libraries themselves.This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user ofsuch programs to change the free libraries that are incorporated in them. (Wehave not seen how to achieve this as regards changes in header files, but we

Page 261: LINUX(Bulgarian Language)

251

have achieved it as regards changes in the actual functions of the Library.) Thehope is that this will lead to faster development of free libraries.

The precise terms and conditions for copying, distribution and modificationfollow. Pay close attention to the difference between a “work based on thelibrary“ and a “work that uses the library“. The former contains code derivedfrom the library, while the latter only works together with the library.

Note that it is possible for a library to be covered by the ordinary GeneralPublic License rather than by this special one.

Terms and Conditions for Copying, Distribution andModification

0. This License Agreement applies to any software library which contains anotice placed by the copyright holder or other authorized party saying itmay be distributed under the terms of this Library General Public License(also called “this License“). Each licensee is addressed as “you“.A “library“ means a collection of software functions and/or data preparedso as to be conveniently linked with application programs (which use someof those functions and data) to form executables.The “Library“, below, refers to any such software library or work whichhas been distributed under these terms. A “work based on the Library“means either the Library or any derivative work under copyright law:that is to say, a work containing the Library or a portion of it, eitherverbatim or with modifications and/or translated straightforwardly intoanother language. (Hereinafter, translation is included without limitationin the term “modification“.)“Source code“ for a work means the preferred form of the work formaking modifications to it. For a library, complete source code means allthe source code for all modules it contains, plus any associated interfacedefinition files, plus the scripts used to control compilation and installationof the library.Activities other than copying, distribution and modification are not coveredby this License; they are outside its scope. The act of running a programusing the Library is not restricted, and output from such a program iscovered only if its contents constitute a work based on the Library (independentof the use of the Library in a tool for writing it). Whether that is truedepends on what the Library does and what the program that uses theLibrary does.

1. You may copy and distribute verbatim copies of the Library’s completesource code as you receive it, in any medium, provided that you conspicuouslyand appropriately publish on each copy an appropriate copyright noticeand disclaimer of warranty; keep intact all the notices that refer to this

Page 262: LINUX(Bulgarian Language)

252 ГЛАВА 43. THE GNU LIBRARY GENERAL PUBLIC LICENSE

License and to the absence of any warranty; and distribute a copy of thisLicense along with the Library.You may charge a fee for the physical act of transferring a copy, and youmay at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Library or any portion of it,thus forming a work based on the Library, and copy and distribute suchmodifications or work under the terms of Section 1 above, provided thatyou also meet all of these conditions:

a. The modified work must itself be a software library.

b. You must cause the files modified to carry prominent notices statingthat you changed the files and the date of any change.

c. You must cause the whole of the work to be licensed at no charge toall third parties under the terms of this License.

d. If a facility in the modified Library refers to a function or a table ofdata to be supplied by an application program that uses the facility,other than as an argument passed when the facility is invoked, thenyou must make a good faith effort to ensure that, in the event anapplication does not supply such function or table, the facility stilloperates, and performs whatever part of its purpose remains meaningful.(For example, a function in a library to compute square roots has apurpose that is entirely well-defined independent of the application.Therefore, Subsection 2d requires that any application-supplied functionor table used by this function must be optional: if the applicationdoes not supply it, the square root function must still compute squareroots.)

These requirements apply to the modified work as a whole. If identifiablesections of that work are not derived from the Library, and can be reasonablyconsidered independent and separate works in themselves, then this License,and its terms, do not apply to those sections when you distribute them asseparate works. But when you distribute the same sections as part of awhole which is a work based on the Library, the distribution of the wholemust be on the terms of this License, whose permissions for other licenseesextend to the entire whole, and thus to each and every part regardless ofwho wrote it.Thus, it is not the intent of this section to claim rights or contest yourrights to work written entirely by you; rather, the intent is to exercise theright to control the distribution of derivative or collective works based onthe Library.In addition, mere aggregation of another work not based on the Librarywith the Library (or with a work based on the Library) on a volume of astorage or distribution medium does not bring the other work under thescope of this License.

Page 263: LINUX(Bulgarian Language)

253

3. You may opt to apply the terms of the ordinary GNU General PublicLicense instead of this License to a given copy of the Library. To do this,you must alter all the notices that refer to this License, so that they referto the ordinary GNU General Public License, version 2, instead of to thisLicense. (If a newer version than version 2 of the ordinary GNU GeneralPublic License has appeared, then you can specify that version instead ifyou wish.) Do not make any other change in these notices.Once this change is made in a given copy, it is irreversible for that copy,so the ordinary GNU General Public License applies to all subsequentcopies and derivative works made from that copy.This option is useful when you wish to copy part of the code of the Libraryinto a program that is not a library.

4. You may copy and distribute the Library (or a portion or derivative ofit, under Section 2) in object code or executable form under the terms ofSections 1 and 2 above provided that you accompany it with the completecorresponding machine-readable source code, which must be distributedunder the terms of Sections 1 and 2 above on a medium customarily usedfor software interchange.If distribution of object code is made by offering access to copy from adesignated place, then offering equivalent access to copy the source codefrom the same place satisfies the requirement to distribute the source code,even though third parties are not compelled to copy the source along withthe object code.

5. A program that contains no derivative of any portion of the Library, butis designed to work with the Library by being compiled or linked with it,is called a “work that uses the Library“. Such a work, in isolation, is nota derivative work of the Library, and therefore falls outside the scope ofthis License.However, linking a “work that uses the Library“ with the Library createsan executable that is a derivative of the Library (because it contains portionsof the Library), rather than a “work that uses the library“. The executableis therefore covered by this License. Section 6 states terms for distributionof such executables.When a “work that uses the Library“ uses material from a header file thatis part of the Library, the object code for the work may be a derivativework of the Library even though the source code is not. Whether this istrue is especially significant if the work can be linked without the Library,or if the work is itself a library. The threshold for this to be true is notprecisely defined by law.If such an object file uses only numerical parameters, data structure layoutsand accessors, and small macros and small inline functions (ten lines orless in length), then the use of the object file is unrestricted, regardless ofwhether it is legally a derivative work. (Executables containing this objectcode plus portions of the Library will still fall under Section 6.)

Page 264: LINUX(Bulgarian Language)

254 ГЛАВА 43. THE GNU LIBRARY GENERAL PUBLIC LICENSE

Otherwise, if the work is a derivative of the Library, you may distribute theobject code for the work under the terms of Section 6. Any executablescontaining that work also fall under Section 6, whether or not they arelinked directly with the Library itself.

6. As an exception to the Sections above, you may also compile or link a“work that uses the Library“ with the Library to produce a work containingportions of the Library, and distribute that work under terms of yourchoice, provided that the terms permit modification of the work for thecustomer’s own use and reverse engineering for debugging such modifications.You must give prominent notice with each copy of the work that theLibrary is used in it and that the Library and its use are covered bythis License. You must supply a copy of this License. If the work duringexecution displays copyright notices, you must include the copyright noticefor the Library among them, as well as a reference directing the user tothe copy of this License. Also, you must do one of these things:

a. Accompany the work with the complete corresponding machine-readablesource code for the Library including whatever changes were used inthe work (which must be distributed under Sections 1 and 2 above);and, if the work is an executable linked with the Library, with thecomplete machine-readable "work that uses the Library as object codeand/or source code, so that the user can modify the Library andthen relink to produce a modified executable containing the modifiedLibrary. (It is understood that the user who changes the contents ofdefinitions files in the Library will not necessarily be able to recompilethe application to use the modified definitions.)

b. Accompany the work with a written offer, valid for at least threeyears, to give the same user the materials specified in Subsection6a, above, for a charge no more than the cost of performing thisdistribution.

c. If distribution of the work is made by offering access to copy from adesignated place, offer equivalent access to copy the above specifiedmaterials from the same place.

d. Verify that the user has already received a copy of these materials orthat you have already sent this user a copy.

For an executable, the required form of the "work that uses the Library"mustinclude any data and utility programs needed for reproducing the executablefrom it. However, as a special exception, the source code distributed neednot include anything that is normally distributed (in either source or binaryform) with the major components (compiler, kernel, and so on) of theoperating system on which the executable runs, unless that componentitself accompanies the executable.It may happen that this requirement contradicts the license restrictions ofother proprietary libraries that do not normally accompany the operating

Page 265: LINUX(Bulgarian Language)

255

system. Such a contradiction means you cannot use both them and theLibrary together in an executable that you distribute.

7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not coveredby this License, and distribute such a combined library, provided that theseparate distribution of the work based on the Library and of the otherlibrary facilities is otherwise permitted, and provided that you do thesetwo things:

a. Accompany the combined library with a copy of the same work basedon the Library, uncombined with any other library facilities. Thismust be distributed under the terms of the Sections above.

b. Give prominent notice with the combined library of the fact that partof it is a work based on the Library, and explaining where to find theaccompanying uncombined form of the same work.

8. You may not copy, modify, sublicense, link with, or distribute the Libraryexcept as expressly provided under this License. Any attempt otherwiseto copy, modify, sublicense, link with, or distribute the Library is void,and will automatically terminate your rights under this License. However,parties who have received copies, or rights, from you under this Licensewill not have their licenses terminated so long as such parties remain infull compliance.

9. You are not required to accept this License, since you have not signed it.However, nothing else grants you permission to modify or distribute theLibrary or its derivative works. These actions are prohibited by law if youdo not accept this License. Therefore, by modifying or distributing theLibrary (or any work based on the Library), you indicate your acceptanceof this License to do so, and all its terms and conditions for copying,distributing or modifying the Library or works based on it.

10. Each time you redistribute the Library (or any work based on the Library),the recipient automatically receives a license from the original licensor tocopy, distribute, link with or modify the Library subject to these terms andconditions. You may not impose any further restrictions on the recipients’exercise of the rights granted herein. You are not responsible for enforcingcompliance by third parties to this License.

11. If, as a consequence of a court judgment or allegation of patent infringementor for any other reason (not limited to patent issues), conditions are imposedon you (whether by court order, agreement or otherwise) that contradictthe conditions of this License, they do not excuse you from the conditionsof this License. If you cannot distribute so as to satisfy simultaneously yourobligations under this License and any other pertinent obligations, then asa consequence you may not distribute the Library at all. For example, if apatent license would not permit royalty-free redistribution of the Libraryby all those who receive copies directly or indirectly through you, then the

Page 266: LINUX(Bulgarian Language)

256 ГЛАВА 43. THE GNU LIBRARY GENERAL PUBLIC LICENSE

only way you could satisfy both it and this License would be to refrainentirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under anyparticular circumstance, the balance of the section is intended to apply,and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents orother property right claims or to contest validity of any such claims; thissection has the sole purpose of protecting the integrity of the free softwaredistribution system which is implemented by public license practices. Manypeople have made generous contributions to the wide range of softwaredistributed through that system in reliance on consistent application ofthat system; it is up to the author/donor to decide if he or she is willing todistribute software through any other system and a licensee cannot imposethat choice.

This section is intended to make thoroughly clear what is believed to be aconsequence of the rest of this License.

12. If the distribution and/or use of the Library is restricted in certain countrieseither by patents or by copyrighted interfaces, the original copyright holderwho places the Library under this License may add an explicit geographicaldistribution limitation excluding those countries, so that distribution ispermitted only in or among countries not thus excluded. In such case,this License incorporates the limitation as if written in the body of thisLicense.

13. The Free Software Foundation may publish revised and/or new versions ofthe Library General Public License from time to time. Such new versionswill be similar in spirit to the present version, but may differ in detail toaddress new problems or concerns.

Each version is given a distinguishing version number. If the Library specifiesa version number of this License which applies to it and "any later version youhave the option of following the terms and conditions either of that versionor of any later version published by the Free Software Foundation. If theLibrary does not specify a license version number, you may choose anyversion ever published by the Free Software Foundation.

14. If you wish to incorporate parts of the Library into other free programswhose distribution conditions are incompatible with these, write to theauthor to ask for permission. For software which is copyrighted by theFree Software Foundation, write to the Free Software Foundation; wesometimes make exceptions for this. Our decision will be guided by thetwo goals of preserving the free status of all derivatives of our free softwareand of promoting the sharing and reuse of software generally.

Page 267: LINUX(Bulgarian Language)

257

NO WARRANTY

11. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THEREIS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTEDBY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIESPROVIDE THE LIBRARY "AS IS"WITHOUT WARRANTY OF ANYKIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOTLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITYAND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISKAS TO THE QUALITY AND PERFORMANCE OF THE LIBRARYIS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOUASSUME THE COST OF ALL NECESSARY SERVICING, REPAIROR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW ORAGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER,OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTETHE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOUFOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTALOR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USEOR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOTLIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATEOR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR AFAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHERSOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HASBEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

How to Apply These Terms to Your New Libraries

If you develop a new library, and you want it to be of the greatest possibleuse to the public, we recommend making it free software that everyone canredistribute and change. You can do so by permitting redistribution under theseterms (or, alternatively, under the terms of the ordinary General Public License).

To apply these terms, attach the following notices to the library. It is safestto attach them to the start of each source file to most effectively convey theexclusion of warranty; and each file should have at least the “copyright“ lineand a pointer to where the full notice is found.

one line to give the library’s name and a brief idea of what it does.Copyright (C) year name of author

This library is free software; you can redistribute it and/or modifyit under the terms of the GNU Library General Public License as

Page 268: LINUX(Bulgarian Language)

258 ГЛАВА 43. THE GNU LIBRARY GENERAL PUBLIC LICENSE

published by the Free Software Foundation; either version 2 of theLicense, or (at your option) any later version.This library is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warrantyof MERCHANTABILITY or FITNESS FOR A PARTICULARPURPOSE. See the GNU Library General Public License for moredetails.You should have received a copy of the GNU Library GeneralPublic License along with this library; if not, write to the Free SoftwareFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.You should also get your employer (if you work as a programmer) or your

school, if any, to sign a “copyright disclaimer“ for the library, if necessary. Hereis a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the library‘Frob’ (a library for tweaking knobs) written by James RandomHacker.signature of Ty Coon, 1 April 1990Ty Coon, President of Vice

That’s all there is to it!

Page 269: LINUX(Bulgarian Language)

Глава 44

GNU Free DocumentationLicense

Version 1.1, March 2000

Copyright c© 2000 Free Software Foundation, Inc.59 Temple Place, Suite 330, Boston, MA 02111-1307 USAEveryone is permitted to copy and distribute verbatim copies of this licensedocument, but changing it is not allowed.

Preamble

The purpose of this License is to make a manual, textbook, or other writtendocument “free“ in the sense of freedom: to assure everyone the effective freedomto copy and redistribute it, with or without modifying it, either commerciallyor noncommercially. Secondarily, this License preserves for the author andpublisher a way to get credit for their work, while not being considered responsiblefor modifications made by others.

This License is a kind of “copyleft“, which means that derivative works of thedocument must themselves be free in the same sense. It complements the GNUGeneral Public License, which is a copyleft license designed for free software.

We have designed this License in order to use it for manuals for free software,because free software needs free documentation: a free program should comewith manuals providing the same freedoms that the software does. But thisLicense is not limited to software manuals; it can be used for any textual work,regardless of subject matter or whether it is published as a printed book. Werecommend this License principally for works whose purpose is instruction orreference.

259

Page 270: LINUX(Bulgarian Language)

260 ГЛАВА 44. GNU FREE DOCUMENTATION LICENSE

Applicability and Definitions

This License applies to any manual or other work that contains a noticeplaced by the copyright holder saying it can be distributed under the terms ofthis License. The “Document“, below, refers to any such manual or work. Anymember of the public is a licensee, and is addressed as “you“.

A “Modified Version“ of the Document means any work containing theDocument or a portion of it, either copied verbatim, or with modificationsand/or translated into another language.

A “Secondary Section“ is a named appendix or a front-matter section ofthe Document that deals exclusively with the relationship of the publishersor authors of the Document to the Document’s overall subject (or to relatedmatters) and contains nothing that could fall directly within that overall subject.(For example, if the Document is in part a textbook of mathematics, a SecondarySection may not explain any mathematics.) The relationship could be a matterof historical connection with the subject or with related matters, or of legal,commercial, philosophical, ethical or political position regarding them.

The “Invariant Sections“ are certain Secondary Sections whose titles aredesignated, as being those of Invariant Sections, in the notice that says that theDocument is released under this License.

The “Cover Texts“ are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document isreleased under this License.

A “Transparent“ copy of the Document means a machine-readable copy,represented in a format whose specification is available to the general public,whose contents can be viewed and edited directly and straightforwardly withgeneric text editors or (for images composed of pixels) generic paint programsor (for drawings) some widely available drawing editor, and that is suitablefor input to text formatters or for automatic translation to a variety of formatssuitable for input to text formatters. A copy made in an otherwise Transparentfile format whose markup has been designed to thwart or discourage subsequentmodification by readers is not Transparent. A copy that is not “Transparent“ iscalled “Opaque“.

Examples of suitable formats for Transparent copies include plain ASCIIwithout markup, Texinfo input format, LATEX input format, SGML or XMLusing a publicly available DTD, and standard-conforming simple HTML designedfor human modification. Opaque formats include PostScript, PDF, proprietaryformats that can be read and edited only by proprietary word processors, SGMLor XML for which the DTD and/or processing tools are not generally available,and the machine-generated HTML produced by some word processors for outputpurposes only.

The “Title Page“ means, for a printed book, the title page itself, plus suchfollowing pages as are needed to hold, legibly, the material this License requiresto appear in the title page. For works in formats which do not have any title

Page 271: LINUX(Bulgarian Language)

261

page as such, “Title Page“ means the text near the most prominent appearanceof the work’s title, preceding the beginning of the body of the text.

Verbatim Copying

You may copy and distribute the Document in any medium, either commerciallyor noncommercially, provided that this License, the copyright notices, and thelicense notice saying this License applies to the Document are reproduced inall copies, and that you add no other conditions whatsoever to those of thisLicense. You may not use technical measures to obstruct or control the readingor further copying of the copies you make or distribute. However, you mayaccept compensation in exchange for copies. If you distribute a large enoughnumber of copies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and youmay publicly display copies.

Copying in Quantity

If you publish printed copies of the Document numbering more than 100,and the Document’s license notice requires Cover Texts, you must enclose thecopies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Bothcovers must also clearly and legibly identify you as the publisher of these copies.The front cover must present the full title with all words of the title equallyprominent and visible. You may add other material on the covers in addition.Copying with changes limited to the covers, as long as they preserve the title ofthe Document and satisfy these conditions, can be treated as verbatim copyingin other respects.

If the required texts for either cover are too voluminous to fit legibly, youshould put the first ones listed (as many as fit reasonably) on the actual cover,and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numberingmore than 100, you must either include a machine-readable Transparent copyalong with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copyof the Document, free of added material, which the general network-usingpublic has access to download anonymously at no charge using public-standardnetwork protocols. If you use the latter option, you must take reasonably prudentsteps, when you begin distribution of Opaque copies in quantity, to ensure thatthis Transparent copy will remain thus accessible at the stated location until atleast one year after the last time you distribute an Opaque copy (directly orthrough your agents or retailers) of that edition to the public.

Page 272: LINUX(Bulgarian Language)

262 ГЛАВА 44. GNU FREE DOCUMENTATION LICENSE

It is requested, but not required, that you contact the authors of the Documentwell before redistributing any large number of copies, to give them a chance toprovide you with an updated version of the Document.

Modifications

You may copy and distribute a Modified Version of the Document underthe conditions of sections 2 and 3 above, provided that you release the ModifiedVersion under precisely this License, with the Modified Version filling the roleof the Document, thus licensing distribution and modification of the ModifiedVersion to whoever possesses a copy of it. In addition, you must do these thingsin the Modified Version:

– Use in the Title Page (and on the covers, if any) a title distinct from thatof the Document, and from those of previous versions (which should, ifthere were any, be listed in the History section of the Document). Youmay use the same title as a previous version if the original publisher ofthat version gives permission.

– List on the Title Page, as authors, one or more persons or entities responsiblefor authorship of the modifications in the Modified Version, together withat least five of the principal authors of the Document (all of its principalauthors, if it has less than five).

– State on the Title page the name of the publisher of the Modified Version,as the publisher.

– Preserve all the copyright notices of the Document.

– Add an appropriate copyright notice for your modifications adjacent tothe other copyright notices.

– Include, immediately after the copyright notices, a license notice givingthe public permission to use the Modified Version under the terms of thisLicense, in the form shown in the Addendum below.

– Preserve in that license notice the full lists of Invariant Sections and requiredCover Texts given in the Document’s license notice.

– Include an unaltered copy of this License.

– Preserve the section entitled “History“, and its title, and add to it an itemstating at least the title, year, new authors, and publisher of the ModifiedVersion as given on the Title Page. If there is no section entitled “History“in the Document, create one stating the title, year, authors, and publisherof the Document as given on its Title Page, then add an item describingthe Modified Version as stated in the previous sentence.

– Preserve the network location, if any, given in the Document for publicaccess to a Transparent copy of the Document, and likewise the networklocations given in the Document for previous versions it was based on.

Page 273: LINUX(Bulgarian Language)

263

These may be placed in the “History“ section. You may omit a networklocation for a work that was published at least four years before theDocument itself, or if the original publisher of the version it refers to givespermission.

– In any section entitled “Acknowledgements“ or “Dedications“, preservethe section’s title, and preserve in the section all the substance and toneof each of the contributor acknowledgements and/or dedications giventherein.

– Preserve all the Invariant Sections of the Document, unaltered in their textand in their titles. Section numbers or the equivalent are not consideredpart of the section titles.

– Delete any section entitled “Endorsements“. Such a section may not beincluded in the Modified Version.

– Do not retitle any existing section as “Endorsements“ or to conflict in titlewith any Invariant Section.

If the Modified Version includes new front-matter sections or appendicesthat qualify as Secondary Sections and contain no material copied from theDocument, you may at your option designate some or all of these sections asinvariant. To do this, add their titles to the list of Invariant Sections in theModified Version’s license notice. These titles must be distinct from any othersection titles.

You may add a section entitled “Endorsements“, provided it contains nothingbut endorsements of your Modified Version by various parties – for example,statements of peer review or that the text has been approved by an organizationas the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and apassage of up to 25 words as a Back-Cover Text, to the end of the list of CoverTexts in the Modified Version. Only one passage of Front-Cover Text and oneof Back-Cover Text may be added by (or through arrangements made by) anyone entity. If the Document already includes a cover text for the same cover,previously added by you or by arrangement made by the same entity you areacting on behalf of, you may not add another; but you may replace the old one,on explicit permission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License givepermission to use their names for publicity for or to assert or imply endorsementof any Modified Version.

Combining Documents

You may combine the Document with other documents released under thisLicense, under the terms defined in section 4 above for modified versions,provided that you include in the combination all of the Invariant Sections of all

Page 274: LINUX(Bulgarian Language)

264 ГЛАВА 44. GNU FREE DOCUMENTATION LICENSE

of the original documents, unmodified, and list them all as Invariant Sections ofyour combined work in its license notice.

The combined work need only contain one copy of this License, and multipleidentical Invariant Sections may be replaced with a single copy. If there aremultiple Invariant Sections with the same name but different contents, makethe title of each such section unique by adding at the end of it, in parentheses,the name of the original author or publisher of that section if known, or elsea unique number. Make the same adjustment to the section titles in the list ofInvariant Sections in the license notice of the combined work.

In the combination, you must combine any sections entitled “History“ inthe various original documents, forming one section entitled “History“; likewisecombine any sections entitled “Acknowledgements“, and any sections entitled“Dedications“. You must delete all sections entitled “Endorsements.“

Collections of Documents

You may make a collection consisting of the Document and other documentsreleased under this License, and replace the individual copies of this Licensein the various documents with a single copy that is included in the collection,provided that you follow the rules of this License for verbatim copying of eachof the documents in all other respects.

You may extract a single document from such a collection, and distribute itindividually under this License, provided you insert a copy of this License intothe extracted document, and follow this License in all other respects regardingverbatim copying of that document.

Aggregation With Independent Works

A compilation of the Document or its derivatives with other separate andindependent documents or works, in or on a volume of a storage or distributionmedium, does not as a whole count as a Modified Version of the Document,provided no compilation copyright is claimed for the compilation. Such a compilationis called an “aggregate“, and this License does not apply to the other self-contained works thus compiled with the Document, on account of their beingthus compiled, if they are not themselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of theDocument, then if the Document is less than one quarter of the entire aggregate,the Document’s Cover Texts may be placed on covers that surround only theDocument within the aggregate. Otherwise they must appear on covers aroundthe whole aggregate.

Page 275: LINUX(Bulgarian Language)

265

Translation

Translation is considered a kind of modification, so you may distribute translationsof the Document under the terms of section 4. Replacing Invariant Sectionswith translations requires special permission from their copyright holders, butyou may include translations of some or all Invariant Sections in addition tothe original versions of these Invariant Sections. You may include a translationof this License provided that you also include the original English version ofthis License. In case of a disagreement between the translation and the originalEnglish version of this License, the original English version will prevail.

Termination

You may not copy, modify, sublicense, or distribute the Document except asexpressly provided for under this License. Any other attempt to copy, modify,sublicense or distribute the Document is void, and will automatically terminateyour rights under this License. However, parties who have received copies, orrights, from you under this License will not have their licenses terminated solong as such parties remain in full compliance.

Future Revisions of This License

The Free Software Foundation may publish new, revised versions of theGNU Free Documentation License from time to time. Such new versions willbe similar in spirit to the present version, but may differ in detail to address newproblems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. Ifthe Document specifies that a particular numbered version of this License "orany later version"applies to it, you have the option of following the terms andconditions either of that specified version or of any later version that has beenpublished (not as a draft) by the Free Software Foundation. If the Documentdoes not specify a version number of this License, you may choose any versionever published (not as a draft) by the Free Software Foundation.

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of theLicense in the document and put the following copyright and license notices justafter the title page:

Copyright c© YEAR YOUR NAME. Permission is granted to copy,distribute and/or modify this document under the terms of the GNU

Page 276: LINUX(Bulgarian Language)

266 ГЛАВА 44. GNU FREE DOCUMENTATION LICENSE

Free Documentation License, Version 1.1 or any later version publishedby the Free Software Foundation; with the Invariant Sections beingLIST THEIR TITLES, with the Front-Cover Texts being LIST, andwith the Back-Cover Texts being LIST. A copy of the license isincluded in the section entitled “GNU Free Documentation License“.

If you have no Invariant Sections, write “with no Invariant Sections“ insteadof saying which ones are invariant. If you have no Front-Cover Texts, write “noFront-Cover Texts“ instead of “Front-Cover Texts being LIST“; likewise forBack-Cover Texts.

If your document contains nontrivial examples of program code, we recommendreleasing these examples in parallel under your choice of free software license,such as the GNU General Public License, to permit their use in free software.

Page 277: LINUX(Bulgarian Language)

Глава 45

The GNU General PublicLicense - Български Превод

1

Printed below is the GNU General Public License (the GPL or copyleft),under which Linux is licensed. It is reproduced here to clear up some of theconfusion about Linux’s copyright status — Linux is not shareware, and it is notin the public domain. The bulk of the Linux kernel is copyright c© 1993 by LinusTorvalds, and other software and parts of the kernel are copyrighted by theirauthors. Thus, Linux is copyrighted, however, you may redistribute it under theterms of the GPL printed below.

ОБЩО ПРАВО НА ОБЩЕСТВЕНО ПОЛЗВАНЕ ГНУВерсия 2 , Юни 1991

Авторски права c© 1989, 1991 Фондация за Свободни Програми,Инк.59 Темпъл плейс, Офис 330 Бостън MA 02111-1307 САЩРазрешено е възпроизвеждането и разпространението на точни копияна този документ, но промяната му не е разрешена.

1Това е неофициален превод на Общото Право на Обществено Ползване ГНУ (GNUGeneral Public License - GNU GPL). Той не е публикуван от Фондацията за Свободнипрограми и не е законно основание за условията на разпространение на програмите койтоизползват Общото Право на Обществено Ползване ГНУ - само оригиналният английскитекст е такова основание. Въпреки това се надяваме, че този превод ще помогне наговорещите български език да разберат Общото Право на Обществено Ползване ГНУпо добре.Оригиналът на този превод може да се намери на адресhttp://bulgaria.sourceforge.net/prava/gplbg.html

267

Page 278: LINUX(Bulgarian Language)

268 ГЛАВА 45. THE GNU GENERAL PUBLIC LICENSE - БЪЛГАРСКИ ПРЕВОД

Въведение

Правата на ползване на повечето програмни продукти са създаденитака,че да Ви отнемат свободата да ги обменяте или променяте. Об-щото Право на Обществено Ползване ГНУ е предназначено да гаран-тира Вашата свобода да обменяте или променяте свободните програ-ми - както и да гарантира ,че програмите са свободни за всички пот-ребители. Това Общото Право на Обществено Ползване е в сила заповечето от програмите на Фондацията, както и за програми чиитоавтори са решили да го използват. (За някои от програмите на Фонда-цията е в сила Общото Библиотечно Право на Обществено ПолзванеГНУ). Вие също можете да ползвате Общото Право на ОбщественоПолзване ГНУ за вашите програми.

Когато говорим за свободни програми имаме предвид преди всичкосвободата а не цената. Това Общо Право на Обществено Ползване еразработено така, че да Ви осигури свободата да разпостранявате ко-пия на свободните програми (ако желаете и срещу заплащане) , да има-те изходния код или възможността да го получите, да можете да про-меняте програмата или да използвате части от нея в друга свободнапрограма, както и увереността, че тези действия са разрешени.

За да защитим Вашите права е необходимо да поставим условия ко-ито забраняват на когото и да било да Ви ги отнеме или да Ви принудида се откажете от тях. Тези условия пораждат за Вас определени от-говорности ако разпространявате копия или променяте програмата.

Например ако разпространявате копия от свободна програма неза-висимо безплатно или срещу заплащане сте задължен да предоставитена получателя всички права които имате. Вие сте задължен да да пре-доставите на получателя изходния код на програмата или да му осигу-рите възможността да го получи. Вие сте задължен да му предоста-вите условията на Общото Право на Обществено Ползване за да знаетой своите права.

Ние защитаваме Вашите права чрез две стъпки: 1.Чрез авторскитеправа над програмата и 2. Предлагайки Ви това Общо Право на Об-ществено Ползване което Ви дава законно право да възпроизвеждате,разпространявате и/или променяте програмата.

Също така в защита на всеки автор и в наша защита искаме да е си-гурно, че всеки е разбрал, че няма гаранции за свободната програма. Акопрограмата е променена и разпространена искаме получателя да знае,че това което притежава не е оригинала, така, че възможни възникналипроблеми да не се отразят на доброто име на автора.

И в заключение - всяка свободна програма е в постоянна заплаха отпатентите върху програмното осигуряване. Бихме искали да избегнемопасността разпространители на свободна програма да придобият па-тентни права, правейки я по този начин своя частна собственост. За да

Page 279: LINUX(Bulgarian Language)

269

предотвратим това даваме ясно да се разбере,че всеки патент трябваили да бъде предоставян за обществено ползване или да не бъде защи-таван от авторски права въобще.

Следват точните условия за възпроизвеждане, разпространение ипромяна.

Условия за възпроизвеждане, разпространение ипромяна

0. Това Общо Право на Обществено Ползване (Право) се прилага завсяка програма или друго произведение което съдържа надпис отпритежателя на авторските права гласящ, че програмата можеда бъде разпространявана при условията на това Право. Думата“Програма“ по долу се отнася за всяка програма или произведение,и за “продукт на основата на Програмата“ и означава или Прог-рамата или производен продукт по смисъла на авторското право:а това означава продукт съдържащ програмата или части от нея,било същите или с изменения и/или преведени на друг език. (Оттукнататък превода се включва без ограничения в понятието “про-мяна“.) Всяко право на ползване е адресирано към “Вас“ (в третолице ед.ч.).Дейностите различни от възпроизвеждане, разпространение и про-мяна не попадат под действието на това Право; те са извън обсе-га му. Актът на използване на програмата не е ограничен, а изходана Програмата е предмет на това Право само ако съдържаниетому представлява продукт на основата на програмата (независимот този при използването на програмата ). Дали това е в силазависи от това което програмата прави.

1. Вие можете да възпроизвеждате и разпространявате точни копияна на изходния код на Програмата тъй като го получавате, неза-висимо от носителя, при условие, че на видно място и по подходящначин върху всяко копие отбележите подходящ надпис за автор-ски права и отказ от гаранции; запазите всички надписи коитосочат към настоящото Право и към отсъствието на гаранции;предоставяте на всички други получатели на Програмата преписот това Право заедно с програмата.Вие можете да събирате такса за физическия акт на прехвърля-не, а също така и по ваше желание да предлагате гаранция срещузаплащане.

2. Вие можете да променяте Вашето копие или копие от Програма-та създавайки по този начин произведение на нейна основа, кактои да възпроизвеждате и разпространявате тези промени или про-изведения при условията на т.1 и при условие ,че:

Page 280: LINUX(Bulgarian Language)

270 ГЛАВА 45. THE GNU GENERAL PUBLIC LICENSE - БЪЛГАРСКИ ПРЕВОД

а. Вие трябва да направите така щото всяка от промененитечасти носи виден надпис гласящ, че Вие сте ги променили ,как-то и датите на промените.

б. Вие трябва да направите така щото всяко едно произведениекоето разпространявате или публикувате съдържащо частиили е изцяло основано на Програмата да бъде предоставеноза ползване изцяло без такси на трети лица при условията натова Право.

в. Ако променената версия приема команди по време на изпълне-ние Вие трябва да направите така щото когато Програматазапочне изпълнението си по обичайния си начин да покаже под-ходящ надпис за авторски права, за липсата на гаранция (илиза това, че вие гарантирате работата и) и че потребителитемогат да разпространяват програмата при условията на то-ва Право, както и начина по който потребителя може да ви-ди копие от условията на правото на ползване. (Изключения:Ако Програмата не показва подобен надпис при обичайнотоси взаимодействие с потребителя то и за Вашето произве-дение на нейна основа не е задължително да показва подобеннадпис.)

Тези изисквания се прилагат за промененото произведение катоцяло. Ако определени части от него не произтичат от Програ-мата и могат да бъдат считани за независими и отделни произ-ведения като такива, тогава това Право на ползване и неговитеусловия не се прилагат за за тези произведения когато те се разп-ространяват отделно. Но ако ги разпространявате (същите тезичасти) като част от цяло което е основано на Програмата, то-гава това разпространение трябва да бъде по условията на товаПраво - чиито разрешения се простират върху Цялото и по тозиначин върху всяка негова част независимо кои я е написал.Значението на тази точка е не да ви лиши от права или да оспорваправата Ви за произведения създадени изцяло то Вас, а преди всич-ко да упражни контрол върху производни или събирателни продук-ти основани на Програмата.И в допълнение, простото обединение на продукт неоснован наПрограмата с Програмата (или продукт основан на Програматасъгласно т.2) на запомнящо устройство или носител за разпрост-ранение не прави този продукт подчинен на това Право.

3. Вие имате право да разпространявате Програмата (или продуктна нейна основа съгласно т.2) като обектен или изпълним код приусловията на т.1 и 2 и при условие , че е изпълнено едно то следни-те изисквания:

а. Придружите Програмата с пълен машинно четим изходен кодкойто трябва да бъде разпространяван при условията на т.1

Page 281: LINUX(Bulgarian Language)

271

и 2 и по горе на носител обичайно използван за обмен на прог-рами ; или

б. Придружите Програмата с писмено предложение в сила по-не три години да предоставяте срещу такса не по голяма отстойността на физическата подготовка на носителя, пълномашинно четимо копие от съответния изходен код което серазпространява при условията на т.1 и 2 по горе на носителобичайно използван за обмен на програмни продукти; или

в. Придружите Програмата с информация която сте получиликато предложение за разпространение на изходен код.(Тазивъзможност е позволена само за не-търговско разпростране-ние и само ако сте получили Програмата като обектен илиизпълним код придружен с предложение съгласно под-точка б)по горе.)

Изходен код на продукт означава предпочитаната форма на про-дукта за неговата промяна. При изпълнимия код пълен изходенкод означава целия изходен код на всички части които съдържа,плюс принадлежащите файлове определящи интерфейса (interfacedefinition files), плюс командните файлове използвани при компила-цията и инсталацията на изпълнимата програма. Въпреки това,като специално изключение: не е задължително разпространява-ния изходен код да съдържа частите които обикновено се разпрос-траняват (в изходен или двоичен код) с основните части (компила-тор, ядро и т.н.) на операционната система на която се изпълнявапрограмата, освен ако тази част не придружава изпълнимия код.Ако разпространението на изпълним или обектен код се прави чрезпредлагане на достъп за копиране от определено място , тогавапредлагането на същия достъп до изходния код се счита за разп-ространение на изходния код дори ако третите страни не са при-нудени да копират изходния заедно с обектният код.

4. Вие не можете да възпроизвеждате, променяте, предоставяте пра-ва на ползване или разпространявате Програмата освен при усло-вията изрично изброени в това Право. Всеки опит по друг начин давъзпроизвеждате, променяте, предоставяте права на ползване илиразпространявате Програмата е незаконен и прекратява праватави по това Право на ползване. Страни които са получили копияили права от Вас при условията на това Право не губят праватаси докато действат в пълно съгласие с условията на това Право.

5. От Вас не се изисква да приемате условията на това Право тъйкато не сте го подписали. Нищо друго обаче не Ви дава разрешениеда променяте или разпространявате Програмата или продуктина нейна основа. Такива действия са забранени ако не приематеусловията на това Право на ползване. Следователно променяйкиили разпространявайки Програмата (или продукт на нейна основа)

Page 282: LINUX(Bulgarian Language)

272 ГЛАВА 45. THE GNU GENERAL PUBLIC LICENSE - БЪЛГАРСКИ ПРЕВОД

Вие давате съгласието си, че приемате това Право и всичкитему условия за възпроизвеждане, разпространяване или промяна наПрограмата или продукти на нейна основа.

6. Всеки път когато разпространявате Програмата (или продукт нанейна основа), получателят автоматично получава право да възп-роизвежда, разпространява или променя Програмата съгласно нас-тоящите условия. Нямате право да създавате каквито и да билоограничения на получателя да упражнява правата предоставени мутук. Вие не сте задължен да осигурявате спазването на условиятана това Право от трети лица.

7. Ако като последствие от съдебно решение или заявление за па-тентно нарушение или по каквато и да е друга причина (незави-симо дали е свързана с патентни права) са Ви наложени условия(независимо дали по съдебна заповед, споразумение или по друг на-чин) които противоречат на условията на това Право това не Виосвобождава от изпълнение на условията на това Право. Ако неможете да разпространявате така, че да удовлетворите еднов-ременно условията по това Право и другите задължения отнася-щи се до Програмата , тогава нямате право да разпространяватепрограмата въобще.Например ако патент забранява разпространението на Програма-та свободно от всички които са я получили пряко или непряко чрезВас, тогава единствения начин да удовлетворите и тези патентии това Право е да се откажете от разпространение на Програма-та.Ако някоя част от тази точка стане неуместна и не може да бъдеприложена поради определени обстоятелства, се прилага остана-лата част и точката като цяло при всички други обстоятелства.Целта на тази точка не е да Ви подтикне към престъпване напатенти или други авторски права или да Ви оспорва тези права;тази точка има единствената цел да запази цялостта на система-та за разпространение на свободни програми която е реализираначрез права за обществено ползване. Много хора са направили щед-ри дарения към широк кръг от програми разпространявани чрезтази система разчитайки на последователното и приложение; въввластта на автора е да реши дали той/тя желае да разпростра-нява Програмата чрез други системи или Права и това Право неможе да нарушава този избор.Тази част е предназначена да изясни напълно последствията докойто вярваме ,че ще доведе прилагането на останалите частиот това Право.

8. Ако разпространяването или ползването на Програмата е ограни-чено в някои държави, било то чрез патенти или чрез защитени савторски права интерфейси тогава притежателят на авторски-

Page 283: LINUX(Bulgarian Language)

273

те права върху тази Програма който я предоставя по това пра-во може да добави изрични ограничения за разпространение в те-зи държави, така че разпространението да е разрешено само въввсички останали. В този случай тези ограничения се считат за не-разделна част от това Право.

9. Фондацията за свободни програми може да публикува променениили нови версии на това Общо Право на Обществено Ползване.Тези нови версии ще бъдат в дух подобен на настоящия но могатда се различават в подробностите с цел разрешаване на нововъз-никнали проблеми и съображения.EНа всяка версия се дава различен номер. Ако в Програмата е ука-зан номер на версията на това Право и “коя да е по късна версия“,Ви се разрешава да спазвате условията на тази версия или на кояда е по късна такава публикуван от Фондацията за свободни прог-рами. Ако в програмата не е указан номер можете да изберете кояда е версия публикувана от Фондацията за свободни програми.

10. Ако желаете да включите части от Програмата в други свободнипрограми , чиито условия за разпространение са различни се обър-нете за разрешение към автора. За програми чиито авторски пра-ва принадлежат на Фондацията за Свободни Програми се обърне-те към Фондацията - понякога правим изключения. Нашето реше-ние ще бъде ръководено от две цели - да запазим свободния дух навсички производни на на нашите свободни програми и да поощря-ваме обмена и използването на програмите.

БЕЗ ГАРАНЦИИ

11. ТЪЙ КАТО ПРОГРАМАТА СЕ ПРЕДОСТАВЯ ЗА ПОЛЗВАНЕБЕЗПЛАТНО НЕ ПОЕМАМЕ ГАРАНЦИЯ ЗА ПРОГРАМАТА ДОРАЗМЕРА ОПРЕДЕЛЕН ОТ ДЕЙСТВАЩОТО ПРАВО. ОСВЕНАКО ПИСМЕНО НЕ Е УГОВОРЕНО ДРУГО ПРИТЕЖАТЕЛЯТНА АВТОРСКИТЕ ПРАВА И ДРУГИТЕ СТРАНИ ВИ ПРЕДОС-ТАВЯТ ПРОГРАМАТА ТАКАВА КАКВАТО Е БЕЗ КАКВАТО ИДА Е ГАРАНЦИЯ ПРЯКА ИЛИ КОСВЕНА ВКЛЮЧИТЕЛНОНО НЕ САМО ЗА ПРИЛОЖИМОСТА И ПРИГОДНОСТА НАПРОГРАМАТА ЗА ОПРЕДЕЛЕНА ЦЕЛ. ВИЕ ПОЕМАТЕ РИС-КОВЕТЕ ЗАСЯГАЩИ КАЧЕСТВОТО И ПРОИЗВОДИТЕЛНОСТ-ТА НА ПРОГРАМАТА. В СЛУЧАЙ ЧЕ ПРОГРАМАТА СЕ ОКА-ЖЕ ДЕФЕКТНА, РАЗХОДИТЕ ЗА НЕОБХОДИМОТО ОБСЛУЖ-ВАНЕ, ПОПРАВКА ИЛИ ПРЕРАБОТКА СА ЗА ВАША СМЕТ-КА.

12. В НИКОЙ СЛУЧАЙ ОСВЕН ОПРЕДЕЛЕНИЯ СЪС ЗАКОН ИЛИПИСМЕНО СПОРАЗУМЕНИЕ ПРИТЕЖАТЕЛЯТ НА АВТОРС-КИТЕ ПРАВА ИЛИ ТРЕТИ СТРАНИ КОЙТО МОГАТ ДА ПРО-МЕНЯТ И РАЗПРОСТРАНЯВАТ ПРОГРАМАТА НЕ НОСЯТ ОТ-ГОВОРНОСТ ЗА ЩЕТИ , ВКЛЮЧИТЕЛНО ОБЩИ, СПЕЦИАЛ-

Page 284: LINUX(Bulgarian Language)

274 ГЛАВА 45. THE GNU GENERAL PUBLIC LICENSE - БЪЛГАРСКИ ПРЕВОД

НИ ИЗВЪНРЕДНИ ИЛИ ПРОИЗТИЧАЩИ ОТ ИЗПОЛЗВАНЕ-ТО ИЛИ НЕВЪЗМОЖНОСТТА ЗА ПОЛЗВАНЕ НА ПРОГРАМА-ТА (ВКЛЮЧИТЕЛНО НО НЕ САМО ЗАГУБА НА ДАННИ ИЛИОБЪРКВАНЕ НА ДАННИ ИЛИ ЗАГУБИ ПРЕТЪРПЕНИ ОТ ВАСИЛИ ТРЕТИ СТРАНИ ИЛИ НЕВЪЗМОЖНОСТТА НА ПРОГРА-МАТА ДА РАБОТИ С ТРЕТИ ПРОГРАМИ) ДОРИ АКО ПРИТЕ-ЖАТЕЛЯТ ИЛИ ТРЕТИТЕ СТРАНИ СА БИЛИ ИЗВЕСТЕНИ ЗАВЪЗМОЖНОСТТА ОТ ТАКИВА ЩЕТИ.

КРАЙ НА УСЛОВИЯТА

Приложение: Как да прилагате тези условия къмВашите нови програми

Ако разработвате нова Програма и желаете във възможно най-голямастепен тя да е полезна на обществото, най-добрият начин да направи-те това е да я направите свободна - така,че всеки може да разпростра-нява и променя при условията това Право.

За да направите това поставете следните надписи в Програмата.Най-сигурно е да ги поставите в началото на всеки изходен код за даизразите най-добре липсата на гаранции. Всяка част трябва да съдържапоне ред “авторски прав“ и указател къде могат да бъдат намеренипълните описания на условията

ред с името на програмата и кратко описание на предназна-чениетоАвторски права c©20хх име на автораТова е свободна програма; можете да я разпространяватеи/или променяте при условията на Общото Право за Общес-твено Ползване ГНУ публикувано от Фондацията за свобод-ни програми; или версия 2 или (по Ваш избор) коя да е по къснаверсия.Тази програма се разпространява с надеждата , че ще бъдеполезна но БЕЗ КАКВАТО И ДА Е ГАРАНЦИЯ ЗА ТОВА,дори без косвена гаранция за ПРИГОДНОСТ ЗА ОПРЕДЕ-ЛЕНА ЦЕЛ. Виж условията на Общото Право за Обществе-но Ползване ГНУ за повече подробности.Би трябвало да сте получили препис от Общото Право заОбществено Ползване ГНУ заедно с тази програма. Ако несте обърнете се към Фондация за Свободни Програми,Инк.59 Темпъл плейс, Офис 330 Бостън MA 02111-1307 САЩ

Добавете също така информация за връзка с Вас чрез електроннаили обикновена поща.

Page 285: LINUX(Bulgarian Language)

275

Ако Програмата взаимодейства с потребителя, направете така, чеда показва кратък надпис подобен на долния при пускането и в такъврежим.

Gnomovision version 69, Copyright (C) 19yy name of author Gnomovisioncomes with ABSOLUTELY NO WARRANTY; for details type‘show w’. This is free software, and you are welcome to redistributeit under certain conditions; type ‘show c’ for details.

Примерните команди ‘show w’ и ‘show c’ трябва да показват на ек-рана съответните части от Общото Право за Обществено ПолзванеГНУ. Разбира се имената на командите може и да са други, възможно ете да се извикват с мишката или от меню – както е удобно за Вашатапрограма.

Следва също да уговорите Вашият работодател (ако работите ка-то програмист) или Вашето училище да подпише отказ от “авторскиправа“ върху Програмата ако е необходимо.

ПРИМЕР:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program‘Gnomovision’ (which makes passes at compilers) written by JamesHacker.signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice

Това Общото Право за Обществено Ползване не разрешава включ-ването на Вашата Програма в частни програми. Ако Вашата Програмае библиотека с функции и подпрограми може да счетете за по подходя-що да разрешите свързването на частни програми с библиотеката. Акотова е което искате да направите използвайте Общото БиблиотечноПраво за Обществено Ползване ГНУ вместо това Право.

Page 286: LINUX(Bulgarian Language)

276 ГЛАВА 45. THE GNU GENERAL PUBLIC LICENSE - БЪЛГАРСКИ ПРЕВОД

Page 287: LINUX(Bulgarian Language)

Глава 46

Речник на термините

277

Page 288: LINUX(Bulgarian Language)

278 ГЛАВА 46. РЕЧНИК НА ТЕРМИНИТЕ

Page 289: LINUX(Bulgarian Language)

Глава 47

Сайтове за Линукс

279

Page 290: LINUX(Bulgarian Language)

280 ГЛАВА 47. САЙТОВЕ ЗА ЛИНУКС

Page 291: LINUX(Bulgarian Language)

Глава 48

Благодарности

281