MyBooks.club
Все категории

Денис Колисниченко - Linux-сервер своими руками

На сайте mybooks.club вы можете бесплатно читать книги онлайн без регистрации, включая Денис Колисниченко - Linux-сервер своими руками. Жанр: Программное обеспечение издательство -,. Доступна полная версия книги с кратким содержанием для предварительного ознакомления, аннотацией (предисловием), рецензиями от других читателей и их экспертным мнением.
Кроме того, на сайте mybooks.club вы найдете множество новинок, которые стоит прочитать.

Название:
Linux-сервер своими руками
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
16 сентябрь 2019
Количество просмотров:
370
Читать онлайн
Денис Колисниченко - Linux-сервер своими руками

Денис Колисниченко - Linux-сервер своими руками краткое содержание

Денис Колисниченко - Linux-сервер своими руками - описание и краткое содержание, автор Денис Колисниченко, читайте бесплатно онлайн на сайте электронной библиотеки mybooks.club
В книге подробно рассмотрены настройки сетевых сервисов, позволяющих создать сервер требуемой конфигурации и функциональности на основе ОС Linux. Вы сможете настроить сервер любого типа: от сервера локальной сети до Интернет-сервера и сервера удаленного доступа. Детальна описано администрирование Linux.Изложение материала построено на основе дистрибутивов Red Hat и Mandrake. Много уникальной информации: запуск Windows-игр под Linux и создание Linux-сервера для игрового зала, настройка антивирусов Dr. Web и AVP под Linux, программа учета трафика MRTG, система защиты и обнаружения атак LIDS, а также многое другое. Особое внимание уделено безопасности Linux-серверов. Достаточно подробно описана сама ОС Linux и приведен справочник ее команд. Прочитав книгу, вы станете обладателями знаний по настройке и компилированию ядра, созданию собственных rpm-пакетов, командному интерпретатору bash, использованию массивов RAID. Вы узнаете внутренний мир Linux. Книга подойдет как для профессиональных, так и для начинающих администраторов, поскольку изложение материала начинается с установки ОС Linux, а в первой главе дано описание основных сетевых технологий и протоколов (Курс Молодого Администратора).Все приведенные в книге листинги проверены на практике и размещены на прилагаемом CD. Помимо этого на нем содержится много справочной информации (HOWTO, RFC), a также статей, посвященных Linux. Размещен богатый набор вспомогательных утилит и программного обеспечения для сервера (Apache, MySQL, MRTG и др.).

Linux-сервер своими руками читать онлайн бесплатно

Linux-сервер своими руками - читать книгу онлайн бесплатно, автор Денис Колисниченко

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

Нестандартные форматы дискет Таблица 4.19

Размер дискеты Емкость устройства Стандартная емкость дискеты Число дорожек Число секторов Емкость дискеты, байт 5.25" 360 Кб 360 Кб 41 10 409.088 5.25" 1.2 Мб 360 Кб 81 10 816.640 5.25" 1.2 Мб 1.2 Мб 81 18 1.476.096 (1.45 Мб) 3.5" 720 Кб 720 Кб 81 10 816.640 3.5" 1.44 Мб 720 Кб 81 10 816.640 3.5" 1.44 Мб 1.44 Мб 81 21 1.723.904

Пример:

superformat –d /dev/fd0 –t 81 –s 21

Если дискета работает крайне нестабильно, попробуйте уменьшить число секторов до 20.

5

Процессы

5.1. Системные вызовы fork() и ехес()

Процесс в Linux (как и в UNIX) — это программа, которая выполняется в отдельном виртуальном адресном пространстве. Когда пользователь регистрируется в системе, под него автоматически создается процесс, в котором выполняется оболочка (shell), например, /bin/bash.

В Linux поддерживается классическая схема мультипрограммирования. При этом Linux поддерживает параллельное (или квазипараллельное при наличии только одного процессора) выполнение процессов пользователя. Каждый процесс выполняется в собственном виртуальном адресном пространстве, т.е. процессы защищены друг от друга и крах одного процесса никак не повлияет на другие выполняющиеся процессы и на всю систему в целом. Один процесс не может прочитать что-либо из памяти другого процесса (или записать в нее) без «разрешения» на то другого процесса. Санкционированные взаимодействия между процессами допускаются системой.

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

В связи с развитием SMP (Symmetric Multiprocessor Architectures) в ядро Linux был внедрен механизм нитей или потоков управления (threads). Нитями также называют «легковесные» процессы. Другими словами, нить — это процесс, выполняемый в виртуальной памяти, которая используется вместе с другими нитями одного и того же «тяжеловесного» процесса. Такой «тяжеловесный процесс» обладает отдельной виртуальной памятью и может иметь несколько «легковесных» процессов.

Потоки (или нити) позволяют решать в рамках одной программы одновременно несколько задач.

Операционная система предоставляет программе некоторый интервал процессорного времени. Когда программа переходит в режим ожидания какого-либо события (например, сигнала) или освобождает процессор, операционная система передает управление другой программе. Распределяя время центрального процессора, операционная система распределяет его не между программами, а между потоками. Исходя из всего этого, потоки — это наборы команд, имеющие возможность получать время процессора. Время процессора выделяется квантами. Квант — это минимальное время, на протяжении которого поток (нить) может использовать процессор.

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

Если интерпретатору (shell) встречается команда, соответствующая выполняемому файлу, интерпретатор выполняет ее, начиная с точки входа (entry point). Для С-программ entry point — это функция main. Точка входа для каждой среды разработки различна. Запущенная программа тоже может создать процесс, т.е. запустить какую-то программу и ее выполнение тоже начнется с функции main. Затем с помощью системного вызова fork() создается адресное пространство — подготавливается «место» для нового процесса, а потом с помощью вызова ехес() в это адресное пространство загружается программа. Таким образом, каждый новый процесс выполняется в своей индивидуальной среде.

Для создания процессов используется системный вызов: fork(). Вызов fork() создает новое адресное пространство, которое полностью идентично адресному пространству основного процесса. Другими словами, вызов fork() создает новый процесс. После выполнения этого системного вызова вы получаете два абсолютно одинаковых процесса — основной и порожденный. Функция fork() возвращает 0 в порожденном процессе и PID (Process ID — идентификатор порожденного процесса) — в основном. PID — это целое число.

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

В качестве примера рассмотрим следующий фрагмент программы:

if (fork() == 0) wait(0);

else execl("ls", "ls", 0); /* порожденный процесс */

Теперь рассмотрим более подробно, что же делается при выполнении вызова fork():

1. Выделяется память для описателя нового процесса в таблице процессов.

2. Назначается идентификатор процесса PID.

3. Создается логическая копия процесса, который выполняет fork() — полное копирование содержимого виртуальной памяти родительского процесса, копирование составляющих ядерного статического и динамического контекстов процесса-предка.

4. Увеличиваются счетчики открытия файлов (порожденный процесс наследует все открытые файлы родительского процесса).

5. Возвращается PID в точку возврата из системного вызова в родительском процессе и 0 — в процессе-потомке.

5.1.1. Общая схема управления процессами

Каждый процесс может порождать полностью идентичный процесс с помощью fork(). Родительский процесс может дожидаться окончания выполнения всех своих процессов-потомков с помощью системного вызова wait. В любой момент времени процесс может изменить содержимое своего образа памяти, используя одну из разновидностей вызова ехес(). Каждый процесс реагирует на сигналы и, естественно, может установить собственную реакцию на сигналы, производимые операционной системой. Приоритет процесса может быть изменен с помощью системного вызова nice.

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

Примеры сигналов:

1. Окончание порожденного процесса (например, из-за системного вызова exit (см. ниже)).

2. Возникновение исключительной ситуации.

3. Сигналы, поступающие от пользователя, при нажатии определенных клавиш.

Установить реакцию на поступление сигнала можно с помощью системного вызова signal:

func = signal(snum, function);

где: snum — номер сигнала;

 function — адрес функции, которая должна быть выполнена при поступлении указанного сигнала.

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

С помощью системного вызова kill можно сгенерировать сигналы и передать их другим процессам. Обычно kill используется для того, чтобы принудительно завершить («убить») процесс:


Денис Колисниченко читать все книги автора по порядку

Денис Колисниченко - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mybooks.club.


Linux-сервер своими руками отзывы

Отзывы читателей о книге Linux-сервер своими руками, автор: Денис Колисниченко. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.