Что означает «все является файлом» в Linux?

Оглавление:

Что означает «все является файлом» в Linux?
Что означает «все является файлом» в Linux?

Видео: Что означает «все является файлом» в Linux?

Видео: Что означает «все является файлом» в Linux?
Видео: Эти Простые Способы ПОМОГУТ Защитить твой Телефон от Взлома и Потери Всех Личных Данных !!! - YouTube 2024, Май
Anonim
Одной из определяющих особенностей Linux и других UNIX-подобных операционных систем является то, что «все является файлом». Это упрощение, но понимание того, что это значит, поможет вам понять, как работает Linux.
Одной из определяющих особенностей Linux и других UNIX-подобных операционных систем является то, что «все является файлом». Это упрощение, но понимание того, что это значит, поможет вам понять, как работает Linux.

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

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

/ Proc

Например, скажем, вы хотите найти информацию о своем процессоре. Каталог / proc содержит специальный файл - / proc / cpuinfo -, содержащий эту информацию.

Image
Image

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

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

Каталог / proc также содержит другие похожие файлы, например:
Каталог / proc также содержит другие похожие файлы, например:
  • / proc / uptime - Показывает время автономной работы вашего ядра Linux - другими словами, как долго ваша система работает без остановки.
  • / proc / version - выводит версию вашего ядра Linux.

/ DEV

В каталоге / dev вы найдете файлы, представляющие устройства, а также файлы, которые представляют другие специальные вещи. Например, / dev / cdrom - это ваш привод CD-ROM. / dev / sda представляет ваш первый жесткий диск, а / dev / sda1 представляет первый раздел на вашем первом жестком диске.

Хотите подключить свой CD-ROM? Запустите команду mount и укажите / dev / cdrom как устройство, которое вы хотите монтировать. Хотите разбить свой первый жесткий диск? Запустите утилиту дискового разделения и укажите / dev / sda в качестве жесткого диска, который вы хотите отредактировать. Хотите отформатировать первый раздел на вашем первом жестком диске? Запустите команду форматирования и сообщите ей формат / dev / sda1.

Как вы можете видеть, использование этих устройств в составе файловой системы имеет свои преимущества. Файловая система обеспечивает согласованное «пространство имен», которое все приложения могут использовать для адресации и доступа к устройствам.
Как вы можете видеть, использование этих устройств в составе файловой системы имеет свои преимущества. Файловая система обеспечивает согласованное «пространство имен», которое все приложения могут использовать для адресации и доступа к устройствам.

/ dev / null, / dev / random и / dev / zero

Файловая система / dev не просто содержит файлы, которые представляют физические устройства. Вот три из наиболее заметных специальных устройств, которые он содержит:

  • / dev / null - Отбрасывает все данные, записанные на него, - думайте об этом как о мусорной корзине или черной дыре. Если вы когда-нибудь увидите комментарий, в котором сообщается, что вы посылаете жалобы в / dev / null, это непримирительный способ сказать «выбросить их в корзину».
  • / dev / random - Производит случайность с использованием шума окружающей среды. Это генератор случайных чисел, к которому вы можете подключиться.
  • / dev / zero - Производит нули - постоянный поток нулей.

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

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

command > /dev/null

Если вам нужен источник случайности - скажем, для генерации ключа шифрования вам не нужно будет писать свой собственный генератор случайных чисел - вы можете использовать / dev / random.
Если вам нужен источник случайности - скажем, для генерации ключа шифрования вам не нужно будет писать свой собственный генератор случайных чисел - вы можете использовать / dev / random.

Чтобы стереть содержимое жесткого диска, написав 0, вам не нужна специальная утилита, предназначенная для обнуления диска - вы можете использовать стандартные утилиты и / dev / zero. Например, дд команда читает из местоположения и записывает в другое место. Следующая команда будет считывать нули из / dev / zero и записывать их непосредственно в первый раздел жесткого диска в вашей системе, полностью удаляя его содержимое.

(Предупреждение: Эта команда удалит все данные в вашем первом разделе, если вы запустите его. Выполняйте эту команду только в том случае, если вы хотите уничтожить данные.)

dd if=/dev/zero of=/dev/sda1

Здесь мы используем dd со специальными файлами (/ dev / zero и / dev / sda1), но мы также можем использовать dd для чтения и записи в фактические файлы. Эта же команда работает как для непосредственного управления устройствами, так и для работы с файлами.

осветление

На практике более точно сказать, что «все - поток байтов», чем «все - это файл». / Dev / random не является файлом, но это, безусловно, поток байтов.И, хотя эти вещи технически не являются файлами, они доступны в файловой системе - файловая система является универсальным «пространством имен», где все доступно. Хотите получить доступ к генератору случайных чисел или прочитать непосредственно с устройства? Вы найдете их в файловой системе; никакой другой формы адресации не требуется.

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

Рекомендуемые: