Нажмите "Enter" для перехода к содержанию

Linux: Настоящая операционная система

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

Linux (ну же, вы же знали, что это будет Linux) использует другой подход: никаких блокировок, никаких ограничений, никаких лимитов. Именно это делает Linux настоящей операционной системой, чего никогда не достигнут его конкуренты, затмевающие его по доле пользователей настольных компьютеров. Смелое заявление, конечно, но у меня есть доказательства, подтверждающие это.

Не одно зерно истины… а множество.

Среди основных настольных ОС Linux — единственная, которая позволяет полностью переключаться между ядрами. Ядро — это основное программное обеспечение, поставляемое с каждой операционной системой и выступающее посредником между ОС и аппаратным обеспечением устройства. Благодаря своему ключевому положению, ядро ​​также обеспечивает самые фундаментальные меры безопасности в любой системе.

Конечно, поскольку для использования оборудования требуется поддержка ядра, и ни один разработчик ОС не может поддерживать все периферийные устройства, настольные системы не могут быть полностью негибкими в отношении своих ядер. Windows позволяет пользователям управлять установкой драйверов. Как это типично для Apple, macOS менее лоялен, особенно с учетом того, что Apple сейчас не рекомендует использовать расширения ядра в пользу «системных расширений», которые работают вне ядра. Системы Linux позволяют устанавливать любое желаемое ядро, что делает Linux наиболее адаптируемой из трех настольных систем.

Можно подумать, что, учитывая, насколько ядро ​​является неотъемлемой частью операционной системы, его переконфигурация будет сложной задачей. Хотя, безусловно, следует проявлять осторожность, это несложно. Многие дистрибутивы Linux для настольных компьютеров предоставляют графический инструмент для просмотра, установки и переключения ядер. Просто выберите нужное ядро, перезагрузите компьютер, и всё готово.

Так зачем вообще это нужно?

Разные ядра отдают приоритет разным атрибутам. Некоторые ядра поддерживают специализированное оборудование. Другие просто стремятся сэкономить место, исключая многие модули по умолчанию, которые большинству пользователей не нужны, а третьи добавляют усиленные средства защиты, такие как конфигурации с поддержкой SELinux, чтобы затруднить манипулирование системой для злоумышленников. Почему бы не использовать одно и то же ядро? У пользователей персональных компьютеров, разработчиков программного обеспечения и специалистов по информационной безопасности разные потребности, так почему же они все должны использовать одно и то же ядро?

Откажитесь от униформы, продемонстрируйте свой стиль.

Вы когда-нибудь замечали, что большинство рабочих столов macOS имеют лишь незначительные различия? За исключением, возможно, геймеров, это можно заметить и среди пользователей Windows. Что касается стиля значков, расположения строки состояния и даже обоев, то внутри групп пользователей macOS и Windows практически нет различий. Отчасти это результат выбора, отчасти — ограничений операционной системы.

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

Рассматривая любой дистрибутив, поскольку это Linux, вы можете свободно менять буквально всё, что угодно, как по форме, так и по функциональности. Его называют «свободным» программным обеспечением не только из-за его цены. Иконки, курсор, строка состояния, виджеты в трее и панели запуска приложений — всё это легко заменить.

Например, я написал собственный скрипт, который отправляет уведомление каждые 20 минут, чтобы дать возможность отдохнуть от экрана. Вы можете очень детально настроить графические библиотеки или изменить способ отрисовки окон на экране, заменив композитор. Для меня рабочий стол Linux — это идеальное полотно для выражения моего уникального стиля работы с компьютером, и мне это очень нравится.

Оборудование с мягким на ощупь покрытием

В Linux sudoединственное, что мешает вам получить доступ ко всем аппаратным компонентам напрямую из командной строки. Для систем, подобных Unix, всё представляет собой файл. Таким образом, Linux представляет оборудование — и данные, передаваемые к нему и от него, — в виде файлов. Всё, что может работать с обычными файлами, может работать и с аппаратными «файлами».

Это очень абстрактное понятие, поэтому вот несколько примеров того, что оно подразумевает:

  • Хотите написать программу, которая изменяет яркость экрана? Просто измените число в файле.
  • Хотите перехватить ввод с клавиатуры в необработанном виде? Просто прочтите файл символьного устройства.
  • Нужны случайные числа, генерируемые системой энтропии? Воспользуйтесь неограниченным её запасом /dev/urandom.

Главное — знать, где находятся эти файлы и как с ними работать. Но в вашей системе достаточно инструментов для решения любых задач, с которыми вы можете столкнуться.

Настольный компьютер или сервер? Зачем быть вынужденным выбирать?

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

Это также доказывает, что Linux действительно соответствует концепции компьютера общего назначения. Windows и macOS тоже относятся к этой категории, но насколько легко превратить их в веб-серверы, файловые серверы, VPN-серверы или DNS-серверы? Не очень. Между тем, за то время, пока вы дочитаете эту статью, вы, вероятно, сможете заставить ИИ написать скрипт для настройки веб-сервера на вашем компьютере с Linux.

Скрывать нечего

Хотя это и не так впечатляюще, как упомянутые выше преимущества, это наиболее практичное из них: в системе Linux всё полностью документировано. Конечно, утилиты командной строки для всех основных настольных систем имеют интерфейсы справки, похожие на «man page». Но в случае с Linux это относится и к низкоуровневым системным процессам, таким как systemd, универсальный системный инициализатор и менеджер фонового программного обеспечения, составляющий основу большинства распространённых дистрибутивов Linux.

Подробная документация Linux на самом деле служит его настраиваемости, которая, как я считаю, является лишь проявлением его явной цели «портативности», которую можно интерпретировать как «универсальность». Отчасти это также объясняется тем, что Linux является открытым исходным кодом. Если вам разрешено загружать, изменять и устанавливать программное обеспечение так, как вы хотите, оно должно предоставлять базовые инструкции о том, как это сделать.

Тем не менее, нет причин, по которым конкуренты Linux, использующие проприетарные решения, не могли бы иметь столь же обширную документацию. Существует способ написать техническое руководство о возможностях программного обеспечения, не раскрывая при этом, как именно оно это делает.

Так почему же проприетарные операционные системы этого не делают?

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

В мире без стен и заборов…

Пользуюсь ли я всеми этими функциями регулярно? Нет. Но я знаю, что мне не нужно переустанавливать ОС, чтобы добавить недостающие возможности. Я не настолько наивен, чтобы думать, что войну между разработчиками ОС когда-либо удастся выиграть. Тем не менее, меня успокаивает мысль, что когда кто-то заявляет: «Я использую операционную систему X из-за функции Y», какой бы эта функция ни была, я могу сказать себе: «Я тоже могу её получить, если захочу — и это полностью зависит от меня».