Linux. Вопросы и ответы 1
Linux. Вопросы и ответы Q: У меня проблема с Linux Mandrake 8.0. При установке он спрашивает, какую кодировку использовать, KOI8-R или CP1251, но в любом случае после установки вместо русских букв — абракадабра. Что мне делать?
A: В программе установки Linux Mandrake 8.0 есть небольшой баг: она неправильно настраивает локаль русского языка. Все дело в том, что локализация здесь проводится довольно просто: в каталоге /usr/share/locale создаются подкаталоги, содержащие сообщения всех установленных программ на разных языках и в разных кодировках. Такие каталоги называют "локали". Так вот, при установке, скажем, русского языка в файл /etc/sysconfig/i18n прописывается название локали, свойственной русскому языку. В данном случае, переменным окружения будет присвоено значение ru_RU.KOI8-R. Но все дело в том, что такой локали нет! Локаль русского языка в кодировке KOI8-R хранится в каталоге под именем просто ru. То есть, вместо локали, которая прописана, стоит указать ту, которая соответствует требуемому языку и кодировке, в данном случае это ru. Если вы пользуетесь другой кодировкой и языком, то пропишите соответствующую локаль, благо в каждом каталоге локали есть файл описания, да и по самим названиям каталогов можно определить нужную локаль. После проведения операции надо перезапустить систему. Правда, после проведения вышеописанной операции меню в KDE или GNOME все равно может остаться неправильным. Для исправления надо запустить MenuDrake и просто дать команду на сохранение, которая перезапишет меню, и все станет работать.
Q: Как мне заставить Linux набирать телефон в импульсном, а не тоновом режиме?
A: Перед номером телефона надо попробовать писать букву "p" (Pulse), но такой метод работает не всегда. Железный метод — это в командах модема, вместо ATDT, прописать ATDP. Данные команды можно изменить на закладке настроек модема или в другом подобном месте (например, в файлах конфигурации соединения).
Q: А что еще, кроме Wine, можно использовать для работы с Оконными программами, а то эмулятор с некоторыми работать отказывается.
A: Все верно, эмулятор не может работать со всеми программами — на то он и эмулятор. В Windows хватает недокументированных функций, и поэтому не все получается эмулировать. Если у вас машина "средней руки", то можно использовать программу VMWare. VMWare позволяет запускать несколько операционных систем одновременно. А это означает, что, к примеру, из-под Linux можно запустить полноценную Windows, и наоборот. Для запускаемой операционной системы VMWare создает виртуальную машину, эмулирующую реальную "железную" систему, которая не зависит от уже запущенной операционной системы. Запускаемую операционную систему можно даже устанавливать из-под уже запущенной ОС. При этом есть выбор, куда ставить: на физический раздел или на виртуальный диск (размер до 2Гб). Базовой ОС может выступать Windows NT, Windows 2000, любой из Linux'ов. Минимальные системные требования программы таковы: процессор от 266 МГц, память от 96 Мб. Стоит учесть, что запущенная ОС будет отнимать как минимум половину ресурсов компьютера. Программу можно скачать с www.vmware.com. Там лежат варианты как для Windows, так и для Linux. Стоимость программы — около 300$. Но на сервере лежит и тестовый вариант.
Q: Я забыл пароль администратора, что мне теперь делать?!
A: Если вы забыли пароль вашего root — нет проблем. Просто загрузитесь с boot/root дискет (они создаются при установке либо как описано в одной из предыдущих статей), примонтируйте вашу корневую файловую систему под /mnt и сотрите поле пароля для root в /mnt/etc/passwd, как, например, root::0:0:root:/:/bin/sh.
Теперь root без пароля. Когда вы перезагрузитесь с жесткого диска, вы сможете войти как root и снова установить пароль, используя команду passwd. Но администратор должен отдавать себе отчет, что процедуру снятия пароля root умеет запросто выполнять не он один.
Q: Если коротко, то из чего состоит ядро Linux?
A: Ядро системы Linux состоит из нескольких основных частей: блок управления процессами, блок управления памятью, драйверы устройств, драйверы файловых систем, блок управления сетью а также другие небольшие процедуры. Наиболее важные составляющие ядра (обеспечивающие жизнеспособность системы) — это блок управления памятью и процессами. Блок управления памятью обеспечивает распределение областей памяти и swap-областей между процессами, составляющими ядра и для кэш-буфера. Блок управления процессами создает новые процессы и обеспечивает многозадачность путем переключения задач. На самом нижнем уровне ядро содержит драйверы устройств для каждого типа поддерживаемого оборудования. Существует довольно большой набор различных драйверов, так как постоянно разрабатываются новые типы устройств. Существует довольно много одинаковых устройств, которые различаются только тем, как происходит взаимодействие между самим устройством и драйвером. Такое сходство позволяет использовать классы драйверов, поддерживающих одинаковые операции. В каждом члене такого класса используется однотипный интерфейс для ядра, но различные схемы взаимодействия с устройством. Например, все драйверы жесткого диска представляются для ядра абсолютно одинаково, то есть у них всех имеются такие операции, как 'инициализация жесткого диска', 'чтение сектора N', 'запись сектора N'. Некоторые функции, предоставляемые ядром, имеют одинаковые свойства. Например, различные сетевые протоколы объединены в один программный интерфейс — BSD socket библиотеку. Вот другой пример — различные файловые системы, поддерживаемые системой Linux. Ядро содержит Virtual File System — VFS, которая включает в себя все функции, используемые для работы системы, а также драйвер для каждой поддерживаемой файловой системы. При попытке доступа к какой-либо файловой системе запрос проходит через VFS, откуда перенаправляется к соответствующему драйверу файловой системы.
Q: Что такое syslog и для чего он нужен?
A: Иногда при работе ядра или различных системных программ возникают ошибки, предупреждения и другие сообщения. Программа syslog записывает все сообщения в файл так, что он может быть впоследствии просмотрен. Syslog можно сконфигурировать так, что сообщения будут сортироваться и записываться в разные файлы по приоритету. Например, сообщения ядра часто направляются в отдельный файл, так как эти сообщения наиболее важные и должны регулярно просматриваться во избежание серьезных проблем.
Q: А что такое NFS?
A: Одна из наиболее полезных функций, которая может быть реализована с помощью сети, это разделение файлов через сетевую файловую систему. Обычно используется система, называемая Network File System, или NFS, которая разработана корпорацией Sun. При работе с сетевой файловой системой любые операции над файлами, производимыми на локальном компьютере, передаются через сеть на удаленную машину. При работе сетевой файловой системы программа считает, что все файлы на удаленном компьютере находятся на компьютере, где она запущена. Таким образом разделение информации посредством такой системы не требует внесения каких-либо изменений в программу.
Q: Я где-то в доках по Линуху видел упоминание про диски без файловых систем. Вы не могли бы рассказать об этом?
A: Не все диски или разделы используются как файловые системы. Например, раздел swap-области не содержит файловой системы. Многие дисководы используются в режиме эмуляции ленточного накопителя, поэтому tar-файл, или любой другой файл, записывается непосредственно на диск без использования какой-либо файловой системы. У такого использования есть небольшое преимущество в свободном пространстве (при установке файловой системы некоторая часть дискового пространства используется для системных целей) и совместимости с другими системами. Например, файловый формат tar является стандартным для всех систем, в то время как файловые системы на разных платформах различаются. Дискеты экстренной загрузки системы Linux также могут не содержать файловой системы. Одна из причин использования прямого доступа к диску (без применения файловой системы) это создание копий. Например, если диск содержит частично поврежденную файловую систему, то при возможности следует создать его копию перед тем, как пытаться что-либо сделать. Для этого можно использовать программу dd:
dd if=/dev/fd0H1440 of=floppy-image
dd if=floppy-image of=/dev/fd0H1440
Сначала команда dd выполняет точную копию дискеты в файл floppy-image, а затем записывает копию обратно на диск (предполагается, что перед выполнением последней команды была вставлена другая дискета).
Q: Для чего нужен каталог /proc?
A: На самом деле это не каталог, а файловая система. Файловая система /proc является виртуальной и в действительности она не существует на диске. Ядро создает ее в памяти компьютера. Система /proc предоставляет информацию о системе (изначально только о процессах — отсюда ее название). Некоторые наиболее важные файлы и каталоги рассмотрены ниже. Более подробную информацию о структуре и содержании файловой системы /proc можно найти в руководстве к proc.
/proc/1 — каталог, содержащий информацию о процессе номер 1. Для каждого процесса существует отдельный каталог в /proc, именем которого является его числовой идентификатоp;
/proc/cpuinfo — инфоpмация о пpоцессоpе, такая как тип пpоцессоpа, его модель, пpоизводительность и дp.;
/proc/devices — список дpайвеpов устpойств, встpоенных в действующее ядpо;
/proc/dma — задействованные в данный момент каналы DMA;
/proc/filesystems — файловые системы, встpоенные в ядpо;
/proc/interrupts — задействованные в данный момент пpеpывания;
/proc/ioports — задействованные в данный момент поpты ввода/вывода;
/proc/kcore — отобpажение физической памяти системы в данный момент. Размеp этого файла точно такой же, как и у памяти компьютеpа, только он не занимает места в самой памяти, а генеpиpуется на лету пpи доступе к нему пpогpамм. Однако пpи копиpовании этого файла куда-либо он не займет места на диске;
/proc/kmsg — сообщения, выдаваемые ядpом. Они также пеpенапpавляются в syslog;
/proc/ksyms — таблица символов;
/proc/loadavg — оpиентиpовочная загpуженность системы;
/proc/meminfo — инфоpмация об использовании памяти как физической, так и swap-области;
/proc/modules — список модулей ядpа, загpуженных в данный момент;
/proc/net — инфоpмация о сетевых пpотоколах;
/proc/self — символическая ссылка к каталогу пpоцесса, пытающегося получить инфоpмацию из /proc. Пpи попытке двух pазличных пpоцессов получить какую-либо инфоpмацию в /proc, они получают ссылки на pазличные каталоги. Это облегчает доступ пpогpамм к собственному каталогу пpоцесса;
/proc/stat — различная статистическая инфоpмация о pаботе системы;
/proc/uptime — вpемя, в течение котоpого система находится в pабочем состоянии.
Q: Как научиться работе с Linux, если pядом нет гуpу?
A: Первое: стоит почитать книгу "Linux. Руководство по операционной системе".
Для начинающих хорошей книгой является "Операционная система UNIX" Андрея Робачевского, а для более продвинутых (и желающих таковыми стать) — "UNIX: Руководство системного администратора" Немета.
Второе: можно обратиться в существующую Linux Users Group или создать свою.
Третье: пpочесть паpу книжек от Linux Documentation Project, найти их можно здесь: ftp://nic.funet.fi/pub/OS/Linux/doc/doc-project/*, ftp://tsx-11.mit.edu://pub/linux/doc/guides/*, ftp://ftp.kiae.su/linux/doc/LDP/* . Hа русском языке есть Linux Installation and Getting Started (в файле): http://nevod.perm.su/service/linux/doc/lig/index.html .
Можно также начать с http://gpntb.ippi.ras.ru — там есть Linux Page со ссылками. Hа ftp://nevod.perm.su лежит перевод Installation Guide в разных формах. Вот неполный список сайтов с документацией на русском языке:
http://knot.pu.ru/faq/xfaq.html
http://m66.nevod.perm.su/service/linux/doc/
http://nexus.odessa.ua/linux/
http://t37.nevod.perm.su
http://win.www.netclub.ru/Russian/linux.html
http://www.aha.ru/~agb/
http://www.dkd.ot.lt/hompag/linux/default.htm
http://www.uco.ru/~garris/
http://xtalk.price.ru/linux/
http://www.linux.opennet.ru
http://slackl.cargolink.cnt.ru/~ivanp/
X-Stranger
xstranger@tut.by
(c) компьютерная газета
A: В программе установки Linux Mandrake 8.0 есть небольшой баг: она неправильно настраивает локаль русского языка. Все дело в том, что локализация здесь проводится довольно просто: в каталоге /usr/share/locale создаются подкаталоги, содержащие сообщения всех установленных программ на разных языках и в разных кодировках. Такие каталоги называют "локали". Так вот, при установке, скажем, русского языка в файл /etc/sysconfig/i18n прописывается название локали, свойственной русскому языку. В данном случае, переменным окружения будет присвоено значение ru_RU.KOI8-R. Но все дело в том, что такой локали нет! Локаль русского языка в кодировке KOI8-R хранится в каталоге под именем просто ru. То есть, вместо локали, которая прописана, стоит указать ту, которая соответствует требуемому языку и кодировке, в данном случае это ru. Если вы пользуетесь другой кодировкой и языком, то пропишите соответствующую локаль, благо в каждом каталоге локали есть файл описания, да и по самим названиям каталогов можно определить нужную локаль. После проведения операции надо перезапустить систему. Правда, после проведения вышеописанной операции меню в KDE или GNOME все равно может остаться неправильным. Для исправления надо запустить MenuDrake и просто дать команду на сохранение, которая перезапишет меню, и все станет работать.
Q: Как мне заставить Linux набирать телефон в импульсном, а не тоновом режиме?
A: Перед номером телефона надо попробовать писать букву "p" (Pulse), но такой метод работает не всегда. Железный метод — это в командах модема, вместо ATDT, прописать ATDP. Данные команды можно изменить на закладке настроек модема или в другом подобном месте (например, в файлах конфигурации соединения).
Q: А что еще, кроме Wine, можно использовать для работы с Оконными программами, а то эмулятор с некоторыми работать отказывается.
A: Все верно, эмулятор не может работать со всеми программами — на то он и эмулятор. В Windows хватает недокументированных функций, и поэтому не все получается эмулировать. Если у вас машина "средней руки", то можно использовать программу VMWare. VMWare позволяет запускать несколько операционных систем одновременно. А это означает, что, к примеру, из-под Linux можно запустить полноценную Windows, и наоборот. Для запускаемой операционной системы VMWare создает виртуальную машину, эмулирующую реальную "железную" систему, которая не зависит от уже запущенной операционной системы. Запускаемую операционную систему можно даже устанавливать из-под уже запущенной ОС. При этом есть выбор, куда ставить: на физический раздел или на виртуальный диск (размер до 2Гб). Базовой ОС может выступать Windows NT, Windows 2000, любой из Linux'ов. Минимальные системные требования программы таковы: процессор от 266 МГц, память от 96 Мб. Стоит учесть, что запущенная ОС будет отнимать как минимум половину ресурсов компьютера. Программу можно скачать с www.vmware.com. Там лежат варианты как для Windows, так и для Linux. Стоимость программы — около 300$. Но на сервере лежит и тестовый вариант.
Q: Я забыл пароль администратора, что мне теперь делать?!
A: Если вы забыли пароль вашего root — нет проблем. Просто загрузитесь с boot/root дискет (они создаются при установке либо как описано в одной из предыдущих статей), примонтируйте вашу корневую файловую систему под /mnt и сотрите поле пароля для root в /mnt/etc/passwd, как, например, root::0:0:root:/:/bin/sh.
Теперь root без пароля. Когда вы перезагрузитесь с жесткого диска, вы сможете войти как root и снова установить пароль, используя команду passwd. Но администратор должен отдавать себе отчет, что процедуру снятия пароля root умеет запросто выполнять не он один.
Q: Если коротко, то из чего состоит ядро Linux?
A: Ядро системы Linux состоит из нескольких основных частей: блок управления процессами, блок управления памятью, драйверы устройств, драйверы файловых систем, блок управления сетью а также другие небольшие процедуры. Наиболее важные составляющие ядра (обеспечивающие жизнеспособность системы) — это блок управления памятью и процессами. Блок управления памятью обеспечивает распределение областей памяти и swap-областей между процессами, составляющими ядра и для кэш-буфера. Блок управления процессами создает новые процессы и обеспечивает многозадачность путем переключения задач. На самом нижнем уровне ядро содержит драйверы устройств для каждого типа поддерживаемого оборудования. Существует довольно большой набор различных драйверов, так как постоянно разрабатываются новые типы устройств. Существует довольно много одинаковых устройств, которые различаются только тем, как происходит взаимодействие между самим устройством и драйвером. Такое сходство позволяет использовать классы драйверов, поддерживающих одинаковые операции. В каждом члене такого класса используется однотипный интерфейс для ядра, но различные схемы взаимодействия с устройством. Например, все драйверы жесткого диска представляются для ядра абсолютно одинаково, то есть у них всех имеются такие операции, как 'инициализация жесткого диска', 'чтение сектора N', 'запись сектора N'. Некоторые функции, предоставляемые ядром, имеют одинаковые свойства. Например, различные сетевые протоколы объединены в один программный интерфейс — BSD socket библиотеку. Вот другой пример — различные файловые системы, поддерживаемые системой Linux. Ядро содержит Virtual File System — VFS, которая включает в себя все функции, используемые для работы системы, а также драйвер для каждой поддерживаемой файловой системы. При попытке доступа к какой-либо файловой системе запрос проходит через VFS, откуда перенаправляется к соответствующему драйверу файловой системы.
Q: Что такое syslog и для чего он нужен?
A: Иногда при работе ядра или различных системных программ возникают ошибки, предупреждения и другие сообщения. Программа syslog записывает все сообщения в файл так, что он может быть впоследствии просмотрен. Syslog можно сконфигурировать так, что сообщения будут сортироваться и записываться в разные файлы по приоритету. Например, сообщения ядра часто направляются в отдельный файл, так как эти сообщения наиболее важные и должны регулярно просматриваться во избежание серьезных проблем.
Q: А что такое NFS?
A: Одна из наиболее полезных функций, которая может быть реализована с помощью сети, это разделение файлов через сетевую файловую систему. Обычно используется система, называемая Network File System, или NFS, которая разработана корпорацией Sun. При работе с сетевой файловой системой любые операции над файлами, производимыми на локальном компьютере, передаются через сеть на удаленную машину. При работе сетевой файловой системы программа считает, что все файлы на удаленном компьютере находятся на компьютере, где она запущена. Таким образом разделение информации посредством такой системы не требует внесения каких-либо изменений в программу.
Q: Я где-то в доках по Линуху видел упоминание про диски без файловых систем. Вы не могли бы рассказать об этом?
A: Не все диски или разделы используются как файловые системы. Например, раздел swap-области не содержит файловой системы. Многие дисководы используются в режиме эмуляции ленточного накопителя, поэтому tar-файл, или любой другой файл, записывается непосредственно на диск без использования какой-либо файловой системы. У такого использования есть небольшое преимущество в свободном пространстве (при установке файловой системы некоторая часть дискового пространства используется для системных целей) и совместимости с другими системами. Например, файловый формат tar является стандартным для всех систем, в то время как файловые системы на разных платформах различаются. Дискеты экстренной загрузки системы Linux также могут не содержать файловой системы. Одна из причин использования прямого доступа к диску (без применения файловой системы) это создание копий. Например, если диск содержит частично поврежденную файловую систему, то при возможности следует создать его копию перед тем, как пытаться что-либо сделать. Для этого можно использовать программу dd:
dd if=/dev/fd0H1440 of=floppy-image
dd if=floppy-image of=/dev/fd0H1440
Сначала команда dd выполняет точную копию дискеты в файл floppy-image, а затем записывает копию обратно на диск (предполагается, что перед выполнением последней команды была вставлена другая дискета).
Q: Для чего нужен каталог /proc?
A: На самом деле это не каталог, а файловая система. Файловая система /proc является виртуальной и в действительности она не существует на диске. Ядро создает ее в памяти компьютера. Система /proc предоставляет информацию о системе (изначально только о процессах — отсюда ее название). Некоторые наиболее важные файлы и каталоги рассмотрены ниже. Более подробную информацию о структуре и содержании файловой системы /proc можно найти в руководстве к proc.
/proc/1 — каталог, содержащий информацию о процессе номер 1. Для каждого процесса существует отдельный каталог в /proc, именем которого является его числовой идентификатоp;
/proc/cpuinfo — инфоpмация о пpоцессоpе, такая как тип пpоцессоpа, его модель, пpоизводительность и дp.;
/proc/devices — список дpайвеpов устpойств, встpоенных в действующее ядpо;
/proc/dma — задействованные в данный момент каналы DMA;
/proc/filesystems — файловые системы, встpоенные в ядpо;
/proc/interrupts — задействованные в данный момент пpеpывания;
/proc/ioports — задействованные в данный момент поpты ввода/вывода;
/proc/kcore — отобpажение физической памяти системы в данный момент. Размеp этого файла точно такой же, как и у памяти компьютеpа, только он не занимает места в самой памяти, а генеpиpуется на лету пpи доступе к нему пpогpамм. Однако пpи копиpовании этого файла куда-либо он не займет места на диске;
/proc/kmsg — сообщения, выдаваемые ядpом. Они также пеpенапpавляются в syslog;
/proc/ksyms — таблица символов;
/proc/loadavg — оpиентиpовочная загpуженность системы;
/proc/meminfo — инфоpмация об использовании памяти как физической, так и swap-области;
/proc/modules — список модулей ядpа, загpуженных в данный момент;
/proc/net — инфоpмация о сетевых пpотоколах;
/proc/self — символическая ссылка к каталогу пpоцесса, пытающегося получить инфоpмацию из /proc. Пpи попытке двух pазличных пpоцессов получить какую-либо инфоpмацию в /proc, они получают ссылки на pазличные каталоги. Это облегчает доступ пpогpамм к собственному каталогу пpоцесса;
/proc/stat — различная статистическая инфоpмация о pаботе системы;
/proc/uptime — вpемя, в течение котоpого система находится в pабочем состоянии.
Q: Как научиться работе с Linux, если pядом нет гуpу?
A: Первое: стоит почитать книгу "Linux. Руководство по операционной системе".
Для начинающих хорошей книгой является "Операционная система UNIX" Андрея Робачевского, а для более продвинутых (и желающих таковыми стать) — "UNIX: Руководство системного администратора" Немета.
Второе: можно обратиться в существующую Linux Users Group или создать свою.
Третье: пpочесть паpу книжек от Linux Documentation Project, найти их можно здесь: ftp://nic.funet.fi/pub/OS/Linux/doc/doc-project/*, ftp://tsx-11.mit.edu://pub/linux/doc/guides/*, ftp://ftp.kiae.su/linux/doc/LDP/* . Hа русском языке есть Linux Installation and Getting Started (в файле): http://nevod.perm.su/service/linux/doc/lig/index.html .
Можно также начать с http://gpntb.ippi.ras.ru — там есть Linux Page со ссылками. Hа ftp://nevod.perm.su лежит перевод Installation Guide в разных формах. Вот неполный список сайтов с документацией на русском языке:
http://knot.pu.ru/faq/xfaq.html
http://m66.nevod.perm.su/service/linux/doc/
http://nexus.odessa.ua/linux/
http://t37.nevod.perm.su
http://win.www.netclub.ru/Russian/linux.html
http://www.aha.ru/~agb/
http://www.dkd.ot.lt/hompag/linux/default.htm
http://www.uco.ru/~garris/
http://xtalk.price.ru/linux/
http://www.linux.opennet.ru
http://slackl.cargolink.cnt.ru/~ivanp/
X-Stranger
xstranger@tut.by
(c) компьютерная газета
Компьютерная газета. Статья была опубликована в номере 23 за 2001 год в рубрике soft :: linux