Архивы автора: Пользователь Slax

Файлы каталога /dev

А здесь опишем некоторые интересные файлы, содержащиеся в самом каталоге /dev.

/dev/null – одним из переводов англ. null является «несуществующий». Файл /dev/null представляет собой «черную дыру», в которой все исчезает. Данные, отправленные в этот файл, уходят «в никуда», а сам файл не содержит ничего. Попытавшись прочитать его данные, вы получите нули.

/dev/console – файл активной консоли. Посланные в него данные отображаются на экране компьютера, а запрошенные из него – вводятся с клавиатуры.

/dev/hda{0,1,2…}, /dev/hdb{0,1,2…}, /dev/hdc{0,1,2…}, /dev/hdd{0,1,2…} – указывают на устройства хранения данных (жесткие диски), подключенные к интерфейсу IDE. Способ формирования имени таков: к буквам hd добавляется буква a, b, c или d (в зависимости от подключения диска к компьютеру Primary Master (первичный старший), Primary Slave (первичный младший), Secondary Master (вторичный старший) и Secondary Slave (вторичный младший) соответственно), после чего получается имя файла, через который можно обратиться ко всему диску. Если же требуется обратиться к конкретному разделу на диске, добавляем к полученному выше имени номер раздела (1,2,3,4 – первичные разделы, а 5,6 и т. д. – логические).

/dev/sda{0,1,2…}, /dev/sdb{0,1,2…}, … , /dev/sdp{0,1,2…} – аналогично предыдущему, но для дисков, присоединенных к интерфейсу SCSI (Small Computer System Interface – интерфейс малых компьютерных систем).

/dev/fd{0,1} – позволяет пользователю «общаться» с носителями на гибких дисках. По функциям не отличается от /dev/floppy/0.

/dev/cdrom, /dev/cdrom{0,1,2…}, /dev/dvd – дает доступ к устройствам CD- и DVD-ROM. /dev/cdrom0 означает первый привод CD-ROM, /dev/cdrom1 – второй и т. д.

/dev/tty{0,1,2…} – выполняют аналогичную функцию, что и файлы из каталога /dev/vc. Файл tty0 соответствует первой консоли, tty1 – второй и т. д.

Что такое процессы в Linux

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

Все операционные системы можно разделить на многозадачные и однозадачные. Многозадачные ОС позволяют выполнять несколько действий одновременно, в то время как однозадачные – всего один процесс или задачу. Однозадачные операционные системы уже не распространены, так как не могут удовлетворить потребности пользователей и не обладают развитыми средствами мультимедиа, что является важным критерием при выборе операционной системы для домашнего компьютера. Linux является многозадачной операционной системой.

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

Обычные состояния процесса можно разделить на четыре группы:

  • Выполнение – выполняет задачу.
  • Ожидание – ожидает команду со стороны пользователя либо какой-то ресурс. Процесс в таком состоянии также называют спящим (англ. sleeping).
  • Остановка – остановлен и не имеет разрешения на выполнение.
  • Зомби – уже завершил работу, но это еще не известно операционной системе.

Что такое процессы в Linux

Действия над процессами в Linux

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

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

KILL – выполняет завершение процесса. Эта команда часто используется при завершении зависших процессов, так как она выполняется операционной системой.

TERM – аналогичен команде QUIT, затем исключением, что при завершении процесса дамп памяти не создается.

TSTP – остановка процесса. Аналогичен действию, которое происходит при нажатии сочетания клавиш Ctrl+Z во время выполнения процесса.

CONT – продолжение выполнения процесса после остановки.

Приоритет процессоров в Linux

Каждый процесс имеет приоритет. Не вдаваясь в тонкости архитектуры компьютера, можно сказать, что приоритет характеризует количество времени, которое процессор будет отдавать определенному процессу. Значение этого компьютерного термина практически аналогично бытовому (например, многие программисты уделяют крайне мало внимания процессу уборки в квартире, но отводят много времени программированию, что означает, что уборка для них имеет меньший приоритет, чем любимое занятие). Приоритет имеет численное значение и может варьироваться от -20 до +19; чем меньше численное значение, тем большее внимание уделяется процессу. В большинстве случаев в изменении приоритета процессов нет необходимости.

Над процессами можно совершать множество действий, однако свободно манипулировать свойствами процессов невозможно, точнее, для выполнения операций над многими процессами необходимы привилегии администратора. Как было сказано ранее, каждый объект в Linux имеет хозяина. Процессы – не исключение. Если над процессами, запущенными от имени вашей учетной записи, вы можете выполнять любые действия, то доступа к процессам других пользователей у вас нет. Исключение составляет суперпользователь.

Каталог /proc

Каталог /proc

Каталог /proc отражает всю внутреннюю структуру данных ядра операционной системы об устройствах, процессах и драйверах. Содержимое каталога /proc генерируется программно. Оно существует только в памяти компьютера, но не на жестком диске.

Представьте, что вы общаетесь с кем-либо и излагаете ему свои мысли и идеи. Примерно так информация поступает из ядра к пользователю через каталог /proc. Человек задаст вам вопрос и получает ответ, который является верным на момент его получения. В Linux происходит то же: обратившись к какому-либо файлу каталога /proc, вы получите ответ, который является верным на момент его вывода ни экран.

В файлах, находящихся в корне каталога /proc, содержится информация, касающаяся системы в целом. Описание этих файлов приведено в статье: содержимое каталога /proc.