Linux

Материал из MediaWiki
Перейти к навигации Перейти к поиску

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

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

Большая часть ядра Linux написана на языке Си, благодаря чему система достаточно легко переносится на различные аппаратные архитектуры. Сегодня офицальное ядро Linux работает на платформе Intel (начиная с i386), Compaq (ex. Digital) Alpha, Motorola 68k, MIPS, PowerPC, Sparc, Sparc64, StrongArm, Intel Itanium (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 применяются:

  • ext3fs (считается наиболее надежной и обкатанной, имеет обратную совместимость с ext2);
  • ext4fs (пришла на замену ext3, обладает лучшей производительностью и устойчивостью к сбоям);
  • reiserfs версии 3.6 (так же достаточно обкатана, более быстра по сравнению с ext3 и не имеет некоторых присущих ext2/ext3 проблем с масштабированием);
  • jfs;
  • XFS.

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

В стадии разработки находятся файловые системы: Reiser4, Btrfs, ZFS. Для повседневного использования могут быть рекомендованы файловые системы ext3, ext4, reiserfs, jfs, xfs.

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

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

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

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

Большинство средств разработки для Linux сегодня были созданы в рамках проекта GNU. Они включают в себя GCC — Gnu Compiler Collection — универсальный переносимый компилятор, GDB — Gnu Debuger — отладчик, GNU C Library и др. Компилятор GCC создавался максимально переносимым, благодаря чему он поддерживает около 100 различных аппаратных платформ. Язык описания платформы хорошо документирован, благодаря чему перенос GCC на новую архитектуру не составляет особой проблемы. «Сверху» GCC представляет собой компилятор языков Си (KR C, ANSI C, C9x и собственные расширения), C++ (ANSI C++, STL), Objective C, Fortran 77, Eiffel. Последние версии 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 платформах), FTP (File Transfer Protocol, один из наиболее распространённых протоколов передачи файлов по сети), AppleShare и IPX (Novell).

Middleware

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

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

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

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

СУБД

Основные производители систем управления реляционными базами данных уже перенесли свои продукты на Linux: существуют Linux версии MySQL, PostgreSQL, IBM DB2, Informix, Oracle, Sybase, Firebird, Progress и др. Также под управлением Linux сегодня работает большинство постреляционных многомерных и объектных СУБД: jBase, IBM U2, TigerLogic D3, Intersystems Cache и др. Linux может использоваться в качестве платформы для запуска системы управления предприятием SAP R/3.

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

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

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

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

Наиболее популярным является кросплатформенный офисный пакет OpenOffice.org (OOo) и его ответвление LibreOffice. Для оконных сред KDE и GNOME разрабатываются свои версии офисных пакетов: KOffice (переименован в Calligra) и GnomeOffice. Кроме них доступны коммерческие офисные пакеты от многих фирм.

Игры

В основном благодаря стараниям Valve, многие производители компьютерных уже обратили свое внимание на Linux. Уже<ref name="steamgames">на 29 августа 2015 года</ref> в одном только Steam насчитывается 1443 игры. Другие площадки продажи игр не отстают: GOG и Humble Store тоже поддерживают Linux.

Linux может служить сервером для игр QuakeWorld, QuakeII, QuakeIII, UnrealTournament, Crysis Wars, Counter Strike, Minecraft и многих других игр.

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

Примечания