Почему в Linux «Всё есть файл»? Или почему гениальные абстракции UNIX настолько гениальныМногие слышали, что в Linux «Всё есть файл». Хоть эта концепция и может показаться тривиальной для опытных людей, новичков она вводит в ступор. Да что там новичков, даже более менее опытных программистов, так как весь этот слой абстракций скрывается от них под библиотеками языков программирования, что являются ещё более высоким уровнем абстракции, и они просто о нём не задумываются.
Что будет разобрано в статье:
🚀 Что из себя представляют современные жёсткие диски (SSD) на физическом уровне;
🚀 Сколько статуй свободы понадобится, чтобы записать 1 триллион байт;
🚀 Каким образом на диске хранится файловая система и как компьютер в ней разбирается;
🚀 Поймём, что системные вызовы – это всё, что у нас есть (больше реально ничего нет);
🚀 Разберём на пальцах модули ядра и драйверы и даже напишем простой модуль ядра Linux!;
🚀 Поймём, какие фундаментальные идеи стоят за концепцией «Всё есть файл» и как это реализуются программно. Приведём простые примеры;
🚀 Удивимся тому, что процессы – это файл;
🚀 Удивимся тому, что мышь и тачпад – это файл;
🚀 Удивимся тому, что интернет соединение – это файл.
Читать статью