Я новичок в Linux, пытаюсь понять модель устройства Linux. Я просматривал кодовую базу Linux 3.1.6, особенно часть драйвера, и обнаружил, что
- некоторые из драйверов использовали (например, устройство i2c-bus: linux-3.1.6 / drivers / i2c / i2c-dev.c) * register_chrdev () * и
- несколько других (например, pci bus: linux-3.1.6 / drivers / pci / bus.c) использовали * device_register () *.
Мой вопрос: когда использовать register_chrdev (да, я знаю это для символьного устройства, но почему бы не использовать device_register) и device_register?
Зависит ли это от того, где разработчик драйвера хочет, чтобы его устройство / драйвер было указано в списке, например devfs vs sysfs? Или интерфейс выставлен в пользовательское пространство для доступа к устройству?