Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   БИБЛИОТЕКА
     Другие статьи этого раздела:
 

    Разное
Другие разделы библиотеки:
   БИБЛИОТЕКА
     последние поступления:
 

Hardware
Перевод Serial-Programming-HOWTO
15.05.2006 | San АНДРЕЕВ
Перевод Linux Power Management Support
03.04.2004 | San АНДРЕЕВ
Варианты решения проблем со смещением геометрии монитора.
10.10.2003 | EsTaF
Multimedia
VideoCD для пингвинов
10.10.2003 | Buddha
Смотрим любимые фильмы с помощью MPlayer
23.07.2003 | Alexey Dmitriev
X-сервер
Включаем Bytecode Interpreter в пакете freetype в некоторых дистрибутивах
05.07.2006 | Alexey Dmitriev
НАСТРОЙКА СЕРВЕРА XDMCP ДЛЯ WINDOWS-КЛИЕНТОВ
09.09.2004 | Kotjara
Type1 и truetype шрифты в LaTeX.
03.05.2004 | geekkoo
Разное
Как самому написать концепцию информационной безопасности
22.03.2007 | Crion
Список рекомендуемой литературы
11.09.2006 | San АНДРЕЕВ
The Multi Router Traffic Grapher
02.06.2004 | Crion
Сеть
"Огненная стена" или строим файрвол на базе iptables
15.03.2005 | Alexey Dmitriev
Защищенная почтовая система
08.09.2004 | Crion
Postfix+Cyrus-SASL
18.12.2003 | geekkoo
Система
Написание драйверов под Linux: рекомендации, типичные ошибки и ловушки.
16.01.2007 | Mr.Nobody
Перевод Linux Daemon HOWTO
21.08.2006 | San АНДРЕЕВ
Усыпляем компьютер
11.01.2006 | San АНДРЕЕВ
   БИБЛИОТЕКА Разное    
Автор статьи: San АНДРЕЕВ
Дата: 23.07.2003

Что такое Linux и стоит ли бросать все ради него?

1. Введение и отказ от обязательств.
Написать эту статью меня как обычно :) побудили многочисленные вопросы на форумах http://linuxportal.ru и типа "Какой линукс мне выбрать?", "Какой линукс лучше?" и "Стоит ли переходить на линукс? Чем он лучше/хуже Windows?". Сразу оговорюсь: нижеследующее есть не более чем мое личное мнение, замешанное на личном опыте эксплуатации линухов и в качестве серверов, и в качестве десктопа. Ну и значительную роль сыграло конечно как общение с другими пользователями этой ОС, так и ответы на вопросы на вышеуказанных форумах. И просто чтение различных статей на эту тему. Выбор и окончательное решение разумеется за вами, это только мнение человека, ценящего стабильную и безопасную работу, при этом не спартанца. :) Здесь я предполагаю, что вы уже видели линукс в глаза и может быть пытались сами его ставить, но толком поработать не смогли, запутавшись на разных этапах. Эта статья представляет из себя попытку более-менее беспристрастного и систематизированного изложения взгляда на свойства, достоинства и недостатки этой ОС.
Соглашения:
директорий - путь, направление;
каталог - конечная точка конкретного директория, может содержать файлы и другие каталоги.

2. Дружелюбность и доступность.
Стоит вспомнить, кто и для чего зачинал линукс. Сначала один, затем группа программистов, которым это было просто интересно. Как обычно бывает в таких случаях - интересно решить какую-ту проблему в принципе, "зализывать" и доводить найденное решенение уже неинтересно совершенно, тем более что в этом и нужды нет - единомышленники и так все поймут и все эти "бантики" с "колокольчиками" как минимум отвлекают от сути.

Сегодня ситуация несколько иная. Эту систему заметили Дяди с деньгами. Для них она - широкий полигон для испытаний. Она бесплатна, открыта и достаточно популярна среди профессионалов. Очевидно, что лучшего рецензента и испытательного центра не найти. Потом понадобилось обкатывать еще и гуевые (GUI - Grafical User Interface) штучки, так у линукса начало улучшаться то, что принято называть usability.

Конечно, линуха развиваются отнюдь не только благодаря тем, у кого навалом денег и кто хочет вложить их в развитие ИТ. Под линукс пишется много программ и энтузиастами и я не в курсе, чей вклад в развитие этой системы больше. И первые, и последние одинаково полезны - одни требуют законченных работающих (именно "зализанных") приложений за вложенные средства, другие же зачастую подкидывают новые и яркие идеи (кроме собственно программинга).

В конце концов это все привело к росту популярности системы в целом, так как она становилась доступной и понятной в использовании для все менее подготовленных пользователей и наиболее крупные производители дистрибутивов максимум работ выполняют именно на этом направлении. Тем не менее, сегодняшний линукс - это совсем не виндовз, как и из-за разных принципов, положенных в основу системы, так и из-за не настолько вылизанного GUI. Об этом обязательно стоит помнить.

3. Дистрибутивы.
В данном контексте дистрибутив - это некоторое количество софта, собранное в одном месте в определенном виде и объединенное программой-инсталлятором. Объединяет разные дистрибутивы наличие ядра (kernel) системы, однако в последнее время некоторые производители (например Red Hat, Mandrake) позволяют себе вносить свои собственные изменения в оригинальный дистрибутив ядра (который можно получить на ), так что такое объединение несколько условно. Общим является также наличие ПО, обеспечивающего доступ к видеосистеме ПК (X-сервер) и программ, находящихся между X-сервером и пользователем, которые и предоставляют этот самый GUI к системе (так называемые оконные менеджеры или даже целые графические среды типа GNOME или KDE). Ну и разумеется в каждом дистрибутиве имеются средства для программирования (компиляторы, библиотеки, IDE), работы в сети (клиенты и серверы различных служб, включая FTP, HTTP, mail, SMB и так далее), работы с графикой, работы с текстом. С этой точки зрения разница в дистрибутивах заключается лишь в различном наборе таких программ и несколько различной их функциональности, хотя есть достаточно известные и популярные программы, которые присутствуют во всех или почти всех дистрибутивах (например графический редактор GIMP, текстовые редакторы vi и Emacs).

С другой стороны, дистрибутивы различаются по специализации. Есть дистрибутивы, ориентированные на "простого" пользователя (Mandrake, Red Hat, ASP Linux, ALT Linux, Suse), а есть дистрибутивы, предназначенные для профессионалов (Gentoo Linux, Debian, Slackware). Различие заключается в программе-инсталляторе, организации работы уже установленной системы и количестве и виде программ, включенных в дистрибутив. "Дружелюбные" дистрибутивы обладают как правило графическим инсталлятором, который задает минимум вопросов и старается сделать все сам. Плюс к этому уже установленная система обладает рядом графических утилит настройки и довольно большим количеством запущенных служб (процессов) как серверных, так и клиентских. Минусы такого подхода очевидны - далеко не все службы и не все программы оказываются необходимыми на самом деле. Если вы это все понимаете и знаете, что нужно для того, чтобы это исправить, то тот же инсталлятор может работать в так называемом режиме expert, когда он либо вообще ничего не спрашивает и вы от начала до конца все делаете сами, либо он задает кучу вопросов и не всегда банальных и очевидных.

"Профессиональные" дистрибутивы в большинстве случаев просто предоставляют средства для организации файловой системы, устанавливают загрузчик и может быть некоторый минимальный базовый набор средств (как правило это простые консольные утилиты для выполнения простых действий типа распаковки архива и т.д.). В некоторых случаях (например Slackware) инсталлятор позволяет поставить и остальной софт, но здесь это уже не такая очевидная и простая операция. Обычно этот процесс выполняется уже после перезагрузки установленной базовой ("голой") системы. Этот подход удобен тем, что вы ставите только то, что действительно необходимо и ничего лишнего. Для многих использование "профессиональных" дистрибутивов осложняется еще и тем, что инсталлятор "говорит" на английском языке.

Какой дистрибутив выбрать? Универсальный совет один: тот, который использует ближайший дружелюбный гуру. Если такого на горизонте не наблюдается - запасайтесь терпением, книжками, изучайте английский язык и используйте какой-нибудь из дистрибутивов не для профессионалов. Если есть доступ в интернет - уже лучше, но без книжек и английского не обойтись.

4. Информация и документация.
Где взять инфу обо всем? Как узнать о том, как чего-нибудь сделать? МНОГО информации находится в уже установленной системе (при инсталляции по умолчанию) в виде так называемых страниц man, info и howto. Отправной точкой для вас, скорее всего, будут страницы howto - это небольшие текстовые файлы, в которых описана последовательность действий для выполнения конкретной задачи (например настройки модема или сетевой платы). В разных дистрибутивах howto располагаются в разных местах, скорее всего это будут /usr/doc, /usr/local/doc или /usr/share/doc.

man и info - это программы просмотра документации. В качестве аргумента этим программам надо передать название того объекта, документацию о котором вы хотите прочитать. Ограничения здесь два: вы должны знать, о чем вы хотите прочитать и соотв. страница с информацией должна присутствовать в системе. Так как программы принято поставлять со страницами руководства, то отсутвие вывода на ваш запрос man или info говорит либо о том, что вы ошиблись при вводе, либо о том, что такая программа в системе не установлена. В качестве аргументов этим программам также можно передавать имена библиотечных функций и названия кофигурационных файлов.

Кроме того, многие программы имеют оригинальную документацию, которая не является ни мануалом, ни howto. Такая документация при инсталляции прописывается обычно либо в корневой директорий устанавливаемой программы (в отдельный каталог с названием doc), либо в "общее" место, которое находится примерно там же, где howto (см. выше).

Ну и если есть интернет, то... :) Очень много сайтов и с оригинальной документацией, и с переводной. Не ленитесь пользоваться поисковыми машинами и делайте это всегда ПЕРЕД тем, как что-то где-то спросить. Поверьте, очень быстро и очень сильно надоедает пересказывать man или howto в 1534ый раз.

И еще один совет: учите английский. Как медики изучают латынь, так и линухоидам надо знать английский. Опять же второй (третий,...) язык никогда не помешает... ;)

5. Файлы и каталоги.
В линуксе нет такого понятия как диск с присвоенной ему буквой (типа C: ). Вся файловая система линухов имеет вид перевернутого дерева. В самом верху - корень (root), обозначается слэшем (/). Любой директорий может быть местом для подключения (присоединения) другой файловой системы. Процесс такого подключения называется монтированием, а директорий, куда производится монтирование - точкой монтирования. То есть просто так прочитать CD теперь уже не получится - его файловую систему надо сначала к чему-нибудь в имеющейся файловой системе подключить, благо, что подключать можно где угодно (обычно в районе /mnt/cdrom). После работы с ним его необходимо отключить (отмонтировать). Не стоит переживать за свои руки, которыми якобы придется набирать команды монтирования и размониторвания CD - в линуксе есть программы, которые автоматизируют этот процесс. :)

Тип файла (исполняемый, графический и т.д.) в линуксе определяется по содержимому, а не по расширению имени этого файла. Однако для того, чтобы файл мог быть исполняемым, ему не достаточно быть определенного формата, необходимо ему еще предоставить права на выполнение кем-либо. Исполняемыми могут быть не только двоичные файлы, но и обычные скрипты (нечто аналогичное есть в DOS - это пакетные или .bat файлы), однако обязательным условием выполнения скрипта (кроме обладания правами на исполнение) является еще и указание в самой первой его строке после символов #! пути до программы, которая сможет этот скрипт выполнить, т.е. для программы на перле эта строка будет выглядет примерно так:

#!/usr/bin/perl

в зависимости от того, где в вашей системе находится интерпретатор Perl.

Отдельно стоят файлы пакетов, т.е. нечто аналогичное архивам, содержащее в себе уже скомпилированные программы (или библиотеки) с необходимыми им библиотеками, конфигурационными файлами и документацией. В разных дистрибутивах применяются разные пакеты, с разным форматом и разными программами управления этими самыми пакетами (менеджерами пакетов). В Red Hat и Mandrake это .rpm, в Debian это .deb, в Slackware - .tgz и т.д. Такая организация софта удобна тем, что менеджер следит за тем, что и куда было поставлено и позволяет легко удалить ненужные программы. С другой стороны, вы оказываетесь в заложниках у того, кто этим программы компилировал и конфигурировал - он мог выключить при компиляции нужные вам опции или включить в конечный модуль что-нибудь лишнее. Опять же у вас нет в наличии исходного кода этой программы и еще один минус - при повреждении базы данных менеджера пакетов вся информация об установленных программах теряется. Поэтому нормой является использование программ в исходных кодах на различных языках программирования (в основном это C), которые вы уже собираете у себя так, как вам нужно и устанавливаете куда хотите (хоть на другую машину). Нередко эти программы является многомегабайтными проектами, поэтому принято их архивировать (при помощи программы tar) и/или сжимать (при помощи программ сжатия/разжатия gzip, bzip2 и т.д.). В результате файл нужной программы имеет примерно следующее название:

имя_программы.tar.gz

или

имя_программы.tar.bz2

6. Установка программ.
Установка программ при помощи менеджера пакетов описывается в мануале к этому менеджеру, поэтому я описывать здесь это не буду. Установка из исходных кодов ненамного сложнее. Сначала надо файл программы разжать (если он сжат), затем разархивировать (если он заархивирован, все это смотрите по расширению имени). В большинстве случаев в том же каталоге, в котором лежит файл архива и в котором вы выполняли эти действия, должен появиться каталог с исходными кодами. Переходите в него и там прежде всего необходимо прочитать файлы типа README и INSTALL. В этих файлах присутствует информация о самой программе, о том как ее собирать, о возможных особенностях сборки, о том какие другие библиотеки функций или программы нужны для сборки этой программы и где их взять или как проверить их наличие в вашей системе. Сама сборка чаще всего заключается в выполнении следующих программ:

configure
make
[make check или make test или что-то еще в зависимости от конкретной программы]
make install

Программа configure не является системной программой - это обычно скрипт на языке командной оболочки (shell´а), который собирает информацию об установленных у вас программах и библиотеках, необходимых данной программе и об их конфигурации. Если чего-то не хватает или сконфигурировано не так - configure даст об этом знать и возможно подскажет, как это исправить. Программа make считывает информацию из так называемого Makefile (создается configure из файла Makefile.in), которая говорит ей о том, как (при помощи чего, с какими параметрами) компилировать собираемую программу и составляющие ее модули (если они есть). make install переносит уже собранную программу туда, где должна быть (это можно изменить при помощи передачи соотв. параметра программе configure, обычно /usr/local/bin), ее конфигурационные файлы, документацию, библиотеки, подправляет (если это необходимо) системные конфигурационные файлы и выставляет нужные права доступа к файлам этой программы. Поэтому в большинстве случаев перед выполнением make install придется становиться суперпользователем (root'ом).

Кстати, configure имеет смысл выполнять с параметром -help (help с двумя минусами). Может оказаться, что вам понадобится изменить некоторые параметры сборки типа пути до имеющихся библиотек, директория для инсталляции и т.д.

7. СтОит ли?
Прочитав все вышенаписанное, спросите себя еще раз - стОит ли? Для того, чтобы подружиться с этой системой, придется совершать много умственных усилий. Эта система не для тех, кто любит все делать в один клик мыши. Она предполагает работу, размышления, стремление, желание. Она скорее всего не подойдет для быстрого старта и латания на скорую руку возникшей дыры (если вы в линуксе новичок). Ее нельзя понять с наскока. С другой стороны, разбирающемуся человеку она отдается вся без остатка :D и он уже может делать все, что захочет, без преувеличения.

8. Автор.
San АНДРЕЕВ

9. Поправки.
Makefile.in - geekkoo
XWindow - ezhikov

Обоснованные исправления и дополнения приветствуются.



Все статьи раздела "Разное"

©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: