Основы работы в операционной системе unix.  Операционные системы: Основы операционной системы UNIX. Объединение файловых систем

Основы работы в операционной системе unix.  Операционные системы: Основы операционной системы UNIX. Объединение файловых систем

21.06.2021

Для начала неплохо было бы составить общее представление о том, что такое Linux и как он работает.

А начать можно с Введения в Linux (sxw). Хотя есть и другие введения. Например это. Вот дока Р.С.Клочкова и Н.А.Коршенина Основы UNIX и Linux (SXW), (PDF).

Основы ОС UNIX. Учебный курс . (SXW) (PDF)
Copyleft (no c) — Fuck copyright! 1999-2003 В. Кравчук, OpenXS Initiative
Этот краткий (предположительно, 16 часов, из которых 6 — практические занятия) вводный курс предназначен для ознакомления с архитектурой, особенностями и основными средствами ОС UNIX. При успешном освоении, курс позволит свободно и продуктивно работать в ОС UNIX в качестве пользователя и продолжить изучение администрирования или программирования этой операционной системы.
Изложение ведется, в основном, без привязки к особенностям какой-либо версии UNIX, но при необходимости конкретизации, она делается для систем SVR4, в частности, ОС Solaris 8.
Также предлагаю книгу Андрея Робачевского «Операционная система UNIX»
Вот что пишет автор: «Данная книга не является заменой справочников и различных руководств по опера ционной системе UNIX. Более того, сведения, представленные в книге, подчас трудно найти в документации, поставляемой с операционной системой. Эти издания насыщены практическими рекомендациями, скрупулезным описанием настроек тех или иных подсистем, форматов вызова команд и т. п. При этом за кадром часто остаются такие вопросы, как внутренняя архитектура отдельных компонентов системы, их взаимодействие и принципы работы. Без знания этой «анатомии» работа в операционной системе превращается в использование заученных команд, а неизбежные ошибки приводят к необъяснимым последствиям. С другой стороны, в данной книге вопросам администрирования UNIX, настройке конкретных подсистем и используемым командам уделено значительно меньше внимания. Цель данной книги заключается в изложении основ организации операционной системы UNIX. Следует иметь в виду, что именем UNIX обозначается значительное семейство операционных систем, каждая из которых имеет свое название и присущие только ей особенности. В этой книге сделана попытка выделить то общее, что составляет «генотип» UNIX, a именно: базовый пользовательский и программный интерфейсы, назначение основных компонентов, их архитектуру и взаимодействие, и на основе этого представить систему в целом. В то же время там, где это имеет значение, приводятся ссылки на конкретную версию UNIX».

Лично мне очень помогает чтение прекрасной книги Виктора Алексеевича Костромина Linux для пользователя ” которую могу Вам предложить (kos1 , kos2 , kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
А вот эта же книга, но уже в PDF (kos1, kos2, kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
А теперь еще и в SXW (kos1, kos2, kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
Если Вы предпочитаете документы в формате HTML, то по приведенным выше ссылкам можно попасть на страницу, откуда предлагается закачать архивы глав книги именно в этом формате.

Из фундаментальных книг могу также посоветовать прекрасное руководство Карла Шрёдера «Linux. Сборник рецептов» . Сразу предупреждаю, что по этой ссылке книга в формате.pdf, и весит она 50 МВ . Но возможен и альтернативный вариант — та же книга, только в

ФОРМАТЕ.ТХТ Аннотация к книге следующая:»Предлагаемое издание содержит уникальную коллекцию советов, инструментов и сценариев; вы найдете ряд готовых отлаженных решений сложных проблем, с которыми сталкивается любой администратор, настраивающий Linux-сервер; эти решения пригодятся и при настройке небольших сетей, и при создании мощных распределенных хранилищ данных. Книга написана в уже ставшей популярной форме книг рецептов издательства O’Reilly в формате «Проблема-Решение-Обсуждение». Для опытных пользователей, программистов, системных администраторов, студентов вузов, аспирантов и преподавателей». Если вдруг ссылка прекратит существование, просьба сообщить — возможно выложу файл.pdf и на свой сайт.

Мне очень нравится серия статей и заметок Алексея Федорчука, Владимира Попова и ряда других авторов, которые я беру отсюда: http://unix.ginras.ru/ . Вот интереснейшие материалы о Linux в целом и его отдельных компонентах в частности (Linux-all.zip, Linux-all2.zip, Linux-all3.zip, Linux-all4.zip).
SXW — (Linux-all. zip, Linux-all2.zip, Linux-all3.zip, Linux-all4.zip),
А также книга Алексея Федорчука»Сага о POSIX или Введение в POSIX’ивизм » в которой освещаются общие вопросы ряда систем, в первую очередь о UNIX-подобных. Название говорит само за себя. По словам авторов, книга предназначена для пользователей (в том числе и начинающих). Вот файлы — Часть 1 , Часть 2 , Часть 3 , Часть 4 .
И SXW — Часть1, Часть2, Часть3, Часть4.

А если интересна история СВОБОДНЫХ СИСТЕМ, то можете почитать Подборку статей, под общим названием Дорога, открытая всем » (sxw) и, по словам автора, освещает общие вопросы Open Sources, POSIX-систем, историю UNIX, BSD, Linux

Также, для понимания принципов работы ОС, понятие процесса, наравне с понятием файла, является, безусловно, одним из самых важных понятий. Этому посвящена статья В.А. Костромина » Процессы и демоны в Linux » (SXW .

Text-Terminal-HOWTO (SXW)v 0.05, June 1998
Этот документ объясняет, что такое текстовые терминалы, как они работают, как устанавливать и конфигурировать их и дает некоторую информацию об их ремонте. Он может отчасти использоваться, даже если у вас нет руководства по терминалу. Хотя этот труд написан для реальных терминалов на системе Linux, часть его также применима для эмуляторов терминала и/или других Unix-подобных систем.

Также очень полезно, для более быстрого и легкого освоения консоли почитать прекрасно иллюстрированное руководство — Работаем с историей команд (SXW).

Вот материалы посвященные командным оболочкам, или командным интерпретаторам, именуемых также просто шеллами (shell). В первую очередь подборка статей которые объединены под названием Шелл и утилиты (SXW), (PDF).

Наиболее популярной оболочкой на сегодняшний день является Bash — зто сокращение Bourne Again SHell (Еще одна оболочкa Борна). Советую прочесть BASH конспект , (SXW), (PDF)
Дата создания: 16.12.97.

А также Особенности работы оболочки bash (SXW), (PDF).
Документ кратко суммирует то, что Bash унаследовал от борновской оболочки: структуры контроля оболочки, встроенные команды, переменные и другие особенности. Здесь также перечисляются наиболее значительные различия между Bash и борновской оболочкой.

Интерпретатор командного языка shell Shell (SXW), (PDF) — командный язык, могущий выполнять как команды, введенные с терминала, так и команды, хранящиеся в файле.

Программирование на Shell (UNIX) (SXW), (PDF)

Если зависает Windows, пользователь делает некие телодвижения, а затем, убедившись в «тщете и суетности этого мира», со спокойным сердцем нажимает RESET. В Линуксе все обстоит иначе. Об это статья — Висит? Снимем! (SXW)

Вопросы и ответы по kppp (SXW)

Статья В.А.Костромина « Иерархия каталогов и файловых систем в Linux » (SXW) в которой рассказывается о разработанном в рамках проекта Open Source стандарте на структуру каталогов UNIX-подобных операционных систем (подразумеваются Linux и BSD-системы).

О файлах (коими в Linux, по сути, являются каталоги, и даже устройства) но в несколько другом ракурсе рассказывает руководство Файлы и права доступа к ним (SXW).
Очень рекомендую. Разжевано замечательно.

Команды и сокращения Linux (SXW).
Это — практическая подборка программ, которые мы используем наиболее часто, считаем полезными, и которые присутствуют в наших дистрибутивах Linux (RedHat или Mandrake).

Консоли UNIX (SXW) – заметки о различных консолях.

А вот нехилое руководство Mandrake Linux 9.0 Руководство по Командной Строке (SXW).

Монтирование файловых систем из устройств и файлов (SXW) (PDF)
Дата создания документа: 26.07.2004
Дата последнего изменения: 20.08.2004
Автор: Князев Алексей.

UNIX (Unix, Юникс) - группа переносимых, многозадачных и многопользовательских операционных систем . Первая операционная система Unix была разработана в конце 1960-х - начале 1970 годов американской исследовательской фирмой Bell Laboratories. Первоначально она была ориентирована на миниЭВМ, а затем стала применяться на ЭВМ всех классов, включая мейнфреймы и микроЭВМ. Этому способствовала адаптация Unix на 32-разрядные микропроцессоры корпорации Intel, которая была осуществлена в 1990 году. Функциональные возможности и гибкость Unix обеспечили ее использование в разнородных автоматизированных системах, а также создание десятков стандартов для производителей вычислительной техники. Операционные системы семейства Unix:

Linux - версия операционной системы Unix для вычислительных платформ, создаваемых на базе процессоров Intel;
HP-UX - версия фирмы Hewlett-Packard; постоянно развивается и отличается совместимостью с IE-64, являющимся новым стандартом 64-битной архитектуры;
SGI Irix - операционная система ПК Silicon Graphics на базе System V Release 3.2 с элементами BSD. На этой версии Unix студия Industrial Light & Magic создала фильмы «Терминатор 2», «Парк Юрского периода».
SCO Unix - версия фирмы Santa Cruz Operation для платформы Intel, не зависящей от производителей аппаратной части;
IBM AIX - реализована на основе System V Release 2 с некоторыми расширениями BSD;
DEC Unix - операционная система с поддержкой кластеров; ориентирована на совместную работу с Windows NT;
NeXTStep-4.3 BSD - ОС, реализованная на основе ядра Mach, использовалась в компьютерах NeXT; принадлежит фирме Apple Computer и служит операционной системой для компьютеров Macintosh;
Sun Solaris - операционная система для SPARC-станций на базе System V Release 4 с многочисленными дополнениями.

Операционная система Unix появилась в период развития мини-компьютеров. В 1969 году исследовательская фирма Bell Labs приступила к разработке компактной операционной системы для 18-разрядного мини-компьютера DEC PDP-7 корпорации Digital Equipment. Первоначально система была написана на ассемблере и датой рождения Unix считается 1 января 1970 года. В 1973 году ее переписали на языке Cи, разработка которого велась в Bell Labs. Тогда же состоялось официальное представление операционной системы. Ее авторы - сотрудники Bell Labs Кен Томпсон (Ken Tompson) и Деннис Ритчи (Dennis М. Ritchie) - назвали свое детище «универсальной ОС с разделением времени (time-sharing)».

В основу Unix легла иерархическая файловая система. Каждый процесс рассматривался как последовательное исполнение программного кода в рамках автономного адресного пространства, а работа с устройствами трактовалась как работа с файлами. В первой версии было реализовано ключевое понятие процесса, позднее появились системные вызовы (fork, wait, exec, exit). В 1972 году за счет введения каналов (pipes) была обеспечена конвейерная обработка данных.

К концу 1970-х годов Unix превратилась в популярную операционную систему, чему способствовали льготные условия ее распространения в университетской среде. Unix портировали на многие аппаратные платформы, начали появляться ее разновидности. С течением времени Unix стала стандартом не только для профессиональных рабочих станций, но и для крупных корпоративных систем. Надежность и гибкость настроек UNIX снискали ей популярность, особенно среди системных администраторов. Она сыграла активную роль в распространении глобальных сетей, и, прежде всего, Internet.

Благодаря политике раскрытия исходных текстов получили распространение многочисленные бесплатные диалекты Unix, работающие на платформе Intel х86 (Linux, FreeBSD, NetBSD, OpenBSD). Полный контроль над текстами сделал возможным создание систем с особыми требованиями к производительности и безопасности. Unix ассимилировала и элементы других операционных систем, в результате были выработаны программные интерфейсы POSIX, Х/Ореn.

Существуют две независимо развиваемые ветви UNIX - System V и Berkeley, на основе которых формируются диалекты Unix и Unix-подобные системы. BSD 1.0, ставшая основой некоммерческих диалектов UNIX, была выпущена в 1977 году в Калифорнийском университете в Беркли на основе исходных текстов UNIX V6. В 1982-1983 годах в Unix System Laboratories (USL) были выпущены первые коммерческие диалекты Unix - System III и System V. Версия Unix System V легла в основу большинства последующих коммерческих вариантов. В 1993 году AT&T продала права на Unix вместе с лабораторией USL компании Novell, которая на базе System V разработала диалект UNKWare, принадлежащий фирме Santa Cruz Operation под названием SCO UNIXWare. Товарный знак Unix принадлежит компании X/Open Company.

Unix получила распространение благодаря способности работать на разных аппаратных платформах - переносимости (portability), или мобильности. Проблема мобильности в UNIX была решена путем унификации архитектуры операционной системы и использования единой языковой среды. Разработанный в Bell Labs язык Си стал связующим звеном между аппаратной платформой и операционной средой.

Многие проблемы переносимости в Unix были решены за счет единого программного и пользовательского интерфейса. Решением проблемы согласования многочисленных диалектов Unix занимаются две организации: комитет IEEE по стандартам переносимых приложений (PASC, Portable Applications Standards Committee) и X/Open Company (The Open Group). Эти организации разрабатывают стандарты, дающие возможность для интеграции разнородных операционных систем, в том числе не имеющих отношения к Unix (IEEE PASC - POSIX 1003, X/Open - Common API). Так, POSIX-совместимыми системами являются Open-VMS, Windows NT, OS/2.

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

В дальнейшем, путем выделения из традиционного ядра минимально необходимого набора средств, сформировалось микроядро (microkernel). Наиболее известные реализации микроядер Unix - Amoeba, Chorus (Sun Microsystems), QNX (QNX Software Systems). Микроядро Chorus занимает 60 Кбайт, QNX - 8 Кбайт. На основе QNX разработано 30 Кбайт POSIX-совместимое микроядро Neutrino. В Университете Карнеги-Меллона в 1985 году было разработано микроядро Mach, использованное в NeXT OS (NeXT), MachTen (Mac), OS/2, AIX (для IBM RS/6000), OSF/1, Digital UNIX (для Alpha), Windows NT, BeOS.

В России операционная система Unix применяется как сетевая технология и операционная среда для разных компьютерных платформ. На основе Unix сформирована инфраструктура российской Internet. С начала 1980-х годов отечественные работы по операционной системе Unix велись в Институте атомной энергии им. И. В. Курчатова (КИАЭ) и Институте прикладной кибернетики Минавтопрома. Результатом объединения этих коллективов стало рождение операционной системы ДЕМОС (Диалоговой единой мобильной операционной системы), которая, помимо отечественных аналогов PDP-11 (СМ-4, СМ-1420), была перенесена на ЕС ЭВМ и Эльбрус. Несмотря на свою универсальность, Unix уступил рынок персональных компьютеров семейству Windows компании Microsoft. Операционная система Unix сохраняет позиции в области ответственных систем (mission-critical systems) с высокой степенью масштабируемости и отказоустойчивости.

Транскрипт

1 Введение Курс «Основы ОС UNIX» предназначен для студентов начальных курсов факультетов, заинтересованных в подготовке разработчиков программного обеспечения того или иного уровня. Обязательным предварительным для ОС UNIX является вводный курс по программированию на языке С, как базовый, а также курс по основам архитектуры компьютеров. Структура курса предлагает 13 лекций и соответствующие лабораторные работы, помогающие понять общие принципы функционирования операционной системы типа UNIX. Материал лекций представляется в тезисной форме, что оставляет большую степень свободы для глубины презентации тем в лекционном материале. Кроме того, длительность некоторых лекций может варьироваться от 2 до 6 часов, если есть такая необходимость. Лабораторные занятия не предполагают использования специализированной лаборатории или определенного клона UNIX/Linux и могут выполняться на персональных компьютерах студентов с использованием любого доступного программного обеспечения UNIX, Solaris, Linux, FreeBSD, Mac OS X и т.д., при условии установки соответствующих пакетов из депозитариев для разработчиков. Практически, обычно, использовался удаленный доступ к Linux серверу по протоколу SSH, для Windows рабочих станций и PuTTY 1 - в качестве SSH клиента. Заметим, наконец, что все задания выполняются в командном интерпретаторе shell (bash) и здесь не обсуждаются различные существующие X Window (X11) интерфейсы (CDE, GNOME, KDE, Xfwm, Xfce или wmii и др.), что позволяет использовать минимальные конфигурации ядра и сконцентрироваться на изучении ядра ОС с самого начала курса. Почему же, все таки, Linux выбирается для представления основ операционных систем, а, например, не Microsoft Windows,? Причин несколько: открытый код Linux, идеология UNIX, заложенная в нем, основные идеи ОС, реализованные в UNIX/Linux, используются и в Microsoft Windows: многозадачность, иерархическая файловая система, многопользовательская система, виртуальная память, встроенный сетевой стек, многопоточность, и, главное, ядро Linux все чаще выбирается для построения компьютерных систем различного уровня от распределенных и облачных серверов в корпоративной системе до мобильных, и внедренных в управляющие чипы систем. 1 Власов С.В ФКН ВГУ, Воронеж 1

2 Лекция 1. Основные понятия. ОС операционная система это программный продукт, предназначенный для управления ресурсами компьютера: аппаратурой, данными, программами и процессами. Обязательным компонентом ОС является ядро, все остальные компоненты являются приложениями, добавляемыми в ОС при необходимости. Например, когда говорят: «Linux версии...» имеют ввиду ядро (kernel), но под GNU/Linux подразумевают некоторый клон с определенным ядром и набором приложений (Debian, Red Hat, Susse, и т.д.) Ядро ОС обязательный компонент ОС, предоставляющий структуры данных, программы и процессы, а также аппаратно-зависимый код, необходимые для управления ресурсами компьютера. Существуют различные принципы построения ядра: монолитное ядро (Linux) или микроядро (напр., Minix). Ядро можно настраивать, добавляя или удаляя некоторые компоненты (модули, драйверы). Файл определенная последовательность байт. В ОС UNIX почти все представляется файлом. При этом различают только 7 типов файлов (в скобках указан соответствующий символ: в выводе команды ls -l) регулярные файлы (-) специальные файлы: директорий, (d) символическая ссылка, (l) именованный канал, (p) символьное устройство, (c) блочное устройство, (b) UNIX сокет. (s) За распознавание и обработку внутренней структуры файла отвечает приложение, для которого этот файл был предназначен или которым был создан. Иерархическая файловая система абстракция для представления упорядоченности файлов в виде дерева каталогов. Корнем дерева является каталог с именем «/», который называется корневой (root) файловой системой (не путать с /root). Особенность иерархической файловой системы Linux заключается в том, что она является виртуальной, в том смысле, что любой узел в единой иерархии может быть связан с собственной файловой системой определенного типа (ext2fs, ext3fs, riserfs, vfat и т.д.), располагающейся на отдельном устройстве, разделе или непосредственно в памяти. Директорий в иерархии, используемый в каждый данный момент по-умолчанию называется текущим рабочим каталогом. Можно использовать абсолютные имена файлов, начиная от корня /, или относительные имена от текущего рабочего каталога (символ «.» - точка), когда родительский каталог обозначается символами «..» (две точки горизонтально без пробелов). Программа это файл, содержащий исполняемые инструкции. Файл, содержащий печатный текст программы на языке программирования, называется исходным модулем программы. Исходник, написанный на скрипт-языке (shell, perl, python, ruby и т.д.) исполняется непосредственно интерпретатором языка. Исходники на других языках (C, Fortran и т.п.) подлежат компиляции для преобразования исходного текста в исполняемый программный модуль, содержащий инструкции процессора в двоичном формате (эволюционирующем от a.out и COFF до ELF). Процесс это программа во время выполнения. Процессы также организованы в иерархию с отношениями «родитель потомок». Все процессы в UNIX имеют уникальный целочисленный идентификатор (PID). Корневым процессом иерархии является процесс с номером 1 это процесс init, порождаемый при загрузке ядра операционной системы и порождающий другие процессыпотомки. При работе ОС, любой процесс, кроме init, может быть остановлен. Существует также скрытый процесс 0 - swap, отвечающий за страничный обмен виртуальной памяти. Логон процесс это родительский процесс для всех процессов, порождаемых пользователем Власов С.В ФКН ВГУ, Воронеж 2

3 системы, работающей в многопользовательском режиме. Задачей этого процесса является проверка атрибутов безопасности (регистрационного имени и пароля) пользователя и запуск процесса, обеспечивающего интерфейс взаимодействия ОС с пользователем обычно, это интерпретатор командного языка shell. Интерпретатор shell это программа, входящая в состав конкретной ОС для обеспечения взаимодействия пользователя с ОС. В системах UNIX/Linux используются различные интерпретаторы: bash, csh, tcsh, ksh, zsh и многие другие. Стандартным интерпретатором в системах GNU/Linux обычно выбирается bash. Интерпретатор предоставляет командную строку для запуска на выполнение стандартных команд и программ пользователя. Власов С.В ФКН ВГУ, Воронеж 3

4 Практические примеры. Вход в систему через SSH клиент (PuTTY) В MS Windows выберите Start->Run и введите: X:/Putty/Putty.exe В открывшемся окне Putty Configuration введите в поле Host Name (or IP address): www2 Щелчок на Open приведет к соединению с сервером www2 и появлению логон окна, в котором при первой попытке соединения с Linux сервером появится сообщение PuTTY Security Alert об отсутствии в кэше реестра нового RSA ключа согласитесь с включением ключа в кэш для доверительного соединения с сервером теперь и в будущем. Щелкните Yes (Да). В DOS окне появится приглашение Власов С.В ФКН ВГУ, Воронеж 4

5 Logon as: имя password: где вы вводите ваше регистрационное имя (вместо name) и пароль. Будьте внимательны при вводе пароля, поскольку нажимаемые клавиши при вводе никак не отображаются, даже звездочек нет. Если все выполнено правильно, то вы увидите в этом же окне подсказку командной строки интерпретатора shell 2:~$ _ Теперь вы можете взаимодействовать с ОС Linux через интерфейс командной строки. 3 В дальнейшем мы будем использовать только символ $ для обозначения командной строки, хотя у вас перед ним может отображаться путь к текущему рабочему каталогу. Где мы? (домашний директорий) При регистрации в системе каждому пользователю назначается защищенный домашний директорий для сохранения персональных файлов. При входе в систему логон процесс автоматически подключает ваш домашний директорий в качестве текущего рабочего каталога. Три следующие команды должны показать один и тот же результат полный путь к вашему домашнему каталогу. $ pwd $ echo ~ $ echo $HOME Что мы имеем? (автоматически генерируемые файлы) Содержимое текущего рабочего каталога можно вывести командой: $ ls При первом входе в систему этот список обычно пуст. 4 Однако, при регистрации пользователя в его домашнем каталоге создаются некоторые скрытые служебные файлы, которые могут изменяться самим пользователем для настройки требуемой среды. Ключ -a команды ls позволяет увидеть в списке содержимого текущего каталога все скрытые файлы, именованные с префиксом «.» (точка) $ ls -a Кстати, в этот список включены также анонимные имена текущего каталога «.» и родительского каталога «..». Назначая собственному файлу имя с префиксом «.» (точка) вы делаете его скрытым. Какая используется система? Выполнение операций и возможности натройки системы зависят от версии ОС, которую вы используете. Чтобы получить информацию об этом, воспользуйтесь командой $ uname -a Краткую справку о параметрах и ключах команды можно получить используя ключ help, например, 2 При возникновении проблем соединения с сервером или вводом имени и пароля у вас есть только один выход обратитесь к системному администратору сервера. 3 Символ $ перед курсором является признаком командной строки и принят по-умолчанию для обычного пользователя в командном интерпретаторе bash. (Для суперпользователя root используется символ #) 4 Возможно у вас имеется катало public_html, который можно использовать для обмена файлами между Linux и MS Windows системами благодаря соответствующему сервису. Власов С.В ФКН ВГУ, Воронеж 5

6 $ uname --help Подробное описание команд и функций UNIX можно получить из документации, называемой, manстраницы («manual pages» - руководство по системе): $ man pwd $ man ls $ man echo $ man uname Страницы руководства представляются в специальном формате nroff /troff/groff и форматируются при выводе соответствующей утилитой в зависимости от типа устройства вывода. Завершение просмотра страниц руководства осуществляется нажатием клавиши Q $ man man Файлы руководства обычно хранятся в упакованном виде (суффикс.gz или.bz2) и организованы по разделам: 1. Общие команды 2. Системные вызовы 3. Функции библиотеки С 4. Специальные файлы 5. Форматы файлов и конвертация 6. Игры и экранные заставки 7. Дополнительные 8. Команды и демоны для системного администрирования Номер раздела используется при ссылке на используемую команду или функцию, например, printf/3 и указывается первым параметром команды $ man 1 printf $ man 3 printf Директорий, в котором располагается страница руководства по команде можно определить используя ключ -w $ man -w команда Иерархическая файловая система Команда ls может использоваться для просмотра списка содержимого любого каталога в иерархии файловой системы (независимо от физического устройства и типа файловой системы на разделе или в памяти). Например, корневая файловая система отображается командой $ ls / Однако, для того, чтобы вывести на экран структуру всего дерева понадобится изрядная изобретательность, например, $ ls -R grep ":$" sed -e "s/:$//" -e "s/[^-][^\/]*\//--/g" -e "s/^/ /" -e "s/-/ /" где использованы фильтр регулярных выражений grep, потоковый редактор sed и неименованные каналы (pipes), обозначаемые символом (пайп). В своем домашнем каталоге вы можете создать новый (пустой) директорий узел в иерархии, например, lab1 Власов С.В ФКН ВГУ, Воронеж 6

7 $ mkdir lab1 Любой узел в иерархии может быть выбран в качестве текущего $ cd lab1 $ pwd Для возврата в свой домашний директорий (определяемый переменной окружения HOME) используйте команду cd без параметров $ cd $ pwd Удалить пустой директорий можно командой rmdir, например, $ rmdir lab1 Если директорий не пуст, то последняя команда (если lab1 содержит некоторые файлы) выведет сообщения rmdir: lab1: Directory not empty и удаление не будет выполнено. В текущем директории можно создать, например, текстовый (регулярный) файл. Для этого можно воспользоваться перенаправленным выводом команды echo $ echo "echo Print directory tree " > tree Создается файл tree, содержимое которого можно вывести командой $ cat tree или в постранично отформатированном виде $ pr tree Можно даже добавить новую строку в конец существующего файла, например, $ echo using grep and sed >> tree $ cat tree Можно использовать строчный редактор текстов ed стандартный редактор, предназначенный для редактирования текстов с консоли типа пишущей машинки. $ ed tree a ls -R grep ":$" sed -e "s/:$//" -e "s/[^-][^\/]*\//--/g" -e "s/^/ /" -e "s/-/ /". wq $ cat tree Фактически мы создали здесь файл с командами, который можно будет выполнять как новую команду, если объявить его «исполняемым»: $ chmod +x tree $./tree Власов С.В ФКН ВГУ, Воронеж 7

8 Заметим, что попытка выполнить файл без указания текущего директория, т.е. просто tree, а не./tree как показано выше, не приведет к обнаружению файла в текущем каталоге. Это связано с тем, что из соображений безопасности анонимный текущий каталог не включен в переменную окружения PATH, используемую для поиска программы запускаемой на выполнение по имени. $ echo $PATH Полный список переменных окружения и их значения пользователь может получить командой: $ env Для создания текстовых файлов можно также использовать команду cat с перенаправлением вывода в файл $ cat > file текст Ctrl-D Здесь нажатие клавиш Ctrl-D передает во входной поток символ конец файла (EOF) END OF TRANSMISSION. Можно также добавлять текст в конец файла $ cat >> file добавляемый текст Ctrl-D Для создания больших текстовых файлов, например, с исходниками на языке С используются мощные экранные редакторы текстов, такие как vi/vim, nano или emacs. Удаление файла осуществляется командой $ rm файл Кроме прочих, ключ -r или -R позволяет рекурсивно удалять поддерево каталогов. Для безопасного удаления файлов рекомендуется использовать ключ -i, генерирующий требование для подтверждения удаления. Перемещение и переименование файла осуществляется командой Дата и время $ mv старое новое Текущее системное время и дату можно определить командой $ date Для изменения времени и/или даты используется параметр в формате MMDDhhmmYY. Например, для задания 24 января 8:36 PM 2011 года, нужно ввести $ date Отметим также, что команда time, существующая в системах UNIX показывает время, использованное следующим процессом (реальное время, время выполнения в режиме пользователя, и время в режиме ядра), а не текущее системное время. Попробуйте Власов С.В ФКН ВГУ, Воронеж 8

9 $ time date вы должны получить, примерно, следующее на выходе real user sys 0m0.040s 0m0.000s 0m0.040s Кто еще в системе? ОС UNIX является многопользовательской системой, позволяющей одновременно выполнить логон процесс и работать в системе нескольким пользователям независимо друг от друга. Для определения кто сейчас в системе, используется команда $ who показывающая регистрационное имя пользователя, терминал и время инициации логон процесса. В многопользовательской системе один и тот же пользователь может использовать несколько разных терминалов одновременно (например, несколько параллельных SSH сеансов). Для определения - кто использует текущий терминал можно воспользоваться командой $ whoami Зарегистрированные пользователи Итак, для использования системы вам необходимо быть зарегистрированным пользователем. Регистрацию осуществляет администратор системы с правами суперпользователя, имеющего стандартное имя в системах UNIX/Linux - root. 5 Обычно, все регистрационные записи о пользователях хранятся в единственном файле /etc/passwd, который доступен для чтения всем $ cat /etc/passwd В ранних версия системы в этом же файле сохранялся и зашифрованный пароль (хеш) пользователя (второе поле после имени пользователя, разделенные двоеточием). Но в новейших системах принято сохранять хеши паролей в другом файле /etc/shadow не доступном для чтения никому, коме root. В поле пароля в файле /etc/passwd сохраняется лишь скрытая ссылка на запись в /etc/shadow поэтому, отображается только символ «*». Для изменения текущего пароля в UNIX системах используется команда $ passwd Changing password for имя. (current) UNIX password: текщий пароль пользователя new UNIX зфыыцщкв: новый пароль retype new UNIX password: новый пароль (еще раз точно также, как в предыдущей строке) passwd: password updated successfully При ошибке, или слишком простом пароле появляются сообщения, например, или passwd: Authentication token manipulation error BAD PASSWORD: it is too simple simplistic/systematic 5 Обычно, имя root не используется для входа в систему вместо этого администратор создает для себя обычную регистрационную запись, но использует команду su для выполнения операций, требующих привилегий суперпользователя. В Linux системах популярна группа привилегированных пользователей sudoers, которые получают право на выполнение операций с правами root через команду sudo Власов С.В ФКН ВГУ, Воронеж 9

10 При этом необходимо ввести другой пароль. Заметим, что процесс passwd выполняется в специальном режиме суперпользователя и игнорирует сигнал SIGINT, посылаемый нажатием клавиш Ctrl-C, и таким образом не может быть прерван. Простой способ коммуникации Пользователи, одновременно работающие в системе могут передавать друг другу короткие сообщения с помощью команды $ write имя Пользователь с указанным именем/терминалом сразу получит уведомление Message from ваше_имя on tty0 at 10:30.. и если вы продолжите печатать у себя на терминале (здесь на tty0), то сообщение будет немедленно появляться строка за строкой на терминале у пользователя с указанным в команде именем. Для завершения сообщения необходимо ввести Ctrl-D. Однако, если ваш оппонент не желает получать никаких сообщений, то он использует команду $ mesg n для отключения возможности посылки/приема write сообщений. Для включения такой возможности пользователь должен выполнить команду $ mesg y Если необходимо послать сообщение сразу всем пользователям в системе (у которых включен прием сообщений), можно использовать команду $ wall сообщение до 20 строк Ctrl-D Завершение сеанса $ logout Можно также использовать Ctrl-D или $ exit Команда logout может не завершить сеанс, а вывести одно из двух сообщений или There are stopped jobs not login shell: use "exit" Первое сообщение является предупреждением о том, что в вашем сеансе были запущенны и приостановлены (сигналом SIGSTOP или Ctrl-Z) задания. Вы имеете возможность продолжить выполнение заданий (командами jobs и fg) до их нормального завершения. Но если этого не делать, приостановленные задания будут завершены (по сигналу SIGTERM) при повторном выполнении команды logout или Ctrl-D. Второе сообщение означает, что вы порождали процессы-потомки из оболочки запущенной логон процессом, которые выполняют текущий shell сеанс, не связанный с логон процессом. Власов С.В ФКН ВГУ, Воронеж 10

11 Необходимо выполнить команду exit или Ctrl-D в текущей оболочке, чтобы вернуться в shell-процесс, порожденный при логон. Выводы ОС это сложная программная система, состоящая из подсистем управления различными ресурсами Целью курса является изучение основных особенностей функционирования подсистем ядра ОС UNIX/Linux через интерфейс системных вызовов. Власов С.В ФКН ВГУ, Воронеж 11


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «Камская государственная инженерно-экономическая академия» УПРАВЛЕНИЕ

6.31. Циклы. Сдвиг параметров. for переменная in значения do операторы done for var1 in value1 value2 value3 do echo $var1 done for File1 in $(ls *.sh); do echo $File1 >> All.txt done while условие do

Информационные технологии Лекция 3 1 Оболочка bash 2 Основные сведения Оболочка или shell работа в текстовом режиме (интерфейс командной строки) Графический интерфейс пользователя (GUI) работа в графическом

SHELL Определение: Shell [шэлл] интерпретатор команд операционной системы. Shell ы делятся на два типа, в зависимости от организации работы с пользователем: - интерпретатор командной строки; - графический

2 Навигация Первое, что мы попробуем изучить (после пробных нажатий на клавиши), навигацию в файловой системе Linux В этой главе введем в обиход следующие команды: pwd выводит название текущего рабочего

СибГУТИ Кафедра ВС Программирование на языке высокого уровня (ПЯВУ), семестр 1 2009 2010 учебный год Поляков А.Ю. Лабораторная работа 1. Среда программирования ОС Linux. Цель работы: Познакомиться с программным

Лекция 2. Подсистема управления процессами. Управление процессами в многозадачной системе заключается в выделении ресурсов ядра для каждого запущенного процесса, осуществлении переключения контекста процессов

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. Н.Э. БАУМАНА Факультет «Информатика и системы управления» Кафедра «Автоматизированные системы обработки информации и управления» Сёмкин П.С., Сёмкин

Работа с ОС GNU/Linux в терминальных классах Кафедры ВС Цель работы: познакомиться с программным обеспечением ОС GNU/Linux написать простейшую программу на языке Си. Операционная система (ОС) GNU/Linux

Система BOINC. Занятие проводит: Храпов Николай Павлович Институт Проблем Передачи Информации РАН Практическое занятие Основы работы с ОС Linux Установка BOINC-сервера Практическое занятие Основы работы

Компоненты ОС Основные компоненты ОС 1. Управление процессами 2. Управление основной памятью 3. Управление файлами 4. Управление системой ввода-вывода 5. Управление внешней памятью 6. Поддержка сетей (networking)

Введение в командную строку Linux How to stop worrying and love the shell Алексей Сергушичев Практическая школа по биоинформатике МНЛ «Компьютерные технологии» 19.02.2014 Командная строка Командная строка

Операционная система Linux Лекция 6 Командная оболочка (shell, bash) является интерфейсом командной строки в Unix-подобных ОС, то есть выполняет команды, которые подает пользователь, или которые читаются

Лабораторная работа 4 ЗНАКОМСТВО С ПРОЦЕССАМИ Цель работы Познакомиться с понятием процесса. Научиться получать список имеющихся в системе процессов и управлять их состоянием. 1. Теоретические сведения

Шаблоны имён файлов, поиск файлов и другие возможности UNIX Регистрация в Linux Запустите программу putty.exe Введите ip-адрес Нажмите Open Имя пользователя studentx Пароль studentx 2 Создайте каталог

Оглавление Предисловие 6 Лекция 1. Сеанс работы в Linux 8 1.1 Пользователи системы........................ 8 1.2 Регистрация в системе........................ 13 1.3 Одновременный доступ к системе..................

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

Работа с шаблонами типовых документов Руководство пользователя Cognitive Technologies Москва, 2015 2 АННОТАЦИЯ В настоящем документе приводятся сведения об использовании в программном комплексе «Е1 Евфрат»

Информатика Информационные технологии Лекция 1. Введение в ОС Linux Основные характеристики Linux Реальная многозадачность Многопользовательский доступ Свопирование оперативной памяти на диск Страничная

Другие языки: English русский iridium Server для Raspberry Pi Установка и настройка сервера в проекте i3 lite iridium Sever для Raspberry Pi - это программная реализация iridium Server, которая запускается

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Томский политехнический университет УТВЕРЖДАЮ: Декан АВТФ Гайворонский С.А. 2009 г. ПРОСТЕЙШИЕ СРЕДСТВА SHELL Методические указания к выполнению лабораторных работ

Занятие 3. Тема: Учётные записи в Linux. Вид занятия: лекция, практическое занятие. Учебные вопросы: 1. Понятие учетной записи и аутентификации. Файлы /etc/passwd и /etc/group, /etc/shadow и /etc/gshadow.

Аннотация программы дисциплины «Операционные системы» 1. Цели освоения дисциплины Целями освоения дисциплины «Операционные системы» являются: формирование у студентов базовых знаний, умений и навыков по

Лабораторная работа 2. Навигация по файловой структуре и её обслуживание средствами терминала ОС Xubuntu Практическая часть II. Навигация по файловой структуре и её обслуживание средствами терминала ОС

Page 1 of 7 Новости Техническое оснащение Linux кластер Статистика использования ресурсов Регистрация на Linux кластере Регистрация на SPP-2000 Файловая система AFS Вопросы безопасности в сети Библиотеки

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

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

Практическая работа 10 Работа с файлами в LINUX Цель работы: изучение особенностей работы с файлами в операционной системе Linux. План выполнения работы: 1. Ознакомиться с краткими теоретическими сведениями.

УТВЕРЖДЕН -ЛУ СИСТЕМА ЗАЩИТЫ ИНФОРМАЦИИ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА Dallas Lock Linux Руководство оператора (пользователя) Листов 11 2016 г. 2 Аннотация Настоящее руководство оператора распространяются

Информационные технологии Лекция 2 Команды Linux 2 Команды Linux Команды консоли Linux - взаимодействие между пользователем и ОС Выполняются через командную строку путем ручного ввода За каждой командой

Программно-аппаратный комплекс доверенной загрузки «Блокхост-МДЗ» Руководство по инсталляции ПАК «Блокхост-МДЗ». Руководство по инсталляции. Стр. 2 Аннотация В документе приводится описание инсталляции

Многофункциональный аппаратно-программный комплекс для предоставления услуг связи «ИС РИНО» Базовое ПО Сервер управления СОДЕРЖАНИЕ 1 ВВЕДЕНИЕ... 3 2 СОСТАВ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ... 3 3 УСТАНОВКА СЕРВЕРА...

Рутокен Логон. Руководство администратора 2018 Компания «Актив» В этом документе Данный документ содержит ответы на следующие вопросы: Для чего используется программный продукт Рутокен Логон? (см. стр.

Содержание занятия Терминология Средства удаленного доступа Вход в систему 1 User (юзер) пользователь, учетная запись (account). Объект для учета системных действий. Login (логин) 1. Имя пользователя/учетной

Задачи Часть 1. Запуск FTP из командной строки Часть 2. Загрузка FTP-файла с помощью клиента WS_FTP LE Часть 3. Запуск FTP в браузере Исходные данные/сценарий FTP (протокол передачи файлов) входит в набор

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

И настройка сетевой операционной системы FreeBSD FreeBSD FreeBSD - это современная операционная система для серверов, десктопов и встроенных компьютерных платформ. FreeBSD обеспечивает современные сетевые

ООО "Компания "АЛС и ТЕК" ПО семейства коммутаторов АЛС-24000, вер. 6.01 Руководство по инсталляции Листов 13 2017 2 1. ОБЩИЕ СВЕДЕНИЯ 3 1.1. Назначение и область применения 3 2. ТРЕБОВАНИЯ К КОМПЬЮТЕРУ

IV. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ОРГАНИЗАЦИИ САМОСТОЯТЕЛЬНОЙ РАБОТЫ СТУДЕНТОВ ПРИ ИЗУЧЕНИИ ДИСЦИПЛИНЫ «ОПЕРАЦИОННЫЕ СИСТЕМЫ» п/п Наименование раздела дисциплины 1. Эволюция операционных систем. Назначение

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

4 Лабораторная работа 1. Установка и конфигурация операционной системы на виртуальную машину 1.1. Цель работы Целью данной работы является приобретение практических навыков установки операционной системы

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Национальный исследовательский Томский политехнический университет» УТВЕРЖДАЮ: Начальник учебного

Лабораторная работа 1. Навигация по файловой структуре и её обслуживание средствами интерпретатора командной строки ОС Windows Теоретическая часть. Каталог файл специального вида, содержащий имена подкаталогов

Операционная система Программное обеспечение Операционная система это самая главная программа Операционная система комплекс программ, обеспечивающих взаимодействие всех аппаратных и программных частей

Система лицензирования и защиты конфигураций платформы 1С:Предприятие 8, версия 3.0 Руководство администратора Поддерживаемые операционные системы... 1 Состав системы... 1 Сервер СЛК... 1 Внешняя компонента...

Введение Работа с операционной системой GNU/Linux В настоящее время основным интерфейсом взаимодействия пользователя и настольной операционной системой является графический интерфейс пользователя (Graphic

ПРАКТИЧЕСКАЯ РАБОТА 2 Командная строка OS Windows Цель работы: изучить интерфейс командной строки ОС Windows, приобрести навыки решения типовых задач администрирования операционной системы Windows с использованием

Лабораторная работа 2 Управление файлами в операционной системе Цели и задачи лабораторной работы получение навыков работы с операционной системой типа Linux; изучение базовых основ управления операционной

ДИСПЕТЧЕР ПОДКЛЮЧЕНИЙ ВИРТУАЛЬНЫХ РАБОЧИХ МЕСТ ТЕРМИДЕСК РУКОВОДСТВО АДМИНИСТРАТОРА (подготовка базового рабочего места) 23811505.6200.001.И5.01-2 Листов 17 МОСКВА 2018 1 СОДЕРЖАНИЕ 1 ВВЕДЕНИЕ...4 1.1

ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем Дисциплины "ЯЗЫКИ ПРОГРАММИРОВАНИЯ" "ПРОГРАММИРОВАНИЕ" Практическое занятие 55 ОС GNU/Linux Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич

Приложение РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ Рабочая программа учебной дисциплины Операционные системы и среды разработана на основе Федерального государственного образовательного

2.1. Файлы. Требования к хранению информации: возможность хранения больших объемов данных информация должна сохраняться после прекращения работы процесса несколько процессов должны иметь одновременный

Языки программирования и методы трансляции Презентация к лабораторной работе 2 Операционная система Windows Содержание 2 Содержание 3 Понятие операционной системы Операционная система (ОС) базовое программное

Установка сервера IBM DB2 v11.1 под Linux Для установки IBM DB2 с использованием мастера установки требуется наличие установленного и работающего графического интерфейса, включая базовые пакеты X-Window,

1.1 История ОС Первые (1945-1955г.г.) компьютеры работали без операционных систем, как правило, на них работала одна программа. Когда скорость выполнения программ и их количество стало увеличиваться, простои

Управление драйверами Рутокен при помощи групповых политик 2017 Компания «Актив» В этом документе В этом документе описывается, как использовать групповые политики для автоматического распространения комплекта

Тема: Цель: Практическая работа 23. Основы работы в Ubuntu. Познакомиться с интерфейсом ОС Ubuntu, научиться работать с файлами и каталогами, запускать программы, просматривать текстовые и графические

Средство защиты информации Secret Net Инструкция по локальному обновлению клиента Secret Net Данный документ содержит развернутое описание последовательности действий для локального обновления клиента

Об авторах 15 Введение 17 Структура книги 18 От издательства 20 Глава 1. Краткий обзор основ 21 Некоторые основные команды 21 Отображение даты и времени: команда date 21 Выявление пользователей, зарегистрированных

HV Manager Руководство пользователя 2017 AprelTech, llc. All rights reserved 1 ОГЛАВЛЕНИЕ Введение... 3 Установка и конфигурация... 4 Системные требования... 4 Установка... 5 Конфигурация... 6 Настройка

1 Лабораторная работа 3 «ПЕРЕНАПРАВЛЕНИЕ ПОТОКОВ ДАННЫХ» Потоки и файлы Логически все файлы в системе Linux организованы в непрерывный поток байтов. Любой файл можно свободно копировать и добавлять к другому

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

В данном разделе мы собираемся разъяснить основные понятия связанные с Linux. Выполняя поставленную перед нами задачу мы полагаем, что вы уже имеете представление о компьютерных системах в целом, включая такие компоненты как центральный процессор (ЦП), оперативная память (ОЗУ), материнская плата, жесткий диск, а также другие контроллеры и устройства, связанные с ними.

3.1

Термин «Linux» часто используется для обозначения всей операционной системы, но на самом деле Linux – это ядро операционной системы, которое запускается начальным загрузчиком, запускаемым BIOS / UEFI. Ядро берет на себя роль, похожую на роль дирижера в оркестре, оно обеспечивает согласованную работу аппаратных средств и программного обеспечения. Данная роль подразумевает под собой управление оборудованием, пользователями и файловыми системами. Ядро представляет собой общую базу для других программ, работающих в данной системе, и чаще всего запускает ring zero, также известное, как пространство ядра (kernel space).

Пользовательское пространство

Мы используем термин «пользовательское пространство», чтобы объединить все, что происходит за пределами ядра.

Среди программ, работающих в пространстве пользователя, много основных утилит из проекта GNU, большинство из которых предназначено для запуска из командной строки. Вы можете использовать их в сценариях для автоматизации различных задач. Дополнительную информацию о наиболее важных командах см. в разделе 3.4 « ».

Давайте быстро рассмотрим различные задачи, выполняемые ядром Linux.

3.1.1 Запуск оборудования

Назначением ядра, прежде всего, является управление и контроль над основными компонентами компьютера. Оно обнаруживает и настраивает их, когда компьютер включается, а также когда устройство монтируется или извлекается (например, USB устройство). Это также делает их доступными для более высокоуровневого программного обеспечения благодаря упрощенному программному интерфейсу, поэтому приложения могут использовать преимущества устройств, не обращаясь к деталям, например к слоту расширения, в который вставлена плата. Программный интерфейс также предоставляет определенный уровень абстракции; это позволяет использовать оборудование для проведения видеоконференций, например, использовать вебкамеру независимо от её модели и производителя. Программное обеспечение может использовать интерфейс Video for Linux (V4L) и ядро будет переводить вызовы интерфейса в реальные аппаратные команды, необходимые для работы конкретной веб-камеры.

Ядро экспортирует данные об обнаруженном оборудовании через виртуальные системы /proc/ и /sys/ . Приложения часто получают доступ к устройствам с помощью файлов, созданных в /dev/ . Особые файлы, представляющие диски (например, /dev/sda ), разделы (/dev/sdal ), мыши (/dev/input/mouse0 ), клавиатуры (/dev/input/event0 ), звуковые карты (/dev/snd/* ), последовательные порты (/dev/ttyS* ) и другие компоненты.

Существует два типа файлов устройств: блочные и символьные. Первые имеют характеристики блока данных: они имеют конечный размер, и вы можете получить доступ к байтам в любой позиции блока. Последние ведут себя как поток символов. Вы можете читать и писать символы, но вы не можете искать заданную позицию и изменять произвольные байты. Чтобы узнать тип файла устройства, проверьте первую букву вывода команды Is -1. Это может быть либо b, для блочных устройств, либо c, для символьных устройств:

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

3.1.2 Объединение файловых систем

Файловые системы являются важным аспектом ядра. Системы, основанные на Unix, объединяют все хранилища файлов в одну иерархию, что позволяет пользователям и приложениям получать доступ к данным, зная их местоположение в пределах этой иерархии.

Отправная точка этого иерархического дерева называется root, представленный символом “/”. Данная директория может содержать именованные суб-директории. Например, домашняя суб-директория «/» называется /home/ . Эта суб-директория, в свою очередь, может содержать другие суб-директории и т.д. Каждая директория также может содержать файлы, в которых будут храниться файлы. Таким образом, home/buxy/Desktop/hello.txt относится к файлу под названием hello.txt , который хранится в суб-директории Desktop, находящейся в buxy суб-директории домашнего каталога, который присутствует в root . Ядро компилирует между данной системой именования и местом хранения на диске.

В отличие от других систем, Linux обладает только одной такой иерархией и может интегрировать данные с нескольких дисков. Один из таких дисков становится root, а другие монтируются на директории в иерархии (эта команда в Linux называется mount). Эти другие диски затем становятся доступными под точками монтирования (mount points ) Это позволяет хранить пользовательские домашние директории (которые обычно хранятся на /home/ ) на отдельном жестком диске, который будет содержать директорию buxy (вместе с домашними директориями других пользователей). После того, как вы установили диск в /home/ , эти каталоги становятся доступными в их обычном месте, а различные пути, такие как /home/buxy/Desktop/hello.txt , продолжают работать.

Существует множество форматов файловой системы в соответствии с множеством способов физического хранения данных на дисках. Наиболее широко известны ext2, ext3 и ext4, но существуют и другие. Например, VFAT является файловой системой, которая исторически использовалась DOS и операционными системами Windows. Поддержка VFAT операционной системой Linux позволяет жестким дискам быть доступными как под Kali, так и под Windows. В любом случае, вы должны подготовить файловую систему на диске, прежде чем смонтировать ее, и эта операция называется форматированием .

Команды, такие как mkfs.ext3 (где mkfs расшифровывается как MaKe FileSystem) обрабатывает форматирование. В качестве параметра эти команды требуют файл устройства, представляющий раздел, который следует отформатировать (например,/dev/sdal , первый раздел на первом диске). Эта операция уничтожает все данные и должна запускаться только один раз, если конечно вы не хотите стереть файловую систему и начать новую работу.

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

3.1.3 Управление процессами

Процесс является исполняемым экземпляром программы, для которой требуется хранить память, как самой программы, так и ее рабочих данных. Ядро отвечает за создание и отслеживание процессов. Когда программа запускается, ядро ​​сначала выделяет некоторую память, загружает исполняемый код из файловой системы в эту память, а затем запускает код. Он содержит информацию об этом процессе, наиболее заметным из которых является идентификационный номер, известный как идентификатор процесса (process identifier (PID)).

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

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

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

Мультипроцессорные Системы (и другие варианты)

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

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

3.1.4 Управление правами

Unix системы поддерживают множество пользователей и групп и позволяют контролировать права доступа. В большинстве случаев, процесс определяется пользователем, который запускает его. Данный процесс может выполнять только те действия, которые разрешены его владельцу. Например, открытие файла требует от ядра проверить процесс на наличие необходимых прав (для получения большей информации конкретно по этому примеру, см. раздел 3.4.4, “Управление правами”)

3.2 Командная строка Linux

Под «командной строкой» мы подразумеваем текстовый интерфейс, который позволяет вводить команды, выполнять их и просматривать результаты. Вы можете запустить терминал (текстовый экран внутри графического рабочего стола или текстовую консоль вне любого графического интерфейса) и интерпретатор команд внутри него (оболочка ).

3.2.1

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


Рисунок 3.1 Запуск терминала GNOME

Например, в системе Kali Linux по умолчанию, GNOME терминал может быть запущен из списка избранных приложений. Также вы можете ввести «terminal» в окне Activities (окно, которое активируется, когда вы передвигаете мышь в левый верхний угол) и нажмите на необходимой вам иконке приложения, которые появятся (Рисунок 3.1, ““).

В случае каких-либо нарушений или некорректной работы вашего графического интерфейса вы все равно можете запустить командную строку на виртуальных консолях (до шести из них могут быть доступны через шесть комбинаций клавиш, начиная с CTRL + ALT + F1 и заканчивая CTRL + ALT + F6 – клавишу CTRL можно не нажимать, если вы уже находитесь в текстовом режиме вне графического интерфейса Xorg или Wayland ).

Вы получаете обычный экран входа, где вы вводите свой логин и пароль, перед тем как получить доступ к командной строке с её оболочкой:

Программа, обрабатывающая введенные вами данные и выполнение ваших команд, называется оболочкой (shell или интерпретатором командной строки). По умолчанию оболочкой, предоставляемой в Kali Linux, является Bash (это означает Bourne Again SHell ). Конечный символ «$» или «#» указывает, что оболочка ожидает вашего ввода. Эти символы также указывают на то, каким образом воспринимает вас Bash, как обычного пользователя (первый случай со значком долларом) или как суперпользователя (последний случай с хэшем).

3.2.2

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

Как только сеанс запущен, команда pwd (которая расшифровывается как print working directory (отобразить рабочий каталог) ) выведет на экран ваше текущее местоположение в файловой системе. Ваше текущее местоположение можно изменить с помощью команды cd название директории (где cd означает (сменить директорию)). В том случае, если вы не указали директорию, куда хотите перейти, вы автоматически вернетесь в вашу домашнюю директорию. Если вы введете cd -, то вы вернетесь в предыдущую рабочую директорию (в ту, в которой вы находились перед вводом последней команды cd). Родительский каталог всегда называется.. (две точки), в то время как текущий каталог обозначается. (одной точкой). Команда ls позволяет вам перечислить содержимое директории. Если вы не указываете дополнительных параметров команда ls, отобразит содержимое текущей директории.

Вы можете создать новую директорию с помощью команды mkdir название директории, а также удалить существующую (пустую) директорию с помощью команды rmdir название директории. Команда mv позволит вам перемещать и переименовывать файлы и директории; удалить файл можно с помощью rm название файла, а копирование файла выполняется с помощью cp исходный-файл целевой-файл.

Оболочка выполняет каждую команду, запуская первую программу с данным именем, которую она находит в каталоге, указанном в переменной среде PATH . Чаще всего эти программы находятся в /bin,/sbin, /usr/bin или /usr/sbin . Например, команда ls находится в /bin/ls; Иногда команда напрямую обрабатывается оболочкой, и в этом случае она называется встроенной командой оболочки (среди них – cd и pwd ); команда type позволяет запросить тип каждой команды.

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

Переменные среды

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

Эти переменные могут быть определены как для системы в/etc/profile так и для пользователя в~/ .profile, но переменные, которые не являются характерными для интерпретаторов командной строки, лучше вставлять в /etc/environment, поскольку эти переменные будут введены во все пользовательские сессии благодаря подключаемому модулю аутентификации (Pluggable Authentication Module (PAM)) – даже если никакая оболочка не выполняется.

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

3.3.1 Стандарт иерархии файловой системы

Как и другие дистрибутивы Linux, Kali Linux организован в соответствии со стандартом Filesystem Hierarchy Standard (FHS), что позволяет пользователям других дистрибутивов Linux с легкостью ориентироваться в Kali. FHS определяет назначение каждой директории. Директории верхнего уровня описываются следующим образом.

  • /bin/: основные программы
  • /boot/: Ядро Kali Linux и другие файлы, необходимые для его раннего процесса загрузки
  • /dev/: файлы устройства
  • /etc/: файлы конфигурации
  • /home/: личные файлы пользователей
  • /lib/: основные библиотеки
  • /media/*: точки монтирования для съемных устройств (CD-ROM, USB накопители и т.д.)
  • /mnt/: временные точки монтирования
  • /opt/: дополнительные приложения, предоставляемые третьими лицами
  • /root/: личные файлы администратора (файлы root)
  • /run/: непостоянные файлы рабочего процесса, которые не сохраняются после перезагрузки (еще не включённые в FHS)
  • /sbin/: системны программы
  • /srv/: данные, используемые серверами, расположенными в этой системе
  • /tmp/: временные файлы (эта директория часто опустошается после перезагрузки)
  • /usr/: приложения (эта директория в дальнейшем разделяется на bin, sbin, lib согласно такой же логике, что и в директории root). Кроме того, /usr/share/ содержат данные с независимой архитектурой. Каталог / usr / local / предназначен для использования администратором для установки приложений вручную без перезаписи файлов, обрабатываемых системой пакетирования.(dpkg).
  • /var/: переменные данные, обрабатываемые демоном. Это включает в себя файлы журналов, очереди, буферы и кеши.
  • /proc/ и /sys/ являются характерными для ядра Linux (и не являются частью FHS). Они используются ядром для экспортирования данных в пользовательское пространство.

3.3.2 Домашняя директория пользователя

Содержимое пользовательской директории не является стандартизированным, но, тем не менее, существует несколько заслуживающих внимания условностей. Одна из них заключается в том, что пользовательский домашний каталог часто обозначается тильдой (“~”). Это очень полезно знать, потому что интерпретаторы команд автоматически заменяют тильду верной директорией (которая находится в переменной среде HOME и чье обычное значение является /home/user/ ).

Традиционно файлы конфигурации приложения часто хранятся непосредственно в вашем домашнем каталоге, но их имена файлов обычно начинаются с точки (например, клиент электронной почты mutt хранит конфигурацию в ~/.muttrc ). Обратите внимание, что имена файлов, начинающиеся с точки, по умолчанию скрыты; команда ls перечислит их лишь, в том случае если указана опция –a , а графические файловые менеджеры должны быть явно настроены для отображения скрытых файлов.

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

Эти файлы конфигурации, которые хранятся прямо в вашей домашней директории, часто коллективно называющиеся dotfiles, долгое время расширяются до такой степени, что эти директории могут быть загромождены ими. К счастью, совместная работа под эгидой FreeDesktop.org привела к созданию спецификации базового каталога XDG (XDG Base Directory Specification) конвенции, целью которой является очистка этих файлов и каталогов. В этой спецификации указано, что файлы конфигурации должны храниться в ~/.config , файлы кэша в -/.cache , а файлы данных приложения в -/.local (или вих суб-директориях). Эта конвенция постепенно набирает обороты.

Графический рабочий стол чаще всего использует ярлыки для отображения содержимого каталога /Desktop/ (или любого другого слова, которое является точным переводом данного, в системах, которые не используют английский язык). Наконец, система электронной почты иногда хранит входящие письма в каталоге – /Mail/ .

Это интересно:



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows