Почему каждое устройство в Linux является файлом или папкой? Каковы преимущества? [закрыто]

-1
23.03.2019, 21:07
1 ответ

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

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

Исторически популярные устройства для хранения данных (предполагали, что жесткий -диск )управляется драйвером SCSI. Вот почему storage обычно имеет префикс sd. Затем вам нужно логическое «программное» представление отдельного физического «аппаратного» устройства. Вы просто нумеруете их, начиная с a. Объединенный жесткий диск -может называться sda.

Теперь у вас есть "файл", из которого вы можете читать данные, (записывая аналогично ). Если вы прочитаете первый байт из /dev/sda, вы на самом деле прочитаете байт, который фактически находится в самом начале этого устройства хранения данных (размеры блоков игнорируются для простоты ). Вы можете попробовать это сами, запустив sudo hexdump -C /dev/sda | less. Конечно, большая часть контента будет тарабарщиной для невооруженного глаза.
Однако, если вы интерпретировали эту тарабарщину, чтобы знать, где начинается раздел, и смонтировать этот раздел,программа (драйвер файловой системы )интерпретирует данные для вас и представляет красивую древовидную -структуру с папками и файлами, из которых вы затем можете считывать данные.

Забавный факт :Это также верно (в различной степени )для других типов устройств (символьных устройств )таких как клавиатуры и мыши (они "производят" данные, которые вы можете прочитать ):sudo hexdump -C /dev/input/mouse0).
Или основная память.
Или даже графическая память (фреймбуфер ):Мне иногда нравится переключаться на одну из виртуальных консолей (Ctrl+Alt+F1 )и моя видеокарта интерпретирует и отображает случайные числа черезsudo dd if=/dev/urandom of=/dev/fb0 bs=1M count=1

4
28.01.2020, 05:07

Теги

Похожие вопросы