Переместившись за «сырую» инфраструктуру, можно также выполнить обеспечение платформы ресурсами, такими как операционная система, серверы баз данных и веб-серверы. Систему, которая предоставляет ресурсы на таком уровне, часто называют платформой в качестве службы (PaaS, Platform as a Service).

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

17.5. Встроенные системы

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

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

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

Интерес к встроенным системам возрастает по мере того, как появляются более вместительные небольшие аппаратные средства, в частности однокристальные системы (SoC, System-on-a-chip), которые могут уместить на небольшом пространстве процессор, память и периферийные интерфейсы. Например, одноплатные компьютеры Raspberry Pi и BeagleBone основаны на такой схеме, и для них в качестве операционной системы можно выбрать один из вариантов Linux. Такие устройства обладают легкодоступным выводом и сенсорным вводом, который подключается к языковым интерфейсам вроде Python, делая их популярными для макетирования и небольших гаджетов.

Встроенные версии Linux различаются тем, как осуществляются многие функции из серверной/настольной версии. В небольших, очень ограниченных устройствах следует урезать все, кроме необходимого минимума, вследствие недостатка свободного пространства. Это часто означает, что даже утилиты оболочки и ядра существуют в виде единственного исполняемого файла BusyBox. Такие системы обычно демонстрируют наибольшее отличие от полнофункциональной версии Linux, и вы часто встретите в них более старые программы, вроде System V init.

Как правило, разработка ПО для встроенных систем ведется на обычном компьютере. Более мощные устройства, такие как Raspberry Pi, обладают роскошью в виде более объемного хранилища данных и вычислительной мощностью для запуска нового и более полного ПО, поэтому на них можно напрямую запускать многие инструменты для разработки.

Однако, несмотря на различия, встроенные системы все так же наследуют «гены» Linux, о которых рассказано в этой книге: вы обнаружите ядро, ряд устройств, сетевые интерфейсы и систему init, а также несколько пользовательских процессов. Встроенные ядра, как правило, близки (или идентичны) обычным, просто в них отключены многие функции. Но когда вы доберетесь до пространства пользователя, различия станут выражены более ярко.

17.6. Заключительные замечания

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