Коротко о Linux
Linux - свободно распространяемое ядро Unix-подобной
системы, написанное Linus Torvalds при помощи большого числа
добровольцев по всей Сети. Linux обладает всеми свойствами
современной Unix-системы, включая настоящую
многозадачность, развитую подсистему управления памятью и
сетевую подсистему. Ядро Linux, поставляемое вместе с
свободно распространяемыми прикладными и системными
программами образует полнофункциональную универсальную
операционную систему. Большую часть базовых системных
компонент Linux унаследовал от проекта GNU, целью которого
является создание свободной микроядерной операционной
системы с лицом Unix. На сегодняшний день существует
множество различных поставок Linux, дистрибутивов, которые
можно разделить на дистрибутивы общего назначения и
специализированные. К специализированным дистрибутивам
относятся такие как LinuxRouter - урезанная поставка Linux для
создания дешевого маршрутизатора на базе старого PC и др.
Несмотря на различия в дистрибутивах общего назначения, все
они образуют лицо ОС Linux такой, какой ее знают большинство
пользователей ОС. В отличие от ядра, дистрибутивы могут
содержать коммерческие компоненты и потому их свободное
распространение может быть ограниченно. В таком случае
авторы дистрибутива делают доступными все свободные
компоненты. Обычно под словосочетанием "ОС Linux" понимают
дистрибутивы Linux общего назначения.

Обзор возможностей Linux


Переносимость

Большая часть ядра Linux написана на языке Си, благодаря чему
система достаточно легко переносится на различные аппаратные
архитектуры. Сегодня офицальное ядро Linux работает на
платформе Intel (начиная с i386), Compaq (ex. Digital) Alpha,
Motorolla 68k, MIPS, PowerPC, Sparc, Sparc64, StrongArm, Intel
Italium (IA-64). Кроме того, существует много портов Linux,
распространяемых отдельно от официального ядра. Ядро Linux
способно работать на многопроцессорных SMP системах,
обеспечивая эффективное использование всех процессоров.
Поддержка архитектуры NUMA находится в стадии разработки.

Разработчики Linux стараются соблюдать стандарты POSIX и
Open Group, обеспечивая тем самым переносимость ПО с
другими Unix-платформами.

Сетевая подсистема

TCP/IP стек в Linux соответстсвует всем стандартам и по многим
своим возможностям превосходит реализацию TCP/IP в других
ОС. Поддержка TCP/IP включает в себя продвинутую
маршрутизацию (policy routing, QoS and Fair Quering), traffic
shaping, пакетную фильтрацию (firewalling), multicasting,
поддержку "прозрачного" прокси, masquerading, тунелинг, aliasing
и др. Кроме IPv4, в ядро Linux входит экспериментальная
поддержка IPv6.

Поддерживется большинство существующих сетевых
устройств: Ethernet адаптеров (10/100Mbit, 1000Mbit,
радиокарт), SLIP/PPP, FDDI, HIPPI, Frame Relay, Token Ring,
WAN адаптеры и др. Linux содержит подсистемы поддержки
AX.25 и ISDN.

Файловая система

Основной файловой системой Linux является его собственная
ext2fs. Официальное ядро содержит поддержку более 20
различных файловых систем, включая FAT (FAT/VFAT/FAT32),
ISO9660 (CDROM), HPFS (OS/2), NTFS (WindowsNT), SysV
(SCO Unix и др.), UFS (BSD и др.).

В стадии разработки находятся файловые системы: ext3fs
(журналирующая версия ext2fs), RaiserFS (быстрая
журналирующая файловая система). SGI и IBM занимаются
разработкой поддержки своих журналирующих файловых систем
XFS (из Irix) и JFS (из AIX) соответственно.

Прикладное ПО

В этом разделе мы постараемся дать небольшой обзор
существующего программного обеспечения для Linux. Мы не
претендуем на полноту, но если вы считаете, что этот
раздел не содержит чего-то важного - сообщите нам.

Большая часть перечисленного ПО не завязано на Linux и
работает на других Unix-подобных системах.

Средства разработки приложений

Большинство средств разработки для Linux сегодня были
созданы в рамках проекта GNU. Они включает в себя GCC - Gnu
Compiler Colection - универсальный переносимый компилятор,
GDB - Gnu Debuger - отладчик, GNU C Library и др. Компилятор
GCC создавался максимально переносимым, благодаря чему он
поддерживает около 100 различных аппаратных платформ. Язык
описания платформы хорошо документирован, благодаря чему
перенос GCC на новую архитектуру не составляет особой
проблемы. "Сверху" GCC представляет собой компилятор языков
Си (KR C, ANSI C, C9x и собственные расширения), C++ (ANSI
C++, STL), Objective C, Fortran 77, Effiel. Последние версии GCC
содержат также компилятор языка Java в машиннозависимые
коды. Отдельно от GCC распространяются компиляторы Ada95 и
Pascal, использующие gcc для генерации кода. Для Linux также
существуют интерпретаторы Lisp, Scheme и других
Lisp-подобных языков, скриптовых языков Perl, AWK, Shell, Sed
и др.

Существуют средства поддержки ведения проекта и контроля
версий (CVS), группа пакетов, облегчающих написание
переносимых программ: autoconf, automake, libtool и др.;
различные IDE.

Компания IBM перенесла на Linux свою среду разработки Java
приложений - IBM VisualAge for Java на Linux. Inprise (Borland)
сообщила о своих планах переноса Delphi и C++ Builder.

ПО для серверов Internet/Intranet

Стандартно в поставку Linux входят: Apache - самым популярный
в Internet http-сервер; Sendmail - программа передачи
электронной почты (Mail Transfer Agent), ftp, pop3/imap, news
серверы, сервер доменовых имен, uucp over tcpip, squid
(кеширующий http/ftp прокси), средства динамической
маршрутизации и др.

Файл сервер

Linux может служить файл сервером по протоколам NFS (как
правило используемом только на Unix машинах), SMB (Netbios
over TCP/IP, используемый на различных Windows платформах),
AppleShare и IPX (Novell).

Middleware

Существует несколько свободных реализаций архитектуры OMG
CORBA.

Графический интерфейс

Linux использует стандартную оконную систему X. В
большинстве дистрибутивов используется свободно
распространяемая реализация X'ов - XFree86. XFree86
поддерживает (почти) все популярные графические адаптеры на
платформе Intel и некоторых других. Оконная система X
постоенна на клиент-серверной архитектуре, таким образом
место запуска приложения и место его отображения могут быть
физически разнесены по сети. В последную (пока
экспериментальную) версию XFree86 - 4.0, входит поддержка
OpenGL и аппаратной 3D акселерации.

Средства разработки под X, сходящие в стандарт, представляют
только базовый API разработчика. Как правило при разработке
приложений используют дополнительные библиотеки для
построения интерфейса. Набор интегрированных базовых
приложений, построенных на одной библиотеке образует
графическую среду пользователя. Наиболее популярные
графические среды сегодня - Gnome (GNU Network Object
Model Environment) и полукоммерческая среда KDE.

СУБД

Основные производители систем управления базами данных уже
перенесли свои продукты на Linux: существуют Linux версии
IBM DB2, Informix, Oracle, Sybase, Corel/Inprise Interbase и др.
Linux может использоваться в качестве платформы для запуска
системы управления предприятием SAP R/3.

Средства подготовки тестов

В дистрибутивах Linux обычно поставляется TeTeX реализация
TeX - системы верстки текстов типографического качества,
созданной американским математиком и программистом
Дональдом Кнутом (Donald E. Knuth). Система TeX и макропакет
высокого уровня LaTeX сегодня используются для публикации
научных статей, журналов и книг.

SGML Tools: средства трансформации структурированного по
правилам SGML текста в LaTeX, HTML, GNU info, LyX, RTF,
plain text и другие форматы из одного исходного текста,
ориентированные на создание технической документации.

Оффисные пакеты

Кроме нескольких проектов по созданию свободно
распространяемого комплекта офисных приложений для X'ов,
под Linux существуют коммерческие офисы SUN Staroffice
(сегодня абсолютно бесплатный для любого применения), Corel
WordPerfect, Applix Applixware и некоторые другие.

Игры

Производители компьютерных игр уже обратили свое внимание
на Linux. Уже вышли Linux версии Doom, Doom2, Heretic,
Descent, Quake, Quake II, Quake III test, Unreal, Myth II,
Civilisation III Ctp и др. С выходом XFree86 4.0, содержащей
кроме всего прочего ориентированную на игры подсистему
быстрой графики и OpenGL, ожидается увеличение числа игр под
Linux.

Linux может служить сервером для игр QuakeWorld, QuakeII,
QuakeIII test, Unreal и др.