Данный текст предназначен для тех, кто решил перейти в своей повседневной работе на Линукс или делает первые шаги в нем. Для тех, кто уже что нибудь читал о UNIX вообще, но не знает, с чего начать установку Линукса - ищите первую часть этого документа, в ней это достаточна подробно описано.
Данная же часть большей частью предназначена для тех, у кого есть уже как минимум двухнедельный обыт работы под линуксом. На данном этапе вы уже должны знать что такое symbolic link, как пользоваться chown, chmod, как монтировать/размонтировать файловые системы и т.д. Если вы этого не знаете почитайте _ЛЮБУЮ_ книжечку про UNIX или ищете UNIX-FAQ, который я также сейчас пишу... Что будет закончено первым: этот текст или FAQ - неизвестно.
В данной части рассматриваются вопросы:
Ожидаемые пополнения в следующей части:
Это только мини-HOWTO. Ко мне приходит огромное количество вопросов, связанных с Линуксом. Многие из них будут попадать в мой личный FAQ, который будет опубликован сразу, как наберет весу чуть поболее. _ЛЮБЫЕ_ вопросы по Линуксу приветствуются. Без битвы не отдам ни единого человека в царство Билли. В день, когда я начал написание второй части данного документа я узнал, что в Билли запустили тортом. Вот до чего доводит плохо написанный софт... :)
Данный документ не являеться официальным, тем не менее эксклюзивный копирайт (C) Иван Постников. Перепечатка в любом виде, кроме как распространения в электронном виде - только с моего разрешения в любой форме. При использовании документа ссылка не обязательна, но желательна.
Надо сразу сказать, что все эмуляторы, да и весь софт вообще делится на два класса - свободный и коммерческий. Сначала я опишу DOSEMU, потом WABI версии 2.2. Далее я расскажу о тех эмуляторах, о существовании которых мне известно.
DOSEMU - свободный продукт. Делиться на два основных потока - стабильные версии и development версии. Все то новое, что признано народом _НЕ_ глючным, перекочевывает в стабильную версию. Самая последняя версия всегда доступна в недрах ftp://ftp.sunsite.unc.edu. Новая версия появляеться как правило раз в 2-3 недели. Лично у меня стоит достаточно древняя октярьская версия под номером 0.67.13. На ее основе и будет развиваться наше наступление :). Для начала вам надо все это дело куда нибудь сложить. Рекомендую положить или в /usr/src или в /usr/local/src. При сборке любого продукта сначала почитайте README, HISTORY, Changes и остальные подобные файлы. Они помогут избежать 70% возникающих вопросов. Как и в случае с xrus вы найдете в каталоге с ДОСЭМУ скрипт configure. Но это более умный скрипт. Запустите его с ключом --help и почитайте. После этого запустите его с нужными вам параметрами. Это сконфигурит ДОСЭМУ под требования вашей системы. Затем просто набираете 'make'. По идее, все должно скомпилиться на ура. Если нет, у вас просто могут отсутствовать необходимые библиотеки. Например, могут стоять .h файлы от Иксов, но сами Иксы с их библиотеками отсутствовать. Если все собралось 'на ура', говорим 'make install'. Сам досэму у нас уже собран и стоит. Главная проблема не в этом. Главная задача - _ГРАМОТНО_ его настроить. Пример конфига лежит в etc/config.dist, но я рекомендую воспользоваться утилиткой setup-dosemu из дистрибутива. После генерации конфига его необходимо поправить. Я думаю, что вам надо будет сказать 'dos' и посмотреть, на что он ругнеться. Соответствующее место и подправить в /etc/dosemu.conf. Если вы не один работаете на линуксе, но рекомендую компилить без параметра --enable-runasroot в целях безопасности системы в целом, а также создать файлик /etc/dosemu.users, где перечислить пользователей, которым разрешаеться работать с досэмой. Если вам пофигу на security, было бы неплохо добавить опцию 'secure off' в /etc/dosemu.conf, дабы разрешить запуск DOS4GW приложений и им подобных. Для нормальной работы с ДОСЭМУ вам понядобится несколько специфических утилит (EMS драйвер, MOUSE-драйвер, утилитка для подключения Linux раздела как буквы ДОС и т.д.), дежащие по умолчанию в src/commands/precompiled. Вам необходимо создать на ДОС разделе некую директорию, в которую эти фалы и поместить. У меня они лежат на C:\DOSEMU\. После этого вам необходимо создать соответствующие config.sys и autoexec.bat. Если вы планируете испльзовать CDROM под эмулятором, то /dev/cdrom должен указывать на соответствующее устройство. Даю свои config/autoexec для того, чтобы вы поправили их под свои нужды.
--- Start Cut: dosemu-config.sys ---
--- Start Cut: dosemu-autoexec.bat ---
Данный вариант достаточно унифицирован под любые задачи. Не советую пускать из под Эмулятора _НИКАКОЙ_ вариант форточек. Для этих целей есть WABI. О ней позже. По поводу опции sb_emu в /etc/dosemu.conf... В той версии, что у меня есть, она не работает. Вернее, при работающей sound-драйвере в Линуксе Эму загружаеться, игры и проги карточку видят, но не более. Издавания звука я еще не добился. Я это считаю одним из глюков той development версии Эмулятора, которой я пользуюсь. Скорее всего в новых версиях это пофиксено.
Если вы собираетесь использовать в ДОСЭМУ дос-разделы с тех жестких дисков, где нет разделов с Линуксом, то для большей скорости работы советую поключать их в ДОСЭМУ опцией 'wholedisk', а не опцией 'partition'. Это позволит вам даже переразбивать диски fdisk'ом и форматировать их, и даже запускать NDD и подобные низкоуровневые утилиты. Я не рекомендую ставить эту опцию при работе с теми жесткими дисками, где есть Линукс по одной причине: ДОСЭМУ - это всегда development продукт. И заранее неизвестно про возможные глюки в этой области. Лично мне менее болезненно увидеть кореженый ДОС раздел, а не Линуксовый... :) Количество памяти в конфигах ДОСЭМУ можно выставлять какое угодно... Желательно, конечно, не вылезать за размеры реальной оперативки... :)
WABI. Для начала: WABI - коммерческий продукт, написанный Sun Microsystems... Поэтому по всем обнаруженным глюкам - туда, не забудьте номер вашей лицензии... :) Итак, у нас есть архив WABI - в виде .cpio (Во всяком случае у меня). Вам также понадобиться дистрибутив Windows 3.x (Я рекомендую Windows 3.1 Rus), все .fon шрифты от уже установленной версии. Все это заранее положите в доступное место. Итак, man cpio, разархивируем архив, запускаем Иксы, из xterm'а пускаем Инсталлятор WABI, слушаем ее матюки по поводу отсутствия файла-лицензии. Берем этот файл и кладем его туда, где она его ищет. Опять хапускаем INSTALL-wabi. Указываем, где лежит дистрибутив MS Win. Она долго думает, все сетупит. Сама WABI поставлена. Главная проблема здесь, как и в ДОСЭМУ, -сконфигурить. На мой взгляд - единственная вещь, которую необходимо конфигурить - русские шрифты. Итак. В первую очередь берем и замещаем все шрифты в ~/wabi/windows/system/ на те, .fon шрифтинусы, которые мы заранее приготовили. Потом лезем в ~/wabi/windows/system.ini и win.ini. Смотрим там на все большими, широко открытыми глазами, и переправляем все ссылки на .TTF шрифты. Она любит вместо .ttf в имени фала поставить что-нибудь еще. :)) В результате у вас там должен быть списочек типа:
---Begin Cut: win.ini.fonts.sample ---
Если после этих манипуляций и телодвижений русского текста вам так тольком и не видно - копайте дальше, но уже на предмет fixed-fonts (*.fon). WABI любит по дефолту ставить некий свой фонт, но делает это с вероятностью 50/50. Ваша задача поставить на место этого Latin-Only фонта что-нибудь типа vgafix.fon. Ладно. Одна задача решена. Теперь раскладка клавиатуры... Вариантов три:
Что касаеться эмуляторов других сред - мне известно о наличии более-менее нормальных эмуляторов ZX Spectrum, Amiga, Atari, Mac под Линуксом. Ввиду того, что я их не использую, я не буду рассказывать о них, дабы не пудрить мозги без достаточных оснований для этого. Ищите, компилируйте, ставьте, экспериментируйте... Учитывайте, что 100%-ной эмуляции не бывает _НИКОГДА_.
Итак. Несколько вводных слов... У вас появилась некая прога под Линукс в исходниках... Первым делом, понятное дело, разархивируем ее в отдельный каталог в районе /usr/src, /usr/local/src... _ОБЯЗАТЕЛЬНО_ читаем все фалики типа README, Changes, etc. Это позволит избежать кучи вопросов по компиляции, установке, настройке данного пакета. Я здесь рассматриваю только тот софт, который написан под Линукс. Портирование сырцов под Линукс - тема отдельного мануала, который будет еще ну Очень не скоро... :) Ввиду того, что как правило файликов с сырцами N, а из всего этого будет скомпилировано 2-3 бинарника, существует такой файл, как Makefile. В нем описаны необходимые манипуляции для компилятора, также зачастую там же определяються некоторые параметры готовых бинарников. Этот файл есть в 90% случаев. В остальных - есть скрипт configure, который сам определяет, что нужно в данном конкретном контексте, и создает соответствующий Makefile... Перед тем, как что-либо компилировать, загляните в Makefile, там может оказаться много полезной информации. Также не вредно подправить при наличии такие фалй как setup.h, config.h и так далее. Сборкой всего барахла на основании Makefile занимаеться прога под названием make. По умолчанию она пытаеться брать инфу из Makefile, потом MAKEFILE и makefile. Если у вас несколько разных Makefile'ов, то укажите конкретно нужный вам опцией -f. То есть 'make -f MyMakefile.Test'. После прочтения всех док, редактирования конфигов компилятора смело набираете make и смотрите...:) Итак, сам FAQ.
Q: ААаааа... У меня при компиляции все вывалилось с криками о синтаксисе где-то в нутрях исходников..... ЧТО ДЕЛАТЬ ?!?!?!
Q: А такой крик: gcc: Internal compiler error: programm cc1 got fatal signal 11
Q: У меня в Makefile несколько разделов. Что это за разделы ?
A: Сборка проги может состоять из нескольких этапов. Например,
подготовка к сборке должна быть сделана с помощью 'make depend'. Если прога
состоит из нескольких кусков, то возможно собирание отдельного куска с
помощью 'make имя_куска'. Также достаточно часто можно встретить такую вещь,
как 'make clean' - возвращение к исходному состоянию - потирание готовых
бинарников и об'ектных файлов. Почти всегда есть 'make install' - установка
готовых бинарников в заранее определенное место, установка на них
необходимых uid и gid.
Q: Прога собралась, поставилась... Но где взять хотя-бы примеры
конфигов для нее ?
Q: У меня все собралось на ура, но при попытке запустить все
сваливаеться с SIGSEGV (Segmentation fault, core dumped)
Существует уйма различных компиляторов для Linux. Начнем с
компиляторов C. Их использование дает вам преимущество по стравнению с gcc
по различным областям: от обего повышения скорости работы биарника, до
поддрежки специфичных комманд того-же Pentium-II. Распространяються обычно в
виде исходника. Обязательно перед установкой прочтите файлики Changes, etc...
Это основное правило компилирования или установки _ЛЮБОГО_ пакета. После
установки рекомендую скомпилировать несколько простейших прог-тестов, дабы
определить, насколько установленный вами компилятор отвечает вашим
требованиям.
Вся поддержка других языков делится на 2 класса: это компиляторы,
выдающие бинарники, и интерпретаторы, которые используються для создания
скриптов на том или ином языке. Ярчайшим представителем второго класса
являеться PERL. Как правило, они все идут в виде исходников, и вы при
желании можете добавить/изменить комманды и/или их синаксис. В чем их
различия ? Большей частью в количестве понимаемых инструкций и в некотором
изменении синтаксиса.
JDK. Java Development Kit распространяеться в виде уже готовых
бинарников. Лезьте за ним на ftp://ftp.sun.com. Я рекомендую разархивировать
все енто дело куда-нибудь в /usr/jdk-x.x.x, и сделать связку этого каталога
на /usr/jdk. проставьте после этого /usr/jdk/bin в PATH в /etc/profile.
Также не забудьте проставить каталог /usr/jdk/lib/i586/green_threads в
/etc/ld.so.conf.
Если вы планируете пускать Java-бинарники, не забудьте врубить
поддрежку Java в ядре.
Глава 4.
Компиляторы, отличные от gcc, другие языки под Линуксом, Java
Development Kit.