Основные понятия

Материал из openSUSE.

(Перенаправлено с Concepts)


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

Содержание

О чем важно знать новому пользователю openSUSE

Обычно новичок, установивший openSUSE, хочет сразу начать работать с ней. Это стремление вполне понятно, однако перед началом работы с системой новичку будет полезно (а потому рекомендуется) изучить основы работы с ней, дабы впоследствии избежать лишней потери времени. Linux работает не так, как MacOS или MS Windows, однако эти различия не должны вас пугать; их нужно просто знать и понимать.


Свободное Программное Обеспечение

Операционная система Linux развивалась по модели так называемого "свободного программного обеспечения" (Free Software). Важно понимать, что здесь слово "свободное", строго говоря, не касается цены (то есть оно не тождественно понятию "бесплатное"). Под "свободой" здесь подразумеваются следующие права пользователя в отношении программы:

  • право использовать её по своему усмотрению;
  • право получить свободный доступ к её исходному коду;
  • право вносить изменения в её исходный код;
  • право распространять её оригинальную (или свою, изменённую) копию.

Подробнее о свободном программном обеспечении можно прочитать здесь

Ядро Linux и Проект GNU

Новички удивляются, когда узнает, что Linux, строго говоря, не является операционной системой. Тем не менее это действительно так! Linux - это лишь ядро операционной системы, её низкоуровневый стержень, управляющий всеми процессами и взаимодействующий с оборудованием компьютера. Первоначально ядро Linux было создано Линусом Торвальдсом; первая версия ядра вышла в свет в 1991 году. А значительно раньше, в 1983 году Ричард Столлман основал проект GNU (рекурсивный акроним: GNU is Not Unix). GNU задумывалась как свободная операционная система, и к 1991 году многие компоненты, необходимые для неё, были уже созданы, однако ядро Hurd готово ещё не было. Поэтому появилась операционная система GNU/Linux, представляющая собой ядро Linux, работающее в окружении необходимых GNU-утилит. Эта модель и легла в основу системы openSUSE.

Подробнее об этом читайте здесь:

Дистрибутивы

Как было упомянуто выше, Linux - это лишь ядро операционной системы, всю же операционную систему корректнее называть GNU/Linux; она состоит из ядра и различных программ. Эти программы можно условно разделить на две большие группы: необходимые и необязательные. К необходимым программам относится ряд системных утилит, без которых операционная система не может существовать (к таковым относятся загрузчик, компиляторы, командная оболочка и проч.). Все остальные программы являются, строго говоря, необязательными. Вся операционная система - это так называемый дистрибутив GNU/Linux. Установив на компьютер дистрибутив, я получаю полностью работоспособную систему GNU/Linux.

Дистрибутивов GNU/Linux достаточно много, однако наиболее известных (к каковым относится openSUSE) - не более 20. Дистрибутивы разрабатываются и распространяются различными дистрибьюторами, в роли которых могут выступать как крупные компании, так и сообщества добровольцев.

Обработка ПО в openSUSE (управление пакетами)

В openSUSE, чаще всего, используются два вида программных пакетов:

tar-архив

tar-архив представляет собой особый архив: файлы, содержащие исходный код программы, сначала собираются вместе утилитой tar, а потом сжимаются некоторой другой утилитой, например, gzip или bzip2. Помимо исходных файлов, tar-архивы обычно содержат специальные скрипты, предназначенные для настройки, компиляции и установки программы, а также документацию с общей информацией о самой программе и вариантах её установки (размещена она, как правило, в файлах "readme.txt" и "install.txt"). Иногда tar-архив содержит в себе значительно более подробную документацию. Часто содержимое tar-архива требует [1]]. Как правило, tar-архив имеет расширение "tar.gz", "tgz" или "tar.bz2", в зависимости от сжимающей утилиты.

RPM

Акроним RPM, как уже упоминалось выше, происходит от RedHat Package Manager. Строго говоря, rpm - это и инструмент для работы с программными пакетами, и сами пакеты, созданные этим инструментом. Под "работой с программным пакетом" подразумевается его установка, обновление, удаление и проверка.

Зачем нужен RPM?

В большинстве случаев разработчик создает tar-архив для своего продукта, подразумевая таким образом, что пользователь сначала настроит программу, затем скомпилирует её исходные коды и затем установит полученные файлы в соответствующие каталоги. Это не всегда просто, особенно для новичка в Linux. Кроме того, компиляция некоторых программных продуктов даже на современных компьютерах может занять очень много времени (иногда не один час). По этой причине был создан RPM: во-первых, для установки rpm-пакета чаще всего достаточно единственной команды, а, во-вторых, rpm-пакет содержит уже прекомпилированные файлы программы, следовательно, полной компиляции не потребуется.

Другие особенности RPM:

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

RPM обычно собирается для определенной версии дистрибутива, например для SUSE Linux 9.3, 10.0, 10.1, openSUSE 10.2 и т.д. RPM, созданный для SUSE Linux 9.3, скорее всего, не установится на openSUSE 10.2, т.к. зависимости программ могут значительно изменяться (программе A нужна программа B, программе B, в свою очередь, нужна программа C и так далее). Эти зависимости обязательно проверяются.

Менеджеры Пакетов

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

Для того, чтобы заставить менеджер взаимодействовать с сетевым файловым сервером (то есть хранилищем пакетов программ), необходимо добавить ссылку на этот сервер в менеджер пакетов. Такие файловые серверы обозначаются как каналы или репозитарии. Менеджер пакетов может использоваться как с графическим интерфейсом, так и без него. К известным менеджерам относятся APT/Synaptic, Smart, YUM и, конечно же, сам YaST (созданный SUSE).

Дополнительная информация:

Репозитарии программ, собранных третьими лицами

Помимо официальных существуют также сторонние репозитарии, содержащие улучшенные и/или специальные версии RPM, а также RPM с новейшими (малоизвестными) пакетами. Популярные репозитарии для SUSE Linux\openSUSE - это Packman и Guru. Если вы хотите использовать один из этих репозитариев, здесь вы найдет руководство.

Мультимедиа в openSUSE

Что касается мультимедиа, то по лицензионным соображениям в openSUSE из коробки весьма ограничена даже основная мультимедийная функциональность (как, например, проигрывание проприетарного формата mp3 любым плеером, кроме real player). Следовательно, новый пользователь openSUSE, желающий слушать музыку в формате mp3, проигрывать файлы avi с различными кодеками, смотреть DVD-фильмы и т.д., должен обратиться к сторонним репозитариям пакетов и установить версии необходимых приложений, поддерживающих подобные вышеперечисленным коммерческие мультимедийные форматы.

Сайт, содержащий руководство с open-source подходом к решению этого вопроса - opensuse-community: http://opensuse-community.org

Оболочка Linux / Интерфейс Командной Строки

Оболочка - это интерфейс командной строки, очень похожий на MS-DOS и на Командную Строку в Windows XP, но гораздо более мощный. В зависимости от способа доступа к оболочке, она может быть либо полноэкранной, либо окном в Оконном Менеджере. Самой распространенной в Unix является оболочка "bash", изначально написанная для Проекта GNU. bash является оболочкой по умолчанию в большинстве дистрибутивов Linux. В случае openSUSE оболочка bash открывается при запуске "konsole" или "xterm". Из оболочки можно запускать различные приложения; кроме того, она также может быть полезна в ряде особых случаев (например, для отладки), а также для получения информации о системе.

Следующая картинка упрощённо иллюстрирует потоки информации и команд между пользователем и Linux-компьютером.

Image:flow1.jpg


  • Интерфейс Командной Строки Linux: [1]
  • Оболочка Unix: [2]
  • Оболочка bash: [3]
  • Уровни запуска: [4]

X windows: основные понятия

Начинающие пользователи часто предпочитают использовать X windows. X windows (известная также как X11 или X) предоставляет графическое окружение на Linux-компьютере; в этом окружении могут запускаться различные рабочие среды (Desktop Envronment), предоставляющие графический интерфейс пользователя, типичный для всех современных ОС (таких как Mac или MS Windows). Без X windows у вас будет только текстовая командная строка/оболочка. (Примечание: в Mac и MS Windows нет разделения между текстовым режимом и графичеким режимом как более высоким уровнем, так же в Mac/MS-Windows есть только один GUI, в то время как в Linux пользователи могут выбирать из множества). Более подробно можно почитать в этой Windows Managers и Desktop Environment wiki.

Три наиболее популярные рабочие среды для openSUSE:

  • Gnome (наиболее популярен в Северной Америке): GNOME,
  • KDE (наиболее попялярен в Европе): KDE, и
  • Xfce: Xfce.

Существуют и другие рабочие среды, доступные для openSUSE; подробнее о графическом интерфейсе пользователя смотрите большую информацию о графическом пользовательском интерфейсе (GUI) в openSUSE смотрите здесь.

Дополнительная информация о системе X windows:

Аспекты системы X windows

Система X windows - очень мощная, поскольку её архитектура тщательно структурирована, с чётким отделением "клиентского" и "серверного" аспектов друг от друга. В одном случае и "клиент", и "сервер" могут работать на одной и той же машине (и в этой ситуации их разделение очевидно). Однако X windows устроена так, что "клиент" и "сервер" могут работать и на разных машинах. Так, например, с X11 и Secure Shell (ssh) программой (смотри ниже), X windows-приложение можно запустить на удалённой Linux-машине, в то время как графическое окно этого приложения будет отображаться на машине локальной.

Сеть в Linux

Linux-комьютеры и Windows-компьютеры в одной сети

Общее использование файлов и принтеров MS Windows-машинами и Linux-машинами

Для обеспечения общего использования файлов и принтеров между MS Windows-машинами и Linux-машинами, чаще всего используется приложение samba, запущенное на Linux-машине.

Подробнее о Samba:

Благодаря использованию Samba, сетевое взаимодействие между MS Windows-машинами и Linux-машинами, объединёнными в локальную сеть (LAN), является достаточно ясным для Windows-пользователей (таким образом, файлы и принтеры могут использоваться совместно, с помощью стандартных файловых менеджеров и менеджеров печати).

Возможна также передача файлов от Linux-машины к MS Windows-машине (для этого можно использовать KDE и samba) и наоборот (используя Secure Copy (scp) или Secure FTP (sftp), с помощью пакетов, подобных WINscp

Подробнее читайте здесь:

Обеспечить общее использование принтеров между Linux-машинами и MS Windows-машинами можно и с помощью CUPS и IPP:

Linux-комьютеры в одной сети

Общее использование файлов Linux-машинами

Для обеспечения общего использования файлов между Linux-машинами широко применяется приложение Network File System (NFS), позволяющее также удаленное монтирование папок и устройств, благодаря чему можно, например, использовать удалённые диски как локальные.

Подробности ищите здесь:

Помимо NFS для передачи файлов можно использовать ssh. Одна из реализаций передачи файлов от одной Linux-машины к другой в ssh-сети называется "fish" (от FIles transferred over SHell). Менеджеры файлов Konqueror (из KDE), Nautilus (из Gnome) и Midnight Commander поддерживают "fish", предоставляя дружественный графический интерфейс.

Подробности читайте здесь:

Удаленный shell в Linux

В Linux есть возможность удалённого запуска konsole/shell, что позволяет на локальной машине работать в командрой строке машины удалённой. Это реализуется с помощью приложений telnet и ssh (важно отметить, что ssh обычно обеспечивает более безопасную передачу данных, чем telnet).

Подробнее читайте здесь:

Удалённый рабочий стол в Linux

Также в Linux можно запустить удалённый рабочий стол, причём сделать это можно разными способами. Первый из них - использование Virtual Network Computing (vnc), что обеспечит нам доступ с одной Linux-машины на другую (возможно также получить доступ с MS Windows-машины). vnc передает события, инициируемые клавиатурой и мышкой, от одного компьютера к другому через сеть. Одно из Linux-приложений, обеспечивающих такую возможность - x11vnc. Удалённый рабочий стол может быть запущен через локальную сеть (LAN) или Интернет. Чтобы использовать MS Windows-машину для получения удалённого доступа на рабочий стол Linux-машины, необходимо применять особые клиентские программы (их достаточно много, и некоторые из них свободны).

Подробнее об этом читайте здесь:


Структура каталогов Linux

В системе Linux структура расположения файлов совсем не такая, как в MS Windows. Здесь нет "устройств" в том понимании, как это реализовано в MS Windows: не ищите в Linux локальный диска C:\ или съёмное устройство E:\. Все пути в системе начинаются от корневой папки (изображаемой как /), и потому всё, что находится в системе, располагается в подпапках относительно корневой. Папки отсортированы (в соответствии с их важностью для загрузки системы) и нисходят от корня /, как ветви дерева. В ходе загрузки система (обычно) ничего не знает о существовании тех или иных устройств. Вместо этого, различные устройства и их разделы (например, разделы жёстких дисков) постепенно монтируются (от "mount", букв. "прикреплять") к имеющейся структуре каталогов. Такая модель известна под названием "Унифицированная файловая система" (Unified Filesystem). Подробнее об этом читайте здесь:

Оборудование в Linux

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

Если решается вопрос о приобретении нового оборудования, будет полезно проверить его совместимость с Linux HCL до покупки.

Жесткие диски: терминология, таблица разделов

В Linux жёсткие диски именуются совсем не так, как в MS Windows (диска С:\ вы здесь не найдёте): жёсткие диски EIDE/IDE известны как "hd" и именуются в алфавитном порядке, начиная с "a" (hda, hdb, hdc и т.д.); SCSI/SATA диски чаще всего называются "sd" и также именуются в алфавитном порядке, начиная с "a" (sda, sdb, sdc ... и т.д.). Разделы дисков нумеруются, начиная с номера 1 ( hda1, hdb1, hdb2, hdb3, hdc1, sda1, sda2). Флоппи диск известен как fd.

Разметка жесткого диска в Linux соответствует PC-стандартам и не является специфичной для Linux (т.е. разметка такая же, как и в MS Windows). У каждого жесткого диска должна быть таблица разделов, в которой может быть от 0 до 4 строк. Для большего количества разделов создается расширенный (extension) раздел. Расширенный раздел, номер которого начинается с 5, содержит логические разделы, нумерующиеся с 6. Ниже представлена обычная разметка жесткого диска (рассмотрен случай, когда на одном физическом жестком диске расположены MS Windows и Linux:

Имя Тип файловой системы Размер Исользуется для Точка монтирования Заметки
hda1 NTFS 32 GB Windows OS /win Has been squeezed
hda2 NTFS 8 GB Windows Restore Do not mount Has been moved
hda5 - 80 GB Hold all Linux files - Extended part-n
hda6 ext3 12 GB Linux OS / Logical part-n
hda7 swap 1 GB Extension of RAM - Logical part-n
hda8 ext3 or reiserfs 67 GB Users' files /home Logical part-n


Более продвинутая версия разметки:

Имя Тип файловой системы Размер Используется для Точка монтирования Заметки
hda1 NTFS 32 GB Windows OS /win Has been squeezed
hda2 NTFS 8 GB Windows Restore Do not mount Has been moved
hda5 - 80 GB Hold all Linux files - Extended part-n
hda6 reiserfs 14 GB Linux OS / Logical part-n
hda7 reiserfs 5 GB User-installed programs /usr/local Logical part-n
hda8 swap 2 GB Swapping - Logical part-n
hda9 ext3 or reiserfs 20 GB Users' files /home Logical part-n
hda10 ext3 or reiserfs 35 GB Users' data /data Logical part-n
hda11 reiserfs 4 GB Encrypted data /enc (no mounting by default) Logical part-n

Безопасность в Linux

Суперпользователь / Обычный пользователь Linux

В Linux существуют суперпользователь, обладающий администраторскими правами (так называемый "root"), а также обычные пользователи ("users"). Пользователи Linux должны всегда заходить в систему как обычный "user", и получать привилегии "root" только тогда, когда это действительно необходимо. Сохранение администраторских привилегий или же вход в систему как "root" создаёт значительный риск серьёзно повредить систему или даже удалить ее, поскольку она не будет препятствовать действиям "root" даже в том случае, если они ошибочны. Поэтому работать с привилегиями "root" нужно только в тех ситуациях, когда вы точно знаете, что делаете.

Некоторые определения термина "суперпользователь":

Печать в Linux

Философия общего формата печати

С целью упрощения поддержки печати в Linux используется концепция так называемого "общего формата печати" (common print format). Идея заключается в том, что печать в Linux всегда производится в одном-единственном формате (формат PostScript), таким образом драйвер принтера (совместимого с Linux) должен воспринимать только этот формат и переводить его на "язык", понятный самому принтеру. Это чрезвычайно эффективный подход, поскольку, во-первых, разработчикам приложений, использующих печать, нужно обеспечивать поддержку всего лишь одного формата, а, во-вторых, производителям принтеров нужно закладывать в код драйвера принтера поддержку единственного формата.

Поэтому все принтеры в Linux обычно рассматриваются как PostScript-принтеры, а приложения выдают PostScript-данные на печать. Если же сам принтер не понимает PostScript (как это и происходит в большинстве случаев), перевод PostScript-данных на "язык", понятный драйверу принтера (PCL, ESC/P 2 или нечто подобное) берёт на себя PostScript-интерпретатор GhostScript/foomatic.

Более подробное объяснение теории печати с использованием Postscript в операционных системах, подобных Linux, вы можете найти здесь: http://www.linuxprinting.org/kpfeifle/LinuxKongress2002/Tutorial/III.PostScript-and-PPDs/III.PostScript-and-PPDs.html

PPD-файлы/PostScript-принтеры

Многие Linux-приложения используют специальные PPD-файлы (PostScript Printer Definition, PPD) для того, чтобы знать особенности принтеров. Использование такого файла даёт возможность выбрать в диалоге печати любую из поддерживаемых данным принтером возможностей, а также просмотреть дополнительную информацию о самом принтере. PPD-файл представляет собой обычный текстовый файл, в котором (в соответствии с определённым форматом) описаны все поддерживаемые принтером возможности; кроме того, в этом файле содержится особый код, необходимый для внедрения той или иной возможности в задания на печать. Приложения, которым необходима печать, читают PPD-файлы и могут отобразить на экране информацию обо всех возможностях, поддерживаемых драйвером конкретного принтера. Если пользователь выбирает особые возможности (например, дуплексный режим (duplex) или стапелирование (stapling)), программа будет знать, какой именно код включать в задание печати и как работать с самим печатающим устройством. Кроме того, PPD-файлы также могут использоваться в MS Windows, Mac, or Line Printer Remote / Line Printer Daemon (LPR/LPD) clients для получения доступа к возможностям и настройкам принтера.

Каждый PostScript-принтер снабжается PPD-файлом, содержащим специфичную для данной модели принтера информацию. В том случае, если принтер поддерживает общую систему печати Unix (Common Unix Printing System, CUPS) и LPR/LPD, он может использоваться со всеми другими системами печати с помощью настраиваемого фильтра принтера (configurable printer filter Foomatic). Foomatic - это специальный программный код, преобразующий PostScript-данные в понятный самому принтеру формат, используя для этого PPD-файл. Это необходимо низкоуровневому драйверу (специфичному для каждого принтера) для того, чтобы генерировать конечный код. Обычно foomatic использует ghostscript, в зависимости от настроек, перечисленных в PPD-файле принтера. CUPS также поддерживает протокол Интернет-печати (Internet Printing Protocol, IPP), определяющий такие стандартные вещи, как обслуживаение заданий печати, разрешение, размеры и некоторые другие.

За подробностями обращайтесь сюда:

Реализация печати в openSUSE:

Подробнее об особенностях печати, специфичных именно для openSUSE, читайте здесь:

Прочие ссылки

  • Wikibook Linux For Newbies Guide: [5]
  • Wikpedia on Linux [6]