Функции для работы с потоками
Для работы с потоками существуют следующие основные функции: pthread_create(pthread_t *tid, const pthread_attr_t *attr, void*(*function)(void*), void* arg) - создает поток для выполнения функции function. В качестве параметра для потоковой функции передается указатель arg. Индентификатор нового потока возвращается через tid. Поток создается с параметрами attr. pthread_mutex_init(pthread_mutex_t* lock, pthread_mutexattr_t *attr) - инициализирует взаимоисключающую блокировку. attr - содержит аттрибуты для взаимоисключающей блокировки. В случае, если attr == NULL, используются установки по умолчаниию. pthread_mutex_destroy(pthread_mutex_t* lock) - удаляет взаимоисключающую блокировку. pthread_mutex_lock(pthread_mutex_t* lock) - устанавливает блокировку. В случае, если блокировка была установлена другим процессом, текущий процесс останавливается до снятия блокировки другим процессом. pthread_mutex_unlock(pthread_mutex_t* lock) - снимает блокировку. pthread_join(pthread_t tid, void **statusp) - ожидает завершение неотсоединенного процесса, результат возвращаемый функцией сохраняется в statusp. pthread_detach(pthread_t tid) - отсоединяет процесс. Это же можно задать при создании процесса, установив аттрибут detachstate вызовом pthread_attr_setdetachstate. pthread_exit(void *status) - завершает процесс, статус передается вызову pthread_join, подобен exit(). Но вызов exit() в процессе приведет к завершению всей программы.
Процесс завершается двумя путями - вызовом pthread_exit() или завершением потоковой функции. В случае, если процесс неотсоединен, то при его завершении ресурсы, выделенные процессу, не освобождаются до вызова pthread_join(). Если процесс отсоединенный - ресурсы освобождаются по ее завершению.
Linux и потоки.
Linux, как клон Unix, на данный момент поддерживает многозадачность и многопотоковость, т.е. в системе одновременно может работать несколько задач (процессов), и каждая из задач может выполнятся в несколько потоков. Для начала рассмотрим, что такое поток: поток выполнения - это элемент кода программы, выполняемый последовательно. Большинство приложений - однопотоковые программы. Многопотоковая программа в один момент времени может выполняться в нескольких отдельных потоках. В случае, если задача выполняется на многопроцессорной машине, то все ее потоки могут выполняться одновременно, повышая таким образом производительность выполнения задачи. Производительность многопотокового приложения можно улучшить даже на однопроцессорной системе. Например, если один из потоков приложения блокируется каким-то системным вызовом или ожидает поступления данных, в это время выполняется другой поток.
Между процессами и потоками существуют различия. Под процессами понимается программа находящаяся в стадии выполнения. Скажем, shell в UNIX - это процесс который создается при входе пользователя в систему. Каждая команда создает новый процесс. Согласно терминологии UNIX - это порожденный процесс, который выполняет команду от лица пользователя. Потоки - это часть процесса, и они используют сегменты данных и кода совместно.
Для многопотокового программирования существует два основных стандарта: многопотоковые API Solaris (Sun Microsystems) и API POSIX.1c
В Linux используется API POSIX.1c. Но если быть абсолютно точным, то в Linux присутствует системный вызов clone(), на основе которого и построено API для работы с потоками, соответствующие стандарту POSIX.1c с незначительными исключениями.
Литература и ссылки
Литература:
1. Теренс Чан "Системное программирование на С++ для Unix"
2. Андрей Робачевский "Операционная система UNIX"
Ссылки:
1.
2.
3.
Многопотоковые вычисления: достоинства и недостатки
Для преобразования предыдущего примера в многопотоковую задачу, необходимо произвести маленькие изменения - функция, вычисляющая значение, должна работать отдельным потоком.
int SIZE_I = 4;
int SIZE_J = 4;
double X[SIZE_I][SIZE_J];
double S[SIZE_I][SIZE_J];
struct DATA_
{
double x;
int i;
int z;
}
typedef struct DATA_ DATA;
double f(double x)
{
//какие-то вычисления
}
void *thread_f(void *arg) //функция для вычисления элемента матрицы
{
DATA* a = (DATA*)arg; //преобразуем данные
X[a->i][a->z] = f([a->x]); //вычисляем
}
main_evalution()
{
pthread_t thread; //идентификатор потока
DATA *arg; //данные для передачи в поток
for (int i=0;i<SIZE_I; P ++i)<>
{
for (int z=0; z<SIZE_J; P ++z)<>
{
// создаем
arg = new DATA;
//инициализируем данные
arg->i = i; arg->z = z; arg->x = S[i][z];
//создаем поток
pthread_create(&thread, NULL, thread_f, (void *)arg);
//переводим в отсоединенное состояние
pthread_detach(thread);
}
}
}
В результате сделанных изменений, вычисление каждого элемента будет происходить в отдельном потоке. Недостатком такого метода является сложность - необходимо всегда учитывать то, что две нити могут обратиться к одним и тем же даным - одна для чтения, другая для записи, и в таком случае нельзя гарантировать достоверность данных. Т.е. необходимо устанавливать/проверять блокировки, обеспечивать синхронизацию выполнения и т.п. Достоинство - повышение производительности. Так в нашем примере, процесс не ждет выполнения всех нитей, т.е. он не ждет когда все елементы матрицы заполняться, а продолжает свою работу. В случае когда дальнейшая работа программы зависит от полученных вычислений, можно приостановить основной процесс до завершения всех нитей.
Многопотоковые вычисления в системе Linux
Владимир Калюжный, Владимир Тарасенко,
Последнее время все компьютерные издания так или иначе уделяют внимание Linux, свободно распространяемой операционной системе. Многие ведущие производители ПО объявляют о переносе своих продуктов на эту систему. В интернете постоянно появляются новые сайты посвященные этой системе. Налицо бум вокруг Linux, который не только не умолкает а становится все сильнее и мощнее.
Постановка задачи
Довольно часто в инженерных рассчетах необходимо произвети вычисления матрицы, элементами которой являются функции, а вернее значение функции с определенными параметрами.
Рассмотрим следующую матрицу A размерностью 4x4:
f(X11) f(X12) f(X13) f(X14)
f(X21) f(X22) f(X23) f(X24)
f(X31) f(X32) f(X33) f(X34)
f(X41) f(X42) f(X43) f(X44)
где
f(x) - вычисляемая функция
Xij - аргумент
Пример программы
Данная программа запрашивает у пользователя параметры матрицы аргументов, и используя потоки, заполняет матрицу результатами вычислений.
Данную программу необходимо компилировать с библиотекой pthread (именно в ней находятся все функции для работы с потоками) и задав _REENTRANT:
g++ -D_REENTRANT -o threads threads.c -lpthread
Данный код проверялся на RedHat Linux 6.0
* threads.c
* simple pthread API demo
* autor: Tarasenko Volodymyr
* e-mail:
* Компилировать:
* g++ -D_REENTRANT -o threads threads.c -lpthread
*/
#include <PTHREAD.H>
#include <STDIO.H>
#include <UNISTD.H>
#include <MATH.H>
#define SIZE_I 2
#define SIZE_J 2
float X[SIZE_I][SIZE_J];
float S[SIZE_I][SIZE_J];
int all = 0;
struct DATA_
{
double x;
int i;
int z;
};
typedef struct DATA_ DATA;
pthread_mutex_t lock; //Исключающая блокировка
// Функция для вычислений
double f(float x)
{
if (x>0) return log(x);
else return x;
}
// Потоковая функция для вычислений
void *thread_f(void *arg)
{
DATA* a = (DATA*) arg;
X[a->i][a->z] = f(a->x);
// устанавливаем блокировку
pthread_mutex_lock(&lock);
// изменяем глобальную переменную
++all;
// снимаем блокировку
pthread_mutex_unlock(&lock);
delete a; // удаляем свои данные
return NULL;
}
// Потоковая функция для ввода
void *input_thr(void *arg)
{
DATA* a = (DATA*) arg;
//pthread_mutex_lock(&lock);
printf("S[%d][%d]:", a->i, a->z);
scanf("%f", &S[a->i][a->z]);
//pthread_mutex_unlock(&lock);
delete a;
return NULL;
}
int main()
{
//массив идентификаторов потоков
pthread_t thr[ SIZE_I + SIZE_J ];
//инициализация исключающей блокировки
pthread_mutex_init(&lock, NULL);
DATA *arg;
// Ввод
for (int i=0;i<SIZE_I; P ++i)<>
{
for (int z=0; z<SIZE_J; P ++z)<>
{
arg = new DATA;
arg->i = i; arg->z = z;
//создаем поток для ввода
pthread_create(&thr[i+z], NULL, input_thr, (void *)arg);
}
}
//Ожидаем завершения всех потоков
//идентификаторы потоков хранятся в массиве
for(int i = 0; i<SIZE_I p ++i)>< SIZE_J; +>
{
pthread_join(thr[i], NULL);
}
//Вычисления
printf("Start calculation\n");
for (int i=0;i<SIZE_I; P ++i)<>
{
for (int z=0; z<SIZE_J; P ++z)<>
{
arg = new DATA;
arg->i = i; arg->z = z; arg->x = S[i][z];
pthread_t thread;
//создаем поток для вычислений
pthread_create(&thread, NULL, thread_f, (void *)arg);
// переводим в отсоединенный режим
pthread_detach(thread);
}
}
do
{
// Основной процесс "засыпает" на 1с
sleep(1);
// Все-ли завершились?
printf("finished %d threads.\n", all);
}while(all<SIZE_I+SIZE_J);
//Печать результатов
for (int i=0;i<SIZE_I; P ++i)<>
{
for (int z=0; z<SIZE_J; P ++z)<>
{
printf("X[%d][%d] = %f\t", i, z, X[i][z]);
}
printf("\n");
}
//Удаляем исключающую блокировку
pthread_mutex_destroy(&lock);
return 0;
}
После запуска программа инициализирует исключающую блокировку и начинает ввод данных. В данном случае, в качестве примера ввод сделан из потоков, без всяких блокировок ввода/вывода, чтобы показать, что потоки работают одновременно и когда один останавливается, остальные продолжают работать.
Основной процесс ожидает завершения всех потоков вызовом pthread_join().
Только после завершения всех потоков происходит переход ко второй части программы - вычислениям.
Для вычислений используются отсоединенные потоки, отсоединение происходит вызовом pthread_detach().
После завершения вычислений в потоке, происходит увеличение переменной all на единицу, и поток завершает работу. Для гарантирования правильности изменений применяется исключающая блокировка.
После задержки основного процесса на 1 сек., проверяем количество завершенных потоков, и если все потоки завершили вычисления, выводим результат работы.
Показанный пример будет полезен при решении многих задач. Особенно при расчетах в области обработки металлов давлением, при решении которых, часто используются методы конечных элементов или методы граничных элементов. Эти методы характеризируются большими вычислениями, связанными с матрицами и их заполнением. В большинстве случаев элементом матрицы является результат сложных вычислений, таких как решение интегральных уравнений. Применение многопотокового подхода позволит увеличить скорость и производительность вычислений. Но, как показано, это приводит к усложнению реализации вычислений.
Стандартный подход к вычислениям: достоинства и недостатки
Для вычисления элементов данной матрицы, обычно используют следующий фрагмент кода:
Приняв, что выходные данные (Xij) хранятся в массиве X, а исходные в S:
int SIZE_I = 4;
int SIZE_J = 4;
double X[SIZE_I][SIZE_J];
double S[SIZE_I][SIZE_J];
.....
double f(double x)
{
..... //какие-то вычисления
}
main_evalution()
{
for (int i=0;i<SIZE_I; P ++i)<>
{
for (int z=0; z<SIZE_J; P ++z)<>
//вычисляем елемент матрицы
X[i][z] = f(S[i][z]);
}
}
После выполнения этого кода, матрица X будет заполнена вычисленными данными. Достоинство данного подхода - простота реализации. Недостаток - при работе на мощной машине (особенно с несколькими процессорами) неполное использование вычислительных ресурсов.
ClamAV + clamsmtpd + Postfix
Автор: fly4life
E-mail: fly4life[at]nixp[dot]ru
Сайт:
ClamAV— это бесплатный антивирус, распространяемый по лицензии GPL. В этой статье я расскажу о том, как прикрутить антивирус ClamAV к почтовой системе postfix.
Т.к. делал я это всё в дистрибутиве ASP Linux 9, то и установку с настройкой тоже опишу под него. Но это вовсе не значит, что эта статья больше никому не пригодится. Всё описанное ниже будет работать и в другом дистрибутиве Linux, а отличаться будет только установкой пакетов (и, например, добавлением clamd в автозагрузку — прим. ред.).
Для начала нам понадобится скачать
сам антивирус ClamAV (),
clamsmtpd () и
MTA Postfix ().
Итак, качаем пакет (хоть он и для Fedora Core, но прекрасно подошел и к моему ASP9), устанавливаем:
# rpm -ivh clamav-0.72-1.i386.rpm
После установки в директории /etc появится файл конфигурации clamav.conf. В принципе, ничего менять там не надо, за исключением того, что нужно закомментировать (если они раскомментированы, конечно) опции TCPAddr и TCPSocket, и раскомментировать строку
LocalSocket /var/run/clamav/clamd.sock.
Таким образом укажем антивирусу, что работать он будет только на локальной машине.
Затем запустить сервис clamd: # service clamd start. И также поместить его в автозагрузку (в консоли запустить ntsysv и отметить звёздочкой сервис clamd).
Для обновления антивирусных баз используется утилита freshclam, которая входит в состав пакета clamav. Для того, чтобы базы обновлялись два раза в день и при этом в логи записывались результаты обновления, freshclam нужно запускать следующим образом:
# freshclam -d -c 2 -l /var/log/clamav/clam-update.log
Рекомендую разместить строку с этой командой в файл /etc/rc.d/rc.local.
С установкой и настройкой clamav все.
Теперь качаем clamsmtpd: clamsmtp-1.1.tar.gz. Устанавливаем его:
$ tar -xvzf clamsmtp-1.1.tar.gz
$ cd clamsmtp-1.1
$ ./configure
$ make
$ su -
# make install
После этого копируем пример конфигурационного файла clamsmtpd.conf из директории с исходниками (находится в подкаталоге doc/) в директорию /usr/local/etc (именно в этой директории clamsmtpd будет искать свой конфигурационный файл по умолчанию). После правки этот файл будет выглядеть следующим образом:
# cat /usr/local/etc/clamsmtpd.conf
OutAddress: 10026
Listen: 0.0.0.0:10025
ClamAddress: /var/run/clamav/clamd.sock
TempDirectory: /tmp
User: clamav
На самом деле, параметров в этом файле может быть больше, но я указал лишь необходимые. Для более подробного изучения рекомендую почитать man clamsmtpd.conf.
Запуск clamsmtpd выполняется одноименной командой clamsmtpd.
Таким образом clamsmtpd будет открывать 10025-ый порт, на который postfix будет как бы отсылать почту для проверки антивирусом (соответствующая настройка будет описана ниже), а затем, после проверки, clamsmtpd будет возвращать её обратно postfix'у на порт 10026.
Настройка postfix
Саму установку и настройку postfix я описывать не буду, т.к. существует множество статей в интернете, описывающих этот процесс подробно и, к тому же, на русском. Опишу лишь те опции, которые отвечают за привязку антивируса к почтовой системе.
В файл main.cf необходимо добавить две строчки:
content_filter = scan:127.0.0.1:10025
receive_override_options = no_address_mappings
Первая говорит postfix'у о том, что необходимо пересылать всю почту через сервис (фильтр) 'scan' на 10025-ый порт, который, как раз, открыт clamsmtpd.
Вторая строчка говорит о том, чтобы postfix не делал никаких манипуляций с адресами до того, как они дойдут до content_filter. Так что получается, что фильтр работает с реальными почтовыми адресами, а не с результатами перевода в виртуальные псевдонимы, маскарадингом и т.п.
В файл master.cf необходимо добавить следующие строки:
# AV scan filter (used by content_filter) scan unix - - n
- 16 smtp -o smtp_send_xforward_command=yes
# For injecting mail back into postfix from the filter 127.0.0.1:10026 inet n - n
- 16 smtpd -o content_filter= -o receive_override_options=
no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=
permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8
Примечание: вокруг знака '=' пробелы не ставить.
Значение 127.0.0.1:10026 открывает 10026-порт для возвращения почты обратно от clamsmtpd. Остальные значения см. в соответствующем мануале.
Вот, собственно, и все.
Cygwin: начинающим пользователям Linux посвящается
Андрей Иванченко,
Сейчас только ленивый не пишет на тему "Linux против Windows". Но почему против? У обеих систем есть свои плюсы и минусы - и при организации локальной вычислительной сети можно удачно сочетать компьютеры с разными ОС. Если вы начинающий администратор ЛВС или у вас дома есть сеть, вы выросли на продуктах Microsoft и хотите поработать с Linux - может, стоит попробовать?
Желающим скрестить Windows и Linux часто предлагают воспользоваться системой VMWare. Но для начинающего пользователя Linux такой вариант более чем экстремален. Да и вообще, вряд ли стоит экспериментировать на машине с хорошо настроенной Windows, начиненной гигабайтами важной информации. Лучше установить в сети компьютер с Linux и работать на нем через сеть. Для администрирования Linux-машины можно воспользоваться стандартным telnet или, что лично мне нравится больше, putty. Настроив SSH-соединение, можно сразу входить через putty под учетной записью root.
Но многим, особенно начинающим пользователям Linux, трудно привыкнуть к управлению системой из строгой командной строки - им подавай графический или веб-интерфейс. Для таких пользователей есть соответствующие программы - webmin для управления системой и swat для управления сервером samba через веб-интерфейс.
Для удаленного доступа к Linux-машине с помощью графического интерфейса (по X-протоколу) существует несколько программных продуктов, позволяющих запустить X-сервер под управлением Windows. Но все они коммерческие - а ведь нам всегда хочется чего-то хорошего и бесплатного. И такой программный продукт есть, называется он Cygwin.
В состав этого пакета входит не только X-сервер на платформе Windows, но и множество инструментов Linux, портированных на платформу Windows. Пакет программ можно свободно скачать из интернета, но объем его таков, что и дешевле, и проще купить все это на компакт-диске.
Установка Cygwin проста - запускаем install и выбираем, какие именно утилиты нам нужны. Маленький совет: установите все предлагаемые пакеты. Потом, после настройки, вы всегда успеете удалить лишние. Если же вы настоящий борец за свободное место на жестком диске, устанавливайте только набор пакетов Xfree86 из cygwin. Устанавливать документацию на японском языке, сервер шрифтов и оконные менеджеры вовсе не обязательно. Да и сами шрифты можно не устанавливать - на linux-машине их и так достаточно, к тому же "правильных".
После установки на компьютере появится каталог cygwin со структурой подкаталогов, аналогичной дереву каталогов Linux. Для того чтобы настроить X-сервер, нужно подкорректировать содержимое файла startxwin.bat, который находится в каталоге cygwin\usr\X11R6\bin - заменить строку запуска: Start Xwin
на такую: start XWin -screen 0 1024 710 -query 192.168.4.1 -once
где: -screen 0 1024 710 - номер и размеры дисплея, на который будет выводиться изображение; -query 192.168.4.1 - IP-адрес Linux-машины, которая "слушает" запросы xdmcp; -once говорит о том, что после завершения сеанса работы с удаленной машиной X-сервер нужно выключить.
Вероятно, вы обратили внимание на "нестандартное" разрешение дисплея 1024 x 710. Ну и что - наш сервер, какое разрешение хотим, такое и указываем.
Теперь нам необходим конфигурационный файл для запуска Х-сервера - XF86Config. Его можно взять или в Сети, или на своей Linux-машине (в каталоге /etc/X11/XF86Config), если там настроен X-сервер. При вводе текста в кодировке KOI8-R рекомендуется, чтобы в этом файле присутствовали следующие строки:
Option "LeftAlt" "Meta" Option "RightCtrl" "Control" Option "XkbLayout" "ru" Option "XkbOptions" "grp: ctrl_shift_toggle, grp_led: scroll" |
В секциях, описывающих видеокарту, монитор, экран, клавиатуру, ставим устройство "dummy": Section "Device" Identifier "dummy" Driver "dummy" EndSection Section "Monitor" Identifier "dummy" EndSection Section "Screen" Identifier "dummy" Device "dummy" Monitor "dummy" EndSection Section "ServerLayout" Identifier "dummy" Screen "dummy" InputDevice "Keyboard1" "CoreKeyboard" EndSection
Теперь пора внести коррективы в файлы на Linux-машине. Чтобы на ней запускались XDM-сессии, следует запустить демон XDM. Я, например, делаю это так: в файле /etc/inittab заменяю строчку: X:5: respawn:/etc/X11/prefdm -nodeamon
на такую: X:35: once:/usr/bin/X11/xdm
Тем самым мы подменяем стандартное графическое приглашение для регистрации на приглашение XDM (хотя еще вопрос, какое приглашение "стандартнее": XDM или KDM/GDM). При этом остается возможность получить графический вход на удаленных терминалах, даже если linux-машина запущена с уровнем выполнения 3 (текстовый режим). Но в этом случае xdm-сервер работает нестабильно, лучше запускать linux-машину с уровнем выполнения 5 (графический режим), а в каталоге /etc/sysconfig создать файл desktop, в котором прописать желаемый вид приглашения на регистрацию пользователя в системе - XDM, KDM, GDM: DISPLAYMANAGER=XDM
В файле xdm-config, чтобы XDM принимал запросы xdmcp, нужно "закомментировать" строку: ! DisplayManager.requestPort: 0
В файле /etc/X11/xdm/Xaccess нужно убрать комментарий в строке: # * any host can get a login window
- чтобы можно было регистрироваться с любого компьютера или вписать адрес хоста, с которого разрешен прием xdmcp-запросов. Если в файле /etc/sysconfig/desktop указан вид приглашения на регистрацию, отличную от XDM, теряется возможность ограничить доступ для определенных хостов по X-протоколу через файл Xaccess.
Теперь можно запустить X-сервер на Windows-машине из файла Startxwin.bat. Если все настроено правильно, мы получим приглашение зарегистрироваться.
После регистрации перед нами откроется рабочий стол Linux-машины в той графической оболочке (GNOME, KDE и др.), которая выбрана для данного пользователя. Попробуйте ввести в текстовом редакторе русский текст или прочитать файл с русскими буквами - все шрифты отображаются нормально? Если вместо кириллицы выводятся квадратики, значит, необходимо вернуться к правке файла cygwin/etc/X11/XF86Config, найти раздел с описанием путей к шрифтам: FontPath "/usr/X11R6/lib/X11/fonts/local/"
и закомментировать все эти строчки, а вместо них вписать путь к серверу шрифтов на Linux-машине: FontPath "tcp/192.168.4.1:7100"
Теперь необходимо установить на Linux-машине автозапуск сервера шрифтов XFS и подкорректировать его файл конфигурации (обычно это /etc/X11/fs/config), закомментировав в нем строчку и#no listen = tcp
При необходимости добавляем пути к нужным шрифтам в параметр catalogue (у меня, например, русские буквы в программе AbiWord не отображались до тех пор, пока я не добавил к вышеуказанному параметру путь к шрифтам этой программы - /usr/share/AbiSuite/fonts).
Вот и вся настройка. Надеюсь, теперь вам будет легче освоить Linux, имея на компьютере под управлением Windows полноценный рабочий стол этой ОС.
Как все это работает
Теперь окинем взором всю связку:
удаленный пользователель звонит в наш пул, модемы устанавливают соединение процесс mgetty, обслуживающий эту линию, после установления соединения и определения его типа, запускает процесс pppd и сам тихо умирает pppd, в свою очередь, авторизует пользователя по системной базе и если все в порядке, поднимает IP-интерфейс в соответствии с конфигом этого порта IP-пакеты за счет masquerade бегают от пользователя в сеть и обратно, пользователь наслаждается интернетом по какой-либо причине модемное соединение разрывается (обрыв связи, преднамеренное окончание сеанса со стороны клиента или сервера), процесс pppd, обслуживавший его, запускает финальные скрипты и умирает init вновь порождает процесс mgetty, призванный обслуживать освободившуюся линию, система готова к следующему звонку
Устойчивого CONNECT'а вам!
Конфигурация ядра
Собираем ядро с поддержкой PPP (Point to Point Protocol), поддержкой асинхронных последовательных линий и поддержкой алгоритмов компрессии для PPP соединений (секция Network device support): CONFIG_PPP=y # PPP (point-to-point protocol) support CONFIG_PPP_ASYNC=y # PPP support for async serial ports CONFIG_PPP_DEFLATE=y # PPP Deflate compression CONFIG_PPP_BSDCOMP=y # PPP BSD-Compress compression
Так как скорее всего вам не захочется тратить реальные адреса на модемные соединения (или у вас просто нет лишних адресов), вполне логично использовать IP-адреса из серого диапазона и воспользоваться механизмом MASQUERADE. Секция Networking options: CONFIG_NETFILTER=y # Network packet filtering (replaces ipchains) CONFIG_INET=y # TCP/IP networking
в подменю IP: Netfilter Configuration: CONFIG_IP_NF_CONNTRACK=y # Connection tracking (required for masq/NAT) CONFIG_IP_NF_IPTABLES=y # IP tables support (required for filtering/masq/NAT) CONFIG_IP_NF_NAT=y # Full NAT CONFIG_IP_NF_TARGET_MASQUERADE=y # MASQUERADE target support
После этого соответственно нужно пересобрать ядро и перезагруться с ним.
Настройка masquerade
Если проделать вышеописанные действия, уже будет работать доступ до нашего dial-in сервера, но мы хотели пускать дозвонившихся дальше в сеть, для этого-то и воспользуемся MASQUERADE для всей задействованной серой подсети: % /usr/sbin/iptables -t nat -A POSTROUTING -i ppp+ -s 192.168.0.0/24 -j MASQUERADE
Для создания более сложных конфигураций почитайте документацию к iptables и netfilter вообще.
Настройка pppd
За PPP соединения отвечает демон pppd, настроим его так. чтобы при установлении соединения интерфейсу выдавался серый IP-адрес.
В /etc/ppp/options прописываем (информацию по этим опциям можно найти, почитав man pppd): modem crtscts -detach mru 1500 mtu 1500 auth +pap login ms-dns 192.168.100.1 netmask 255.255.255.0
значение ms-dns - адрес вашего DNS-сервера, netmask - сетевая маска, выставляемая для всех поднимаемых интерфейсов.
Создаем для кажого порта файлик /etc/ppp/options.ttySX (options.ttyS0, options.ttyS1...) и прописываем в нем комбинацию шлюз:адрес (адрес, естественно, для каждой линии свой): 192.168.0.1:192.168.0.10
Заводим в системе модемного пользователя, указывая в качестве шелла /usr/sbin/pppd. Будем пользоваться системной базой паролей, в файлик /etc/ppp/pap-secrets для каждого модемного пользователя добавляем запись: user * "" *
Если вам необходимо как-то производить учет и ограничение доступа (accounting/billing) пользователей к пулу (например, установить им временной лимит использования пула), можно для этих целей воспользоваться скриптами /etc/ppp/auth-up, /etc/ppp/ip-up и /etc/ppp/ip-down, /etc/ppp/auth-down, которые исполняются при установлении и окончании соединения соответственно.
Постановка задачи
Допустим, у вас есть подключенная к сети по скоростному каналу машина под управлением Linux, модем и телефонная линия (или несколько линий и модемов). В такой ситуации возникает соблазн сделать из всего этого dial-in сервер, чтобы иметь dial-up доступ к этой машине и к сети из любого места.
Необходимо заметить, что модемы при этом должны быть настроены на автоответ на входящий звонок (как именно это сделать - смотрите в документации к вашему модему). Кстати, если вам понадобится программа-терминал для конфигурирования модема - можете воспользоваться minicom (входит в комплект пакетов Slackware).
Установка и настройка mgetty
Нам понадобится mgetty+sendfax (). На текущий момент последняя beta версия mgetty - 1.1.30, однако опытным путем выяснилось, что лучше использовать версию 1.1.28, ибо 1.1.30 у меня как-то странно глючила.
Распаковываем тарбол: % tar zxvf ./mgetty1.1.28-Jan10.tar.gz % cd ./mgetty-1.1.28
копируем дефаултный policy.h, на базе него будем составлять свою конфигурацию: % cp ./policy.h-dist ./policy.h
Редактируем policy.h, переназначая консоль для вывода сообщений, чтобы всякая ерунда не сыпалась на экран (если нужно - в логах все можно посмотреть): #define CONSOLE "/dev/null"
Редактируем Makefile: CFLAGS= -DAUTO_PPP prefix=
Компилируем и устанавливаем mgetty: % make % make install
Редактируем /etc/mgetty+sendfax/login.config, добавляя туда строчку: /AutoPPP/ - a_ppp /usr/sbin/pppd file /etc/ppp/options
В /etc/mgetty+sendfax/mgetty.config для каждого порта прописываем (соответственно указывая ttyS0, ttyS1...): port ttyS0 debug 3 data-only y
Добавляем в /etc/inittab запуск mgetty init'ом (по строчке на каждый порт): d0:23:respawn:/sbin/mgetty ttyS0
Перезапускаем init (необходимо делать после каждого изменения inittab): % kill -1 1
ALTLinux
Это - один из первых отечественных дистрибутивов Linux, первоначально представлявший собой локализованный вариант Mandrake и распространявшийся под именем Mandrake/Russian Edition. Позднее получил свое имя по .
Имеет три пользовательские редакции: многодисковый Altlinux Master, облегченный Altlinux Junior и однодисковый ALT Linux Compact.
Достоинства (в начале - самые лучшие):
apt-rpm в качестве системы управления пакетами. С графической оболочкой Synaptic.
Отличная русификация «из коробки» (кодировки koi8-r, cp1251).
Большое количество документации на русском языке в дистрибутиве.
Нормальная работа с мультимедиа (наличие кодеков для прослушивания mp3, просмотра видео и DVD фильмов, коммерческие 3D-драйвера видеокарт).
Большое русскоязычное community пользователей и разработчиков.
Большая пакетная база. Четкая иерархия репозиториев разной степени стабильности.
Открытость репозитория в обоих направлениях, при желании любой может стать мантейнером чего-нибудь. См. также backports.
Недостатки (в начале - самые худшие):
В ALM 2.4 все еще идет старый Mandrake-овский инсталлятор, от чего есть проблемы. Собственный инсталлятор - в стадии публичного бета-тестирования.
На данный момент отсутствует какой-либо глобальный графический конфигуратор (для особо желающих предлагается использование старых drakex конфигураторов "на свой страх и риск").
Неподдерживаемостью инсталлером USB-клав и мышей, является одним из самых неприятных отрицательных особенностей M2.4 (это касается только установки, с использованием проблем нет).
Ядро 2.6 при инсталляции выбрать нельзя. В дистрибутивe оно есть, вся инфрастуктура для использования ядра 2.6 есть, однако это не рекомендуется.
Установка в режиме Expert может привести к разным несколько неожиданным результатам. Поэтому ей следует пользоваться с осторожностью.
Существует мнение, что родные ядра работают с дисковой системой не оптимальным образом.
Особенности:
Поддерживаемые локали: английская, русская, украинская, беларусская, казахская. В разных кодировках, русская локаль по умолчанию – koi8-r.
Разработчики дистрибутива стараются принимать максимально возможные меры безопасности, что хорошо. Но в силу этого некоторые вещи (доступ к правам суперпользователя, монтирование и т.д.) могут работать не так, как ожидалось бы. И вообще система безопасности - одна из наиболее специфичных особенностей этого дистрибутива.
Отсутствие собственного форума. Каковой заменяют списки рассылок. Это принципиальная позиция разработчиков.
Собственная система сборки ядер в rpm пакеты. Большое количество модулей к ядрам идет в отдельных пакетах.
Многие административные задачи выполняются через утилиту control.
ASPLinux
Это дистрибутив отечественного производства, разрабатываемый . Он представляет собой клон Fedora Core (ранее - Red Hat), несколько модифицированный с точки зрения прикладного софта и адаптированный для наших условий.
Распространяется в нескольких вариантах (не считая чисто серверных): Deluxe о множестве дисков и с полным комплектом документации, Standard - дисков вдвое меньше, из документации лишь руководство по установке, Express - трехдисковый набор с кратким буклетом.
Недостатки:
Разработчики - необычайные любители патчить ядро. В среднем - 25-28 патчей. В результате ядро запатчивается так, что его и "папа родной" с http://www.kernel.org не узнает! Как результат - если желаешь скомпилировать какую-то программу из исходников - игра в рулетку: может соберется, а может и не соберется из-за этих патчей, как повезёт. Равно как и поставив ядро с http://www.kernel.org, рискуешь получить множество больших и маленьких проблем с работой таких вещей, как iptables, squid и пр.
Для обновлений используется yum, который "тащит" с сервера служебную информацию о пакетах, которая зачастую имеют объем, сопоставимый с ними самими. То есть информация о пакете, скачанная с сервера, может иметь размер 1,2 Мбайт, а сам пакет - 1,3 Мбайт. При наличии анлима и широкого канала - вопрос отпадает, при наличии модема или дорогого трафика - весьма и весьма неприятно.
Поскольку ASPLinux базируется на той же Fedora Core, то зачастую обновления пакетов выходят с задержкой, и могут приближаться по размеру к самому дистрибутиву.
Достоинства:
Есть поддержка NTFS, MP3, Java, даже Macromedia Flash имеется.
Достаточно хорошая локализация (хотя, должен заметить, что в последних версиях дистрибутива у пользователя тоже отняли возможность выбора между koi8-r, cp1251, и UTF8, оставив только две последние).
В версии Deluxe отличная и явная документация. И по установке дистрибутива, и по разметке жесткого диска, и по постинсталляционным настройкам. Написана доступно и понятно даже для человека, который про Linux слышал где-то и у кого-то. Могу утверждать - более чёткой и ясной печатной документации на русском языке не имеет ни один из Linux'ов.
Имеется мощная техподдержка дистрибутива непосредственно разработчиками. Ответы приходят через 4-5 часов. То есть утром письмо с вопросом послал - вечером ответ 100% у тебя имеется. Как правило, за тобой закрепляется определённый сотрудник техподдержки, которому ты и морочишь голову своими бестолковыми и толковыми вопросами. Раньше была техподдержка по телефону, с версии 9.0 её сняли и теперь только почта.
Имеется свой русскоязычный сайт и форум техподдержки, на котором, и достаточно часто, ответы дают непосредственно разработчики.
Большая часть сведений, которые можно почерпнуть из "толстых" книг про Red Hat, применима и к ASPLinux.
Впечатления очевидца:
ASPLinux 9.0 использовался на домашнем компьютере, на рабочем, и у двоих друзей более года. В плюс:
очень хороший конструктор "сделай сам";
вполне приличная сборка пакетов, русификация, документация;
man-страницы на русском в большинстве случаев, некоторые в переводе вашей непокорной слуги;
всё плохое, что обычно справедливо говорится в адрес системы управления пакетами rpm, было успешно устранено разработчиками;
крайне мало возникало проблем с зависимостями даже в условиях жестокого издевательства над системой;
стабильность и безопасность на высоком уровне;
необъяснимых глюков замечено не было, ничего не отвлекало от непосредственно работы;
неоднократно приходилось устанавливать ASPLinux 9.0 (только тссссс!!!) на суперсекретную аппаратуру, на которой по генеральной задумке должна была стоять ОС МСВС;
багов и граблей - никаких;
уж совсем специфическое оборудование поддерживаться просто не могло, но по дополнительному соглашению драйвера были написаны специалистами из того же ASP;
стоит отметить корректную техподдержку достаточно высокого класса - аргумент, который в те времена выгодно отличал ASP от каких бы то либо ни было конкурентов;
В минус:
выход дистрибутива ASPLinux 9.2, а затем ASPLinux 10, вкупе со сменой руководства компании, перечеркнули многие былые заслуги этого уважаемого коллектива;
нельзя сказать, что они однозначно плохи во всех отношениях, но в сравнении с дистрибутивами ASPLinux версий 7.1, 7.3 и 9.0 они проигрывают по всем пунктам, описанным мной выше как достоинства;
сейчас пакеты в дистрибутиве идут как минимум ненастроенными.
Не далее как сегодня я разбирала с начинающим пользователем проблему, возникшую в ASPLinux 9.2 - не было звука. Ядро 2.4.22, oss, графическая среда по умолчанию - Gnome (по заветам Red Hat). и при этом в настройках xmms используемым расширением вывода было по умолчанию ... внимание! arts, и на выбор - alsa; проблема несложная для сколько-нибудь опытного пользователя, но новичок видит только то, что нет звука.
Разработчики, позиционирующие свой продукт как десктопный дистрибутив, не должны позволять себе таких глупых ошибок.
Debian
В отличие от всех описанных ранее дистрибутивов, за которыми стоят коммерческие фирмы, более или менее крупные, Debian - результат труда свободного сообщества разработчиков (сайт проекта - ). Он распространяется в различных формах (в виде iso-образов, файловых наборов и т.д.), доступных как для свободного скачивания, так и тиражирования и распространения.
Особенности
1. В отличие от остальных распространённых дистрибутивов (мне, по крайней мере, аналоги не известны), Debian имеет три основные ветки: stable, testing и unstable.
stable -- это официально выпущенный (официально поддерживаемый) дистрибутив, содержащий не очень свежие, но очень тщательно оттестированные и проверенные версии программ; после выхода очередной версии stable эта версия, строго говоря, вообще не обновляется, а все выходящие обновления к stable -- это исключительно secure-updates, закрывающие проблемы безопасности, обнаруженные во входящих в него программах уже после его выхода; за счёт этих двух факторов Debian stable заслуженно считается самым надёжным дистрибутивом, что достигается ценой упомянутого отставания в версиях; testing -- ветка, которая готовится стать следующим выпуском; не обеспечивает того максимального уровня безопасности, который даёт stable (тем не менее для домашнего использования уровень вполне достаточный), но отличается от неё более актуальными версиями софта; unstable -- эта ветка содержит самый свежак, если вы хотите всегда иметь самые распоследние версии всего чего только можно -- вам сюда; в отличие от testing, unstable никогда не будет выпущен, вместо этого программы постепенно "переползают" из него в testing; помимо этих трёх веток существует ещё ветка experimental, которая фактически находится на стадии бета-тестирования; если вам захочется чего-то такого новенького, чего нет ещё даже в unstable -- милости просим, на свой страх и риск.
Основное удобство для домашнего пользователя заключается в том, что в одной системе легко уживаются (со сноской на зависимости, конечно) пакеты из нескольких разных веток одновременно; т.е. при желании обновить, скажем, до unstable одну программу, вы сможете при этом всю остальную систему оставить в состоянии testing.
Надо отметить, что попадание конкретных версий ПО, в других дистрибутивах входящих в основную ветку, в testing, unstable или даже experimental объясняется отнюдь не меньшей стабильностью ПО по сравнению с другими дистрибутивами, а напротив - большей строгостью авторов дистрибутива к упомянутой стабильности.
2. В основной (main) состав дитрибутива попадают исключительно свободные программы; если в открытом/свободном ПО для вас важна идеология, здесь вы найдёте полное её соблюдение. Все программы с малейшими лицензионными отклонениями либо попадают в секцию non-free, либо вообще доступны только в сторонних источниках; таким образом за вами остаётся выбор -- использовать только свободное ПО в самом строгом понимании этого термина, или же добавлять и что-то под это строгое понимание не подпадающее.
3. Дебиан фактически не имеет никакого графика выхода новых версий. Девиз его разработчиков "выйдет тогда, когда будет готово". С одной стороны это временами приводит (как недавно, например) к затянувшимся ожиданиям, с другой -- напрочь исключает выпуск слепленного как-нибудь дистрибутива, лишь бы успеть к заявленной дате релиза (что бывает практически с любым софтом, имеющим заявленную дату выхода -- говорю как разработчик).
Недостатки
Пожалуй, основным недостатком Debian для новичка по сравнению с описанными выше дистрибутивами можно назвать почти полное отсутствие централизованных графических утилит настройки (кроме, конечно, таких дистрибутив-неспецефичных вещей, как, например, центр управления КДЕ). Вместо этого существует интерфейс текстового режима для настройки отдельных пакетов (да и сам установщик выполнен в том же стиле текстовых меню). Обратная сторона такого подхода -- возможность в любой момент перенастроить любой отдельновзятый пакет командой
$ dpkg-reconfigure имя-пакета
без необходимости вспоминать, в какой ветке общесистемного настройщика его параметры находятся.
Второй недостаток -- как следствие строгого отношения к статусу ПО, входящего в основной состав дистрибутива, в этом основном составе нет драйверов, скажем, для навороченных видеокарт и софт-принтеров. Но при наличии выхода в интернет эта проблема легко решаема, т.к. драйвера видео есть в секции non-free самого дистрибутива, а кроме того драйверами очень богаты основанные на Debian (и полностью совместимые с ним по формату пакетов) полу-коммерческие дистрибутивы.
Достоинства
первое и самое заметное - apt (метасистема управления пакетами); в связи с чем проблемы с установкой программ и разрешением их зависимостей отсутствуют как класс;
огромный репозитарий скомпилированных, готовых к использованию, пакетов, в котором есть практически всё, что создано творческим гением сообщества открытых исходников; из всех распространённых дистрибутивов (по крайней мере, пакетных) Debian имеет самый большой набор ПО;
простой как в установке и настройке, так и в эксплуатации - всё логично, понятно, прозрачно и достаточно унифицировано; вероятно, поэтому среди пользователей Debian'а немало как людей "от науки", так и технарей некомпьютерных специальностей -- время, затрачиваемое на настройку и "тюнинг" системы несравнимо мало по сравнению с временем собственно на работу в ней;
весьма умеренный объём базовой установки -- менее 200 мегабайт без Иксов -- а также возможность установив "базовую" систему сразу начать работать в ней, доустанавливая остальное только по мере необходимости, позволяют при желании жёстко контролировать занимаемое на диске пространство, а не разбрасываться лишними (а порой такими не-лишними) гига-, а то и мега-байтами;
обширное русскоязычное сообщество, помощь от которого можно получить как в русскоязычной Email-конференции debian-russian@lists.debian.org, так и на многочисленных сайтах, рассыпанных по просторам рунета.
Дополнительным фактором, который также можно отнести к достоинствам, является то, что на Debian основано немалое количество т.н. LiveCD (из них наиболее известный, но далеко не единственный - Knoppix), которые позволяют ознакомиться с особенностями дистрибутива без его установки, и при положительном результате - развернуть полноценную Debian-систему.
Все перечисленные выше дистрибутивы обычно однозначно рекомендуются для начинающих пользователей. В отношении же следующих систем это не столь очевидно. Однако они пользуются достаточной известностью, и потому мы считаем необходимым дать о них некоторую информацию - в более свободной форме. Дабы каждый мог бы решить для себя - подходят они ему в качестве "пробы пера", или нет.
Fedora Core
Это - самый распространенный дистрибутив Linux на протяжении многих лет. До недавнего времени он был известен под именем Red Hat. Однако ныне разработчик () сохранила это название для коммерческих реализаций своей системы. Свободная же ее реализация, предназначенная для конечных пользователей, именуется Fedora Core.
Недостатки:
Нет поддержки NTFS (актуально для человека, который переходит с Windows и который параллельно с Linux имеет WindowsXP на своей машине);
Нет поддержки МР3;
Нет Java;
Локализация - только UTF8, что в большинстве случаев приводит к квадратикам и вопросительным знакам вместо нормальной кириллицы. Да, всё это исправляется, но не до конца. Если русский язык критичен - необходимо менять локаль на KOI8-R;
Неявная документация. Если с техническим английским напрягов нет - всё ОК! Есть - будут проблеммы - вся переводная документация только через и-нет, http://www.google.com. Поиски занимают достаточно много времени и трафика.
Достоинства:
Для обновления системы и установки программ имеется официально прикрученный APT-GET и "морда" к нему - SYNAPTIC. Очень удобно и при обновлениях, так как вместе с пакетами не тянется всякого рода служебная информация о них.
Дистрибутив постоянно развивается и от релиза к релизу становится всё проще и удобнее для обычного пользователя.
Наличие огромного количества уже собранных пакетов rpm (см. ниже). Причем часто такие пакеты собирают сами разработчики программ и размещают их на официальных сайтах.
Имеется представительство в России. Правда, техподдержка - только для серверных (то есть коммерческих) версий дистрибутива.
Разработкой дистрибутива занимается серьёзный коллектив.
Подавляющее большинство "толстых" книг про Linux описывают именно дистрибутив Red Hat, от которого отпочковался Fedora Core.
FreeBSD
Отличие ее от описанных выше - в том, что это не дистрибутив Linux, а совершенно отдельная (хотя и родственная) операционная система. Обычно она рассматривается как сугубо серверная платформа (по разным оценкам, до 40% серверов Рунета работает под ее управлением). Однако и применение ее как настольной операционки для обычных пользователей никем не запрещено. Разрабатывается FreeBSD сообществом независимых разработчиков, доступна для свободного скачивания и тиражирования с серверов проекта.
Недостатки:
Не Linux, хотя и похож! В некоторых деталях существенно отличается, в результате чего - частые непонятки с командой mount и советы добиться автоматического старта Иксов через изменение runlevels.
Установка требует представления о BSD-специфичной номенклатуре устройств, о схемах разметки диска вообще и особенностях BSD-разметки в частности (понимания того, что Extended Partition не есть непременный атрибут диска, логические диски можно создавать и по иному). Инсталлятор, он же конфигуратор, sysinstall устроен не совсем логично, одни и те же вопросы повторяются в пунктах меню Установки и Конфигурирования, требуется понимание того, что дисковая разметка на стадии установки - это одно, а на стадии конфигурирования - требуется при подключении, например, дополнительного диска. Архаичный интерфейс инсталлятора, менее богатый возможностями автоматизации, чем графические установщики юзерофильных Linux'ов, и не столь гибкий, как универсальный инсталлятор Gentoo (bash+текстовый редактор).
Круг поддерживаемого оборудования уже, чем в Linux, нет поддержки 3D-графики для карт, отличных от Nvidia, насколько мне известно, не все гладко с "крутыми" звуковухами (точнее, их продвинутыми фичами), практически нет шансов найти драйвер от производителя для какого-либо нестандартного или экзотического девайса.
Набор пакетов на установочных дисках ограничен, вполне возможно, что нужного пакета там не окажется. Установка дополнительных пакетов (из бинарников или портов) требует достаточно скоростного и, особенно для работы с портами, дешевого канала. Практически нет FreeBSD-специфичного коммерческого софта.
Официальная техподдержка отсутствует как класс. Очень мало (сравнительно с Linux) "бумажной" литературы.
Вот, получилось Семь смертных грехов. Во искупление которых -
Достоинства:
Не Linux, но похож! С точки зрения пользователя (не админа) разницы между Linux и FreeBSD практически нет. А многие административные функции (например, управление учетными записями) реализованы лучше.
Для установки достаточно освоения BSD-специфики разметки и номенклатуры устройств на уровне пары простых рецептов. Не говоря уж о том, что освоение этой специфики вельми зело способствует расширению кругозора:-))
Для понимания логики устройства sysinstall достаточно осознания факта, что FreeBSD состоит из базовой системы, которая может конфигурироваться на стадии установки (а может - и когда угодно позднее), и дополнительного софта (пакетов и портов), частью системы не являющегося. Важно также понимать, что Иксы и почти весь дополнительный софт - абсолютно те же самые, что и в Linux. В сомнительных случаях всегда можно положиться на умолчания sysinstall - обычно не идеальные, но непременно разумные.
Поддержка оборудования во FreeBSD, коль скоро она уж имеет место быть, реализована, как правило, лучше, чем в Linux. Все устройства, критичные для установки и работы системы, поддерживаются. Практически исключены осложнения с дисковыми контроллерами, ATA RAID и тому подобными устройствами.
Набор пакетов и портов для FreeBSD охватывает абсолютно весь свободный софт, в принципе доступный в виде исходников. Возможно получение пакетов или исходников для портов на одной машине (например, на службе нахаляву) и установка их на совсем другой - например, дома.
Благодаря режиму бинарной совместимости с Linux возможен более или менее простой запуск всего Linux-специфичного (в том числе и коммерческого) софта - от RealPlayer и Flash до Oracle и подобных монстров. Исключений практически нет, вопрос только в трудозатратах.
Отсутствие техподдержки компенсируется изобилием онлайновой документации, начиная со знаменитого FreeBSD Handbook, практически вся она имеется на дистрибутивных дисках, а в Сети доступна в русских переводах. Книг хоть и мало, но хорошие:-).
И, дабы добро окончательно восторжествовало -
В отличие от Linux'ов, которых много, FreeBSD - одна: все вариации на эту тему, от Freenzy до PC-BSD, представляют собой разные способы распространения и комплектации одной и той же ОС. Очень важно, что все прочитанное начинающим пользователем про FreeBSD, относится именно к ней, ему не нужно гадать, как это бывает с Linux'ом, относится ли данное описание к системе вообще или представляет собой специфику конкретного дистрибутива. Более того, все знания про FreeBSD могут быть приложимы к любой иной BSD-системе (м.б. лишь с незначительной коррекцией).
Мы не берем на себя смелость дать конкретные рекомендации типа: эта система лучше всего подходит для первичного знакомства, та - для домашнего использования, а иная - для офисного применения. Выбор остается за вами.
В заключение - самое главное: какой бы дистрибутив, и какую бы операционку вы ни выбрали, вряд ли этот выбор будет последним и окончательным в вашей жизни. Следует быть готовым к тому, что в поисках идеала будет перепробован не один и не два варианта... Удачи в этом благородном и увлекательном деле!
Linux - статьи
Gentoo Linux - это дистрибутив, который становится всё более и более популярен в OpenSource-сообществе как благодаря поддержке большого количества аппаратных платформ, так и исключительно гибкой и удобной системы "портежей" ("portage"), построенной по мотивам PORTS из FreeBSD.
Gentoo является типичным представителем семейства source-based дистрибутивов, следствием чего и является большая часть как его достоинств, так и его недостатков. Подходит ли этот дистрибутив начинающему пользователю - вопрос спорный. Однако в последнее время он приобрел широкую известность, и мы сочли необходимым дать информацию для того, чтобы этот самый начинающий пользователь смог бы ответить на него сам.
Достоинства:
Высокая производительность. Возможность предельно глубокой и гибкой оптимизации системы под аппаратное обеспечение.
Удобные "установка и удаление программ". Большое количество приложений в системе портэжей.
Удобный механизм обновления. Оперативное обновление дерева портэжа. Отсутствие лишнего пользовательского ПО.
В системе оказываются приложения с нужными опциями (например, поддержка gpm или её отсутствие, и т.п.) и необходимыми патчами.
Возможность устанавливать Gentoo из произвольной Linux-системы (напримаер, с Knoppix LiveCD или любогой иного "живого" дистрибутива, содержащего компилятор gcc), без отрыва от текущей деятельности. В этом случае диски Gentoo не требуются: весь процесс установки можно пройти из сети.
Особенности:
Отсутствие специального установщика.
Необходимость читать руководства и инструкции.
Ограниченное количество "настроек по умолчанию".
Сборка из исходников.
Отсутствие графических конфигураторов для специфических утилит Gentoo.
Правка файлов и использование консольных утилит - предпочитаемый метод конфигурирования системы.
Аккуратность разработчиков приводит к тому, что некоторые вполне стабильные версии приложений числятся нестабильными.
Недостатки:
Очень долгая и неудобная установка (готовая мультимедийно-офисная система может устанавливаться до недели в зависимости от оборудования).
Удобство установки и обновления программ прмямо пропорционально регулярности и стоимости доступа к интернету.
Решение проблем со сборкой отдельных приложений, если они (проблемы) появляются, может быть нетривиально.
Отсутствие русификации "из коробки".
Mandriva
Этот до недавнего времени был известен под именем Mandrake: свое ныншнее название он приобрел после слияния с бразильской Linux-компанией Connectiva, разрабатывавшей одноименный дистрибутив. Генетически происходящий от Red Hat, ныне он не имеет с ним почти ничего общего (кроме формата пакетов).
Распространяется в двух основных пользовательских редакциях (не считая серверных): обычной, доступной для свободного скачивания и тиражирования, и "клуюной", в укомплектованном виде предназначенной для членов т.н. Mandriva Club (то есть лиц, оплативших свое членство), и включающей дополнительный софт, в том числе и проприетарный.
Недостатки:
Не самый лучший подбор софта. Некоторые довольно полезные приложения (а это sim, djvu, guarddog и т.п.) нужно скачивать из Интернета. И хотя это довольно не сложно, и всё это доступно в виде rpm-пакетов, но к примеру в том же Альте я почти ничего не скачивал.
Для более-менее продвинутого пользователя явно нехватает тех возможностей, которые предоставляют конфигураторы. Поэтому приходится сначала конфигурить конфигуратором, а потом если нужны более тонкие настройки лезть в конфиг, читать литературу и т.д и т.п. Примеры: настройка фаервола и прокси. Хотя это может быть и достоинство.
Не всегда корректная и полностью предсказуемая работа некоторых конфигураторов, в первую очередь diskdrake (может сейчас он и не плохо работает, но после того как, в версии приблизительно 9.0, он запорол мне весь диск я стараюсь его не запускать).
Техподдержка на русском языке отсутствует, как класс.
Достоинство и недостаток одновременно:
Так-же, как и в Suse (см. ), имеется графическая утилита для настройки всего и вся. НО! В отличии от Suse, не убрана возможность ручной правки конфигов.
Тем не менее, рекомендуется конфигурировать - только из специальной утилиты, устанавливать программы - тоже.
Вмешательство куда-либо руками (особенно неопытными) может привести к плачевным последствиям.
Достоинства:
Простота установки. - быстро и понятно даже самому новичку.
Для Windows- мигранта имеется аналог панели управления, через который конфигурируется практически всё.
Работает довольно быстро и красиво.
Почти нет проблем с установкой программного обеспечения.
Реально хорошая поддержка оборудования: дистрибутив "заточен" под декстопы и практически под любую платформу. Большинство "железяк" работает сразу и стабильно сразу после установки и не требует дополнительного вмешательства.
Хорошая локализация и интернационализация. Список поддерживаемых языков (кому это реально нужно) превышает все мыслимые потребности.
Очень хорошая русификация, пожалуй даже лучше, чем у ASPLinux, и вполне сравнимая с таковой Altlinux. Help'ы и man'ы в подавляющем большинстве на великом и могучем.
Много толковой документации в сети, хотя в общих чертах всё работает и без неё.
Последнее время выходило несколько печатных руководств на русском языке.
Впечатления очевидца:
Начну с того, что мой общий "опыт" работы в Linux - ровно 1 год и 1 день, так что в категорию "начинающих" я влезаю с руками и ногами. С полгода тому установил себе второй в жизни дистрибутив - MDK 10.1 Community (сборка лафоксовская, 5 CD).
Установка проводилась на неразмеченное дисковое пространство, рядом с Windows XP. Установка прошла вполне гладко - система сама предложила побить выделенные 20 Гбайт на 5 Гбайт под корень, 15 - под /home, и еще нашла 494 Мбайт для свопа. Я решил не выпендриваться и оставить все так, как есть. Пакеты на этапе установки можно выбирать по-разному - от полного доверия установщику до индивидуального подбора. Понравилось, что при выборе того или иного пакета (а также последующем сносе) система предупреждает, что потянет за собой еще то-то и то-то.
Все оборудование было найдено безошибочно. Виндовые разделы были подхвачены и слету смонтированы как /mnt/win_c и т.д. CD - автоматом монтируется/демонтируется, когда вставляешь/вынимаешь диск. После установки система действительно полностью готова к работе. С флэш-носителями тоже никаких проблем - монтируются автоматом как "жесткий диск". Единственное, что мне пришлось прописывать вручную - это сетевые установки (аж два или три параметра).
Практически все, действительно, настраивается через всевозможные конфигураторы. Конечно, спецы могут и поморщиться, но для начинающих - самое оно, потому что гораздо сложнее наломать дров. Да и работают эти конфигураторы вполне корректно. Руками правил немного - прописал modeline на 105 Hz и изменил настройки клавиатуры (мне еще украинский нужен).
Софта, особенно на первых порах, более чем достаточно (5 CD, все-таки). Если мало, можно использовать wine и CrossOver (30-дневная trial-версия). Можно в список "носителей программ" добавить cooker (ftp-репозиторий со всевозможными дополнениями). Там же и обновиться можно, если канал/карман позволяет.
Шрифты вполне красивые - не хуже виндовых (хотя свою любимую вердану я потом добавил). С локалями, честно говоря, я до конца не разобрался, но траблов особых не замечено (все "грабли" вполне стандартные - типа некорректного отображения русских названий файлов на виндовых разделах). Просто некогда разбираться.
За все это время система падала 1 раз - из-за чего (кроме как собственных кривых рук), так и не понял. Было дело, подглючивала при загрузке - но отключение несуществующих устройств проблему вылечило. В общем, впечатления самые положительные.
Обновления
Эта версия содержит многочисленные обновления, дополнения и исправления. Рекомендуется к прочтению одновременно с документом: .
Slackware
Это самый древний (из ныне живущих) дистрибутив Linux'а, с самого начала и по сей день связанный с именем его создателя - Патрика Фолькердинга. На протяжении более чем 10 лет в ничего практически не меняется (кроме версий пакетов, конечно). А именно:
Среда установки/настройки сильно похожая на sysinstall от FreeBSD,
BSD-стиль инициализации.
Это дистрибутив пакетный - формат tgz,но зависимостей нет у них, сами пакеты собраны в бинарный вид из официальных исходников без какого либо пропатчивания, впрочем, как и ядро. То есть это ЧИСТА линукс.
Пакеты можно собирать и свои - build-скрипты для сборки выложены на сайте проекта вместе с исходниками, скрипты очень простые, кстати.
База пакетов ведётся, но она в принципе не нужна.
Отсутствие контроля зависимостей - это и преимущество, и недостаток. Например, лежит у меня в одной папке порядка 150 пакетов, для установки их всех мне нужно запустить одну команду
$ installpkg ./*.tgz
Заметьте, без всяких ключей. А вот то, что потом что-то из установленного может не запуститься - это вам разбираться самим.
Однако имеются и механизмы автоматизированной установки/обновления из Интернета - их огромное количество: slapt-get, swaret, getpkg, slackpkg и ещё несколько.
Русификация сейчас сводиться к запуску всего одного скрипта, самих таких скриптов в Сети множество.
Более-менее приличные и нужные настройки можно сделать через утилиту pkgtool (она же служит для управления пакетами), к ней выпущенно множество графических front-end'ов.
Документации по дистрибутиву неимоверно много, на все вопросы давно найдены ответы - нужно лишь поискать чуть. Так как по сути в дистрибутиве ничего не меняется, она практически не подвержена фактору старения. Кстати, сама документация поставляется вместе с дистрибутивом - на английском, но неплохая.
Техподдержки нет в принципе - и в принципе она не нужна. Достаточно лишь запомнить сайт www.slackware.ru - там лежат доки и имеется форум, и www.linuxpackages.net - здесь можно найти готовые пакеты и ссылки на iso-образы.
Unicode пока поддерживается не блестяще, нужно в некоторых моментах брать бубен и шаманить.
В общем, этим дистрибутивом пугают детей, то есть новичков: не следует начинать с него - он сложный. Ничего подобного, он прост, как первый советский рубль, но простота его столь же хорошо скрыта.
Suse
Разрабатывавшийся одноименной немецкой компанией, этот дистрибутив ныне принадлежит . Имеет свободную Download-редакцию и несколько "коробочных" вариантов. Статус последних различен, исчерпывающие сведения по этому вопросу можно получить из .
Недостатки:
Не доведенная до конца русификация - половина менюшек на английском, а половина на криво переведённом русском.
Официальная техподдержка на русском языке для индивидуальных пользователей пока затруднена.
Достоинство и недостаток одновременно:
Локаль по умолчанию - UTF8 со всеми вытекающими отсюда последствиями. В частности, работа в консоли с кириллическими документами затруднена.
YAST - графическая утилита для управления всем и вся. Кому-то это нравится, кто-то от неё плюётся. Нецелесообразно конфигурировать систему с помощью конфигов - всё только через YAST. Ручная правка конфигов ранее могла привести к полному краху системы.
Достоинства:
Просто шикарный набор драйверов, в том числе и проприетарных, которые входят в дистрибутив. Сказывается направленность разработчиков на ноутбуки - практически 100% гарантия установки и работы SuSe с любыми ноутбуками, включая WiFi, Winmodem, видеокарты и т.д.
Удобная утилита для обновления дистрибутива.
Достаточно большой выбор софта - практически всё, что необходимо для нормальной работы и отдыха - имеется.
Очень хороший набор ttf-шрифтов, в том числе кириллических, делающих необязательным использование шрифтов от Microsoft.
Дистрибутив собран надёжно и добротно, с чисто немецкой пунктуальностью и качеством.
Все дистрибутивы, перечисленные выше, базируются на *.rpm-пакетах. Достоинства и недостатки пакетной системы мы здесь обсуждать не будем. Однако, каковы бы ни были вторые, два достоинства формата rpm неоспоримы. Первое - то, что это самый распространенный (после исходников) формат свободных программ. И второе - и сам формат, и утилиты для работы с ним подробно описаны во многих "толстых" книгах по Linux (Red Hat).
Вступление
Это нечто среднее между FAQ и HOW-TO, и посвящено оно выбору первого дистрибутива свободной POSIX-совместимой операционки. Под последней в большинстве случаев имеется ввиду Linux - хотя и некоторым BSD-системам не следует отказывать в этом качестве. Документ составлен по возможности как описание наиболее существенных, с точки зрения начинающего пользователя, недостатков и достоинств ряда систем. Для некоторых дистрибутивов приведены также впечатления очевидцев (каковые также были начинающими пользователями).
Важное замечание: начинающему пользователю следует учитывать, что, когда речь идет о поддержке/неподдержке чего либо, имеется ввиду поддержка "из коробки", сразу после инсталляции. Помните: к любому дистрибутиву можно прикрутить почти все, что в принципе может Linux или BSD. Правда, подчас это придется делать уже самому...
Круг включенных дистрибутивов сознательно ограничен, и определялся не их достоинствами или недостатками, и даже не популярностью в мире Open Sources, а преимущественно известностью за его пределами - среди широких масс околокомпьютерных трудящихся. И потому безгранично расширяться не будет. Тем не менее, свои пожелания, замечания, дополнения и исправления (а еще лучше - полные описания по предложенной схеме) вы можете выложить в соответствующем топике Линуксфорума. Все конструктивные усовершенствования будут включены в следующие версии.
Чтобы не повторяться в дальнейшем, отметим сразу: вне зависимости от формы распространения, любой из описываемых ниже дистрибутивов в той или иной комплектации джоступен для свободного скачивания с сайта разработчика.
Новых описаний дистрибутивов в текущую версию не включено за их неготовностью. Тем не менее, в планах - расширение списка. И первый кандидат в него - Gentoo. Здесь не будет обсуждаться вопрос о том, подходит ли этот дистрибутив начинающему пользователю или нет. Но известность его ныне сравнялась со всеми прочими членами списка, и начинающему пользователю следует предоставить материал для самостоятельного решения этой проблемы.
Полностью за бортом осталось такое выдающееся явление, как LiveCD - дистрибутивы Linux и BSD, работающие непосредственно с компактов, без установки на диск. Хотя именно с них и начинали знакомство множество действующих пользователей "последнего призыва". Однако это - тема отдельного разговора, который, возможно, состоится в ближайшее время.
Выбор первого дистрибутива: Пособие для начинающих
Версия 2.1 от 20 июня 2005 г.
Создано творческим гением посетителей Линуксфорума
Силами:
Александра Еремеева aka Shurik, Инги Маховецкой aka Ослик ИА, Александра Шаботенко aka Ash, Валерия Моторина aka wolf_black, Valerius'а, Алексея Федорчука aka alv, Максима Беленкова aka m.belen, Topper'а, Bolwarek'а, Тихона Тарнавского aka t.t, Александра Баракина aka Sash Kan, clx'а, Дмитрия Донцова aka mit, и очень многих других.
Под редакцией Алексея Федорчука
А где же Arial?
Где же все мои шрифты, и, главное, как мне их привинтить? В этот раз все легко и просто. Нажимаем Приложения->Параметры->Шрифт.
Попадаем в настройки шрифтов и их сглаживания. Нажимаем «Показать в подробностях…» и далее «Перейти в папку шрифтов». Откроется окно Наутилуса, показываюшее папку шрифтов (она должна быть пустой сразу после установки), теперь просто перетащите туда нужные вам шрифты (хоть все из C:\Windows\fonts). Только помните, что это работает для TTF-шрифтов. Про остальные читайте соответствующие How-to.
Музыка не играет!
Это смотря какая! Да, mp3 не играет. В комплекте не поставляется декодер для mpeg3, нужно озаботиться его установкой. Для этого идем, например, на и пишем в строке поиска xmms-mp3. Получите кучу ссылок на этот пакет. Качаете его (выбирайте пакет для Fedora Core) и устанавливаете его двойным кликом. Теперь в xmms можно проигрывать mp3. Если вы хотите поддержку системного кодека mp3, т.е. установить этот декодер для Gstreamer, нужно скачать пакет gstreamer-plugin-mp3.
Облегчаем жизнь!
Вам уже надоело искать какие-то левые пакеты из-за зависимостей нужной вам программы? Поскольку –force не наш метод, мы пойдем по пути прогрессивного человечества., а именно установим apt4rpm. Это программа автоматической установки ПО и его зависимостей. Apt был разработан для Debian GNU\Linux, но позже портирован на RPM-основанные дистрибутивы. Его использование совместно с утилитой Synaptic решит ваши проблемы установки новых программ и некоторых самых распространненых драйверов, например, для Win-модемов (некоторых), — в базе есть уже нужные модули ядра.
Скачать можно на .
Так же рекомендую добавить еше несколько серверов в список Apt. Эти списки лежат в /etc/apt/sources.list.d/ — там несколько файлов с описанием серверов. Новые списки и подробную иноформацию по использованию apt4rpm можно найти на и .
Сносить ли UTF-8?
Ну вот вы и поставили себе Fedora. Теперь есть куча вопросов, что с этим делать? Для начала нужно полечить проблему юникода в консоли или старых GTK+ 1.x-приложениях. Помните, для Red Hat Linux компания Linux Ink. делала компак-диск Cyrillic Edition? Так вот для FC этого диска нет… Но не страшно, поскольку все, что нужно для подобного диска, лежит на ftp-сервере этой компании:
().
Эти пакеты решат проблему юникода, вернее, это сделает только один пакет, остальные добавят новые функции к GDM и redhat-config-language, что позволит переключать настройки языка в кодировку koi8-r, если это вам нужно.
Советы по Fedora Core
Автор: decvar
E-mail: decvar at inbox dot ru
Сайт:
После прекрашения разработки Red Hat Linux сообщество пользователей думало, что компания кинула своих пользователей, но позже выяснилось, что все то, чем славился Red Hat Linux Project, перешло в Fedora Linux Project. Соответственно, пользователям предлагается либо использовать продукты RedHat Enterprise Linux, либо переключатся на Fedora.
Вот тут и возникает вопрос: а что ждать от нового дистрибутива? И сколько новых граблей найдешь? Может, проще остановиться на «девятке» и не заниматся фигней? Мой ответ— однозначно ставить: Fedora Core содержит в себе ВСЕ то, что предоставлял Red Hat Linux, но теперь это проект разработки сообществом.
При работе в GAIM вместо
Такая проблема возникает в основном, если человек, с которым вы общаетесь работает в ICQ клиенте Miranda для Windows или других ICQ клиентах, которые не полностью совместимы с родным клиентом ICQ от Mirabilis, потому что как правило с icq200* проблем не бывает.
Итак. В Fedora Core 3 проблема может быть решена так:
Запускаем GAIM (Основное меню GNOME -> Интернет -> IM)
Нажимаем кнопку "Учетные записи"
В появившемся окне нажимаем либо "Добавить" (или "Изменить" если ваша учетная запись уже создана)
Заполняем поля в окне согласно подсказкам
Внизу окна нужно щелкнуть по строчке "Показать больше параметров"
В поле кодировка нужно стереть значение ISO-8859-1 и поставить cp1251
Нажмите "Сохранить" и в окне учетных записей "Закрыть"
Последнее, что необходимо - это подключиться, если вы еще не были подключены к серверу или переподключиться, если уже были подключены.
Теперь все должно работать.
А почему у меня так странно ведет
Такое положение дел имеет место быть в Fedora Core 1 и 2. В Fedora Core 3 новая версия Midnight Commander'а уже нормально позволяет вводить русские буквы в UTF-8 локали. При просмотре файлов в кодировке ru_RU.UTF-8 проблем также не наблюдается. Пользователям дистрибутивов Fedora Core 1 и 2 рекомендую взять src.rpm пакет из Fedora Core 3 и пересобрать его в своем дистрибутиве. Возможно для этого вам понадобятся также новые версии библиотек ncurses и slang.
А почему у меня в Иксах, в программах, написанных на Gtk 1.2 вместо русских букв квадратики?
Потому что юникодные шрифты, которые идут с XFree86 или Xorg не содержат русских букв. Разработчики дистрибутива говорят, что это будет продолжаться и в следующих версиях до тех пор, пока в сам дистрибутив X.org не попадут шрифты с русскими буквами. Разработчики Fedora Core ничего менять не собираются.
Проблема исправляется довольно тривиально. По материалам от той же компании Linux-Ink я собрал пакет с правильными шрифтами, который вы можете взять вот отсюда: XFree86-iso10646cyr-75dpi-4.2.1-3rhfc3.vv.noarch.rpm.
Где взять самую свежую версию данного FAQ?
Оригинальный адрес странички, откуда вы можете загрузить самую свежую версию этого документа:
Где взять те программы, которых нет в дистрибутиве?
В Интернет существует множество репозитариев дополнительных пакетов к дистрибутивам Red Hat и Fedora Core. Вот наиболее популярные из них:
В этих репозитариях вы найдете множество дополнительных пакетов, которые не вошли в состав дистрибутива Fedora Core, но которые собраны специально для него. Также вы можете воспользоваться поисковыми системами по названиям пакетов, такими как:
Хотелось бы иметь возможность работать с APT как в Debian. Это возможно?
Да. Подробности установки и настройки APT для Fedora Core и Red Hat читайте здесь.
Как сделать переключение на русскую клавиатуру и обратно через Ctrl+Shift?
В Fedora Core 1 вам придется изменить файл /etc/X11/XFree86.conf, а в Fedora Core 2 файл /etc/X11/Xorg.conf. Найдите в секции InputDevice строку, которая начинается с
Option "XkbOptions"
и замените ее на следующую:
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
В Fedora Core 3 все гораздо проще. Достаточно в среде GNOME зайти в основное меню, далее Параметры->Клавиатура и на закладке "Параметры раскладки" выбрать нужные вам клавиши переключения.
Как включить поддержку протокола IPX?
Очень просто. Допустим нам необходимо включить поддержку протокола IPX для первой сетевой карты eth0. Сперва установите пакет ipxutils.
Затем добавьте в файл /etc/sysconfig/network строку
IPX=yes
Далее, добавьте в файл /etc/sysconfig/network-scripts/ifcfg-eth0 следующие строки:
IPX=yes
IPXACTIVE_802_3=yes
IPXPRIMARY_802_3=yes
IPXNETNUM=777
Разумеется, что 802_3 означает тип фрейма 802.3. Вы можете выбрать другие типы, например 802.2, ETHERII или SNAP. Кроме того, в переменной IPXNETNUM вы должны указать уникальный номер сети протокола IPX. Если поддержка IPX включается для последующего доступа к серверу Novell Netware, то номер сети должен совпадать с тем, который используется сервером Novell Netware.
Все что осталось теперь - это перезапустить сетевой интерфейс, что можно сделать командами:
ifdown eth0; ifup eth0
Вы можете проверить привязку протокола IPX к вашей сетевой карте через команду
ifconfig eth0
которая дожна выдать что-то вроде этого:
eth0 Link encap:Ethernet HWaddr 00:02:44:0F:B0:82
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::202:44ff:fe0f:b082/64 Scope:Link
IPX/Ethernet 802.3 addr:0002440FB082
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:16 dropped:0 overruns:0 carrier:32
collisions:272 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:1096 (1.0 KiB)
Interrupt:11 Base address:0xc800
Обратите внимание на текст выделенный красным.
Теперь, если вам нужнен доступ к серверу Novell Netware, то вам понадобится еще установить пакет ncpfs, который содержит все необходимые утилиты для работы с Novell Netware.
Кто является автором данного FAQ?
Основным и пока единственным автором данного документа является Виктор Вислобоков.
Мне необходимо увеличить количество одновременно открытых файлов. Как это сделать?
Воспользоваться утилитой sysctl. Для увеличения лимита до 20000 файлов, добавьте в файл /etc/sysctl.conf строку fs.file-max = 20000
и выполните команду
/sbin/sysctl -p /etc/sysctl.conf
Можно ли в Fedora Core сменить русскую кодировку по умолчанию UTF-8 на кодировку KOI8-R?
Да можно. В дистрибутиве по умолчанию, при выборе русского языка, включается кодировка ru_RU.UTF-8. Однако, файлы с описанием локали ru_RU.koi8r по прежнему присутствуют в системе, хотя и явно не используются.
Замечу, что пользоваться старой кодирвкой KOI8-R идеологически неправильно, потому что другие дистрибутивы наоборот идут в сторону юникодной кодировки ru_RU.UTF-8. Я думаю, что тотальный переход на UTF-8 - это вопрос пары-тройки лет. На мой взгляд, использование KOI8-R оправдно только в случае, если ваши исторические системы работают на этой кодировке или если необходима работа программ, которые не умеют работать с юникодной кодировкой.
Подумайте, возможно вам нужно, чтобы с KOI8-R работала, скажем, одна (или несколько) программ, а остальная система функционировала бы используя юникодную кодировку. Если у вас именно эта ситуация, то нет ничего проще - перед запуском программы (в xterm или в обычном терминале, выполните команду shell:
export LANG=ru_RU.koi8r
Эта команда установит локаль KOI8-R для программ, которые будут запускаться далее из этого же shell. Вся остальная система будет по-прежнему функционировать в UTF-8.
Если же требуется полностью перевести систему на использование KOI8-R, то предстоит повозиться. Лучше всего воспользоваться готовыми пакетами от компании Linux-Ink, которые можно загрузить с их FTP-сервера:. На момент написания там есть только пакеты для Fedora Core 1, но не вижу причин, по которым они не должны работать в более свежих дистрибутивах. Сам я эти пакеты ставить не пробовал, поэтому в случае проблем все вопросы к авторам пакетов.
Обнаружил, что для жесткого диска не включен режим DMA. Как это сделать?
Для задания специальных параметров тонкой настройки жестких дисков, в Red Hat и Fedora Core есть специальный файл: /etc/sysconfig/harddisks. Параметры, которые указываются в нем, передаются программе hdparm. Файл хорошо документирован внутри, но тем не менее вот краткое описание.
Для включения режима DMA для всех дисков раскомментируйте строку
USE_DMA=1
Для включения режима ввода/вывода нескольких секторов сразу за одно прерывание, установите параметр
MULTIPLE_IO=n
где n - число секторов. Для включения 32-битного доступа к диску раскомментируйте строку
EIDE_32BIT=n
где n может принимать значения 0 - запрет 32-bit, 1 - включение 32-bit, 3 - включение 32-bit с синхронизационной последовательностью. Для включения режима опережающего чтения раскомментируйте строку
LOOKAHEAD=1
Для прочих опций hdparm занесите их в строку EXTRA_PARAMS. Например эта строка может выглядеть так:
EXTRA_PARAMS="-X66 -u1"
Для вступления внесенных изменений в силу, необходима перезагрузка.
Откуда можно скачать дистрибутив?
Дистрибутив можно скачать с одного из многочисленных зеркал. Список зеркал находится на страничке:
http://fedora.redhat.com/download/mirrors.html.
Почему у меня XMMS не воспроизводит MP3 файлы?
Потому что XMMS собран без поддержки MP3 по лицензионным соображениям. Согласно претензиям правообладателей на формат MP3, поставщики программ, которые работают с MP3 должны платить лицензионные отчисления с каждого экземпляра программы. Поэтому разработчики Red Hat и Fedora Core вынуждены собирать воспроизводящие музыку программы без поддержки MP3.
Вы найдете полноценную версию XMMS с большим количеством дополнительных плагинов на FreshRPMS.
Почему Web-сервер неправильно
Действительно, многие сталкиваются с тем, что разместив документы скажем в кодировке KOI8-R они видят в браузере не русские буквы, а неполнятные символы. Это тем более для них удивительно, поскольку в самом тексте HTML документа явно указана кодировка KOI8-R.
На самом деле ничего удивительного нет. Дело в том, что в конфигурационный файл /etc/httpd/conf/httpd.conf web-сервера apache, который поставляется в дистрибутиве Fedora Core, разработчиками добавлена строка:
AddDefaultCharset UTF-8
которая и заставляет web-сервер не обращать внимание на тэг кодировки в HTML документе, а принудительно выставлять в заголовке HTTP-ответа кодировку UTF-8, которую и подхватывает браузер.
Мне совершенно непонятны мотивы разработчиков пакета, по которым они это делают, поскольку, понятное дело, первичным источником информации о кодировке, имеющим наиболее высокий приоритет, должен как раз быть HTML документ. Тем не менее, проблема решается просто - закомментируйте указанную выше строку символом '#' и перезапустите web-сервер командой:
service httpd restart
Специальный FAQ по дистрибутиву Linux Fedora Core
, www.linuxshare.ru
Версия 1.1 от 30.11.2004
Содержание
У меня две сетевые карты, но почему-то между ними не ходят пакеты (нет маршрутизации). Что делать?
Исходя из соображений безопасности, в дистрибутивах Red Hat и Fedora Core по умолчанию выключена маршрутизация пакетов между сетевыми картами (интерфейсами), которые находятся на одной машине.
Я предлагаю идеологически правильный способ включения маршрутизации для Fedora Core и Red Hat. Исправьте в файле /etc/sysctl.conf строчку:
net.ipv4.ip_forward = 0
на
net.ipv4.ip_forward = 1
и выполните команду
/sbin/sysctl -p /etc/sysctl.conf
При следующих загрузках маршрутизация будет включаться автоматически.
У меня есть USB card-reader для
Проблема в том, что ядро в Red Hat и Fedora Core собрано с выключеной опцией CONFIG_SCSI_MULTI_LUN. Из-за этого ядро видит только первое SCSI устройство на канале. Поскольку доступ к USB устройствам в Linux делается через эмуляцию SCSI, то соответственно в card-reader'ах, где несколько слотов под разные типы карт, всегда будет видно только одно первое устройство, которое будет доступно в системе как /dev/sda.
Существует два пути решения проблемы. Первый - пересобрать ядро с опцией CONFIG_SCSI_MULTI_LUN. Второй - воспользоваться одной хитрой возможностью псевдофайловой системы /proc. Для этого сперва необходимо узнать для первого USB устройства его SCSI channel, id и lun. Сделать это просто. Нужно посмотреть в файл /var/log/messages после загрузки системы. Вы увидите что-то вроде этого:
Nov 15 19:30:01 vitachi kernel: SCSI subsystem initialized Nov 15 19:30:01 vitachi kernel: Initializing USB Mass Storage driver... Nov 15 19:30:01 vitachi kernel: scsi0 : SCSI emulation for USB Mass Storage devices Nov 15 19:30:01 vitachi kernel: Vendor: NEODIO Model: USB Storage-MMC Rev: 305M Nov 15 19:30:01 vitachi kernel: Type:Direct-Access ANSI SCSI revision: 02 Nov 15 19:30:01 vitachi kernel: usbcore: registered new driver usb-storage Nov 15 19:30:01 vitachi kernel: USB Mass Storage support registered. Nov 15 19:30:01 vitachi kernel: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Обратите внимание на текст, который выделен красным. Т.е. channel=0, id=0 и lun=0. Теперь выполняем хитрые манипуляции с файловой системой /proc. Допустим у нас card-reader на четыре разных типа карт. Первое псевдоустройство уже инициализировано. Остается инициализировать оставшиеся три. Для этого выполняем следующие команды:
echo "scsi add-single-device 0 0 0 1" >/proc/scsi/scsi echo "scsi add-single-device 0 0 0 2" >/proc/scsi/scsi echo "scsi add-single-device 0 0 0 3" >/proc/scsi/scsi
Эти команды заставляют ядро просканировать канал SCSI для поиска новых устройств. После их выполнения вы увидите что-то типа этого:
Nov 15 19:30: 08 vitachi kernel: Vendor: NEODIO Model: USB Storage-CFC Rev: 305M Nov 15 19:30:08 vitachi kernel: Type: Direct-Access ANSI SCSI revision: 02 Nov 15 19:30:08 vitachi kernel: Attached scsi removable disk sdb at scsi0, channel 0, id 0, lun 1 Nov 15 19:30:08 vitachi kernel: Vendor: NEODIO Model: USB Storage-SMC Rev: 305M Nov 15 19:30:08 vitachi kernel: Type: Direct-Access ANSI SCSI revision: 02 Nov 15 19:30:08 vitachi kernel: Attached scsi removable disk sdc at scsi0, channel 0, id 0, lun 2 Nov 15 19:30:08 vitachi kernel: Vendor: NEODIO Model: USB Storage-MSC Rev: 305M Nov 15 19:30:09 vitachi kernel: Type: Direct-Access ANSI SCSI revision: 02 Nov 15 19:30:09 vitachi kernel: Attached scsi removable disk sdd at scsi0, channel 0, id 0, lun 3 Nov 15 19:30:10 vitachi scsi.agent[2739]: disk at /devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2:1.0/host0/0:0:0:1 Nov 15 19:30:10 vitachi scsi.agent[2749]: disk at /devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2:1.0/host0/0:0:0:2 Nov 15 19:30:10 vitachi scsi.agent[2759]: disk at /devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2:1.0/host0/0:0:0:3
Теперь в системе у вас должны стать доступными такие устройства как /dev/sdb, /dev/sdc и /dev/sdd.
Условия распространения данного FAQ
Условия очень простые:
Разрешается свободное и бесплатное копирование и распространение этого документа в электронном виде или на бумаге, за исключением печатных изданий (в газетах, журналах или книгах). Т.е. вы можете пользоваться сколь угодно большим количеством копий этого документа, а также делиться с знакомыми и друзьями и размещать у себя на серверах или web-страничках. На использование документа или его части в печатных изданиях необходимо письменное разрешение автора.
Внесение изменений в этот документ запрещается. Т.е. если вы копируете этот документ или распространяете его, вы обязаны сохранить его точно в оригинальном виде. Единственное исключение касается перекодировки этого документа из исходной кодировки в другие.
Документ поставляется без каких-либо гарантий. Авторы снимают с себя всякую ответственность за прямой или косвенный ущерб, который может быть нанесен при использовании этого документа. Также не дается никаких гарантий, что описанные в документе решения являются правильными или что они будут работать у вас.
Вопросы, на которые отвечает данный FAQ
Этот FAQ предназначен только для ответов на вопросы по дистрибутиву Linux Fedora Core. Вопросы подбирались автором по личному опыту работы с дистрибутивом и затрагивают разные аспекты работы. Если у вас есть чем пополнить данный FAQ - присылайте свои материалы и если они будут полезны и будут отвечать тематике документа, они будут помещены в данный FAQ, а вы попадете в секцию авторов.