Gregon написал(а):(#15)
Давай!
Хорошо. Постараюсь)
Наверное все знают, что Linux - это Unix подобная ОС. Linux многие идеи взял из Unix. В Unix всё является файлом. Это сильно упрощает понимание этой ОС. Вставил usb флешку - флешка примонтировалась в директорий, к примеру, в /media. Директорий - это тоже файл, только специальный. Можете даже сами примонтировать в любой директорий, в который хотите. Чтобы управлять различными устройствами, то тоже достаточно открыть виртуальный файл устройства и читать с него, записывать на него. Разве это не удобно? Самое интересной, что можно управлять всей системой из командной строки. В некоторых случаях даже программ практически никаких не надо. Достаточно одного bash-а. Вот почему Linux любят разные железячники(создатели устройств).
Не хотите заглянуть под "капот" Linux-а?
Давайте познакомимся немного с разными виртуальными файловыми системами. В /dev находятся файлы устройств, которыми мы можем управлять: устройства разделов жестких дисков, видео устройства, устройства звуковой карты, устройства ввода и т.д. Чтобы прервать команды, которые будут представлены дальше, нажмите ctrl-c.
Наберите команду:
Файл random - это датчик случайных чисел, который постоянно будет генерировать случайные числа пока не нажмете "ctrl/c".
Иногда нужно, чтобы программа не флудила своими сообщениями и не пугала пользователей. Для этого есть устройство null. Можно перенаправлять выхлоп команд в null. Приведем пример с нашем датчиком случайных чисел:
Может кто-нибудь слышал про bad флешки? Подключаешь подобную флешку, а она начинает управлять компьютером: посылает нажатие клавиш, перемещает мышку. Чтобы понять как это работает давайте изучим input устройства. Чтобы увидеть все input устройства наберите команду:
С этих устройств и приходят нажатия клавиш, перемещение мышки.
Можно активность с устройства мышки просмотреть с помощью команды:
Попробуйте поперемещать мышку и понажимать разные клавиши.
Небольшое видео, которое показывает работу с устройством мышки:

С помощью команды "cat /sys/class/input/mouse0/device/name" можно получить имя input устройства mouse0.
Которое потом мы используем, чтобы получить распарсенные данные с мышки с помощью команды xinput.
В этом видео так же используется виртуальная файловая система sysfs. О ней мы поговорим в следующий раз.