ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Мир консоли. Linux. Часть I
  #1  
Старый 16.02.2010, 17:55
Аватар для - PNJL -
- PNJL -
Новичок
Регистрация: 15.02.2010
Сообщений: 8
Провел на форуме:
30861

Репутация: 11
По умолчанию Мир консоли. Linux. Часть I

Мир консоли. Linux. Часть I


[I]. Введение

Что же такое современная консоль для пользователя linux? Да, правильней было бы сказать GNU/linux, т.к. linux - ядро, но оставим эту тему холивара для кого-нибудь ещё. Для новичка, получившего, скажем ubuntu "прямо из коробки" как есть – ничего... ведь это одна из самых дружелюбных систем сегодня, которая весьма неплохо пытается всё перевести на GUI(не будем все заслуги приписывать разработчикам дистрибутива, в конце концов - это заслуга производителей самого ПО, которое собрано в гигантские репозитории, на которых оные дистры и держатся). Более того, такой тип систем совсем не располагает к какому-то изучению внутренней структуры ОС. В качестве быстро-настраиваемой рабочей “лошадки” может подойти, но что мы всё чаще наблюдаем – так это некую “попсовость” linux. Как правило такие юзеры просто подгоняют linux под винду, не меняют привычек и отношения, и в общем целом работают с линухом точно так же, как до знакомства с ним. Что весьма печально. Нельзя разумеется не заметить, чем больший % пересядет на *nix – тем лучше, плюсы очевидны – больший спрос на ПО, большая заинтересованность и развитие данной платформы. Минусы, а куда без них, в захламлённости форумов никсовой тематики вопросами, ответы на которые даны любом мане и переход на гуи всех дистрибутивов. Сегодня большое разнообразие в дистрах, ещё присутствуют “необлагороженные” aka gentoo, но будет ли так всегда?

Пользователь поопытней - уже не переставляет дистрибутив после краха Х-ов, прогресс на лицо -) Ну есть ещё доля т.н. "гуру" - действительно народ, обладающий познаниями в целой прорве инфы - до них многим, да и мне - пока далеко, их ничтожно мало - не надо путать авторитетов на форумах и м.б. приятных в общении людей с ними. Промежуточная часть между предпоследними категориями - и есть мы - т.е. обычные, начинающие пользователи linux. Так для чего же нам консоль? Ну, если стоит десктоп, то 1-2 окошка с терминалом всегда открыто потому что удобно - не так ли? - но не более. В один очередной раз подвисания гуи(ну как это обычно и бывает на 1-3с и более в зависимости от железа) мне это просто надоело. Не долго думая, я принялся искать альтернативу...

Всё заразительно. Консоль, как и десктоп - не исключение, но что у кого перевесит - решать придётся, как обычно, самому ;-) Замечу лишь, что на первый взгляд, казалось бы, ну что такого в этой самой консоли, ведь в десктопе - то и красивей и работать быстрей(быстрей ли? - возможно, но для всё того же искушённого), я скажу что: представьте свою работу без задержек на чтобы то ни было, кроме вашей мысли, которая посылается через пальцы рук на клавиатуру. В иксах тоже так – скажете вы, да нет – время отклика существенно разнятся. Нет, конечно в консоли тоже есть ожидания, программы "думают" - но человек тем и отличается от машины, что он "многогранен" в широком смысле этого слова, непредсказуем и ему в каждую секунду необходимо решение множества задач, и консоль получает эти задачи с минимальным запаздыванием, грань между реализацией задач и тем, что вы хотите – стирается. Возможно подобные высказывания - преувеличение не спорю, но для огромного ряда задач - это так. В конце концов никто не запрещает использовать всё и сразу)) - для каких-то задач десктоп, для каких-то - консоль. Не стоит также забывать о том, что работа в терминале - лучше сказывается на здоровье наших глаз и в ряде случаев менее утомляема, нежели нагромождённое графическое оформление.

[II]. Что же мы имеем? Или краткий обзор возможностей

Немало ПО уже было разработано и продолжает разрабатываться многими девелоперами для работы в терминале. Масса проигрывателей практически всех, существующих на сегодняшний день аудио/видео форматов, возьмите тот же mplayer - ага, вы аналог то сможете найти?) Средства мгновенного обмена сообщений по всевозможным протоколам, поддержка современных средств шифрования к примеру - gpg, инет-качалки, богатые средства разработки, браузеры, сильно-навороченные редакторы и по проще, почтовые клиенты - в общем всё то, чем каждодневно пользуются практически большинство из нас. Правда в слегка другом варианте ;-) Конечно, существуют вещи которые консоли пока не под силу - да в ней не поработаешь с чем-то подобным под "окошки" типа 3ds max, photoshop-а - ну вы понимаете меня, но к счастью большинству из нас этого не требуется и потом, кто не может обойтись без подобного и да, не забываем про игрушки, - обычно ставит детище MS(в GUI linux пока тоже не всё есть) на отдельную машину или как минимум раздел.

Благодаря таким вещам, как framebuffer (далее фб), fbsplash(фбсп) и fbcondecor(фбк) в консоли стали возможны буквально обои, как на десктопе(ну бывает хочется, чтоб было красиво), просмотр видео, обычных изображений и картинок, pdf - что не маловажно, правда хочу немного огорчить - с некоторыми ограничениями, и всё это в большом разрешении, как на десктопе, но обо всём по порядку. В итоге получается весьма неплохая "рабочая лошадка".

[III]. Сборка ядра


1. Фб, фбсп, фбк.

Сразу извиняюсь, что может быть непонятным - почему сразу установка и т.п., но в процессе я думаю вы всё поймёте, не забывайте проходить по ссылям и мельком прочитывать - знать о чём речь -) Если кому-то(совсем новичку) будет слишком мало инфы о простых вещах - не стесняйтесь гугла. Просто я решил не переносить сюда того, чего в инете полно. Неважно какой у вас дистр, неважно почему - ядро у всех одинаковое(если быть точным - конечно с некоторым различным набором патчей, но разве это проблема, они открыты и доступны, как и всё открытое ПО). Гг канешн - это лукавство, говоря что совсем неважно, на самом деле очень даже - в генте мной было замечено наименьшее кол-во граблей - поэтому ей пользуюсь, на ней и примеры, и её постоянно прокачивают в данном вопросе, если это так можно назвать - в отличии от остальных. Впрочем рекламировать ничего я не собираюсь, слака мне тож по душе, правда намудохался я там с фичами о которых расскажу будь здоров, а всё почему? - потому что эти вопросы там не раскачивают, неговоря об их поддержке в самом дистре ;-) Ну да ладно, не будем отвлекаться. В последних версиях ядер штатно имеется фб, фбк же, который для любителей обой на консольке ;-) обычно в ядрах нет, дефолтно им патчатся при сборке ядра генту, но ничего не мешает при отсутствии таковой поддержки в ядре - поставить патч отдельно. Для замута с бэкграундом на консольку, а также мб проигрыванием заставки при загрузке – ставим пакет splashutils . Зачем этот пакет? – Всё просто, он содержит, как понятно из названия, набор утилит для управления изображениями на фб во время загрузки. Фбк от него нужна лишь тулза fbcondecor_helper, ну и соответственно стартовые скрипты. Без этой тулзы фбк работать не будет, ставьте её сразу до установки вообще каких-либо патчей. Кстати проверить есть уже или нет фбк в ядре можно так - гляньте доки ядра, а конкретно в ../Documentation/fb - если найдёте fbcondecor.txt - значит всё ок, если нет - скачиваем отсюда последнюю версию в директорию с ядром и патчим дефолтно командой
Код:
patch -p1 < имя_патча.patch
потом собираем конфиг. Итак важно разделить два понятия – фбсп – заставка при загрузке не требует никакого патча для ядра, ничего – только пакет splashutils и соответствующая запись в загрузчике. А вот декорации – т.е. например обои во время работы на консольке – требуют уже патча фбк. Надеюсь на вики вы поняли смысл фб... это некая абстракция нашей видеокарты, позволяющая получить к ней доступ нужному ПО. Это открывает гигантские возможности по управлению вывода чего-угодно на экран. В частности для нас, что важно, возможность высоких разрешений и прочих вкусностей.

Итак: включите в ядре необходимые вам опции касательно вашего железа, для включения же фб необходимы следующие(не модульно!):
Код:
1) Device Drivers -> Graphics support -> 
        <*>Support for frame buffer devices
Код:
2) Device Drivers -> Graphics support -> Console display driver support ->
        <*>Framebuffer Console support
Для желающих включить возможность обоев в терминале(фбк):
Код:
Device Drivers -> Graphics support -> Console display driver support -> 
        <*>Support for the Framebuffer Console Decorations
Внимание: этой опции вообще не будет даже на выбор в конфиге, если включена будет эта:
Код:
Device Drivers -> Graphics support -> support for frame buffer devices -> 
        <*>Enable Tile Blitting Support
Ну есть ещё опция, которая обязательно должна быть задействована - CONFIG_HAS_IOMEM, можете её глянуть в файле конфига, но сейчас она дефолтно везде и всегда включена.

2. Реализация фб

С этим разобрались, а как же всё это общается с видюхой - ну как всегда с помощью дров. Кому не нужна улучшенная поддержка nvidia или radeon или у кого будет ещё десктоп nvidia или radeon(а их драйверы не совместимы с их же консольными - ну от так от) – выбирают штатный драйвер vesa . ИМХО – практический универсальный и самый простой в настройке вариант, даже при наличии карточек указанных выше производителей – можно смело врубать и каких либо тормозов вы не заметите. НО... в чём подвох? Он в том, что веса не поддерживает частоту моника выше 60 Гц, т.е. норм вариант для ноутов LCD – там часто 60 и конечно для целой прорвы старья)) - т.к. драйвер очень старый - работает на чём хош. Для остальных же этот вариант естественно не катит. Для устранения этого недостатка был разработан vesa-tng, но и у него не всё гладко – он поддерживает лишь 32-битные системы. Из плюсов vesa-tng можно выделить - поддержку частот выше 60 Гц, смену разрешений во время работы, а не только при начальной загрузке, более интуитивно понятную настройку в загрузчике разрешения и обновления. Затем vesa-tng эволюционировал в uvesafb. Этот драйвер фб - наиболее удачный, он содержит все плюсы vesa-tng-шного и самое главное поддержка не только 32-х битных систем. В принципе uvesafb - лучший выбор независимо от карточки, но решать это только вам, минус один - грабли в самой установке, но всё решаемо с ним -) Не собирайте дрова в виде модулей - это медленней и может привести к неработоспособности(впроч м есть исключения – о них позже в пункте загрузчика). Итак я думаю вы решили с которого начать ;-)

1) Выбор обычного vesa

Тут всё просто:
Код:
Device Drivers -> Graphics support -> Support for frame buffer devices ->
        <*>VESA VGA Graphics Support
2) Выбор uvesafb

Теперь уже во всех новых ядрах драйвер штатно присутствует, если у вас по каким-то его нет - качаем патч uvesafb и собственно патчим)

Для функционирования uvesafb нужно включить дополнительную фичу:
Код:
 Device Drivers ->
        <*>Connector - unified userspace  kernelspace linker
И сам драйвер:
Код:
Device Drivers -> Graphics support -> Support for frame buffer devices ->
        <*>Userspace VESA VGA Graphics Support
3) Выбор nvidia или radeon

Интуитивно понятно, что включаются опции Nvidia framebuffer или ATI radeon в разделе поддержки фб дров ядра - соответственно. Что хотелось бы заметить - советую вообще отключить любую весу, иногда из-за этого эти дрова работают криво или вовсе не пускаются. Nvidia крайне капризная - для неё было разработано оба драйвера фб - rivafb и nvidiafb. rivafb - для старых видюх, nvidiafb - для новых, улучшенная версия rivafb. Однако, к примеру, когда я ставил на ноут nvidiafb - тот при загрузке мне сообщил благоприятнейшее известие: "Unknown NV_ARCH", причём тихо так - как всегда в dmesg-е. Мол карточку мою он понять то не может, хоть и нвидиа - вот такая поддержка родных дров фб этого производителя. Впрочем сгладим этот минус тем, что карточка GeForce-M, так что мобильные пропустили - с настольниками дела получше надеюсь). fb от radeon ставил давно - на старой видюхе заводился, на новой - нет, даже не сообщал ничего, вообще ничего aka меня тут нет.

Собираем и ставим ядро.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не знаешь какой Linux выбрать? Есть проблемы с установкой *nix? Тогда тебе сюда... L0rd_Ha0S *nix 212 21.04.2010 04:56
Изменены условия для частных лиц, входящих в состав организации Linux Foundation darkwkz Мировые новости 0 13.10.2009 18:16
[ Обзор уязвимостей Linux Kernel ] FraiDex *nix 3 10.09.2009 08:01
Основы linux кодинга. Часть 1. --StraNger-- *nix 7 27.06.2009 14:09



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ