Как мы убедились, утилита gdb
Как мы убедились, утилита gdb может быть очень полезна для обнаружения компрометаций ядра операционной системы.
Обнаружение компрометаций ядра может быть очень усложнено без наличия хотя бы одного доверенного источника информации. В примерах, использованных в статье, доверенным источником информации является оригинальный образ ядра.
Модификация обработчика системных вызовов
Используя описанный выше метод, мы можем также дизассемблировать другие критические функции в памяти ядра. Одна из них это обработчик системных вызовов, имеющий имя system_call и использующийся для определения адреса и вызова функций системных вызовов. Обработчик использует таблицу системных вызовов для определения адреса нужного системного вызова. Дизассемблировав этот обработчик, мы можем проверить используется ли правильный адрес таблицы системных вызовов или обработчик был модифицирован. Для осуществления атаки, злоумышленник может создать свою собственную таблицу системных вызовов, использующую его системные вызовы. Затем он может разместить новый адрес таблицы системных вызовов в обработчике системных вызовов. (gdb) disass system_call Dump of assembler code for function system_call: 0xc01090dc <system_call>: push %eax 0xc01090dd <system_call+1>: cld 0xc01090de <system_call+2>: push %es 0xc01090df <system_call+3>: push %ds 0xc01090e0 <system_call+4>: push %eax 0xc01090e1 <system_call+5>: push %ebp 0xc01090e2 <system_call+6>: push %edi 0xc01090e3 <system_call+7>: push %esi 0xc01090e4 <system_call+8>: push %edx 0xc01090e5 <system_call+9>: push %ecx 0xc01090e6 <system_call+10>: push %ebx 0xc01090e7 <system_call+11>: mov $0x18,%edx 0xc01090ec <system_call+16>: mov %edx,%ds 0xc01090ee <system_call+18>: mov %edx,%es 0xc01090f0 <system_call+20>: mov $0xffffe000,%ebx 0xc01090f5 <system_call+25>: and %esp,%ebx 0xc01090f7 <system_call+27>: testb $0x2,0x18(%ebx) 0xc01090fb <system_call+31>: jne 0xc010915c <tracesys>
0xc01090fd <system_call+33>: cmp $0x100,%eax 0xc0109102 <system_call+38>: jae 0xc0109189 <badsys> 0xc0109108 <system_call+44>: call *0xc0302c30 (,%eax,4) 0xc010910f <system_call+51>: mov %eax,0x18(%esp,1) 0xc0109113 <system_call+55>: nop End of assembler dump.
Обратите внимание, что дизассемблированный обработчик содержит адрес оригинальной таблицы системных вызовов.
Модификация таблицы системных вызовов
Текущие адреса системных вызовов находятся в таблице системных вызовов, в памяти, выделенной для ядра ОС. Адреса расположены в том же порядке, что и их функции и представлены в файле /usr/include/asm/unistd.h. Системные вызовы идентифицируются номером точки входа (ID), как мы видели в таблице выше.
Давайте начнем с примера. Когда вызывается системный вызов sys_write, его ID, равный 4, помещается в регистр eax и генерируется программное прерывание (int 0x80). Есть специальный обработчик прерывания, помещающий этот адрес в таблицу дескрипторов прерываний и отвечающий за обработку прерывания (снова int 0x80). Затем вызывается обработчик системных вызовов system_call. Этот обработчик, зная адрес таблицы системных вызовов и ID системного вызова (который находится в регистре eax), может определить реальный адрес запрошенного системного вызова. В реальности вызов обработчика системных вызовов более сложен, но я опустил некоторые детали, чтобы упростить эту статью.
Первый метод, используемый злоумышленником для получения контроля над желаемым системным вызовом, состоит в перезаписи адреса оригинального системного вызова в таблице системных вызовов. При запросе системного вызова, обработчик вызывает подмененную функцию. Мы можем легко проверить эти адреса в таблице системных вызовов, используя утилиту gdb. Поэтому gdb очень полезен при обнаружений таких типов вредоносного ПО.
Конечно, есть и другие проблемы. Мы должны убедиться, что текущие адреса системных вызовов не изменены, что мы в момент проверки уже не компрометированы. Как мы можем это проверить? Адреса системных вызовов всегда постоянны и не изменяются после перезагрузки операционной системы. Эти адреса определяются во время компиляции ядра, поэтому, зная оригинальные адреса, мы можем сравнить их с текущими адресами из таблицы системных вызовов. Эта информация об оригинальных адресах во время компиляции записывается в два файла. Первый из них, это файл System.map. Этот файл содержит таблицу символов и их соответствующие адреса. Второй файл это образ ядра, загружающийся в память ядра во время инициализации системы. Несжатая версия образа ядра находится в файле vmlinux-2.4.x и обычно находится в директории /boot или в директории, в которой происходит сборка ядра.
Иногда может быть доступна только сжатая версия ядра (называющаяся vmlinuz-2.4.x). В этом случае, перед началом нашего исследования мы должны распаковать образ ядра. Если злоумышленник не изменил эти файлы (сжатый/распакованный образ ядра и System.map) или если у нас есть их копии, которым мы можем доверять, мы можем сравнить исходные адреса с теми, которые в данный момент присутствуют в таблице системных вызовов. Думаю, не нужно говорить, что после компиляции ядра мы должны сохранить копии этих файлов или хотя бы их хэши.
Также мы можем использовать простой модуль ядра, ссылка на который есть в разделе "Ссылки" этой статьи, для печати виртуального адреса каждого системного вызова. Чтобы сделать это, мы скомпилируем исходный код следующим образом: gcc -c scprint.c -I/usr/src/linux/include/. После загрузки собранного модуля (scprint.o), адрес каждого системного вызова будет автоматически записан в файл syslog. Время от времени, мы должны запускать этот модуль для сравнения оригинальных адресов с текущим состоянием ядра.
В большинстве случаев, ядро модифицируется руткитом после инициализации системы. Это осуществляется путем загрузки злонамеренного модуля ядра или записи некоторого вредоносного кода непосредственно в объект /dev/kmem. Руткиты обычно не изменяет образ ядра или файла System.map. Поэтому для обнаружения любых модификаций таблицы системных вызовов мы должны печатать все адреса, в настоящее время присутствующие в таблице системных вызовов и затем сравнивать их с адресами сохраненного образа ядра (в нашем случае vmlinux-2.4.x). Память операционной системы доступна через объект kcore, который находится в файловой системе /proc.
Вначале нужно найти адрес таблицы системных вызовов. Это простая задача, так как символ sys_call_table представлен в файле System.map.
[root@rh8 boot]# cat System.map-2.4.18-13 | grep sys_call_table c0302c30 D sys_call_table
Теперь, мы можем найти адрес таблицы системных вызовов, используя команду nm. Эта команда позволяет нам печатать все символы образа ядра: [root@rh8 boot]# nm vmlinux-2.4.18-13 | grep sys_call_table c0302c30 D sys_call_table
Используя gdb, мы можем получить полное содержание таблицы системных вызовов образа ядра, как показано ниже. Напечатанные адреса соответствуют системным вызовам, объявленным в файле entry.S в исходных кодах ядра. Например, вхождение 0 (0xc01261a0) это системный вызов sys_ni_syscall, вхождение 1 (0xc011e1d0) это sys_exit, вхождение 2 (0xc01078a0) это sys_fork и так далее.
#gdb /boot/vmlinux-2.4.*
(gdb) x/255 0xc0302c30
0xc0302c30 <sys_call_table>: 0xc01261a0 0xc011e1d0 0xc01078a0 0xc013fb70
0xc0302c40 <sys_call_table+16>: 0xc013fcb0 0xc013f0e0 0xc013f230 0xc011e5b0
0xc0302c50 <sys_call_table+32>: 0xc013f180 0xc014cb10 0xc014c670 0xc0107940
0xc0302c60 <sys_call_table+48>: 0xc013e620 0xc011f020 0xc014bcd0 0xc013e9a0
...
Мы также можем печатать адрес каждого системного вызова, вводя его имя, как показано ниже: (gdb) x/x sys_ni_syscall 0xc01261a0 <sys_ni_syscall>: 0xffffdab8 ((gdb) x/x sys_fork 0xc01078a0 <sys_fork>: 0x8b10ec83
Теперь используя утилиту gdb (или модуль scprint.o, который мы скомпилировали) мы должны снять дамп текущих значений таблицы системных вызовов. И, наконец, мы сравниваем полученные значения со значениями, сохраненными после компиляции ядра.
Чтобы напечатать текущее состояние ядра (адреса системных вызовов) мы должны запустить gdb с двумя параметрами. Первый параметр это образ ядра (vmliux-2.4.x), второй - объект /proc/kcore. Затем, мы используем адрес таблицы системных вызовов, полученный из файла System.map, чтобы вывести значения таблицы системных вызовов.
#gdb /boot/vmlinux-2.4.* /proc/kcore
(gdb) x/255x 0xc0302c30
0xc0302c30 <sys_call_table>: 0xc01261a0 0xc011e1d0 0xc01078a0 0xc88ab11a
0xc0302c40 <sys_call_table+16>: 0xc013fcb0 0xc013f0e0 0xc013f230 0xc011e5b0
0xc0302c50 <sys_call_table+32>: 0xc013f180 0xc014cb10 0xc014c670 0xc0107940
0xc0302c60 <sys_call_table+48>: 0xc013e620 0xc011f020 0xc014bcd0 0xc013e9a0
...
Как мы можем заметить из вывода выше, один из адресов системных вызовов был изменен. Это элемент 3 в таблице системных вызовов (счет начинается с 0) и для ясности он выделен в выводе выше. В файле /usr/include/asm/unistd.h мы можем найти имя этого подозрительного системного вызова, который называется sys_read.
Другой признак компрометации системы это то, что новый виртуальный адрес этой функции (sys_read) располагается выше 0xc8xxxxxx. Это очень подозрительно. ОС Linux по умолчанию может адресовать до 4 Гб памяти. Виртуальные адреса располагаются с 0x00000000 по 0xffffffff. Верхняя часть этой виртуальной области зарезервирована под код ядра (диапазон значений с 0xc0000000 по 0xffffffff). Когда загружается новый модуль ядра, функция vmalloc выделяет часть этой памяти под код модуля. Она выделяет область памяти обычно начинающейся с 0xc8800000. Таким образом, каждый раз, когда мы видим адрес системного вызова, находящийся выше этого адреса, что мы и видим в нашем примере, это показывает, что наше ядро могло быть компрометировано. Теперь посмотрим поближе на этот системный вызов.
Обнаружение компрометаций ядра Linux с помощью gdb
Мариус Бурдач, перевод Владимир Куксенок,
Назначение этой статьи - описание полезных способов обнаружения скрытых модификаций ядра Linux. Более известный как руткит (rootkit), этот скрытный тип злонамеренного ПО устанавливается в ядро операционной системы и для своего обнаружения требует от системных администраторов и обработчиков инцидентов использования специальных техник.
В этой статье для обнаружения компрометаций ОС Linux мы будем использовать только одну утилиту - gdb (GNU Debugger). Эта утилита по умолчанию присутствует почти в каждом дистрибутиве Linux. Вторая задача этой статьи - описание популярных методов модификации ядра операционной системы Linux. Поняв принципы атаки, мы сможем легко обнаружить скомпрометированную машину или выбрать подходящие средства для мониторинга наших критических компьютеров.
Фокусирование на обнаружении модификаций ядра обусловлено тем, что это наиболее скрытный из всех методов, используемых злоумышленниками для установки злонамеренного кода в операционную систему.
Перехват системного вызова
Теперь рассмотрим метод обнаружения перехвата системных выводов. Ни один из элементов таблицы системных вызовов не модифицирован таким способом. Вместо этого, первые несколько команд оригинальной функции перезаписываются безусловным переходом на заменяемую функцию. Давайте представим, что злоумышленник хочет перехватить системный вызов sys_read. Вначале он должен загрузить свою функцию в память, а затем поместить адрес этой функции в первых нескольких битах оригинальной функции. Потом злоумышленник должен переадресовать выполнение оригинальной функции к своей функции. Для этого обычно используются такие ассемблерные команды, как call или jmp.
Чтобы определить, был ли системный вызов перехвачен, нам нужно распечатать все команды целевой функции. Потом мы запускаем gdb с двумя параметрами (образ ядра и объект /proc/kcore). Далее, мы должны дизассемблировать оригинальную функцию, используя внутреннюю команду disass, как показано ниже.
#gdb /boot/vmlinux-2.4.* /proc/kcore (gdb) disass sys_read Dump of assembler code for function sys_read: 0xc013fb70 <sys_read>: mov $0xc88ab0a6,%ecx 0xc013fb73 <sys_read+3>: jmp *%ecx 0xc013fb77 <sys_read+7>: mov %esi,0x1c(%esp,1) 0xc013fb7b <sys_read+11>: mov %edi,0x20(%esp,1) 0xc013fb7f <sys_read+15>: mov $0xfffffff7,%edi ...
В выводе выше мы можем увидеть, что первая команда помещает значение (адрес функции злоумышленника) в регистр ecx. Вторая инструкция выполняет безусловный переход по этому виртуальному адресу - 0xc88ab0a6.
Чтобы удостовериться, что системный вызов sys_red перехвачен, нам нужно дизассемблировать оригинальную функцию. Оригинальная функция находится в образе ядра vmlinux-2.4.x.
#gdb /boot/vmlinx-2.4.* (gdb) disass sys_read Dump of assembler code for function sys_read: 0xc013fb70 <sys_read>: sub $0x28,%esp 0xc013fb73 <sys_read+3>: mov 0x2c(%esp,1),%eax 0xc013fb77 <sys_read+7>: mov %esi,0x1c(%esp,1) 0xc013fb7b <sys_read+11>: mov %edi,0x20(%esp,1) 0xc013fb7f <sys_read+15>: mov $0xfffffff7,%edi ...
Вывод подтверждает, что системный вызов sys_read был изменен. Чтобы понять, что делает новая функция, мы должны дизассемблировать ее, используя утилиту gdb.
Полезные утилиты
Конечно, было бы лучше автоматизировать все проверки, описанные в этой статье. Один из способов осуществления этого - использования системы обнаружения атак (СОА), контролирующей критический структуры ядра в реальном времени. Например, может быть использована утилита Samhain. Это приложение было кратко описано в статье Host Integrity Monitoring: Best Practices for Deployment. Samhain может следить за таблицей системных вызовов, несколькими первыми командами каждого системного вызова, включая некоторые обработчики, таблицей прерываний и многим другим.
Доверяя мониторинг вашего ядра системе обнаружения атак нужно помнить одно простое правило: все утилиты, осуществляющие мониторинг, должны быть установлены на "чистую" операционную систему, так как это единственный способ быть уверенным, что вы уже не были компрометированы. Если вы не используете СОА, вы должны, по крайней мере, создать хэш образа ядра.
Понимание принципов атаки
Основные цели атаки - системные вызовы. Этот метод выбран злоумышленниками по двум причинам: потому что это самый простой способ получить управления над скомпрометированной машиной, а также потому, что системные вызовы дают большие возможности атакующему. Системные вызовы - основные функции, используемые операционной системой. Например, они используются для чтения и записи данных в файлы, для получения доступа к различным устройствам, для запуска исполняемых файлов и т.д.
В текущей стабильной версии ядра Linux около 230 системных вызовов, и примерно 290 в ядре 2.6.9. Обратите внимание, что количество системных вызовов зависит от версии ядра. Полный список всех системных вызовов вашего ядра всегда доступен в файле file /usr/include/asm/unistd.h. Также нужно заметить, что обычно не все системные вызовы модифицируются злоумышленником, однако есть несколько популярных. Это системные вызовы, представленные в таблице 1. Они должны быть внимательно проверены администраторами, и конечно, средствами обнаружения вторжений. Те, кого интересуют подробности, могут найти полное описание каждого системного вызова в "Linux Programmers Manual".
Имя системного вызова |
Краткое описание |
ID | |||
sys_read |
Используется для чтения из файлов |
3 | |||
sys_write |
Используется для записи в файлы |
4 | |||
sys_open |
Используется для создания или открытия файлов |
5 | |||
sys_getdents/sys_getdents64 |
Используется для получения листинга содержимого директории (также и /proc) |
141/220 | |||
sys_socketcall |
Используется для управления сокетами |
102 | |||
sys_query_module |
Используется для запроса загруженных модулей |
167 | |||
sys_setuid/sys_getuid |
Используется для управления UIDs |
23/24 | |||
sys_execve |
Используется для исполнения бинарных файлов |
11 | |||
sys_chdir |
Используется для изменения текущей директории |
12 | |||
sys_fork/sys_clone |
Используется для создания процесса потомка |
2/120 | |||
sys_ioctl |
Используется для работы с устройствами |
54 | |||
sys_kill |
Используется для отправки сигналов процессам |
37 |
Обратите внимание, что в таблице выше, ID это точка входа в таблице системных вызовов. Здесь приведены ID, используемые в ядре 2.4.18-3.
Несмотря на то, что все примеры, представленные в этой статье было проверены на Red Hat 7.3 с ядром 2.4.18-3, они могут быть воспроизведены на других версиях ядра, включая последние версии 2.6.x. Однако могут быть некоторые различия во внутренних структурах ядра 2.6.x. Например, адрес таблицы системных вызовов хранится внутри функции syscall_call, вместо обработчика системного вызова system_call.
Ссылки
[1] Daniel P. Bovet, Marco Cesati. "Understanding the Linux Kernel", 2nd Edition. O'Reilly; 2002.
[2] "Host Integrity Monitoring: Best Practices for Deployment",
http://www.securityfocus.com/infocus/1771.
[3] "Linux on-the-fly kernel patching without LKM",
http://www.phrack.org/phrack/58/p58-0x07
[4] System manual (2), "Linux Programmer's Manual".
http://www.gnu.org/software/gdb/gdb.html .
[6] scprint.c is the loadable kernel module that allows one to print system calls from the kernel memory. This is available for download from SecurityFocus.
[7] The samhain file integrity / intrusion detection system, http://la-samhna.de/samhain/
Введение в угрозу руткитов
Все больше и больше злонамеренных программ режима пользователя, таких как трояны, бэкдоры или руткиты модифицируют существующее ПО операционной системы. Для установки одной из этих программ, атакующий должен заменить или изменить нормальные программы, входящие в состав операционной системы. Для примера давайте рассмотрим замену вездесущей команды ls. Обычные пользователи и администраторы используют команду ls для отображения содержимого директории, но модифицированная версия скроет все файлы атакующего. Утилиты, которые могут обнаруживать такой тип модификаций, называются средства проверки целостности (integrity checkers) файлов.
Давайте предположим, что атакующий не изменяет и не заменяет существующие программы, такие как ls, в файловой системе. Предположим, что вместо этого атакующий изменяет или заменяет различные компоненты ядра. Мы знаем, что многие программы режима пользователя, типа ps, ls или lsof используют системные вызовы для выполнения некоторых своих задач. Например, когда администратор исполняет команду ls, чтобы получить листинг директории, вызывается системные вызов sys_getdents. Таким образом, атакующий может изменить этот компонент ядра для сокрытия некоторых файлов или процессов.
Теперь давайте рассмотрим другой пример, где атакующий модифицирует системные вызовы sys_open и sys_read для блокирования доступа к некоторым файлам. Эти же системные вызовы используются средствами проверки целостности для проверки важных системных файлов, таких как образ ядра и загружаемые модули ядра. Когда эти утилиты пытаются сравнить хэши файлов с их исходными значениями, они не изменятся, даже если файлы изменены. Другими словами, средства проверки целостности не обнаружат модификаций критически важных файлов. Для этого нужно всего лишь перехватить два системных вызова. Весьма очевидно, что если компоненты ядра изменены атакующим, пользователи и администраторы не могут доверять результатам, полученным от ядра или от любых имеющих отношение к защите утилит, запущенных пользователем.
Linux руткиты режима ядра или другие виды злонамеренного кода устанавливаются непосредственно в область памяти, выделенную для кода ядра, и являются действительно мощными. Они модифицируют структуры ядра для фильтрации данных, которые будут скрыты от системного администратора. Чтобы фильтровать эти данные, необходимо перехватить управление над некоторыми компонентами ядра, такими как системные вызовы, обработчики прерываний, внутренние функции netfilter и другими. Просто представьте себе несколько мест ядра операционной системы, где таким управлением можно манипулировать. На этом месте важно понять некоторые из самых популярных принципов атаки.
Архиваторы
Так как Unix-системы создавались во времена, когда каждый килобайт свободного пространства на носителе имел особую ценность, то все документы и пакеты программ были запакованы и заархивированы. Linux является продолжателем хороших традиций Unix-систем и тоже использует программы-упаковщики и архиваторы. Самыми популярными программами являются: tar, zip, gzip, bzip2, lha. Изначально они работают через интерфейс командной строки, но поскольку в данной статье особый интерес представляют программы с графическим интерфейсом, то сразу перейдем к ним.
В KDE имеется утилита Ark, которая позволяет работать с архивами tar, zip, gzip, bzip2, lha. Она входит в состав пакета kdeutils-2.2.1-1.asp.
Для GNOME тоже есть программа управления архивами с графическим интерфейсом. Она называется .
И Ark, и Gnozip просты в использованы и имеют русифицированное меню. Но кроме них так же можно воспользоваться программами LinZip, Karchiveur и RAR для Linux.
Файловые менеджеры
Многие пользователи Windows привыкли работать с файловыми менеджерами типа Norton Commander (NC). Таковыми можно назвать Volkov Commander (VC), FAR manager. Тот же принцип двухпанельного интерфейса использует Windows Commander. Для OC Linux также имеется подобная программа, которая называется Midnight Commander (mc). Внешне - тот же старый добрый NC. Это две панели отображающие списки файлов, к тому же окрашенные в до боли знакомый синий цвет. Над ними расположена строка меню, а под ними - строка с экранными кнопками-подсказками и командная строка текущей оболочки shell. Внешний вид этого файлового менеджера можно изменять - скрывать строчку меню и строчку кнопок-подсказок, вместо двух панелей отображать одну на все пространство, изменять режимы отображения панелей (информация, дерево, быстрый просмотр, сетевое соединение, ftp-соединение, а так же формат отображения списка файлов). MC позволяет просматривать содержимое и структуру каталогов, а так же выполнять все основные операции с файлами и каталогами: создавать, копировать, переименовывать, просматривать, редактировать, удалять, изменять права доступа и т.д. Кроме этого из Midnight Commander можно запускать программы и организовывать ftp-соединение. И в дополнение ко всему вышесказанному можно добавить - интерфейс этой программы русифицирован.
Теперь перейдем к графической среде KDE. В её состав входит программа Konqueror. В общем-то это веб-броузер, но по совместительству это еще и встроенный файловый менеджер. Кроме того, что эта программа позволяет производить все операции над файлами и каталогами, в ней предусмотрена возможность изменения своего внешнего вида. Можно настроить Konqueror так, чтобы он выглядел как проводник (Explorer) в OC Windows или как программы NC, VC, FAR. И при этом все функциональные возможности этого файлового менеджера сохраняются. Для пользователей, которые используют в своей работе Проводник (Explorer) или подобные Norton Commander программы, освоить Konqueror будет очень легко.
Графическая среда
На начальном этапе развития Linux имел только интерфейс командной строки. Этого было вполне достаточно для серверной платформы. Но со временем встал вопрос о возможности использования Linux на рабочих местах и домашних персональных компьютерах. С этого момента и стали активно разрабатываться графические оболочки и программы для ОС Linux. В результате Linux сегодня - это полноценная графическая операционная система с различными оболочками: Motif, CDE, KDE, GNOME, GNUStep и т.д. Они совместили в себе современную функциональность, удобство использования и отличный дизайн с технологическим преимуществами операционной системы семейства Unix. Рассмотрим две наиболее популярные графические оболочки - и .
KDE (K Desktop Enviroment) - это интегрированная графическая среда, которая в настоящее время включает в себя более 100 приложений и поддерживает 40 различных языков. Первоначальной целью этого проекта было создание рабочего стола аналогичного CDE. Но в отличии от CDE, KDE разрабатывается в рамках движения Open Source и, как следствие, сейчас распространяется вместе с исходным кодом.
На рабочем столе KDE расположены иконки программ и панель KDE. Последняя необходима для запуска приложений и переключения между рабочими столами. Её состав схож с панелью в Windows. Значок с буквой "К" - это аналог кнопки "Пуск". Он служит для вызова меню с программами. Далее на панели размещаются иконки различных программ для быстрого запуска. Затем - переключатель рабочих столов и поле "taskbar", которое служит для отображения перечня запущенных приложений и переключения между ними. В правой части панели расположены часы и кнопка, которая скрывает/сворачивает саму панель. Графическая среда KDE предусматривает дополнительные, тонкие настройки. Для этого необходимо воспользоваться "Центром Управления KDE".
Подводя итог описанию KDE, можно сказать, что её интерфейс достаточно прост, удобен в использовании и дружелюбен. А пользователь, который прежде работал только с MS Windows легко сможет её познать и изучить. Огромным плюсом этой графической среды является то, что локализация на русский и украинский языки в процентном отношении близится к 100%.Другая графическая оболочка, о которой пойдет речь, это - Gnome (GNU Network Object Model Environment). Она изначально разрабатывалась в рамках проекта GNU и относится к свободно распространяемому ПО.
По функциональности GNOME очень похож на графический интерфейс MS Windows. Это существенно облегчает переход с этой операционной системы на Linux. В GNOME, так же как и в KDE, имеется панель, которая тоже может сворачиваться. На ней расположены кнопка вызова системного меню (в виде следа от чьей-то ноги), переключатель виртуальных рабочих столов, панель выполняемых задач и часы. Так же на панели можно размещать различные аплеты. Например, индикатор использования оперативной памяти или уровень зарядки аккумуляторной батареи. К слову сказать, переключатель виртуальных рабочих столов тоже является аплетом.
В качестве диспетчера файлов в GNOME используется Gmc, что расшифровывается как GNU Midnight Commander. Внешне он мало чем отличается от программы "Проводник" в MS Windows. GNOME так же как и KDE предусматривает возможность дополнительного конфигурирования оконной системы. Сделать это можно с помощью центра управления GNOME. Эта утилита позволяет изменять фон, тему рабочего стола, задавать мультимедийные свойства системы, выполнять тонкую настройку диалоговых окон и других элементов интерфейса.
В общем Desktop GNOME - это зрелая, мощная, гибкая и в тоже время простая в изучении и пользовании графическая среда.
Графические редакторы
Перед тем, как рассмотреть возможности такого мощного продукта как GIMP, сперва обратим свой взор на редакторы пиктограмм. В среде KDE, в пакете kdegraphics имеется программа Kiconedit. Интерфейс программы русифицирован и в изучении очень прост. Созданные иконки можно сохранять в одном из форматов: xpm, png, jpg, ico.
Еще одним графическим редактором в среде KDE являеся Kpaint. Он также входит в состав пакета kdegraphics. Его следует рассматривать как простой графический редактор. С его помощь сможно внести некоторые коррективы в растровое изображение, изменить размер редактируемого изображения, глубину цвета, а также сохранить полученный результат в одном из предлагаемых форматах - bmp, gif, jpg, tiff, xpm, xbm или pnm. Кроме прямых функций, можно с его помощью открывать для просмотра графические файлы.
Но самым мощным графическим редактором для Linux несомненно является . Само название программы есть акроним от GNU Image Manipulation Program. По своим возможностям этот редактор не уступает таким программам, как Adobe Photoshop или Corel PhotoPaint. Однако у него есть перед ними огромное преимущество - он свободно распространяется через Интернет и в составе различных дистрибутивов Linux.
GIMP преимущественно работает с растровыми изображениями. Он обладает огромными возможностями. Перечислю некоторые из них: полный набор инструментов для рисования, трансформации, выделения, поддержка альфа-каналов, работа со слоями, поддержка скриптов, многоуровневые операции отмены действий (undo) и повторного выполнения (redo), богатый набор дополнений (plug-in). Плюс ко всему большой список поддерживаемых форматов: PostScript, JPEG, GIF, PNG, XPM, TIFF, TGA, MPEG, PCX, BMP и многие другие.
При первом знакомстве с этим редактором может показаться несколько необычным его интерфейс, поскольку он состоит из нескольких отдельных окон.
Основных окон два: окно инструментов (Toolbox) и окно изображения (Image Window). Разобраться с интерфейсом - пара пустяков.
Игры
Для Linux, как серверной операционной системы на определенном этапе вопрос наличия игр не стоял. Установка ORACLE под Linux - вполне увлекательная игра для системного администратора или администратора баз данных. Но при рассмотрении Linux как операционной системы для рабочего места или для установки на домашнем компьютере вопрос присутствия возможности расслабиться под любимые Quake или Duke Nukem стоит ребром. Точнее стоял, так как на данный момент набор из простых игр входит в состав графических сред KDE и Gnome. Для Linux написаны и более сложные игры, которые поддерживают трехмерную графику и звук. К таким играм можно отнести "Quake3: Arena", "Duke Nukem 3d", "Step Mania", "Heroes", "FreeCiv", "Craft", Elite и другие.
Для знакомства с миром игр под Linux можно посетить сайты и, где можно найти множество популярных игр.
Интернет-броузеры
Сейчас одной из основных программ в работе многих пользователей является Интернет-броузер. Для ОС Linux имеется множество броузеров - Netscape Navigator, Mozilla, Konqueror, Opera. Некоторое время назад Microsoft даже имела версию Internet Explorer для Unix, но потом прекратила поддержку этого продукта.
входит во многие дистрибутивы (RedHat Linux, ASPLinux, ALTLinux). Этот броузер имеет простой, интуитивно понятный и схожий с Interner Explorer интерфейс.
В апреле 1998 года компания Netscape Communications открыла исходный код своего броузера и создала проект . Внешне Mozilla и Netscape Navigator очень похожи и это является следствием единого прародителя. Но отличия все же есть. На момент написания статьи Mozilla входила как броузер по умолчанию в дистрибутив Red Hat Linux.
Кроме упомянутых выше программ, все большую популярность набирает броузер . Его основными отличиями и преимуществами являются легковесность (небольшой занимаемый объем оперативной памяти), скорость и широкие возможности. Также немаловажным фактом является то, что Opera существует для различных платформ - и для Windows, и для Linux. На официальном сайте разработчиков можно найти пакеты для установки этой программы на различные платформы, а также документацию по использованию. Существует два варианта использования этого броузера - бесплатный (с баннером), и платный (без баннера).
Как уже упоминалось, в KDE встроен свой броузер - Konqueror. Используя его можно обойтись без установки отдельной программы. Для открытия Web-страниц необходимо ввести в поле "Адрес" URL интернет ресурса. У этой программы достаточно преимуществ - она русифицирована, предусматривает возможность переключения кодировки интернет-страницы, позволяет просматривать графические файлы форматов gif, jpeg, png, tiff, bmp.
Кроме описанных броузеров существуют и другие, например: , , .
IRC, ICQ и CHAT-программы
Самой простой программой, предназначенной для общения по сети, является talk (ntalk, ytalk). Она предназначена для "разговора" нескольких человек между собой. Её функция заключается в установлении связи между терминалами. То, что набирает один из пользователей на своем терминале, немедленно появляется на терминалах других. Эту программу смело можно назвать прародителем всех ныне существующих программ для общения.
Еще одной программой для общения является IRC-сервер (Internet Relay Chat сервер). Она была создана финским программистом Ярко Ойкариненом в августе 1988 года. Для доступа к IRC-серверам существует несколько IRC-клиентов. Самыми популярными являются ircII (текстовый) и xchat (графический).
xchat - один из наиболее полных IRC-клиентов для Linux. Его можно запускать с любым оконным менеджером. Он так же поддерживает передачу файлов, возобновление передачи и многое другое. В общем, у него есть все, что можно ожидать от современного IRC-клиента, и даже больше.
В графической среде KDE тоже есть IRC-клиент - KSirc. Он очень простой и к тому же русифицирован. Также стоит упомянуть о таких программах как Kvirc и BitchX.
Конечно же, трудно представить себе современный компьютер, подключенный к Сети, и на котором не установлен интернет-пейджер, например ICQ. Для операционной системы Linux, как и для Windows, также существуют ICQ-клиенты. Одним из них является программа Licq. Она обладает полным набором возможностей ICQ-клиента. Можно не только принимать участие в общем чате, но и посылать друзьям сообщения, файлы, URL-ссылки. Эта программа заслуживает чтобы на неё обратили пристальное внимание. Разобраться в ней несложно, а внешне она напоминает ICQ для MS Windows.
Найти программу можно на сайте . Кроме Licq существует и другие ICQ-клиента - это программы Gaim, Centericq, Alicq и micq.
о тех программах, которые не
Подводя итог, необходимо упомянуть о тех программах, которые не были отражены в статье, так как мир Linux настолько обширен, что то множество книг, которые постоянно издаются по продуктам и технологиям Linux невозможно втиснуть в одну-две статьи. Полезными будут также программы для работы в сети Интернет (Downloader for X, wget, Caitoo, Aria), FTP-клиенты (Gftp, Dpsftp, Kbear), программы работы с факсимильными аппаратами (Gfax, PMfax, Fax2Send, klprfax, eprintfax), антивирусы, firewall, программы записи на CD/DVD и много другое. Программ для OC Linux существует великое множество. Они постоянно совершенствуются, развиваются, что позволяет на данный момент полноценно использовать Linux в офисе и дома.
Электронная почта
Поскольку операционная система Linux с самого "рождения" была расчитана на работу в сети, и в Интернет в частности, то и возможность работы с электронной почтой была в ней заложена изначально. Программа sendmail, работающая во всех системах Unix, доступна так же и в Linux.
Выбор программ для работы с электронной почтой, имеющих графический интерфейс множество. Это как интегрированные почтовые клиенты в броузерах Netscape, Mozilla и Opera, так и самостоятельные программы - KMail, Balsa, Evolution, Gnus, Sylpheed и т.д. Последние по своей функциональности ничем не хуже Outlook Express.
Например, программа Kmail, входящая пакет kdenetwork для графической оболочки KDE, позволяет делать все необходимые действия с письмами электронной почты. Однако у него есть несколько особенностей о которых и пойдет далее речь. Во-первых, KMail позволяет принимать письма с нескольких почтовых серверов, то есть поддерживать несколько почтовых ящиков. Во-вторых, производить контекстный поиск письма по ключевым словам, а также производить автоматическую сортировку входящих писем по заданным фильтрам. В-третьих, отображать письма как в HTML-формате, так и в текстовом виде вместе с заголовками. В-четвертых, изменять кодировку текста письма. В-пятых, производить проверку орфографии в создаваемых письмах, а так же подписывать и шифровать отправляемые письма (по алгоритму PGP).
Программа Balsa также заслуживает упоминания. Кроме того, что она может работать с несколькими почтовыми ящиками, она также делает проверку орфографии, имеет адресную книгу, поддерживает, различные кодировки и наборы символов. Список писем представлен в мультитредовом виде, а сами письма отображаются с HTML вложениями и картинками. Предусмотрена интеграция с другими GNOME приложениями.
Если говорить об программе Ximian Evolution, то ее функциональные возможности очень схожи с MS Outlook. В детище компании Ximian кроме обычной работы с электронной почтой: создавать, отвечать, пересылать, редактировать и сохранять черновики, имеется полнофункциональный органайзер, планировщик задач и контакты. Еще одной особенностью этой программы является возможность работы с сервером MS Exchange. Благодаря этой возможности, уже сейчас можно интегрировать рабочее место на OC Linux в домене Windows.
То есть говорить о большей функциональности почтовых программ под Windows не приходится. Можно даже привести функции, которые в том же Microsoft Outlook Express отсутствуют.
А теперь несколько слов о том, где можно взять вышеупомянутые почтовые клиенты. Программа Kmail входит в состав пакета kdenetwork. Последние версии программ всегда можно найти на сайтах разработчиков - , , , .
Linux на работе и дома
Вячеслав Логачев,
Миф о том, что Windows намного функциональнее Linux и что для Linux написано мало программ постепенно развеивается. Эта статья - еще один кирпич для "всемирной башни Linux"
"Подумаешь... Я ещё и вышивать могу. И на машинке тоже... "
Кот Матроскин
Компьютер, с установленной операционной системой, - это не самоцель, а лишь инструмент для выполнения различных работ, решения каких-то задач. До последнего времени самой распространенной операционной системой на рабочих местах и в домашнем пользовании была операционная система Microsoft Windows. Для нее написано множество различных программ, утилит и игр. У каждого пользователя этой операционной системы уже сформировались некоторые привычки и собственное представление о том, что ему необходимо для комфортной работы.
Но время не стоит на месте и все большую популярность набирает OC Linux. Все чаще и чаще встречаются публикации об этой операционной системе. Все больше компаний принимают тот или иной дистрибутив Linux в качестве корпоративного стандарта. Это происходит по различным причинам, а не только потому что эта операционная система бесплатна. Сказывается то, что для неё уже написано огромное количество программ, многие из которых так же работают под Windows. Важным аргументом является низкая ресурсоемкость, защищенность, открытость и многое, многое другое. Некоторое время для русскоязычных пользователей одним из препятствий в освоении Linux было отсутствие локализованных версий. Сейчас это перестало быть проблемой, так как во многих дистрибутивах можно использовать не только русский, но даже и украинский язык. Поэтому сейчас Linux рассматривается как платформа для рабочих мест государственных предприятий.
Но отвлекаясь от политических и экономических мотивов использования Linux, давайте посмотрим, каких программ не хватает сейчас Linux, если его использовать дома или на работе. Есть мнение, что этот вопрос останется без ответа - программ множество.
Офисные пакеты
В редких случаях в повседневной работе удается ограничиться только текстовым редактором. Также приходится составлять таблицы, использовать программу для построения схем, графиков, готовить презентации. Все эти программы можно объединить в одну группу - офисные приложения. Так вот и для OC Linux существуют пакеты с полным набором офисных программ. Наибольшую популярность завоевали проекты KOffice и OpenOffice (на самом деле полное название продукта OpenOffice.org, но без.org удобнее).
В состав пакета KOffice входит электронная таблица KSpread, система подготовки презентаций KPresenter, программа для создания диаграмм Kchart, простенький графический редактор Killustrator, а также текстовый процессор KWord. Все эти компоненты могут быть объединены в одно целое, что позволяет легко и быстро переключаться между ними. Нельзя утверждать, что KOffice реализует абсолютно все возможности, имеющиеся в пакете Microsoft Office, да это наверное и не надо, так как перед разработчиками не стоит задача сделать точную копию офисного пакета от Microsoft. Этот проект развивается достаточно активно, в чем можно убедиться посетив . Оттуда же можно скопировать последнюю версию этого пакета.
Что касается OpenOffice, то история его создания следующая. Некоторое время назад компания Sun Microsystems открыла исходный код своего офисного пакета StarOffice. Новый открытый проект получил название . Это проект привлек огромное внимание со стороны "свободных" программистов и в резульате появилась качественно новая версия офисного пакета. В состав пакета входят текстовый процессор, табличный процессор, векторный графический редактор, редактор презентаций, редактор математических формул. Разработчики решили отойти от объединения всех программ в единый Desktop, как это было в StarOffice, а выделить каждую программу в самостоятельный элемент. Такое решение значительно облегчило работу с пакетом.
Подводя итоги, можно с полной уверенностью утверждать, что OpenOffice - это мощный, полнофункциональный кроссплатформенный офисный пакет, который способен конкурировать с MS Office.
Кроме офисных пакетов в Linux также можно воспользоваться небольшими и не очень функциональными программами, для редактирования обычных текстовых файлов. По умолчанию, в состав графической среды KDE входят два редактора KEdit и KWrite. Они просты в использовании, русифицированы и вполне годятся для редактирования простых текстов. Эти редакторы очень похожи друг на друга, вплоть до внешнего вида. Одним из отличий KEdit от KWrite является возможность вызова почтовой программы прямо из редактора. Подобная функция доступна например в Microsoft Word.
В качестве альтернативы Microsoft Outlook в качестве органайзера можно использовать программу "Календарь КДЕ". Это полноценный органайзер позволяющий создавать задачи, события, оповещать о собраниях и выдавать напоминания. Программа очень простая, имеет интуитивно понятный и русифицированный интерфейс. Она входит в состав пакета kdepim и запускается командой korganizer.
KOrganizer - планировщик для операционных систем семейства Linux, интегрированный в графическую среду KDE. Не имеет того набора функций, что заложены в MS Outlook, но достаточно функционален для планирования работы.
А вот чей набор функций, интерфейс и производительность сопоставимы с Microsoft Outlook, так это продукт компании Ximian - Evolution. В большинстве случаев Ximian Evolution называют Outlook-клоном или "MS Outlook Like program" - программа, подобная Microsoft Outlook (сравнение функциональности программ-органайзеров под Windows и Linux читайте в статье "У Windows и Linux много общего: например - органайзеры" N12 за 2002 г, стр.56).
Программы просмотра файлов PDF
Работая, будь то в Windows, будь то в Linux несомненно возникнет необходимость открыть и прочитать файлы в формате PDF. Этот формат широко используется в качестве формата электронного документа, который не предназначен для внесения изменений. В OC Linux для их открытия и просмотра можно использовать несколько программ. Во-первых это Adobe Acrobat Reader. К достоинству этой программы можно отнести то, что она написана для различных платформ и везде имеет схожий интерфейс. Поэтому, если вы работали с ней в OC Windows, то с версией под Linux не возникнет никаких трудностей.
Но это не единственная программа, которая позволяет просматривать файлы формата PDF. Так же можно воспользоваться утилитами gv и xpdf, а в графической среде KDE есть пункт меню "Программа просмотра PDF документов", который вызывает утилиту Kghostview. Эти программы просты и не требуют особых навыков и знаний.
Программы просмотра и захвата изображений
Начиная работать в системе Linux можно не беспокоится, о том, есть ли программы для просмотра графических файлов. Конечно же есть. Во-первых, многие графические файлы можно в любом интернет-броузере. Во-вторых, в среде KDE имеется специальная программа для просмотра графических файлов. Она входит в состав пакета kdegraphics и называется Kview (Программа просмотра изображений). Эта программа позволяет просматривать графические файлы форматов bmp, gif, tiff, jpg, png, pnm. Но кроме этого, в ней можно создать список графических файлов и просматривать их как слайды с заданным временем смены картинки. Разобраться в работе этой программы очень просто, так как весь ее интерфейс переведен на русский язык.
Кроме простой программы Kview в Linux имеется пакет Image Magic, который содержит несколько утилит, в том числе в том числе программу display для просмотра и захвата изображений. В среде KDE имеется еще одна программа для захвата изображений - Ksnapshot. Она так же как и Kview входит в состав пакета kdegraphics. Её можно запустить из раздела "Графика", выбрав строку "Снимок экрана". Все изображения программ для этой статьи были "сфотографированы" с помощью этой утилиты.
Так же для захвата изображения можно воспользоваться графическим редактором GIMP, но основное его назначение это создание и редактирование графических файлов.
Сейчас уже написано множество программ
Сейчас уже написано множество программ с графическим интерфейсом для проигрывания CD дисков и MP3 файлов. В KDE имеется свой проигрыватель CD. Он называется Kscd и входит в состав пакета kdemultimedia. Кроме него, для прослушивания CD, можно воспользоваться программой XPlayCD. Но каких-то существенных отличий между этими программами нет. Видимо потому, что они выполняют строго ограниченные функции.
Для прослушивания файлов формата mp3 необходимы другие программы - проигрыватели mp3 файлов. Наибольшую популярность получила - X MultiMedia System. Найти последнюю версию этого проигрывателя можно . По внешнему виду XMMS очень похожа на WinAmp. В ней также имеется окно визуализации, плей-лист и эквалайзер, как и у суперпопулярного Winamp.
Одним несомненным достоинством проигрывателя XMMS является поддержка русского языка. В бегущей строке и плей-листе названия композиций отображаются на русском языке. Также на русский язык переведено меню управления. Эта программа также может проигрывать и простые музыкальные компакт-диски. Поскольку эта программа имеет схожий интерфейс с WinAmp, то трудностей при ее использовании не возникнет. Но это не единственная программа подобного рода. Для прослушивания музыки можно использовать например .
Проигрыватели видео
Рассказывая о видео-проигрывателях следует начать с программы . Она в определенной мере является универсальной, так как позволяет проигрывать как аудио, как и видео файлы. С ёё помощью можно прослушать и просмотреть файлы формата MPEG1, MPEG2, MPEG3 (mp3), MPEG4 (openDivX), AC3, DTS, Ogg Vorbis, JPEG, WMA, AVI, ASF, Quicktime, VCD, DVD. Как видно возможности этого проигрывателя достаточно велики.
Однако говорить о лидерстве Xine среди других графических проигрывателей не приходится. Не меньшей популярность обладает программа . Она также поддерживает множество форматов: VCD, DVD, MPEG1/MPEG2, AVI, ASF, WMV, QT, MOV, VIVO, FLI, RealMedia. Этот проигрыватель также заслуживает внимания и изучения.
Еще одна популярная программа для проигрывания видео - . Она представляет собой графическую оболочку для Xanim и поэтому так же как и предыдущие проигрыватели поддерживает множество различных форматов, включая MPEG1, QuickTime и анимированный GIF. Эта программа очень проста в использовании. Всё её управление сводится к семи кнопкам, одна из которых "открыть файл", четыре - управление воспроизведением, одна - "настройки" программы и последняя - "Справка". Любителям аскетизма стоит попробовать. Она так же входит в состав дистрибутивов ALT Linux Junior 1.0
Словари
Программы-словари на многих рабочих местах стали незаменимым инструментом. Под Linux также имеется множество подобных программ. Например, англо-русский словарь mova Евгения Цимбалюка, входящий в состав дистрибутива ALT Linux Junior 1.0. Эта программа использует словарь Мюллера и шрифты для отображения знаков транскрипции. Она очень проста в использовании и имеет русскоязычный интерфейс. Последнюю версию программы вместе со словарем можно взять или .
Другой словарь - Дмитрия Анисимова. Эта программа так же использует широко известный англо-русский словарь Мюллера, но к ней могут быть подключены и другие словари. Программа достаточно проста. Вы вводите несколько первых букв слова в среднем поле, затем в верхнем поле необходимо выбрать искомое слово и нажать кнопку Enter.
Кроме программ mova и slowo существуют такие оболочки для словарей как , (3), .
Справочная информация
Для начинающих пользователей OC Linux, главным помощником в изучении системы является "Справка". От ее качества и всеобъемлемости зависит ключевой вопрос: "Захочет ли пользователь продолжить познавать новую систему и работать с ней?".
Оказавшись в затруднительной ситуации, пользователю в первую очередь необходимо обратиться к справочнику дистрибутива. Но кроме этой документации, существуют несколько независимых источников, которые содержат информацию почти по любому аспекту системы Linux. Это страницы интерактивного руководства man, гипертекстовое руководство info, документация прилагаемая к пакетам программ, текстовые файлы HOWTO и FAQ.
Основной способ получения информации во всех Unix-системах - это обращение к документации man. С её помощью можно получить подсказку почти по любой команде, формату файлов и системным вызовам. Также можно производить контекстный поиск заданного ключевого слова или фрагмента слова в базе данных man, которая содержит перечень системных команд с их кратким описанием.
В графическом режиме для просмотра справки man можно воспользоваться командой xman. Она значительно упрощает работу с документацией.
Еще одним справочников в OC Linux является программа info. Информацию можно черпать и из man и из info.
Для помощи по оболочке Bash существует команда help. Для более подробной информации по интересующей команде в оболочке следует указать в качестве параметра её имя (например help ls).
В процессе установки системы предлагается установить пакет с документацией. Если пользователь соглашается, то в каталог /usr/doc или /usr/share/doc копируется документация HOWTO, FAQ, HTML, LDP, которая содержит обширную справочную информацию по системе Linux и отдельным ее аспектам. Большую часть этой документации можно прочитать с помощью команд less или more.
Следует отметить, что в русскоязычных дистрибутивах, таких как ASPLinux, ALTLinux, RedHat Linux Cyrillic Edition большинство документации переведено на русский язык.
Конфигурационный файл Xconfigurator после внесения изменений
# XFree86 4.0 configuration generated by Xconfigurator
Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
FontPath "unix/:7100"
EndSection
Section "Module"
Load "dbe" # Double-buffering
Load "GLcore" # OpenGL support
Load "dri" # Direct rendering infrastructure
Load "glx" # OpenGL X protocol interface
Load "extmod" # Misc. required extensions
Load "v4l" # Video4Linux
Load "type1" # Type1 fonts support
# Load "pex5" # PHIGS for X 3D environment (obsolete)
# Load "record" # X event recorder
# Load "xie" # X Image Extension (obsolete)
# You only need the following two modules if you do not use xfs.
# Load "freetype" # TrueType font handler
# Load "type1" # Adobe Type 1 font handler
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbLayout" "ru"
Option "XkbOptions" "grp: ctrl_shift_toggle, grp_led: scroll"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Device" "/dev/mouse"
Option "Protocol" "PS/2"
Option "Emulate3Buttons" "on"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "IBM 9513 T55A TFT Monitor"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 30.0-61.0
VertRefresh 56.0-75.0
Option "dpms"
EndSection
Section "Device"
Identifier "Neomagic Corporation|NM2160 [MagicGraph "
Driver "neomagic"
BoardName "Unknown"
Option "externDisp"
Option "internDisp"
Option "XaaNoScanlineImageWriteRect"
Option "XaaNoScanlineCPUToScreenColorExpandFill"
EndSection
Section "Device"
Identifier "Linux Frame Buffer"
Driver "fbdev"
BoardName "Unknown"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Neomagic Corporation|NM2160 [MagicGraph "
Monitor "IBM 9513 T55A TFT Monitor"
DefaultDepth 16
Subsection "Display"
Depth 16
Modes "1024x768"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
Настройка модема
Закончив со звуковой картой, можно заняться интегрированным модемом.
Вся программная часть внутреннего модема вынесена в приложение, которое исполняется в операционной системе - в отличие от внешних модемов, которые содержат некоторую часть программной реализации.
Сотрудники фирмы IBM не бросили свое детище (в смысле ноутбук) на произвол судьбы и написали для него драйвер для DSP-модема. Вследствие чего имеем Linmodem.
Загрузить пакет с драйвером можно с сайта IBM - в разделе Download the ACP Modem driver необходимо выбрать пункт Current source code. Затем его следует распаковать и сконфигурировать. В первый раз желательно оставить все конфигурационные файлы без изменений и выполнить следующие команды:
# tar zxvf mwavem-<1.0.3>.i386.tar.gz # cd mwavem-<1.0.3> #./configure -enable-mwavedd
Во время выполнения команды может возникнуть ошибка с сообщением "Не найден каталог /usr/src/linux" - она устраняется созданием символической ссылки на существующее ядро:
# /bin/ln -s /usr/src/linux-<2.4.9-13> /usr/src/linux
А затем необходимо скомпилировать и установить драйвер:
# make # make install
После этого в системе, помимо файлов различных программ и утилит, будет создано устройство /dev/modems/mwave и драйвер /lib/modules/<2.4.9-13>custom/kernel/drivers/char/mwave/mwave.o. Далее необходимо скопировать папку с драйвером mwave. o в /lib/modules/<2.4.9-13>/kernel/drivers/char, а папку /lib/modules/<2.4.9-13>custom/ со всем ее содержимым удалить.
Затем нужно выполнить команду, которая перенастроит файл описания драйверов /lib/modules/<2.4.9-13>/modules.dep:
# cd /lib/modules/<2.4.9-13> # /sbin/depmod
Перейдем к созданию устройства /dev/modems/mwave и редактированию конфигурационного файла /usr/local/etc/mwavem.conf.
В разделе [WORLDTRADE] необходимо установить значение переменной Country равным 7, что соответствует стране "Россия". Поскольку переменной "Украина" в этом списке нет, остановимся на таком варианте.
Country=7
Теперь загрузим драйвер mwave:
# /sbin/modprobe mwave
Проверим его:
# /sbin/lsmod
Если выводится строка:
mwave 30656 4
значит, драйвер модема загрузился успешно, в таком случае два следующих абзаца можно пропустить и переходить к установке скрипта mwaved.
Если же указанная строка не вывелась на консоль, то, вероятнее всего, возникла ошибка, связанная с неверно установленными значениями irq и io. Для данной модели ноутбука методом проб и ошибок было выявлено, что устройством, "мешающим" загрузке драйвера mwave, является pcmcia-контроллер. Проверить это можно, запустив утилиту редактор скриптов (ntsysv или ksysv) и удалив из пятого уровня загрузки скрипт поддержки pcmcia-контроллера (который так и называется - PCMCIA).
Для чистоты эксперимента следует перезагрузить компьютер, а затем выполнить команду:
# /sbin/modprobe mwave
Скорее всего, после этого драйвер загрузится. Проверить это можно с помощью команды lsmod. Если же произошло невероятное и выдается сообщение об ошибке, отчаиваться не стоит. Нужно проанализировать содержание файлов /proc/ioports, /proc/dma, /proc/interrupts и определить, какое устройство все-таки "мешает" работать mwave. Измените значения параметров загрузки драйвера (используйте свободные значения io, dma, irq) - и попробуйте еще раз.
Итак, драйвер загружается. Можно считать, что полдела сделано. Предстоит добавить скрипт, который будет загружать модуль mwave при каждом старте OC LINUX. Для этого необходимо скопировать /mwavem-1.0.3/src/mwavem/mwaved в папку /etc/rc.d/init.d. Далее запускаем утилиту ntsysv (ksysv) и добавляем в требуемый уровень загрузки скрипт mwaved с порядковым номером 30 (согласно рекомендациям авторов).
Чтобы драйверы pcmcia и mwaved заработали совместно, необходимо в файле /etc/pcmcia/config.opts убрать символ комментария ("#") перед строкой:
exclude irq 3
Эта строка указывает скрипту, устанавливающему драйвер pcmcia, что третье прерывание (irq 3) использовать не нужно, так как оно зарезервировано для использования другим устройством.
Теперь следует запустить утилиту ntsysv (ksysv) и вернуть скрипт pcmcia на прежнее место (номер 45). После перезагрузки ноутбука можно проверить, как драйверы устройств ведут себя при одновременной загрузке. Подтверждением успешной загрузки скриптов будет слово "Ok" в строке каждого устройства - и pcmcia, и mwave.
После успешной загрузки драйверов может возникнуть проблема с сетевой картой 3COM 589 - если она "возжелает" занять десятое прерывание (irq 10). Проверить, активен сетевой интерфейс или нет, можно командой, которая показывает состояние всех сетевых интерфейсов:
# /sbin/ifconfig -a
Если сетевая карта конфликтует с mwave-модемом, необходимо проверить, какие прерывания заняты, а какие свободны. Это можно увидеть, просмотрев содержимое файла /proc/interrupts:
# /bin/cat/proc/interrupts
Но вернемся к редактированию файла /etc/pcmcia/config.opts. Если параллельный порт не используется, а в файле /etc/pcmcia/config.opts присутствует строка:
exclude irq 7
значит, седьмое прерывание (irq 7) зарезервировано и его можно использовать для другого устройства. Достаточно закомментировать эту строку, добавив в начало строки символ "#". Для того чтобы драйвер сетевой карты не пытался занять десятое прерывание (irq 10) необходимо добавить в файл следующую строку:
exclude irq 10
После этих действий конфликт прерываний должен быть устранен.
Вернемся теперь к настройке модема и создадим "мягкую" ссылку на устройство /dev/ttyS1:
# /bin/ln -s /dev/ttyS1 /dev/modem
Для проверки работоспособности модема воспользуемся программой minicom. Ее необходимо выполнить c параметром -s, который позволит настроить программу сразу после ее запуска.
# /usr/bin/minicom -s
В появившемся окне configuration следует выбрать строку Serial port setup. Возникнет окно, отображающее текущие настройки. Они должны быть следующего содержания:
A - Serial Device: /dev/modem .... E - Bps/Par/Bits: 38400 8N1 F - Hardware Flow Control: Yes G - Software Flow Control: No
После нажатия клавиши <Enter> и выбора строки Exit происходит инициализация модема. Если она прошла успешно, можно позвонить какому-нибудь провайдеру посредством команды:
ATDP 1111111
где ATDP - команда набора номера в пульсовом режиме, а 1111111 - номер телефона.
В случае успешного соединения через некоторое время вы должны увидеть строку:
CONNECT..
Это означает, что модем работает и соединение установлено.
Но может сложиться ситуация, когда модем начнет "общаться", но через 3-4 секунды "зависает", издавая пронзительный писк. При этом звук не слышен через динамики ноутбука. Реанимировать его можно лишь перезагрузкой всей OC. Если у вас происходит описанная ситуация, необходимо исправить раздел [STARTUP] конфигурационного файла /usr/local/etc/mwavem.conf. Строка скорости должна выглядеть так:
SPEED=33600
После этих изменений все должно успешно заработать.
Настройка параметров ноутбука
Далее речь пойдет о специфических настройках, которые необходимы только для ноутбуков компании IBM. Каждый производитель компьютерной техники стремится расширить спектр настроек своего оборудования, чтобы конечный пользователь мог изменять не только стандартные параметры (такие как яркость и контрастность монитора), но и более специфичные настройки: режимы работы IR-порта, жесткого диска и т.п. Для того чтобы воспользоваться этими возможностями в OC Linux, необходимо установить пакеты с драйверами и утилитами. Список поддерживаемых моделей ноутбуков можно найти внутри рассматриваемых пакетов. Сначала необходимо скачать пакеты из интернета.
Понадобятся следующие пакеты:
thinkpad_<3.7>.tar.gz (драйверы, необходимые для работы с содержимым CMOS); tpctl_<3.7>.tar.gz (утилита, обеспечивающая доступ и изменение памяти CMOS).
Для установки необходимо перейти в директорию с сохраненными пакетами, скопировать их в папку /usr/src и распаковать, выполнив следующую последовательность команд:
# /bin/cp./thinkpad_<3.7>.tar.gz /usr/src # /bin/cp./tpctl_<3.7>.tar.gz /usr/src # cd /usr/src # /bin/tar xvfz./thinkpad_<3.7>.tar.gz # /bin/tar xvfz./tpctl_<3.7>.tar.gz
Следующим шагом будет установка драйверов:
# cd thinkpad-<3.7> # /usr/bin/make all # /usr/bin/make install
После того как драйверы скомпилированы и установлены в директорию /lib/modules/<2.4.9-13>/thinkpad, создаем новое устройство в системе /dev/thinkpad. Это можно сделать посредством следующей команды:
# /bin/mknod --mode=644 /dev/thinkpad c 10 170
Для установки утилиты tpctl нужно выполнить следующую последовательность команд:
# cd /usr/src/tpctl-<3.7> # /usr/bin/make all # /usr/bin/make install
Результатом выполненных действий станут скомпилированные программы tpctl и ntpctl, которые можно найти в папке /usr/bin. В папке же /usr/lib будет находиться скомпилированная библиотека - libsmapidev.so.1.
После этого необходимо добавить в файл /etc/modules.conf следующие строки:
keep path [thinkpad]=/lib/modules/`uname -r`/thinkpad options thinkpad enable_smapi=1 enable_superio=1\ enable_rtcmosram=1 enable_thinkpadpm=1 alias char-major-10-170 thinkpad alias /dev/thinkpad thinkpad alias /dev/thinkpad/thinkpad thinkpad alias /dev/thinkpad/smapi smapi alias /dev/thinkpad/superio superio alias /dev/thinkpad/rtcmosram rtcmosram alias /dev/thinkpad/thinkpadpm thinkpadpm
После добавления вышеописанных строк необходимо выполнить команду:
# /sbin/depmod -a
Этой командой подгружаются драйвера для работы с памятью CMOS ноутбука. Проверить правильность выполненных действий и - как следствие - корректности загрузки драйвера, можно одной из утилит tpctl или ntpctl:
# /usr/bin/tpctl --all
или
# /usr/bin/ntpctl
Если программы работают, значит, драйвер загружается корректно. Во время работы данных утилит можно выполнить команду:
# /sbin/lsmod
Должны появиться следующие строки (или им подобные):
smapi 2756 0 (autoclean) thinkpad 2852 1 (autoclean) [smapi]
С помощью указанных утилит предоставляется возможность настройки параметров ноутбука (параметры экрана, порты и т.п.).
На момент написания статьи последней версией была 4.1 для ядра версии 2.4.19 и выше.
Настройка видео
Перейдем к настройке графического экрана. За нее отвечает один из двух файлов - /etc/X11/XF86Config и /etc/X11/XF86Config-4. Первый - за настройки Х-сервера версии 3, а второй - Х-сервера версии 4.
В выбранном дистрибутиве ASPLinux по умолчанию используется X-сервер версии 4. Для настройки графического режима рекомендуется воспользоваться программой Xconfigurator. Эта утилита запускается из текстовой консоли, чтобы иметь возможность запустить Х-сервер и протестировать его в заданном режиме. Так как, согласно исходным данным, мы работаем в графическом режиме, то для успешной работы программы необходимо из него выйти. Для этого надо выбрать пункт Выйти в выпадающем меню, которое появится после нажатия кнопки <К>. Когда появится приглашение для входа в систему, следует нажать сочетание клавиш <Ctrl> + <Alt> + <F1> для перехода в консольный режим.
После успешного прохождения авторизации в качестве пользователя root, можно запускать конфигурационную утилиту Xconfigurator:
# /usr/X11R6/bin/Xconfigurator
Первым появится приветствие. Следующее окно содержит сведения об обнаруженном видеоустройстве, X-сервере и драйвере. Затем предлагается определиться с монитором. Следует выбрать строку IBM 9513T55A TFT. Допустимый диапазон частот вертикальной и горизонтальной разверток, выбранного типа, составляют 30-61 кГц и 56-75 кГц, что полностью соответствует рабочим характеристикам TFT-матрицы данного ноутбука. После этого откроется окно, предлагающее провести тестирование и определить оптимальное разрешение и глубину цвета для ноутбука. После нажатия кнопки "Проверить" экран начнет мигать и переключаться в различные режимы. В результате этого тестирования программа предложит использовать разрешение экрана 1024 x 768 с количеством цветов 16 бит на пиксель. Принять это предложением можно, нажав кнопку Использовать настройки по умолчанию. Затем появится предупреждение о том, что утилита запустит Х-сервер для проверки созданной конфигурации. Откроется графический экран. Потребуется подтверждение того, что изображение функционирует нормально (кнопка <Оk>). Программа закроет этот экран и, вернувшись в консольный режим, предложит автоматически запускать Х-сессию при каждой загрузке. Для загрузки операционной системы в графическом режиме следует согласиться - иначе в следующий раз ноутбук загрузится в режиме 3 (текстовый).
Далее все произведенные настройки сохранятся - и программа закончит свою работу.
Настройка звука
Для настройки драйверов звукового устройства в операционной системе должен быть установлен пакет sndconfig. В противном случае необходимо установить его с помощью графической утилиты менеджера пакетов (GnoRPM или Kpackage). Или из командной строки, выполнив команду в окне эмулятора терминала:
# /bin/rpm -Uhv./sndconfig-<0.65.2-1>.i386.rpm
Для настройки звуковой платы следует запустить программу-конфигуратор звукового устройства:
# /sbin/sndconfig
Первое, что появится, это окно приветствия. Поскольку в данном ноутбуке интегрирована звуковая плата ISA, то после нажатия кнопки "Оk" программа начнет искать - и безрезультатно - устройства PNP и PCI. После чего будет предложено выбрать тип звуковой карты из имеющегося списка. Необходимо выбрать Crystal CS423x sound chip и установить затем его параметры. Приведу примеры параметров, которые устанавливаются по умолчанию:
Port io = 530 IRQ = 5 DMA1 = 1 DMA2 = 0 MPU io = 330 MPU irq = 9
После этих установок и нажатия кнопки "Ok" программа попробует загрузить драйвер выбранного устройства с указанными параметрами. Если последние заданы правильно, будет предложено прослушать звуковое приветствие и ответить на вопрос, слышали ли вы его. Затем пользователю предложат прослушать MIDI-фрагмент и, опять-таки, подтвердить его прослушивание. После этого в файл /etc/modules. conf будут добавлены следующие строки:
alias sound-slot-0cs4232 post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc \ -L >/dev/null 2>&1 : pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S \ >/dev/null 2>&1 : options sound dmabuf=1 alias synth0 opl3 options opl3 io=0x388 options cs4232 io=0x530 irq=5 dma=1 dma2=0 mpuio=0x330 mpuirq=9
А в файл /etc/sysconfig/soundcard будет добавлена строка:
CARDTYPE=CS4232
Несмотря на то что установка драйвера прошла успешно и вы услышали звуковое приветствие, при последующей загрузке может возникнуть проблема с "заиканием" звуковой платы. Для устранения этого дефекта необходимо перезагрузить драйвер. Чтобы не делать это после каждой загрузки, можно создать скрипт с именем cs4232, выполнив следующие действия:
#!/bin/bash # chkconfig: 345 84 16 # description: Starts/stops the CS4232 driver # at boot time and shutdown
HOME=/etc case "$1" in
start) echo "Starting CS4232 driver" rmmod cs4232 modprobe cs4232 ;; stop) echo "Stopping CS4232 driver" rmmod cs4232 ;; restart) $0 stop $0 start ;; status) echo "Status (NO-OP)" ;; *) echo "Usage: cs4232 {start|stop|status|restart}" exit 1 esac
exit 0
Скрипт помещаем в каталог /etc/rc.d/init.d.
Далее необходимо запустить графическую утилиту редактора скриптов SysV (ksysv) или ее консольный вариант - ntsysv:
# /usr/sbin/ntsysv -levels 5
После запуска утилиты появится колонка, соответствующая заданному уровню загрузки - пятому. Необходимо пометить скрипт cs4232, чтобы он выполнялся при загрузке операционной системы.
При запуске графической утилиты ksysv вы увидите окно с семью уровнями запуска: от 0 до 6. Чтобы поместить скрипт cs4232 в исполняемые при запуске, нужно перетянуть его и колонки "Доступные сервисы" в колонку "Уровень запуска 5". Порядковый номер запуска следует установить равным 84 (согласно рекомендациям разработчиков).
Обустройство пингвинария: IBM ThinkPad notebook
Вячеслав Логачев,
Установить ОС Linux на портативный компьютер не так просто - ведь почти все устройства в нем интегрированы и довольно специфичны
- Мужик, ты чем занимаешься?
- Кроликов развожу.
- Лохов надо разводить, лохов.
Народное творчество
С немалым удивлением и восхищением наблюдаем мы за ростом популярности операционной системы Linux. Еще пять лет назад ни один аналитик не предполагал, что она будет теснить своих конкурентов не только в качестве серверной операционной системы, но и в качестве пользовательской. Системные требования Linux к аппаратному обеспечению невысоки, поэтому его можно установить на все, что подвернется под руку,- например, на ноутбук. Тем более что существует вторичный рынок компьютерной техники - и обладателем ноутбука сейчас можно стать без оглядки на его стоимость.
Но установить OC Linux на портативный компьютер сложнее, так как почти все устройства в нем интегрированы и довольно специфичны.
Поэтому, закончив установку и настройку ASPLinux на свой ноутбук IBM ThinkPad 600, я подумал - жаль тратить время других людей, которые тоже будут устанавливать эту операционку на свой ноутбук. Почему бы не упростить жизнь и себе (может, когда переустанавливать буду), и другим. Пожалуйста…
Конфигурация IBM ThinkPad 600(E) |
модель: IBM ThinkPad 600(E), Type 2645-41U; процессор: Pentium II 233МГц (512 Кб); оперативная память: 224 Мб RAM; жесткий диск: 3,2 Гб; экран: 13.3 XGA TFT (1024 x 768); CD-ROM: 24X; модем: 56 K, встроенный (ACP); сетевой адаптер: 3Com 10Base-T PCMCIA card (3C589D-TP). |
Первое включение после установки
Если в ноутбуке установлено более 64Мб оперативной памяти, необходимо сообщить об этом ядру при загрузке. Для этого при каждом включении или перезагрузке следует после появления приглашения boot: ввести строку:
boot: linux-V.V.V append "mem=xxK"
где linux-V.V.V - это название загружаемого ядра (соответствует значению label в /etc/lilo.conf), а xxK - это количество оперативной памяти, установленной в ноутбуке (рассчитывается по формуле:
xK=1024*n-576
где n - количество памяти в мегабайтах).
У нас имеется 224 Мб. Соответственно, значение xK равно:
1024 x 224 - 576 = 228800
Таким образом, строка для приглашения будет выглядеть так:
boot: linux-2.4.9 append "mem=228800K"
Для того чтобы не производить эти действия каждый раз, необходимо изменить конфигурационный файл /etc/lilo.conf. В данном случае была добавлена строка:
append = "mem=228800K"
После внесения в конфигурационный файл изменений необходимо выполнить команду lilo - иначе изменения не вступят в силу.
Подготовка
Из множества представленных на нашем рынке разновидностей OC Linux выбор пал на ASPLinux. Этот дистрибутив появился пару лет назад, он разработан на базе RedHat Linux. Преимуществом этого продукта является качественная русификация системы и документация. Да и наличие большого количества программ для пакета RedHat стало дополнительным стимулом для установки именно ASPLinux.
Условные обозначения: |
$ - приглашение командного процессора для пользователя; # - приглашение командного процессора для администратора; <3.2> - версия пакета. На момент выхода статьи может быть большей. При вводе команд скобки необходимо пропускать. |
Все описываемые ниже действия были проверены для версий 7.2 (Байкал) и 7.3 (Восток). Процесс установки операционной системы достаточно хорошо описан в документации к дистрибутиву, поэтому будем считать, что собственно установка ASPLinux произведена, и необходимо выполнить только настройку отдельных компонент - звука, видео и т.п.
Исходные данные: |
загрузчик операционной системы - LiLo; при установке выбран режим "графический" (что соответствует пятому уровню исполнения); оконный менеджер - КДЕ; все действия выполняются от имени администратора "root". |
Последний штрих
В заключение хотелось бы обратить внимание на утилиту, которая позволяет полнофункционально использовать TrackPoint (заменитель мыши, расположенный посреди клавиатуры и используемый для управления курсором). Эта утилита доступна здесь.
Однако в данной статье процесс ее установки и настройки не описывается - по причине того что данная утилита работает не со всеми моделями ноутбуков IBM, оснащенными TrackPoint.