Одно из многих преимуществ свободных операционных систем, типичный представитель которых является Линукс, то что внутреннее устройство доступно для любого человека. Операционная система, темное и мистическое пространство, код которого был доступен для небольшого количества программистов, может теперь без труда быть рассмотрен, понят и модифицирован каждым обладающим необходимыми знаниями. Линукс помог демократизации операционных систем. Код ядра Линукс остается большим и сложным, даже исследователям необходима вводная часть, как к нему подступиться не нарушая его многогранности. Часто, драйвера устройств являются этой вводной частью.
Драйвера устройств играют особую роль в ядре Линукс. Это особого вида «черные ящики» которые делают ответы особой части аппаратного обеспечения четко определённым внутренним программным интерфейсом, полностью скрывают как работает устройство. Действия пользователя представляют собой ряд стандартных вызовов, в сущности эти вызовы устройство зависимые операции которые работают с реальным аппаратным обеспечением и играют роль драйвера устройства. Этот программируемый интерфейс как этот драйвер может быть построен отдельно от остального ядра и быть подключенным во время работы когда это необходимо. Эта модульность делает написание драйверов достаточно простым, кстати поэтому сотни из них сегодня доступны.
Вот почему есть смысл интересоваться написанием драйверов для Линукс. Скорость с которой приходит новое доступное аппаратное обеспечение (и устаревшего!) постоянно растет, вот почему писатели драйверов будут заняты в обозримом будущем. Особенно может понадобиться знания о драйверах для достижения доступа к возможностям устройств которые интересуют заказчика. Продавцам аппаратного обеспечения, создание драйверов именующийся у них продуктов, могут добавить большое и растущее количество пользователей Линукс на их потенциальных рынках. Сущность открытого кода операционной системы Линукс подразумевает что автор драйвера может если захочет распространить его исходный код для миллионов пользователей.
Эта книга научит написать собственные драйвера и как использовать связанные части ядра. Мы даем аппаратно-независимое направление, предоставленные методы и интерфейсы, где это возможно, не привязаны ни к одному особенному устройству. Каждый драйвер различен, как писатель драйверов вам также необходимо понимать особенности устройства. Правда большинство принципов и методологических подходов одинаковы для всех устройств. Эта книга не может рассказать о вашем устройстве, но дает вам направление на подоплеку, которую вам необходимо знать при работе с вашим устройством.
Если вы научитесь писать драйвера, вы само собой узнаете много о ядре Линукс; это может помочь вам понять как работает ваша машина и почему дело движется не всегда так быстро как вы надеялись или делают не то что нужно. Мы вводим новые понятия постепенно, начиная с очень простых примеров кода для тестирования которых не нужно специальное аппаратное обеспечение.
Эта глава на самом деле не вводит в написание кода. Тем не менее, мы вводим несколько базовых понятий о ядре Линукс что вас порадует позже, когда мы начнем программировать.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.