Linux - Форум
Приветствую Вас, Гость · RSS Четверг, 28.03.2024, 12:00

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » полезные советы » Операционные системы » Linux (Обзор linux: интерфейс, первый взгляд, софт, настройка, ядро)
Linux
peplДата: Пятница, 11.07.2008, 19:57 | Сообщение # 1
Admin
Сообщений: 1122
Статус: Отсутствует
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 и др.


 
peplДата: Пятница, 11.07.2008, 19:59 | Сообщение # 2
Admin
Сообщений: 1122
Статус: Отсутствует
Различные составляющие операционной системы

Любая UNIX-подобная операционная система состоит из ядра и некоторых системных программ. Также существуют некоторые прикладные программы для выполнения какой-либо задачи. Ядро является сердцем операционной системы. Оно размещает файлы на диске, запускает программы и переключает процессор и другое оборудование между ними для обеспечения мультизадачности, распределяет память и другие ресурсы между процессами, обеспечивает обмен пакетами в сети и т.п. Ядро само по себе выполняет только маленькую часть общей работы, но оно предоставляет средства, обеспечивающие выполнение основных функций. Оно также предотвращает использование прямого доступа к аппаратным средствам предоставляя специальные средства для обращения к периферии. Таким образом ядро позволяет контролировать использовние аппаратных средств различными процессами и обеспечивать некоторую защиту пользователей друг от друга. Средства, предоставляемые ядром, используются через системные вызовы (см. раздел 2 руководства для более подробной информации по этому вопросу).

Системные программы используют средства, предоставляемые ядром для обеспечения выполнения различных функций операционной системы. Системные и все остальные программы выполняются 'на поверхности ядра', в так называемом пользовательском режиме. Существует некотоpая разница между системными и прикладными программами. Прикладные программы предназначены для выполнения какой-либо определенной задачи, в то время как системные программы используются для поддержания работы системы. Текстовый процессор является прикладной программой, а программа telnet - системной, хотя зачастую граница между ними довольно смутная.

Довольно часто операционная система содержит компиляторы и соответствующие им библиотеки (GCC и C библиотеки для Linux), хотя не обязательно все языки программирования должны быть частью операционной системы. Документация, а иногда даже игры, могут являться ее частью. Обычно состав операционной системы определяется содержимым установочного диска или ленты, хотя дело обстоит несколько сложнее, так как различные части операционной системы разбросаны по разным FTP серверам во всем мире.

Важные составляющие ядра

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

Наиболее важные составляющие ядра (обеспечивающие жизнеспособность системы) - это блок управления памятью и процессами. Блок управления памятью обеспечивает распределение областей памяти и swap-областей между процессами, составляющими ядра и для кэш-буфера. Блок управления процессами создает новые процессы и обеспечивает многозадачность путем переключения задач.

На самом нижнем уровне ядро содержит драйверы устройств для каждого типа поддерживаемого оборудования. Существует довольно большой набор различных драйверов, так как постоянно разрабатываются новые типы устройств. Существует довольно много одинаковых устройств, которые различаются только тем, как происходит взаимодействие между самим устройством и драйвером. Такое сходство позволяет использовать классы драйверов, поддерживающих одинаковые операции. В каждом члене такого класса используется однотипный интерфейс для ядра, но различные схемы взаимодействия с устройством. Например, все драйверы жесткого диска представляются для ядра абсолютно одинаково, то есть у них у всех имеются такие операции как 'инициализация жесткого диска', 'чтение сектора N', 'запись сектора N'.

Некоторые функции, предоставляемые ядром, имеют одинаковые свойства. Например, различные сетевые протоколы объединены в один программный интерфейс - BSD socket библиотеку. Вот другой пример - различные файловые системы, поддерживаемые системой Linux. Ядро содержит виртуальную файловую систему (Virtual File System - VFS) которая включает в себя все функции, используемые для работы системы, а также драйвер для каждой поддерживаемой файловой системы. При попытке доступа к какой-либо файловой системе запрос проходит через VFS, откуда перенаправляется к соответствующему драйверу файловой системы.

Основные функции UNIX системы

В этом разделе достаточно поверхностно рассматриваются некоторые наиболее важные функции UNIX системы. Более подробно они рассмотрены в следующих главах.

init

Единственную и самую важную функцую в UNIX системе предоставляет пpоцесс init. Он запускается в любой UNIX системе как самый первый процесс, а также завершает процедуpу загрузки системы. При запуске init, продолжается процесс загрузки (проверяются и устанавливаются файловые системы, запускаются различные программы-демоны и т.д.).

Точный список того, что выполняется при запуске init, зависит от версии программы. Обычно init предоставляет однопользовательский режим, при котором никто не может подключиться к системе. Обычный режим - это многопользовательский. Некоторые версии используют понятие 'уровень запуска'. Например, однопользовательский и многопользовательский режимы - это разные уровни запуска. Также существуют дополнительные уровни, например для запуска X-windows.

При работающей системе, две самые важные задачи программы init - это удостоверится, что все программы-демоны getty работают (т.е. имеется возможность подключения к системе) и адаптирование orphan-процессов (т.е. процессов, чей родительский процесс был уничтожен; в системе UNIX все процессы должны принадлежать одному дереву процессов, поэтому orphan-процессы должны быть адаптированы).

При завершении работы системы и перезапуске, init уничтожает все оставшиеся процессы, демонтирует файловые системы и останавливает процессор.

Подключение к системе с терминалов

Подключение к системе с терминалов (через последовательные линии) и с главной консоли (если не запущены X) обеспечивается программой getty. init запускает отдельный процесс getty для каждого терминала. getty считавает имя пользователя и запускает программу login, которая считывает пароль. Если имя и пароль соответствуют одному пользователю, то login запускает оболочку. При выходе из оболочки, то есть при выходе из системы, или при завершении программы login в случае если имя пользователя и пароль не подходят, init запускает новый процесс getty. Ядро не контролирует подключения к системе, а только выполняет системные программы.

Syslog

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

Периодическое выполнение команд: cron и at

Как отдельным пользователям, так и системному администратору иногда требуется периодически запускать определенные команды. Например, системному администратору может потребоваться периодически запускать команду для очистки каталогов от временных файлов (/tmp и /var/tmp), для предотвращения переполнения диска.

Для этого используется функция cron. У каждого пользователя имеется файл crontab, в котором содержится список команд, представленных к выполнению и количество раз, которое они должны быть выполнены. Программа-демон crond обеспечивает своевременное выполнение указанных команд.

Функция at идентична функции cron, только команда запускается один раз в указанное время и запуск больше не повторяется.

Графический интерфейс пользователя

Как в системе UNIX так и в Linux, пользовательский интерфейс не встраивается в ядро системы. Вместо этого он представляется программами пользовательского уровня. Это применяется как к текстовым, так и к графическим оболочкам.

Такой стандарт делает систему более гибкой, хотя и имеет свои недостатки. Например, это легко позволяет создавать новые интерфейсы для программ, что затрудняет изучение системы.

Первоначально используемой с системой Linux графической оболочкой была система X Window System (сокращенно X). X не реализует пользовательский интерфейс, а только оконную систему, т.е. средства, с помощью которых может быть реализован графический интерфейс. Три наиболее популярных версии графических интерфейсов на основе X - это Athena, Motif и Open Look.

Работа с сетью

Сеть - это средство, позволяющее соединяться двум или более компьютерам между собой.

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

Однако, в этой книге поверхностно рассмотрены вопросы работы с сетью. Для более подробной информации см. книгу "Руководство Сетевого Администратора Системы Linux".

Подключение к системе через сеть

Подключение к системе через сеть работает несколько иначе, чем обычное подключение. Существуют отдельные физические последовательные линии для каждого терминала, через которые и происходит подключение. Для каждого пользователя, подключающегося к системе, существует отдельное виртуальное сетевое соединение и их может быть любое количество. Однако не представляется возможным запустить отдельный процесс getty для каждого возможного виртуального соединения. Существуют также и другие способы подключения к системе посредством сети. Например, telnet и rlogin - основные службы в TCP/IP сетях.

При использовании сети для подключения к системе, кроме большого количества процессов getty используется отдельная программа-демон (при использовании как telnet так и login используются различные программы-демоны), которая отслеживает все попытки соединения с компьютером. Если опpеделяется попытка соединения, то программа создает новый процесс - создает сама себя для обработки этого соединения - а затем продолжает отслеживание новых соединений. Создаваемый процесс идентичен программе getty.

Сетевые файловые системы

Одна из наиболее полезных функций, которая может быть реализована с помощью сети, это разделение файлов через сетевую файловую систему. Обычно используется система, называемая Network File System или NFS, которая разработана корпорацией Sun.

При работе с сетевой файловой системой любые операции над файлами, производимыми на локальном комьютере, передаются через сеть на удаленную машину. При работе сетевой файловой системы программа считает, что все файлы на удаленном компьютере находятся на компьютере, где она запущена. Таким образом разделение информации посредством такой системы не требует внесения каких-либо изменений в программу.


 
peplДата: Пятница, 11.07.2008, 20:00 | Сообщение # 3
Admin
Сообщений: 1122
Статус: Отсутствует
Почта

Электронная почта является самым важным средством связи между компьютерами. Электронные письма хранятся в одном файле в специальном формате. Для чтения и отправления писем применяются специальные программы.

У каждого пользователя имеется отдельный "почтовый ящик" (т.е. файл, где информация хранится в специальном формате), в котром хранится приходящая почта. Если на комьютер приходит письмо, то программа обработки почты находит файл почтового ящика соответвующего пользователя и добавляет туда полученное письмо. Если же почтовый ящик пользователя находится на другом компьютере, то письмо перенаправляется на этот компьютер, где проходит его последующая обработка.

Почтовая система состоит из множества различных программ. Доставка писем к локальным или удаленным почтовым ящикам производится одной программой (например, sendmail или smail), в то время как для обычной отправки или просмотра писем применяется большое количетсво различных программ (например, Pine или elm). Файлы почтовых ящиков обычно хранятся в каталоге /var/spool/mail.

Печать

В один момент времени принтером может пользоваться только один пользователь. Поэтому для того, чтобы принтером могли пользоваться сразу несколько пользователей, используется специальная программа, которая обеспечивает обслуживание очереди к принтеру. Все задания для принтера помещаются в буфеp. Когда принтер заканчивает обработку одного задания, следуещее передается к нему автоматически. Это значительно упрощает работу с принтером.

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

Структура файловой системы

Файловая система разделяется на несколько частей: файловая система root, состоящая из каталогов /bin, /lib, /etc, /dev и некоторых других, файловая система /usr, где хранятся различные программы и данные не подлежащие изменению, файловая система /var, где содержатся изменяемые файлы (такие как log файлы и др.) и файловая система /home, которая состоит из личных каталогов пользователей. Разделение может существенно отличатся от выше указанного в зависимости от работы системного администратора и конфигурации аппаратного обеспечения.


 
Форум » полезные советы » Операционные системы » Linux (Обзор linux: интерфейс, первый взгляд, софт, настройка, ядро)
  • Страница 1 из 1
  • 1
Поиск: