Linux... на ноутбуке?
Linux на ноутбуке
🕛 30.04.2008, 10:51
Linux на ноутбуке... Совсем не так неожиданно, как может показаться на первый взгляд. Последние пару лет эту ОС, достаточно популярную в качестве серверной, всё чаще можно увидеть на рабочих станциях, младшие из которых - ноутбуки. Эти "братья меньшие" самых распространённых в наше время десктопов, кроме очевидных достоинств, имеют, надо сказать, и ряд недостатков. Прежде всего, это весьма ограниченные возможности наращивания системы, более известного всем пользователям IBM PC как upgrade. Через год-другой после покупки счастливый ещё недавно обладатель начинает чувствовать себя всё более "отстающим от времени". Часто ли увидишь сейчас десктоп P166/32MB с 14-дюймовым монитором?... Редко, а ноутбуков с такими характеристиками - сколько угодно и выбрасывать их жалко. Тем более, что, в отличие от десктопа, практически ничего от недавнего "любимца" использовать повторно не удастся... Жаль, конечно, но ни Me, ни XP на таком оборудовании работать не будут, даже если производитель утверждает обратное. Windows 95/98 - могут, но "тоскливо" это выглядит, если сравнивать хотя бы с PII-400/128MB, совсем уже не выглядящим "авангардом" на Вашем письменном столе... Что же? Отказаться от возможности почитать на диване и "прихватить" работу с собой в отпуск? Или - покупать раз в три года новый ноутбук? Оказывается - не обязательно.Решение существует и строится на базе Linux. Сам Linux достаточно быстр и компактен, а существующее для него ПО исключительно разнообразно: практически всё необходимое можно найти для любой конфигурации, начиная от 386-х. Мысль не оригинальна: уже давно существует сайт TuxMobil (ранее MobiliX - UniX with Mobile Computers), где можно найти всю необходимую информацию, вплоть до описания особенностей отдельных моделей от Acer или, скажем, Compaq. Но это ещё не всё. Идеология свободно распространяемого программного обеспечения дала свои плоды: если систему в значительной мере можно конфигурировать под свои нужды, а пользовательское ПО для неё бесплатно и доступно в исходных кодах, а значит, опять-таки допускает модификацию, то почему бы не создать свой дистрибутив, ориентированный на ноутбуки, не "обременённые" лишними мегагерцами и магабайтами? И вот появляется SEUL - Simple End User Linux - добровольное сообщество энтузиастов Linux, поставивших своей целью создать дистрибутив, способный работать на маломощных компьютерах и не содержащий, по возможности, ничего, кроме необходимого для персональной рабочей станции. Проекту "без году неделя" и, собственно, дистрибутива пока нет, но, познакомившись с материалами сайта можно поверить, что это вполне осуществимо. Linux-сообщество знает немало случаев, когда отдельный разработчик становился автором успешного проекта, что же касается "малых групп", то это, по-моему, основная форма объединения сторонников ПО с открытым кодом. Быть может, SEUL - реакция на последние версии дистрибутивов "грандов" от Linux, таких как RedHat, Mandrake, SuSe: несколько дисков, тысячи пакетов... не то что новичка, и "ветерана" можно отпугнуть, но, так или иначе, пожелаем успеха SEUL и... подождём? Зачем же? Хоть новичку я, быть может, и не решусь советовать немедля "снести" на своём ноутбуке MS Windows и заменить её Linux-ом, но всем, минимально знакомым с этой ОС, советую попробовать. Всё нижеследующее можно считать "приложением" к этому совету: буду рад, если кому-то это поможет.
Начинается всё, как обычно, с выбора дистрибутива. Должен огорчить: так старательно равняющиеся на MicroSoft в удобстве инсталляции, наиболее известные RedHat и Mandrake, в данном случае, - не самый лучший выбор. По крайней мере - их последние версии. Попытка пойти по пути наименьшего количества выборов (рекомендуемому обычно новичкам) потребует от компьютера один, а то и два гигабайта дискового пространства, установит немалое количество сервисов, редко нужных рабочей станции, и вообще, чем-то напомнит установку ОС известного производителя, рекомендации которого можно свести к совету купить новый, более мощный компьютер, желательно из сертифицированных этим же производителем компонентов, а остальное - его забота. Не послушались? - Ну и нечего на "тормоза" пенять. Не лучше будет с "родными" ASP- и ALT- Linux-ами...
Н-да... Что-то в развитии современных дистрибутивов не так, по крайней мере, с точки зрения Pentium-166. А вот предыдущее "поколение" тех же дистрибутивов, базировавшееся на ядрах 2.2.хх, "уживалось" с ноутбуками прошлого века достаточно хорошо. BlackCat 6.2, в своё время, успешно установился на несколько ноутбуков, система без перестройки ядра прекрасно работала с apm (Advanced Power Managment), поддерживала framebuffers (экспериментальная, между прочим, для того времени опция ядра), корректно работала со всеми встретившимися pcmcia-устройствами... "Bravo, Leon!" - что ещё можно сказать? Но время идёт: новый формат rpm-пакетов, новые графические оболочки, новая версия X-Window, наконец... Будем справедливы, однако. Если мы хотим работать с разработанным в эпоху гигагерцовых процессоров программным обеспечением на Pentium-166 с 32Мб памяти, то приходится мириться хотя бы с тем, что от нас потребуется умение настроить это программное обеспечение. Всё вышесказанное можно рассматривать как иллюстрацию к признанию того факта, что добиться приемлемой производительности системы под Linux на маломощном компьютере - задача, которая для новичка может оказаться и непосильной. Признание этого факта облегчает выбор дистрибутива: раз мы соглашаемся на самостоятельное конфигурирование системы, то Slackware 8.0 - лучший из известных мне на сегодня выбор. В обмен на необходимость изучить возможности конфигурирования мы получаем полный контроль над системой. Наверное, это не всем подходит, но другого пути пока нет (не считая ожидания SEUL-а). Для облегчения освоения Slackware можно порекомендовать прекрасный сайт "Slackware Linux Essentials" (несмотря на изысканно английское название - вполне русскоязычный).
Первая трудность, с которой, быть может, придётся столкнуться - обслуживание pcmcia - устройств. Собственно, само обслуживание проблемой не является: Linux давно "знает" этот класс устройств и, скорее всего, вся необходимая поддержка будет включена без Вашего участия, но есть одно "но". С точки зрения Linux сетевые функции более важны для системы, чем какой-то pcmcia. Поэтому вполне вероятно, что при инициализации сначала будет предпринята попытка "поднять" сетевой интерфейс, и только потом будет загружен модуль поддержки pcmcia. Поскольку сетевая карта у ноутбука почти наверняка - pcmcia, то результат, полагаю, очевиден. Хорошо, если порядок запуска сервисов контролируется непосредственно (как в используемых Slackware скриптах инициализации так называемого BSD-стиля, когда порядок запуска определяется порядком следования команд в скрипте), но Mandrake и RedHat используют SystemV-стиль: порядок запуска определяется числом, входящим в имя символической ссылки, ссылающейся, в свою очередь, уже непосредственно на скрипт, контролирующий данный сервис. Первая буква стартовых символических ссылок - 'S'. Таким образом, для получения правильного порядка загрузки сервисов нужно перейти в каталог /etc/rc.d/rc3.d/ (определяющий порядок загрузки в многопользовательском консольном режиме - настоятельно рекомендуется загружаться всё-таки в консольном режиме, раз уж вы хотите "выжать" всё возможное из "старичка") и отредактировать имена символических ссылок таким образом, чтобы ссылка, указывающая на /etc/rc.d/init.d/pcmcia (обычно - SNNpcmcia), имела в названии цифру меньшую, чем ссылка, указывающая на /etc/rc.d/init.d/network (обычно - SMMnetwork). Проще говоря, NN должно быть меньше MM. Хочется верить, что этого описания будет достаточно, поскольку более полное описание SystemV-стиля загрузки явно выходит за рамки данной статьи. Как вы, вероятно, уже догадались, изменение состава запускаемых сервисов с помощью ntsysv или любого её графического "двойника" восстановит ошибочный порядок и Вам придётся повторить описанную процедуру.
Следующий момент, на который нужно обратить внимание - Advanced Power Managment. Ещё не так давно пользователи IBM PC "ничтоже сумняшеся" отключали в BIOS Setup эту опцию. С десктопом можно так поступить и сейчас, с ноутбуком - не рекомендуется. И энергопотребление - небезразлично, если используется аккумулятор, и перегрев противопоказан: вентилятора или совсем нет, или он есть, но когда включается, то об этом начинаешь сожалеть, поскольку шумит он не где-то под столом, что тоже часто раздражает, а у тебя на коленях, в 50-ти сантиметрах от ушей. Пользователи Slackware могут выбрать из входящего в дистрибутив набора ядер наиболее подходящее - bareapm.i. Остальным придётся либо мириться с предоставленным дистрибутивом ядром (если память не изменяет, поддержка apm включена "по умолчанию" в BlackCat 6.2, AltLinux Junior 1.1, Mandrake 8.1. Выключена в Slackware 8.0, ASPLinux 7.1... могу и ошибиться, но суть в том, что включение apm НЕ ЯВЛЯЕТСЯ неотъемлемым атрибутом ни ядер 2.2.х, ни 2.4.х), либо самому перестроить ядро. По моему мнению, эта операция рано или поздно пригодится любому пользователю Linux, почему бы не попробовать сейчас? Описана она многократно и вряд ли вызовет затруднения. В связи с ноутбуками хочется только напомнить, что ядро совсем не обязательно компилировать именно на той машине, для которой оно предназначено: в данном случае это может отнять у вас много времени, а операцию, возможно, придётся повторить несколько раз: некоторые опции apm можно проверить только экспериментально. Сначала нужно добиться перехода в состояния пониженного энергопотребления (standby и suspend) по команде оператора (apm -S и apm -s соответственно) и автоматически (в соответствии с установками BIOS Setup) и выхода из них без подключённых pcmcia-устройств. Потом - попробовать то же при подключённых pcmcia-устройствах. Если машина "зависает" при "пробуждении" и из этого "зависания" её можно вывести "передёргиванием" pcmcia-карты, то, значит, эту карту нужно переводить в состояние "suspend" перед переходом в режим энергосбережения и будить командой "resume" при возврате из него. Такая возможность у apm-демона есть, но я ещё не встречал дистрибутива, где бы она использовалась. Реализуется эта возможность помещением файла apmd_proxy в каталог /etc. Сам файл входит в состав пакета apmd, который всегда доступен по адресу http://www.worldvisions.ca/~apenwarr/apmd/ и на сайтах дистрибьюторов. Файл уже содержит команды работы с pcmcia-картами и прекрасно документирован, так что дальнейшие разъяснения - излишни.
Ещё одна опция, которую очень желательно иметь включённой в ядре - возможность работы с framebuffers. В отличие от apm, эта опция включена по умолчанию во всех известных мне современных дистрибутивах, но если вы будете перекомпилировать ядро - не посчитайте её лишней. Для ноутбука, или, точнее, для LCD-мониторов эта опция особенно важна. Эти мониторы "идеально" воспроизводят изображение только в каком-то одном разрешении: 12-дюймовые - 800х600, 15-дюймовые - 1024х768. С другой стороны, для наиболее полного использования вычислительной мощности желательно по возможности обходиться консольным режимом. Вот и получается, что для комфортной работы консоль должна быть в графическом режиме 800х600 или 1024х768 в зависимости от того, какая LCD-панель используется в ноутбуке, а это возможно только в режиме framebuffer. Данный режим имеет свои особенности для различных видеоадаптеров, но поскольку абсолютное большинство видеоадаптеров ноутбуков соответствуют спецификации VESA, то VESA framebuffer console и будет опцией, которая нас устроит. Нужный режим включается опцией загрузки ядра vga=NNN, где NNN=773, 790, 791 для разрешения 1024х768 (256, 32к, 64к цветов соответственно) или 771, 787, 788 - для разрешения 800х600. Разницу в качестве изображения не заметить невозможно, не говоря уже о том, что формат 37х100 явно удобнее, чем 25х80.
К этому моменту ноутбук уже вполне "дееспособен" для работы в консольном режиме, причём с довольно "объёмистым" экраном. О Linux-овой консоли сказано много хорошего и, чтобы не повторяться, перечислю только те программы, на которые стоит обратить внимание при работе на маломощных компьютерах:
* всё ещё развивающийся MidnightCommander в качестве файл-менеджера. Последние версии, кроме всего прочего, умеют и восстанавливать удалённые файлы (правда, только на ext2); * vim, в качестве редактора со всеми дополнительными возможностями, превращающими его то в калькулятор, то в почтовый клиент, то в редактор html; * lynx - почти легендарный www browser, хотя мне в последнее время всё более симпатичен его молодой конкурент - links, довольно лихо справляющийся с таблицами и фреймами; * mp3blaster - проигрыватель звуковых файлов, совмещённый с микшером; * cdp(cdplay) - проигрыватель CD Audio; * poppy - небольшой Perl-script, позволяющий быстренько проверить свои почтовые ящики, причём с диспетчеризацией на севере провайдера - возможность, похвастаться которой могут не многие почтовые клиенты, разве что "культовый" TheBat! К сожалению, не могу посоветовать "полного" почтового клиента для консольного режима: множественность кодировок кириллицы заставляет искать оный среди работающих в графическом режиме; * fbi или zgv - программы просмотра файлов изображений: кто сказал, что графика недоступна в консольном режиме?; * в связи с уже упомянутой множественностью кодирования кириллицы потребуется конвертер. В BlackCat была написанная авторами же recode (самый простой из известных мне конвертеров), сейчас практически все дистрибутивы имеют свои аналогичные программы. Если хочется чего-то патриотического - воспользуйтесь "Russian Anywhere"
Перейдём к X Window. Не вдаваясь в технические подробности, отмечу, что сами по себе Х-ы с SVGA-сервером, который практически наверняка поддерживает видеоадаптер и Вашего ноутбука, требуют совсем не так много ресурсов - не более 14МБ оперативной памяти. Так что позволить их себе можно практически на любом ноутбуке. Другое дело - KDE или Gnome. Эта парочка с каждой новой версией становится всё требовательнее к машине. Успехи разработчиков бесспорны, но интересы "вычислительных систем прошлого века" - увы, побоку. К счастью, не все авторы оконных менеджеров ввязались в борьбу за всё более мощные графические оболочки. Открытый код X-Window и разработанных ранее window менеджеров сделали возможным появление целого ряда быстрых и компактных оконных менеджеров, некоторые из которых предполагается использовать даже в PDA. Это и рекордсмен по компактности - swm, и симпатичный Oroborus. В отличие от KDE и Gnome, всё это "чистые" оконные менеджеры, то есть ничего, кроме управления окнами, они не делают, но уж со своей задачей справляются весьма успешно. Разработчики не оставляют вас с ничего не содержащими окнами. Каждый из упомянутых проектов включает в себя либо парочку утилит, с помощью которых вы сможете создавать иконки и меню на своём пока ещё девственно чистом рабочем столе, либо совет (как подключить к данному менеджеру панель Gnome, например). Если это представляется слишком сложным или просто утомительным, можно обратить внимание на IceWM, входящий во многие дистрибутивы. Этот менеджер, почти такой же быстрый и достаточно компактный (не более 2МБ RAM), уже имеет свои собственные и меню, и панель инструментов, и темы. Хорошо документирован, а используя инструменты, предлагаемые энтузиастами IceWM, можно импортировать в IceWM и меню, и иконки хоть KDE, хоть Gnome. Рациональность такого шага, правда, вызывает у меня сомнение: не радует меня меню с сотней и более позиций, но - дело вкуса. А вот любимыми приложениями - почему бы не воспользоваться? Абсолютное большинство приложений, разработанных для KDE и Gnome, запускается и под другими оконными менеджерами. Вот только не все стоит запускать: любимые многими konqueror, kmail, konsole, как, впрочем, и все остальные приложения KDE могут разочаровать - медленно. Это связано с архитектурой KDE и ничего тут не поделаешь. А вот приложения Gnome в большинстве своём работают под IceWM заметно быстрее: gnumeric, gnotepad(gnp), gnomecal, gnomecard составят набор офисных приложений, gftp и gtm пригодятся для загрузки файлов из Интернет, а о gqmpeg, gmix и gtcd можно вспомнить, когда захочется немного музыки. Без необходимости не пытайтесь использовать mozilla или её "потомков": этим приложениям памяти потребуется больше, чем у вас есть всего. А вот Opera приятно удивит: и скоростью загрузки, и скоростью отображения страниц. Самореклама "быстрейшего на Земле браузера" не безосновательна. Из "отдельно стоящих" нельзя не упомянуть gimp - для работы с изображениями и ghostview(gv) - для просмотра Postscript файлов. Хорошо работают на "слабых" машинах "традиционные" x-приложения: xfm, xedit, xv. Очевидно, список получается достаточно обширным даже без KDE и ничто не мешает его дополнить: энтузиасты SEUL будут рады информации о любых приложениях, успешно выполняющих свои функции без чрезмерных требований к быстродействию и памяти системы. Если вас волнует совместимость с файлами MS Office, то приятным известием будет то, что gnumeric успешно работает с *.xls файлами (не нужно только требовать от него поддержки VisualBasic), а antiword превратит *.doc в текстовые файлы, если вы собираетесь их редактировать, или в Postscript - если предполагаете печатать.
Вот, пожалуй, и всё. Разве что стоит отметить, что если вы программист или web-дизайнер, то вам, быть может, захочется иметь на ноутбуке же http- и SQL-сервера. Никаких проблем: MySQL и Apache, если они не обслуживают ежесекундно сотни запросов, практически не замедлят вашу систему. В некоторых версиях дистрибутивов может потребоваться их настройка, учитывающая Ваши скромные на данный момент потребности, но это, пожалуй, тема отдельного обсуждения.
Примерно таким вот образом можно "вернуть к жизни" безнадёжно, казалось, устаревший ноутбук. Причём, мне приходилось это делать для пользователей, весьма далёких от Linux. Впрочем, и от MS Windows - тоже. Что бы проделать такую работу, некоторые знания действительно необходимы, а вот эксплуатировать готовую систему ничуть не сложнее, чем систему с MS Windows. Что касается надёжности, то и здесь сравнение в пользу Linux. Одним словом, решение достаточно конкурентоспособное. Более того. Наблюдая за без преувеличения "шустрой" работой обретшего "вторую молодость" P166/64, я как-то задумался: 15-дюймовый LCD монитор стоит $400 и более, ноутбук с 12-дюймовой LCD матрицей можно купить за $300... Есть над чем поразмыслить...