Как уважаемый хабрапользователь наверняка знает, «драйвер устройства» — это компьютерная программа управляющая строго определенным типом устройства, подключенным к или входящим в состав любого настольного или переносного компьютера.
Основная задача любого драйвера – это предоставление софтового интерфейса для управления устройством, с помощью которого операционная система и другие компьютерные программы получают доступ к функциям данного устройства, «не зная» как конкретно оно используется и работает.
Обычно драйвер общается с устройством через шину или коммуникационную подсистему, к которой подключено непосредственное устройство. Когда программа вызывает процедуру (очередность операций) драйвера – он направляет команды на само устройство. Как только устройство выполнило процедуру («рутину»), данные посылаются обратно в драйвер и уже оттуда в ОС.
Любой драйвер является зависимым от самого устройства и специфичен для каждой операционной системы. Обычно драйверы предоставляют схему прерывания для обработки асинхронных процедур в интерфейсе, зависимом от времени ее исполнения.
Что такое драйвер устройства?
Любая операционная система обладает «картой устройств» (которую мы видим в диспетчере устройств), для каждого из которых необходим специфический драйвер. Исключения составляют лишь центральный процессор и оперативная память, которой управляет непосредственно ОС. Для всего остального нужен драйвер, который переводит команды операционной системы в последовательность прерываний – пресловутый «двоичный код».
Как работает драйвер и для чего он нужен?
Основное назначение драйвера – это упрощение процесса программирования работы с устройством.
Он служит «переводчиком» между хардовым (железным) интерфейсом и приложениями или операционными системами, которые их используют. Разработчики могут писать, с помощью драйверов, высокоуровневые приложения и программы не вдаваясь в подробности низкоуровневого функционала каждого из необходимых устройств в отдельности.
Как уже упоминалось, драйвер специфичен для каждого устройства. Он «понимает» все операции, которые устройство может выполнять, а также протокол, с помощью которого происходит взаимодействие между софтовой и железной частью. И, естественно, управляется операционной системой, в которой выполняет конкретной приложение либо отдельная функция самой ОС («печать с помощью принтера»).
Если вы хотите отформатировать жесткий диск, то, упрощенно, этот процесс выглядит следующим образом и имеет определенную последовательность: (1) сначала ОС отправляет команду в драйвер устройства используя команду, которую понимает и драйвер, и операционная система. (2) После этого драйвер конкретного устройства переводит команду в формат, который понимает уже только устройство. (3) Жесткий диск форматирует себя, возвращает результат драйверу, который уже впоследствии переводит эту команду на «язык» операционной системы и выдает результат её пользователю (4).
Как создается драйвер устройства
Для каждого устройства существует свой строгий порядок выполнения команд, называемой «инструкцией». Не зная инструкцию к устройству, невозможно написать для него драйвер, так как низкоуровневые машинные команды являются двоичным кодом (прерываниями) которые на выходе отправляют в драйвер результат, полученный в ходе выполнения этой самой инструкции.
Как сделать Kernel Driver — Загрузка & Выгрузка
При создании драйвера для Линукса, вам необходимо знать не только тип шины и ее адрес, но и схематику самого устройства, а также весь набор электрических прерываний, в ходе исполнения которых устройство отдает результат драйверу.
Написание любого драйвера начинается с его «скелета» — то есть самых основных команд вроде «включения/выключения» и заканчивая специфическими для данного устройства параметрами.
И чем драйвер не является
Часто драйвер устройства сравнивается с другими программами, выполняющими роль «посредника» между софтом и/или железом. Для того, чтобы расставить точки над «i», уточняем:
Ну и на правах рекламы – вы всегда знаете, где скачать новейшие драйвера для любых устройств под ОС Windows.
Драйвер — что это такое и для чего они нужны
Практически каждый пользователь компьютера и ноутбука при первой установке/переустановке Windows или подключении к системе нового устройства/железа — сталкивается с термином драйвер.
Но не все знают значение данного слова, зачем они вообще нужны и как работают. Если вы хотите закрыть этот пробел в своих знаниях и увеличить свою компьютерную грамотность — данный материал подготовлен именно для вас.
Прочитав прошлую публикацию, вы могли узнать про дефрагментацию диска, эта же статья будет посвящен определению, что такое драйверы в информатике и какую функцию они выполняют для операционной системы.
Что такое драйвер
Драйвер (driver) — это программное обеспечение для операционной системы, чтобы она могла взаимодействовать с подключенным к компьютеру/ноутбуку аппаратным обеспечением. Это может быть принтер, видеокарта, звуковая карта и т.д. С английского языка переводится, как «проводник».
Другими словами — это проводник, который позволяет общаться между собой устройству и операционной системе.
Также, такое ПО может быть только имитацией подключенного устройства. Например, если вы захотите распечатать какой-либо документ, но самого принтера у вас нет, то его можно будет «распечатать» через имитируемый программой-драйвером принтер в файл pdf.
Для чего нужен драйвер
Драйверы являются неотъемлемой частью операционной системы. Без них она попросту не будет работать, ведь именно они обеспечивают взаимодействие между всем аппаратным обеспечением компьютера и ОС. Но, вы можете этого даже не заметить, т.к. при первом запуске Windows все уже исправно функционирует.
А происходит это, потому что такое программное обеспечение для ключевых компонентов системы — процессор, клавиатура, монитор и т.д. уже по умолчанию есть в самой Windows и автоматически устанавливается вместе с самой ОС. Но, для некоторых устройств (принтер, сканер, видеокарта и других) нужно устанавливать свое ПО, которое обычно выпускает сам производитель.
Простыми словами, без установленной для устройства программы-драйвера, например, для сканера — он попросту не будет работать.
Интересно! При подключении к ПК/ноутбуку какого-либо нового оборудования Windows автоматически начинает поиск подходящего для него ПО.
Как посмотреть установленные драйверы на компьютере с Windows
В ОС Windows 10, 8, 8.1 и 7 их список можно посмотреть в диспетчере устройств. Чтобы открыть его разом нажмите клавиши «WIN + R» на клавиатуре и вбейте команду devmgmt.msc.
Откроется окно со списком аппаратных средств системы, разделенных по категориям. Так раскрыв определенную категорию и открыв какой-либо компонент, можно перейти по вкладке «Драйвер» и посмотреть сведения о нем.
Если вы увидите, устройство с восклицательным знаком — значит программное обеспечение к нему работает неправильно или вообще отсутствует. Его будет необходимо переустановить/установить.
Важно! Подробнее прочитать про установку драйверов можно в соответствующей статье. Там же вы найдете подробную инструкцию по их поиску и автоматической установке с помощью специальных программ.
В заключение
Надеюсь, прочитав данный материал, вы подчерпнули для себя, что-то новое и главное, нужное. Постарался все объяснить, как можно более простыми словами. Заходите почаще, будет еще много полезных и интересных статей.
Что такое драйвер и как он работает?
Драйвер (от англ. driver) — это небольшая программа, которая помогает управлять аппаратными устройствами операционной системе, а их немало в современной компьютерной технике. Основной функцией большинства драйверов является перевод языков программирования высокого уровня в электрические сигналы. Языки высокого уровня являются родными для ОС и приложений, но оборудование привыкло понимает электрические сигналы. Драйверы получают от операционной системы данные и переводят их в потоки битов, размещаемые в специальных участках памяти накопителей или в серии лазерных импульсов, если речь идет о принтере.
Драйвер обеспечивает взаимодействие компьютера с оборудованием и устройствами. Без драйверов невозможна нормальная работа подключенного оборудования—например видеоадаптера или веб-камеры.
В большинстве случаев драйвер устанавливается вместе с ОС. Для примера рассмотрим Windows, драйвера в этой операционной системе можно найти и с помощью Центра обновления Windows в Панели управления. Как правило, отсутствующий в ОС Windows драйвер можно найти на диске в комплекте оборудования или устройства или на сайте производителя.
Учитывая, что аппаратные устройства довольно сильно различаются, каждому из них требуется индивидуальный драйвер. Большинство драйверов загружаются при возникновении потребности в устройстве, которым они управляют. В ходе работы драйвера, операционная система направляет ему блоки данных с высоким уровнем приоритета. Исходя из этого, аппаратное устройство выполнит свою работу настолько быстро, насколько это возможно в конкретной конфигурации.
Пользователи очень часто испытывают дискомфорт, что драйверы многих устройств не входят в состав операционной системы и необходимо следить за их обновлениями, особенно это актуально для видеокарт. Постоянные обновления драйверов необходимы потому, что в них часто вносятся различные изменения, а если бы они были интегрированы в ОС, то каждое изменение драйвера требовало бы модификации всей операционной системы в целом. Кроме того, разработка драйверов ложится на плечи создателей оборудования, а не на разработчиков операционной системы. Думаю, это логично, поскольку те, кто разрабатывал и тестировал само устройство под конкретную ОС, должны обеспечить его стабильную работу с предоставленным драйвером.
Драйвер обеспечит полную совместимость и работоспособность устройства с вашей операционной системой. Если ваше устройство работает неправильно — скорее всего вам необходимо обновить драйвера или установить их. Драйверы не требуют управления пользователем, не надо путать их с сопроводительным программным обеспечением, достаточно скачать версию драйвера для конкретной модели устройства, соответствующую вашей ОС.
Что такое драйвер и зачем он нужен
Это виртуальная инструкция к любому «железу» в компьютере
«Слетели драйвера», «У меня нет драйверов на принтер», «Видеокарте нужны драйвера» — если вам непонятно, что это значит и на что влияют драйверы, то эта статья для вас.
Что такое драйвер
Драйвер — это программа, которая работает как инструкция для операционной системы. Драйвер объясняет операционке, как пользоваться каким-то устройством.
Устройство — это то, что физически подключается к компьютеру:
Драйвер рассказывает компьютеру, как этим железом пользоваться, что оно умеет, какие команды понимает и как это железо могут использовать другие программы.
? Технически драйвер — это программа, которая висит в памяти компьютера всё время, пока компьютеру нужно это устройство.
Известное и неизвестное железо
Операционная система в компьютере знает и умеет многое, в том числе и работать со стандартным оборудованием. Стандартным — это значит тем, которое предоставляет стандартные возможности.
Например, клавиатура, мышь или веб-камера — это стандартное оборудование, потому что независимо от производителя они делают примерно одно и то же.
Разработчики операционной системы знают про такое оборудование, поэтому могут написать стандартные драйверы, которые подойдут к большинству устройств. Именно поэтому мы можем купить в магазине новую мышь и просто подключить её к компьютеру без установки дополнительных программ — операционная система сама разберётся, что делать.
Но бывает так, что разработчики добавили в устройство нестандартные возможности: переназначение сочетаний клавиш, сделали мышь с несколькими колёсиками или встроенный лазерный дальномер в видеокамеру. В этом случае компьютер не разберётся, как этим всем пользоваться, потому что в стандартных драйверах про это ничего нет.
В таких случаях разработчики устройств пишут свой драйвер, который объяснит компьютеру, как пользоваться всеми возможностями устройства. Этот драйвер нужно будет установить.
Сложное оборудование
Ещё бывает так, что оборудование хоть и стандартное, но сложное, например, видеокарта или принтер. Каждый производитель добавляет свои функции и технологии, которые считает нужными, и чаще всего они не совпадают с другими. Если подключить такое устройство к компьютеру, то компьютер, скорее всего, разберётся, что именно в него воткнули, то как с этим работать — неизвестно.
Здесь тоже нужны драйверы — они идут или в комплекте с устройством на компакт-диске или их качают с официального сайта производителя. Чем сложнее устройство, тем больше вероятность, что без установки дополнительных драйверов оно работать не будет.
Например, если у вас навороченная видеокарта, вы вставляете её в компьютер и сначала видите странную огромную картинку с низким разрешением. Это значит, что компьютер пока не нашёл драйверов на эту карточку и запустил её в «режиме совместимости» — то есть в том режиме, в котором он точно сможет ей управлять. Но возможности видеокарты будут сильно порезаны, пока мы не установим нужные нам драйверы.
Что значит «слетели драйвера»?
Это значит, что компьютер не может найти файлы с инструкциями от какого-то устройства. Так бывает при обновлениях системы, заражении вирусом или просто кто-то случайно мог удалить нужные файлы или папку целиком.
Решение простое: берёте заново драйвер с официального сайта или тот, который шёл в комплекте с устройством, и запускаете программу-установщик заново. А она уже сама разберётся, каких файлов не хватает, и настроит всё заново.
Драйверы нужны только на Windows?
Драйверы нужны на всех компьютерах и для всех операционных систем. Но некоторые операционки идут с кучей драйверов в комплекте, а у других этот набор более скромный.
Общее правило для 2021 года такое: большая часть оборудования, которое нужно для обычной офисной работы, подключится к любому компьютеру без необходимости что-то устанавливать. Операционка сама поймёт, что это за устройство, и, скорее всего, у неё уже будут драйверы.
А вот какое-то более сложное оборудование (например, профессиональная аудиокарта или видеокамера) потребуют установки драйверов от производителя.
В чём проблема с драйверами
Проблема в том, что часто производители не делают новые драйверы для старого оборудования. Например:
Есть диджейский контроллер Numark NS7 — это профессиональное оборудование для диджеев и артистов, оно стоит дорого и нужно примерно 100 тысячам человек на всей планете.
Когда контроллер только вышел, компания Numark выпускала драйвера на все свежие операционные системы, проблем с совместимостью не было.
Потом аппарат сняли с производства, поддержку прекратили. Последняя версия драйверов, которую выпустил Numark, — для Windows 10 и MacOS 10.12 (Sierra). С тех пор у Windows вышло большое обновление до 11, а MacOS обновился раз пять. Причём последние две версии сделаны для процессоров Apple, и уже нет надежды, что Numark обновит драйверы для этой архитектуры.
Так что, если вам достался этот редкий профессиональный прибор, вы вынуждены сидеть на древней MacOS Sierra, которая стремительно перестаёт поддерживаться современным софтом.
Что с этим делать? А ничего ты с этим не сделаешь. Такова жизнь.
Драйвер
В общем случае драйвер не обязан взаимодействовать с аппаратными устройствами, он может их только имитировать (например, драйвер принтера, который записывает вывод из программ в файл), предоставлять программные сервисы, не связанные с управлением устройствами (например, /dev/zero в Unix, который только выдаёт нулевые байты), либо не делать ничего (например, /dev/null в Unix и NUL в DOS/Windows).
Идеология построения драйверов
Операционная система управляет некоторым «виртуальным устройством», которое понимает стандартный набор команд. Драйвер переводит эти команды в команды, которые понимает непосредственно устройство. Эта идеология называется «абстрагирование от аппаратного обеспечения». Впервые в отечественной вычислительной технике подобный подход появился в серии ЕС ЭВМ, а такого рода управляющие программы назывались канальными программами.
Драйвер состоит из нескольких функций, которые обрабатывают определенные события операционной системы. Обычно это 7 основных событий:
Интеграция драйверов
По мере развития систем, сочетающих в себе на одной плате не только центральные элементы компьютера, но и большинство устройств компьютера в целом, возник вопрос удобства поддержки таких систем, получивших название «аппаратная платформа», или просто «платформа».
Сначала производители платформ поставляли набор отдельных драйверов для операционных систем, собранный на один носитель (обычно компакт-диск), Затем появились установочные пакеты, называвшиеся 4-in-1 и One touch, и позволявшие упростить установку драйверов в систему. При этом, как правило, можно выбрать либо полностью автоматическую установку всех драйверов, либо выбрать вручную нужные. Однако единого, устоявшегося термина долго не было.
Современный термин, описывающий такие наборы драйверов устройств — Board Support Package, или «пакет поддержки платформы». Помимо собственно драйверов, он может, как и прочие установочные пакеты, содержать модули операционной системы и программы.
Источник: historyclothing.ru
Многоуровневые драйверы
Первоначально термин «драйвер» применялся в достаточно узком смысле: под драйвером понимался программный модуль, который:
· входит в состав ядра операционной системы, работая в привилегированном режиме;
· непосредственно управляет внешним устройством, взаимодействуя с его контроллером с помощью команд ввода-вывода компьютера;
· обрабатывает прерывания от контроллера устройства;
· предоставляет прикладному программисту удобный логический интерфейс работы с устройством, экранируя от него низкоуровневые детали управления устройством и организации его данных;
· взаимодействует с другими модулями ядра ОС с помощью строго оговоренного интерфейса, описывающего формат передаваемых данных, структуру буферов, способы включения драйвера в состав ОС, способы вызова драйвера, набор общих процедур подсистемы ввода-вывода, которыми драйвер может пользоваться, и т. п.
Согласно этому определению драйвер вместе с контроллером устройства и прикладной программой воплощали идею многослойного подхода к организации программного обеспечения. Контроллер представлял нижний слой управления устройством, выполняющий операции в терминах блоков и агрегатов устройства (например, передвижение головки дисковода, побитную передачу байта по двухпроводному кабелю). Драйвер выполнял более сложные операции, преобразуя, например, данные, адресуемые в терминах номеров цилиндров, головок и секторов диска, в линейную последовательность блоков или устанавливая логическое соединение между двумя модемами через телефонную сеть. В результате прикладная программа уже работала с данными, преобразованными в достаточно понятную для человека форму, – файлами, таблицами баз данных, текстовыми окнами на мониторе и т. п., не вдаваясь в детали представления этих данных в устройствах ввода-вывода. Кроме того, помещение драйвера в привилегированный режим и запрет для пользовательских процессов выполнять операции ввода-вывода защищают критически важные для работы самой ОС устройства ввода-вывода от ошибок прикладных программ, а также позволяют ОС надежно контролировать процесс разделения устройств и их данных между пользователями и процессами.
В описанной схеме драйверы не делились на слои. При этом они выполняли задачи разного уровня сложности: как самые примитивные, например, просто последовательно передавали контроллеру байты для дальнейшего использования, так и достаточно сложные, связанные с отработкой протокола взаимодействия между модемами или вычерчиванием на экране математических кривых.
Постепенно, по мере развития операционных систем и усложнения структуры подсистемы ввода-вывода, наряду с традиционными драйверами в операционных системах появились так называемые высокоуровневые драйверы, которые располагаются в общей модели подсистемы ввода-вывода над традиционными драйверами. Появление высокоуровневых драйверов можно считать дальнейшим развитием идеи многослойной организации подсистемы ввода-вывода. Вместо того чтобы концентрировать все функции по управлению устройством в одном программном модуле, во многих случаях гораздо эффективней распределить их между несколькими модулями в соседних слоях иерархии. Традиционные драйверы которые стали называть аппаратнымидрайверами, низкоуровневыми драйверами, или драйверами устройств, подчеркивая их непосредственную связь с управляемым устройством, освобождаются от высокоуровневых функций и занимаются только низкоуровневыми операциями. Эти низкоуровневые операции составляют фундамент, на котором можно построить тот или иной набор операций вдрайверах более высоких уровней.
При таком подходе повышается гибкость и расширяемость функций по управлению устройством — вместо жесткого набора функций, сосредоточенных в единственном драйвере, администратор ОС может выбрать требуемый набор функций, установив нужный высокоуровневый драйвер. Если различным приложениям необходимо работать с различными логическими моделями одного и того же физического устройства, то для этого достаточно установить в системе несколько драйверов на одном уровне, работающих над одним аппаратным драйвером.
Количество уровней драйверов в подсистеме ввода-вывода обычно не ограничивается каким-либо пределом, но на практике чаще всего используют от двух до пяти уровней драйверов — слишком большое количество уровней может снизить скорость операций ввода-вывода. Несколько драйверов, управляющих одним устройством, но на разных уровнях, можно рассматривать как набор отдельных драйверов или как один многоуровневый драйвер.
Высокоуровневые драйверы оформляются по тем же правилам и придерживаются тех же внутренних интерфейсов, что и аппаратные драйверы. Единственным отличием является то, что высокоуровневые драйверы, как правило, не вызываются по прерываниям, так как взаимодействуют с управляемым устройством через посредничество аппаратных драйверов. Менеджер ввода-вывода управляет драйверами однотипно, независимо от того, к какому уровню он относится. При наличии большого количества драйверов разного уровня усложняются связи между ними, что, в свою очередь, усложняет их взаимодействие, и именно эта ситуация привела к стандартизации внутреннего интерфейса в подсистеме ввода-вывода и выделения специальной оболочки в виде менеджера ввода-вывода, выполняющего служебные функции по организации работы драйверов.
Рассмотрим, как общие принципы построения многоуровневых драйверов могут быть реализованы при управлении определенными типами внешних устройств.
В подсистеме управления дисками аппаратные драйверы поддерживают для верхних уровней представление диска как последовательного набора блоков одинакового размера, преобразуя вместе с контроллером номер блока в более сложный адрес, состоящий из номеров цилиндра, головки и сектора. Однако такие понятия, как «файл» и «файловая система», аппаратные драйверы дисков не поддерживают – эти удобные для пользователя и программиста логические абстракции создаются на более высоком уровне программным обеспечением файловых систем, которое в современных ОС также оформляется как драйвер, только высокоуровневый. Наличие универсальной среды, создаваемой менеджером ввода-вывода, позволяет достаточно просто решить проблему поддержки в ОС нескольких файловых систем одновременно. Для этого в ОС устанавливается несколько высокоуровневых драйверов (на рисунке это драйверы файловых систем ufs, FAT, и NTFS), работающих с общими аппаратными драйверами, но по-своему организующими хранение данных в блоках диска и по-своему представляющими файловую систему пользователю и прикладным процессам. Для унификации представления различных файловых систем в подсистеме ввода-вывода может использоваться общий драйвер верхнего уровня, играющий роль диспетчера нескольких драйверов файловых систем. На рисунке в качестве примера показан диспетчер VFS (Virtual File System), применяемый в операционных системах UNIX, реали- зованных на основе кода System V Rе1еаве 4.
Необязательно все модули подсистемы ввода-вывода оформляются в виде драйверов. Например, в подсистеме управлениями дисками обычно имеется такой модуль, как дисковый кэш, который служит для кэширования блоков дисковых файлов в оперативной памяти.
Достаточно специфические функции кэша делают нецелесообразным оформление его в виде драйвера, взаимодействующего с другими модулями ОС только с помощью услуг менеджера ввода-вывода. Другим примером модуля, который чаще всего не оформляется, является диспетчер окон графического интерфейса. Иногда этот модуль вообще выносится из ядра ОС и реализуется в виде пользовательского процесса. Таким образом был реализован диспетчер окон (а также высокоуровневые графические драйверы) в Windows NT 3.5 и 3.51, но этот микроядерный подход заметно замедлял графические операции, поэтому в Windows NT 4.0 диспетчер окон и высокоуровневые графические драйверы, а также графическая библиотека GDI были перенесены в пространство ядра.
Аппаратные драйверы после запуска операции ввода-вывода должны своевременно реагировать на завершение контроллером заданного действия, и для решения этой задачи они взаимодействуют с системой прерываний. Драйверы более выcоких уровней вызываются уже не по прерываниям, а по инициативе аппаратных драйверов или драйверов вышележащего уровня. Не все процедуры аппаратного драйвера нужно вызывать по прерываниям, поэтому драйвер обычно имеет определенную структуру, в которой выделяется секция обработки прерываний (Interrupt Service Routine — ISR), которая и вызывается при поступлении запроса от соответствующего устройства диспетчером прерываний. Диспетчер прерываний можно считать частью подсистемы ввода-вывода, как это показано на рис. 1, а можно считать и независимым модулем ядра ОС, так как он служит не только для вызова секций обработки прерываний драйверов, но и для диспетчеризации прерываний других типов.
В унификацию драйверов большой вклад внесла операционная система UNIX. В ней все драйверы были разделены на два больших класса: блок-ориентированные (block-oriented) драйверы и байт-ориентированные (character-oriented) драйверы. Это деление является более общим, чем деление на вертикальные подсистемы. Например, драйверы графических устройств и драйверы сетевых устройств относятся к классу байт-ориентированных.
Блок-ориентированные драйверы управляют устройствами прямого доступа, которые хранят информацию в блоках фиксированного размера, каждый из которых имеет собственный адрес. Самое распространенное внешнее устройство прямого доступа — диск. Адресуемость блоков приводит к тому, что для устройств прямого доступа появляется возможность кэширования данных в оперативной памяти, и это обстоятельство значительно влияет на общую организацию ввода- вывода для блок-ориентированных драйверов.
Устройства, с которыми работают байт-ориентированные драйверы, не адресуемы и не позволяют производить операцию поиска данных, они генерируют или потребляют последовательности байт. Примерами таких устройств, которые также называют устройствами последовательного доступа, служат терминалы, строчные принтеры, сетевые адаптеры.
Блок- или байт-ориентированность является характеристикой как самого устройства, так и драйвера. Очевидно, что если устройство не поддерживает обмен адресуемыми блоками данных, а позволяет записывать или считывать последовательность байт, то и устройство, и его драйвер можно назвать байт-ориентированными.
Для байт-ориентированного устройства невозможно разработать блок- ориентированный драйвер. Устройство прямого доступа с блочной адресацией является блок-ориентированным, и для управления им естественно использовать блок-ориентированный драйвер. Однако блок-ориентированным устройством можно управлять и с помощью байт-ориентированного драйвера.
Так, диск можно рассматривать не только как набор блоков, но и как набор байт, первый из которых начинает первый блок диска, а последний завершает последний блок. Физический обмен с контроллером устройства по-прежнему осуществляется блоками, но байт-ориентированный драйвер устройства будет преобразовывать блоки в последовательность байт. Для устройств прямого доступа часто разрабатывают пару драйверов, чтобы к устройству можно было обращаться и по байт- ориентированному, и по блок-ориентированному интерфейсам в зависимости от потребностей.
Деление всех драйверов на блок-ориентированные и байт-ориентированные оказывается полезным для структурирования подсистемы управления вводом-выводом. Тем не менее, необходимо учитывать, что эта схема является упрощенной — имеются внешние устройства, драйверы которых не относятся ни к одному классу, например, таймер, который, с одной стороны, не содержит адресуемой информации, а с другой стороны, не порождает потока байт. Это устройство только выдает сигнал прерывания в некоторые моменты времени.
Операционная система UNIX в свое время сделала еще один важный шаг по унификации операций и структуризации программного обеспечения ввода-вывода. В ОС UNIX все устройства рассматриваются как некоторые виртуальные (специальные) файлы, что дает возможность использовать общий набор базовых операций ввода-вывода для любых устройств независимо от их специфики. Эти вопросы обсуждаются в следующем разделе, посвященном файлам и файловым системам.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
Понимай экономику процесса: драйверы и метрики
Поговорим пока о вещах, с Excel не связанных. Прежде чем пытаться что-либо описать па языке формул и цифр, необходимо четко понимать, что именно ты описываешь. Поэтому работу над моделью логичнее всего начинать с ее эскиза на листе бумаге.
Какова бизнес-модель описываемого процесса? Откуда деньги приходят, как используются, как создается добавленная стоимость, как она потом распределяется? Если вы пытаетесь описать процесс, который сами понимаете слабо, обратитесь за помощью к тому, кто его придумал или хорошо понимает.
Типичная ситуация: есть холдинг, в который входит материнская управляющая компания и одна или несколько дочерних производственных (оказывающих услуги и т.д.). Как оценить денежные потоки такого холдинга? Ответ зависит от того, какие бизнес-единицы предполагается делать центрами затрат (скорее всего, это будут именно «дочки»> и какие — центрами прибыли (может быть любая из компаний, входящих в структуру холдинга, но часто прибыль аккумулируют на материнской фирме). Все это надо четко понимать с самого начала, чтобы моделировать деятельность именно такого холдинга, где выручка «дочек» складывается исключительно из продаж в управляющую компанию. При этом ценообразование на этом уровне, скорее всего, построено таким образом, чтобы покрывать затраты каждой из производственных «дочек» и обеспечивать им какую-то минимальную рентабельность деятельности (1-5%).
Как в этом случае строится модель? У производственных компаний есть плановая себестоимость — для пас ото некая данность, менять которую мы не будем. Аргументом (т.е. такими же «синими» цифрами) мы здесь можем
выбрать процент наценки (mark up), который будет обеспечивать заданную небольшую (1-5%) прибыльность. Поскольку товар продается напрямую в материнскую компанию, то выручка производственных предприятий становится автоматически прямой себестоимостью материнской компании (т.е. визуально в модели это цифры зеленого цвета — прямые ссылки).
Выручка материнской компании складывается из продаж третьим лицам, т.е. это уже не внутрихолдинговый оборот, а реальная выручка всего холдинга. Вся разница между выручкой и себестоимостью па уровне материнской компании является львиной долей прибыли всего холдинга (как вы помните, производственные «дочки» получили свою небольшую долю прибыли на продаже товаров в материнскую компанию). Что тут нового и необычного? Ничего, за исключение того, что эту простую структуру надо правильно и прозрачно замоделировать, не смешивая выручку и затраты предприятий холдинга в одну кучу. Подробно о консолидации отчетности мы расскажем позже, и данный пример приведен лишь для иллюстрации понимания бизнес-логики.
Таких бизнес-моделей существует великое множество: кроме холдинговых структур типа «матрешек» и «пирамид» есть различные типы совместных предприятий и т. д. И в каждом случае надо четко представлять движение денег: откуда пришли, как использовались и создали стоимость, куда ушли. И понимать это необходимо до того, как принялись писать формулы в Excel. Теперь опустимся на уровень ниже, где нет никакого холдинга, а есть отдельное предприятие, деятельность которого и предстоит представить на формальном языке формул.
Драйверы, метрики — модные словечки из жаргона современных финансистов. Драйверы — это ключевые факторы, влияющие на некий результат, метрики — индикаторы, или показатели, которые рассматриваются как результат. Если вспомнить начала алгебры, то можно сказать, что драйверы — аргументы функции, метрики — сами эти функции. Очевидно, что такое разбиение весьма условно и зависит от уровня рассмотрения вопроса.
Пример из области финансов предприятия — рентабельность производства есть один из драйверов, а стоимость компании при этом будет являться метрикой. Если опуститься на уровень ниже, то для линейного менеджера, отвечающего за производство, рентабельность будет уже метрикой, а драйверами — множество факторов, которыми такой менеджер управляет (производительность труда, обеспеченность ресурсами и пр.). Если же, наоборот, подняться на уровень выше, то для топ-менеджмента стоимость компании может быть драйвером, а метрикой — показатель более высокого уровня (например, коэффициент обмена акций). Словом, как говорил Эйнштейн, все в мире относительно.
Что будет являться драйвером в каждом конкретном случае? Вопрос не так прост, как кажется. Он вытекает из гораздо более глобального вопроса о том, как создается стоимость. После того, как определились с тем, как деньги в компанию приходят, помогают создать добавленную стоимость и уходят (вспомните формулу Маркса «деньги — товар — деньги»), надо понять, что заставляет их двигаться именно в таких объемах, именно по такому маршруту и именно с такой скоростью. Эти движущие силы и являются драйверами.
Причем каждый из этих факторов (драйвер более низкого уровня) влияет на основные драйверы по-своему. Например, количество денег, потраченных на рекламу, влияет на количество новых абонентов, и влияние это описывается некой зависимостью — например, такой: каждые 10 рублей, потраченные на рекламу в январе, обеспечивают двух новых абонентов в феврале и еще одного— в марте.
Тогда мы имеем следующее: потратив в январе 10 рублей (абстрагируемся пока от капитальных затрат, связанных с установкой передающих станций и коммутаторов), мы получаем двух новых абонентов в феврале и одного в марте (т.е. в марте у нас будет уже три абонента). Предполагая, что ARPU па одного абонента составляет, скажем, 100 рублей в месяц, получаем, что выручка за февраль составит 200 рублей, а за март — 300 рублей. Откуда мы взяли 100 рублей? Например, отсюда: наш конкурент в этой же отрасли имеет ARPU в 200 рублей в месяц, по этот конкурент работает давно, у него лояльные и обеспеченные клиенты и пр. Вот маркетологи и оценивают, что в обозримом будущем для расчетов следует брать не более 50% от ARPU конкурента.
Похожая логика рассуждений применяется и в отношении капитальных затрат: скажем, па каждую тысячу абонентов надо поставить один новый коммутатор, а для того, чтобы эту тысячу привлечь, надо сделать зону покрытия не меньше, чем такой-то город, например. Тогда получается, что надо вложиться в ретранслятор и коммутатор уже сейчас, пока у нас нет ни одного абонента. Как только их количество достигнет 1001, надо будет моментально вводить в работу еще один коммутатор и одну станцию. И правильнее сделать это заранее, чтобы с появлением 1001-го абонента система не начала сбоить.
Вот так и работают драйверы, вот так и происходит осознание бизнес-логики. Исходя из этого, строится и модель. Само собой разумеется, что работа по созданию и подробному описанию подобных процессов — дело коллективное, в которое вовлечены не только финансисты, но и маркетологи, инженеры, специалисты по продажам и т.д.
Приведенные выше рассуждения во многом упрощены (мы совершенно не учли количество необходимого персонала, накладные расходы, да и много чего еще). Впрочем, мы и не ставим перед собой цель описать реальный бизнес, и эти рассуждения есть лишь примеры представления логики бизнеса. А логика — основа моделирования. В завершение темы метрик и драйверов приведем простую схему-модель драйверов стоимости производственной компании.
Простая схема-модель драйверов стоимости производственной компании
Совершенно очевидно, что подобное разложение драйверов «по винтикам» возможно не только в таком, но и в любом другом виде: например, по клиентам (количество клиентов в отношении к прибыли на одного клиента), по филиалам (количество филиалов в отношении к прибыли на один филиал) и т.п.
Простое, но чрезвычайно важное правило для понимания того, как создается стоимость в любом бизнесе: она образуется по одному и тому же принципу, а именно — по принципу поиска возможности продать продукт по цене, превышающей стоимость ресурсов, потраченных па его производство, причем продать как можно больше таких продуктов. Все меры, нацеленные на увеличение стоимости, так или иначе сводятся к тому, чтобы привлекать более дешевые ресурсы, максимально возможно повышать цены и увеличивать количество проданных продуктов. Собственно, искусство управления и сводится к решению этой задачи.
Источник: pivot-table.ru