В zsh, с модернизированным активным завершением (т.е. с compinit
в Вашем .zshrc
), _history_complete_word
функция обеспечивает эту функцию. Это доступно через два виджета: _history-complete-older
и _history-complete-newer
, связанный с ESC ,
и ESC /
по умолчанию. Эти две команды циклически повторяются через все слова в истории оболочки, которые имеют текущее слово как префикс.
Libusb является библиотекой для взаимодействия с USB-устройствами таким же образом, которые проклятия библиотека для взаимодействия с текстовыми терминалами, ALSA (более точно его libasound компонент) является библиотекой для взаимодействия с устройствами Audi и т.д. Ядро обрабатывает аппаратные взаимодействия. Это обеспечивает файлы устройств, которые приложения могут открыть для взаимодействия с аппаратными средствами, через read
, write
и ioctl
системные вызовы.
ioctl
системный вызов: это позволяет приложениям (код уровня пользователя) выпускать запросы, которые являются процессами ядром.
Libusb позволяет приложениям регистрировать функции обратного вызова, которые выполняются, когда устройство имеет что-то для создания отчетов. Вот грубый обзор информационного потока под капотом:
read
, write
или ioctl
системный вызов на файле устройств и причинах тот системный вызов возврата.Linux использует два кольцевых кольца 0, назван уровнем ядра, кольцо 3 называют уровнем пользователя. Соединение от пользователя к ядру сделано (как оно было уже сказано) через syscalls. Между ними библиотеки, как замечено от пространства пользователя. Таким образом, большая часть низкоуровневого доступа к ядру реализована в библиотеках, по причинам устойчивости, безопасности, синхронизации, сохраните интервал и так далее. Драйвер ядра предоставляет различные интерфейсы пространству пользователя: (ioctl, sysfs, сокеты, устройства посимвольного ввода-вывода и блочные устройства и так далее) Интерфейсы Пространства пользователя. Таким образом, если Вы хотите, можно реализовать доступ к драйверу ядра собой опускающий библиотеки или намного более легкую компиляцию Ваш двоичный файл со статическими связанными библиотеками.
Хорошая начальная точка должна считать libusb источники, они хорошо документируются.
Это использует syscalls (2) и файлы устройств, подготовленные ядром ( /dev/bus/usb/*
)
libusb
все еще смогите получить доступ к нему? – Thomas 16.01.2014, 13:07/dev/ttyS*
. USB является тем же принципом, только быстрее и более сложным. использование – Gilles 'SO- stop being evil' 16.01.2014, 14:16