|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valeriy E. Ushakov 2:5020/400 23 Jan 2002 17:59:57 To : Roman V. Mashak Subject : Re: NetBSD question -------------------------------------------------------------------------------- Roman V. Mashak <mrv@tusur.ru> wrote: > One example is the implementation of a machine independent bus > infrastructure, which enables a single driver for a device ... to be > shared across different busses, and across different platforms, > rather than the traditional approach of writing and maintaining many > different versions of the driver, each with their own tweaks. In > NetBSD, the `tweaks' are in small 'glue' functions that allow > improvements to the core driver to benefit all ports. > > Т.е. имеется _один_ драйвер (PCI/EISA ипр.) и подо все платформы сразу? Да. Hапример: имеется машинно-независимый драйвер com-порта (ns16[456]50). Этот самый "клей" для него, скажем, для ebus состоит из пары функций и занимает строк 100 со всеми #include и комментариями (не считая copyright boilerplate), строк 50 собственно кода. См. соответственно: sys/dev/ic/com.c - MI драйвер sys/dev/isa/com_isa.c - ISA attachment sys/arch/sparc/dev/com_ebus.c - EBus attachment sys/arch/sparc64/dev/com_ebus.c - EBus attachment Последние два можно было бы, в принципе, слить в один, но на sparc64 клава/мышь сериальные, и sparc64 вариант понимает где у него "настоящий" ком-порт, а где клава/мышь, которые надо туда приаттачить. Или скажем машинно незаивисмая PCI framework - порт на новую платформу требует написания около дюжины машинно-зависимых функций, после чего все PCI драйвера "просто работают" (где, опять же у драйвера есть PCI specific attachment glue, и собственно bus-indepenedent драйвер). SY, Uwe -- uwe@ptc.spbu.ru | Zu Grunde kommen http://www.ptc.spbu.ru/~uwe/ | Ist zu Grunde gehen --- ifmail v.2.15dev5 * Origin: St.Petersburg University NOC (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/65783f5a825f.html, оценка из 5, голосов 10
|