`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Что для вас является метрикой простоя серверной инфраструктуры?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Linux изнутри

+11
голос

НЕМНОГО ИСТОРИИ

Linux — это операционная система, родоначальником которой является Линус Торвальдс (Linus Torvalds) — молодой студент университета в Хельсинки (Финляндия). Еще во время учебы Линус заинтересовался Minix — простой Unix-системой, и решил разработать ОС, которая была бы лишена недостатков Minix и превосходила ее по мощности. В 1991 г. он выпустил первую версию ядра Linux 0.02, а в 1994 г. в результате упорного труда вышла версия 1.0. С тех пор над системой работают многие программисты по всему миру. Сейчас разрабатываемая версия стала общедоступной (с задержкой на 1-2 недели).

Распространяется эта система согласно условиям лицензии GNU General Public License. Таким образом, ее исходные тексты lоступны всем, и каждый может использовать их и модифицировать применительно к решению своих задач. Подобная политика распространения, называемая также «рыночным» (bazaar) методом разработки, когда «свежеиспеченная» верcия продукта сразу же выставляется для всеобщего использования и все желающие могут участвовать в отладке системы, обусловила быстрый рост ее популярности и дала возможность обнаруживать и устранять ошибки.

Linux изнутриПосле длительного тестирования разрабатываемой версии ядра выпускается ее стабильная версия, у которой вторая цифра номера — четная. К примеру, 2.0.ХХ — стабильное ядро, а 2.1.ХХ — нет, и те, кто используют его, делают это на свои страх и риск. Естественно, и в стабильных версиях ядра могут появляться ошибки, которые исправляются в более поздних вариантах. Различие состоит в том, что в четные версии не добавляются новые возможности, и, таким образом, новые ошибки практически не вносятся. Последняя версия, находящаяся в стадии тестирования на момент написания статьи, 2.1.92. С ее выходом Линус объявил о прекращении добавления новых возможностей, т. е. в последующие версии вплоть до 2.2.0, будут включаться только исправления обнаруженных ошибок. Основное отличие ядра 2.1.x от предыдущих — поддержка многопроцессорных машин (SMP).

В настоящее время версии 2.0.3х достаточно устойчивы, и вы можете использовать их, не опасаясь аварии. Известен случай, когда компьютер работал около 600 дней без ошибок и сбоев, используя версию 0.99рi5 (датируемую осенью 1992 г.).

У Linux есть свой официальный талисман — пингвин, который был выбран Линусом Торвальдсом для представления образа, ассоциированного с ОС, которую он создал. Существует много вариантов произношения названия, однако чаще всего встречается «Линукс» с ударением на первом слоге.

ВОЗМОЖНОСТИ ПРИМЕНЕНИЯ

Linux может быть использована в самых различных сферах, в том числе в сетях, для разработки программного обеспечения и в качестве платформы конечного пользователя, часто рассматривается как дешевая альтернатива другим, более дорогим операционным системам.

Благодаря природной функциональности и доступности Linux завоевала популярность по всему миру, и большое количество программистов модифицировали ее исходные тексты для своих нужд. Сейчас в работе находятся десятки проектов переноса Linux на различные конфигурации аппаратного обеспечения и модификации ее для специальных целей.

В настоящее время Linux выпускается для РС-совместимых платформ конфигураций 386/486/Pentium/Pentium Pro с шинами ISA, EISA, PCI, VLB и MCA (поддержка MCA добавлена в версии 2.1 ядра и еще подлежит тестированию); идет работа над ее переносом на многие платформы с процессорами Motorola 680×0. Хорошо освоены некоторые машины Amiga, Atari, VME. Работает эта ОС и на процессорах DEC ALPHA. Перенос Linux на другие архитектуры, включая MIPS, ARM и i8086, находится на различных стадиях разработки.

Linux поддерживает достаточно большое количество оборудования, включая звуковые и различные сетевые карты, Zip-диски, всевозможные SCSI-адаптеры и многие другие типы аппаратного обеспечения.

ЯДРО И МОДУЛИ

Собственно Линус Торвальдс разработал ядро операционной системы, т. е. ее основную часть, отвечающую за загрузку ОС, управление аппаратурой, памятью и задачами. Скомпилированное ядро Linux 2.0.30 занимает около 300 КВ. Очень тесно с ядром связано понятие модуля (драйвера). В Linux большинство возможностей, будь то работа с различным «железом», поддержка файловых систем других ОС или сетевые протоколы, могут быть скомпилированы внутри ядра или в виде модулей. Модули могут загружаться и выгружаться пользователем или операционной системой, и для этого не нужно перезагружаться. Если драйвером управляет операционная система, то при запросе к определенной услуге, обслуживаемой модулем, ядро автоматически его загружает. Если модуль не используется в течение некоторого времени, он выгружается из памяти. Естественно, некоторые модули должны быть скомпилированы в ядре (например, поддержка жесткого диска, если с него будет производиться загрузка). Большинство модулей поставляются вместе с ядром, однако некоторые компании уже предлагают драйверы для своих устройств для Linux.

ЗАГРУЗКА И УПРАВЛЕНИЕ

Одной из главных компонент в Linux (как и во всех Unix) является процесс init. который загружается первым, и его остановка означает прекращение работы системы. Этот процесс производит настройку системы и является «родителем» по отношению ко всем процессам в системе. Необходимо отметить, что init работает в одном из шести режимов (run level). Среда каждого из них определяется файлами конфигурации. В основном, используются уровни 3 и 5. Уровень 3 соответствует работе с консолью в текстовом режиме, а уровень 5 означает автоматическую загрузку X Window System. Первый уровень является однопользовательским режимом — загружается минимальное количество задач и разрешен вход в систему только одного пользователя. При переходе в режимы 0 и 6 осуществляются соответственно останов и перезагрузка системы. Загрузившись, init запускает login — задачу регистрации пользователей, которая, проверив их имя и пароль, в свою очередь, запускает рабочую оболочку (shell).

Для останова системы необходимо запустить команду halt или reboot соответственно для останова или перезагрузки системы. Существует и более гибкая команда — shutdown, позволяющая задать время, когда должен произойти останов системы.

Если Unix работает на многопользовательском компьютере, то обычно можно зайти в систему с различных консолей. В Linux для пользователей персональных компьютеров существует аналогичное средство — виртуальные консоли, переключение между которыми осуществляется с помощью простой комбинации клавиш Alt+Fn, где п — номер консоли.

Весьма эффективна работа с оперативной и виртуальной памятью. Свопинг осуществляется на один или несколько выделенных разделов на жестком диске, что обеспечивает большую его скорость, чем при использовании для этих целей файла (как это делается в Windows 95), хотя существует метод, позволяющий Windows 95 и Linux разделять для свопинга одно и то же дисковое пространство. Всю свободную оперативную память Linux занимает под кэш-буфер. Так как из всего оборудования, с которым вы работаете постоянно, самым медленным является жесткий диск, то это значительно повышает производительность системы. Обычно после пяти минут работы в Linux свободной памяти у вас останется не более нескольких сотен килобайт, однако этого не следует бояться — при необходимости часть кэша освободится для запрашивающей программы. Одним словом, Linux действует по принципу «сво бодная память — простаивающее оборудование».

ФАЙЛОВАЯ СИСТЕМА

В настоящее время «родной» файловой системой Linux является second extended file system — ext2fs. Она поддерживает имена файлов длиной до 255 символов и разрешает использование многих специальных символов (включая пробелы). Для тех, кто знаком с файловой системой DOS, Windows, выделю два основных отличия: прописные и строчные буквы в ней различаются, а названия каталогов в пути разделяются прямой косой чертой «/«. Структура файловой системы достаточно проста. Верхний уровень называется корнем (root) и обозначается 7». Кроме привычных специальных символов «.» и «_», подразумевающих соответственно текущий и родительский каталоги, существует еще один — «-» домашний, обычно это /home/user, где user — имя пользователя. Такое разделение очень полезно, если на машине работают несколько человек: во-первых, другой пользователь не сможет изменить ваши файлы (а если вы захотите, то не сможет и увидеть), а во-вторых, так как настройки системы для конкретного пользователя находятся в его домашнем каталоге, каждый из них может настраивать систему по своему усмотрению.

Корневой каталог имеет постоянную структуру и включает такие основные подкаталоги:

/bin — основные команды;

/boot — файлы, необходимые для загрузки системы;

/dev — различные устройства;

/etc — всевозможные файлы конфигурации;

/home- домашние каталоги пользователей;

/lib — основные библиотеки и модули;

/mnt — каталоги для монтирования других файловых систем;

/ргос — файлы состояния системы;

/root — домашний каталог администратора (root);

/sbin — основные команды администрирования системы;

/tmp — временные файлы;

/usr/X11 - файлы системы X Windows System;

/usr/bin - различные команды и утилиты;

/usr/lib - библиотеки;

/usr/local - этот каталог имеет структуру, идентичную корневому, но с файлами, которые вы устанавливаете сами щесь удобно, например, размещать программы, находящиеся на стадии альфа-тестирования);

/usr/sbin - команды и утилиты администрирования;

/var - каталог для часто меняющихся файлов (протоколы системы, каталоги почты, очереди печати и др.)

Все устройства в Linux представляются в виде файлов. Обычно они находятся в каталоге /dev (или в других, но это случается редко). Например, устройства IDE (жесткие диски CD-ROM) обозначаются /dev/hda, /dev/hdb (соответственно первичное и вторичное устройства) на первом канале контроллера и /dev/hdc й /dev/hdd — на втором; дискеты имеют обозначения /dev/fdO /dev/fdl, последовательные порты — /dev/ttySO, /dev/ttyS1 и т. д. Таким образом, при чтении файла /dev/fdO фактически этот процесс осуществляется с дискеты. Для определения разделов жесткого диска добавляются их номера: /dev/hda1 — первый раздел на первом диске, /dev/hda2 — второй и т.д.

Linux поддерживает файловые системы; FAT, VFAT (FAT с длинами именами файлов для Windows 95, включая версию FAT32), «ES, NTFS; других версий Unix, ISO9660 (файловая система D-ROM); компьютеров Macintosh. Таким образом, вы можете получить доступ к разделам других ОС на вашем диске.

В системе ext2fs файлы и каталоги имеют своего владельца, группу пользователей (каждый из которых может быть членом нескольких групп) и двенадцать атрибутов, девять атрибутов являются разрешением чтения, записи и выполнения файла (для каталогов — разрешение на вход) дя владельца, группы и всех остальных пользователей. Три остальных атрибута используются реже.

Файл может иметь одно или даже несколько расширений, что, кстати, используется достаточно часто, поскольку здесь оно является частью имени файла, а не отдельным атрибутом (таким образом, шаблон »*" обозначает «все файлы», а не «все файлы без расширения», как в DOS). Выполняемые файлы обычно не имеют расширения (например, EXE, как привыкли пользователи DOS и Windows), но име-от установленный атрибут «выполняемый».

УТИЛИТЫ

В Linux существует громадное количество утилит, которые помогают решать всевозможные задачи. Часть их была перенесена сюда из других версий Unix, некоторые написаны фондом Free Software Foundation или программистами со всего мира. И хотя в последнее время в Unix стремительно развиваются графические оболочки, замещающие функции многих утилит и команд, значение командной строки пока еще огромно.

Автор, работавший до Linux в DOS и Windows, наиболее удобной для себя средой в Linux считает Midnight Commander аналог Norton Commander, обладающий множеством дополнительных возможностей.

Текстовые редакторы в Linux — это, пожалуй, один из самых неприятных моментов для людей, не работавших до этого в Unix. И поскольку большинство конфигурационных файлов в Linux являются текстовыми, довольно часто приходится пользоваться этим типом программ. Самый простой и распространенный (и, вероятно, самый старый) редактор — это vi. В большинстве дистрибутивов также поставляется emacs — значительно более богатый и удобный редактор, позволяющий, кроме того, просматривать почту, проверять орфографию и многое другое, однако он занимает достаточно много места в памяти и на диске. Для начала я бы посоветовал редактор, встроенный в Midnight Commander версии 4.0 и выше, — работа с ним практически такая же, как и в Norton и, к тому же, он обладает некоторыми дополнительными возможностями.

Понятия архивирования и сжатия в настоящее время употребляются как синонимы, хотя, обычно, первое подразумевает второе. Пользователи DOS привыкли, что, например, программа ARJ и сжимает файлы, и упаковывает их в один. Однако раньше эти процессы были разделены, и в Linux они выполняются различными программами. Программа для упаковки нескольких файлов и директорий в один файл называется tar (tape archiver — ленточный архиватор). Существует достаточно много программ для сжатия. Одна из них — compress, довольно популярная еще пару лет назад, уже уступила свое место преемнику — gzip (буква g перед многими утилитами означает, что ее авторами являются программисты из GNU Software). С помощью gzip сейчас упаковывается подавляющее большинство файлов в Unlx-системах. Недавно появилась программа bzip2, которая, хотя и работает немного медленнее gzip, однако обеспечивает большую степень сжатия (приблизительно на 15% лучше для текстовых файлов). Для сравнения, степень сжатия gzip приблизительно соответствует этим показателям известной в среде DOS программы RAR. Такой выигрыш в объеме bzip2 очень полезен при передаче больших файлов, например по Internet, где лишний мегабайт может обойтись в час ожидания. В Linux существуют распаковщики для архивов RAR, ARJ, PKZIP и некоторых других, но эти форматы здесь практически не используются.

Таким образом, чтобы запаковать каталог с файлами, необходимо сархивировать его командой tar, а затем сжать при помощи gzip (сжатие архива файлов эффективнее архивирования нескольких сжатых файлов). Это можно сделать и одной командой tar — она может автоматически вызвать gzip для сжатия сархивированного файла Сжатые архивы могут иметь несколько расширений, например filename.tar.gz. Возможен и сокращенный вариант — fiiename.tgz.

Для управления инсталляцией и деинсталляцией существуют несколько программ. Наиболее популярной является система пакетов RPM. Она используется в дистрибутивах RedHat и S.U.S.E. Пакеты, инсталлирующиеся с помощью этой системы, имеют расширение .rpm. Есть две версии менеджера пакетов — rpm (для командной строки) и glint (для X Window). После установки можно проверить файлы пакета на изменение, обновить его версию и, наконец, деинсталлировать.

СЕТИ

Устойчивость Linux обеспечивает хорошую базу для сервера как в локальных сетах, так и в Internet. Он может общаться по сети с Windows-компьютерами, разделять свои диски и монтировать чужие. Здесь вы найдете файл-сервер для клиентов Novell NetWare и, собственно, клиента для этих серверов.

Практически во всех дистрибутивах поставляются серверы разнообразных сетевых услуг (WWW, FTP, NFS и др.). Linux поддерживает сети Ethernet, Token Ring, FDDI, ISDN. Идет работа над проектом поддержки ATM. Профессионалам в области сетей будет интересно узнать, что здесь поддерживаются такие специальные возможности, как маскарадинг IP-адресов, протокол IP версии 6, разделение нагрузки по нескольким последовательным каналам и многие другие.

Linux — ОС, хорошо приспособленная для работы на бездисковых рабочих станциях. Необходимо только включить поддержку сетевой корневой файловой системы и протокола удаленной загрузки. Зашив такое ядро в ПЗУ машины, вы получите так называемого «тонкого клиента». Существуют бездисковые рабочие станции, выполняющие специфические функции. Например, сейчас в работе находится проект Linux-router. Идея такова- вы вставляете в компьютер ПЗУ, прошитое кодом Linux-router, или загружаете с дискеты эту систему и получаете полноценный маршрутизатор, что гораздо дешевле, чем, например, покупка маршрутизатора Cisco. Хотя этот вариант не может конкурировать с мощными аппаратными маршрутизаторами, однако в большинстве случаев это вполне приемлемый вариант.

ЭМУЛЯТОРЫ

Linux «умеет» выполнять программы DOS и Windows. Первое обеспечивает эмулятор DOS — DOSEMU, второе — эмулятор Windows — WINE. DOSEMU «справляется» со своими функциями достаточно успешно, и проделав некоторые манипуляции, можно даже заставить запуститься Windows 3.1 в стандартном режиме. WINE, хотя и выполняет некоторые программы для Windows 95, еще находится в стадии альфа-тестирования. Существуют также коммерческие эмуляторы Windows — WABI и Macintosh — Executor.

Кроме того, в Linux можно запускать программы для других версий Unix с процессорами Intel х86, например SCO Unix или Solaris — это обеспечивает модуль iBCS. Однако драйверы из других Unix-систем нельзя переносить.

ИГРЫ

В Linux вы, естественно, не найдете такого количества игровых программ, как для DOS. Хотя и нельзя сказать, что их совсем нет. Некоторые популярные игры перенесены под Unux среди них такие как DOOM, Quake, SimCity и др. Впрочем, большинство игр DOS запускаются из DOSEMU.

ИНСТАЛЛЯЦИЯ

Инсталляция Unux, вообще-то говоря, зависит от дистрибутива, который вы приобрели, но общими для нее являются следующие моменты.

В Linux есть свой загрузочный менеджер — LILO (Unux loader). При его установке вы не теряете возможности работать с другими ОС, установленными на вашем компьютере (вооб-ще-то говоря, Unux можно установить и в раздел DOS, однако это делать не рекомендуется). Для полноценной установки необходимо выделить под Linux раздел на жестком диске для первой вашей инсталляции и экспериментов будет вполне достаточно 200 МВ (минимальная конфигурация может уместиться и в 40 МВ, но там будет очень тесно). Лучше выделить один отдельный раздел под свопинг. Его объем обычно — от 8 до 32 MB. Linux может быть установлен на любой из находящихся в вашей системе винчестеров и в каждый раздел — как в первичный, так и расширенный.

При установке большинство дистрибутивов в интерактивном режиме запрашивают у вас параметры для множественной загрузки, выделения разделов под Linux. Они также определяют имеющиеся на диске разделы других ОС и предлагают настроить Linux для автоматической монтировки этих файловых систем при старте.

Аналогичным образом они помогают вам настроить сеть (если таковая имеется). Некоторые дистрибутивы при желании пользователя проводят инсталляцию в графическом режиме X Window System.

Настройка системы облегчается наличием большого количества документации. Практически на каждую команду есть справка по ее использованию. Кроме того, существует отдельный каталог /usr/doc, в котором вы найдете документацию по самым разным аспектам настройки Linux. Особо хотелось бы отметить каталог /usr/doc/HOWTO, он содержит в себе файлы с решениями конкретных задач, например, как установить сервер для клиентов Windows, как произвести русификацию системы, как настроить X Window System и брандмауэр для вашей сети и многое другое.

ДИСТРИБУТИВЫ И ПО

Наиболее популярные дистрибутивы Linux и Web-серверы их поставщиков приведены ниже.

Linux изнутри

Кроме того, существует огромное количество серверов в Internet, на которых вы можете найти последние версии ядра Unux и основных утилит, самые разнообразные программы для Linux, документацию и последние новости.

Программное обеспечение для Linux на FTP-серверах, как правило, находится в исходных файлах. Обычно они могут быть скомпилированы под различными версиями Unix, и иногда даже под другими ОС Слово «компиляция» может звучать несколько отпугивающе для людей, слабо знакомых с программированием, однако этот процесс обычно состоит всего из трех команд, которые необходимо выполнить. — configure, make и make install. Для этого у вас должна быть установлена одна из самых мощных утилит в Linux — gcc, компилятор языка «С» фонда GNU. Попадаются также скомпилированные версии для конкретных ОС (FreeBSD, Linux и др.).

КОММЕРЧЕСКИЕ ПРОГРАММЫ

Для Linux существует достаточно много коммерческих приложений, и их количество постоянно растет. Среди них можно назвать такие как WordPerfect и ApplixWare — офисные пакеты, Mathematics — математический пакет, ADABAS D СУБД. На российском WWW-сервере фирмы Borland появилось сообщение о скором выходе IntraBuilder под Linux.

На CD-ROM дистрибутива RedHat вы сможете найти файл Commercial-HOWTO с достаточно длинным списком коммерческого программного обеспечения для Linux.

Написание своих программ для Linux «на продажу» требует некоторой осмотрительности. Прежде чем приступить к созданию своей коммерческой программы, внимательно просмотрите лицензии программ и библиотек, которые вы будете применять. Некоторые библиотеки разрешают свое использование только в свободно распространяемом ПО.

ПОДДЕРЖКА

Пожалуй, одна из самых главных частей программного обеспечения — документация. Если она отсутствует или является неполной, освоение ПО может очень сильно усложниться.

Один из центральных Linux-проектов LDP (Linux Documentation Project — проект документации Unux). Документы этого проекта описывают всевозможные аспекты использования Unux, способы решения конкретных задач, советы по настройке системы и многое другое, файлы каталога /usr/doc/HOWTO являются частью этого проекта.

Еще одна необходимая составляющая для софта — техническая поддержка. Для тех, кто купил коммерческую версию RedHat или S.u.S.E,, доступна техническая поддержка по телефону (правда, еще не во всех странах). Эти компании также объявили о программе привлечения заинтересованных организаций к осуществлению технической поддержки lистрибутивов в других странах.

Недавно к удивлению многих, Linux была названа ОС с лучшей технической поддержкой. Однако это вполне обяснимо, так как существует большое количество web и FTP-серверов с разнообразной документацией, новостями и софтом для Linux. Издаются газета и журналы для пользователей Linux — «Linux Gazett» и «Linux ». К тому же в телеконференциях comp.os.linuxT и fido.ru.linux вы сможете найти самую разнообразную информацию, получить ответы на свои вопросы, а также «послушать» споры о том, какая ОС лучше, и подать в них.

Таким образом, если вы решитесь использовать Linux, недостатка в документации и поддержке у вас не будет. К тому же по последним оценкам в мире насчитывается несколько миллионов пользователей этой ОС, так что вы не будете одиноки в своих начинаниях.

+11
голос

Напечатать Отправить другу

Читайте также

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

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT