Development tool simplifies development of Linux drivers
May 9, 2000 — by LinuxDevices Staff — from the LinuxDevices Archive — viewsJungo Ltd. (Israel) has released a Linux version of its WinDriver device driver development toolkit. WinDriver simplifies the development of Linux device drivers for PCI/ISA bus interfaced hardware, by automating the development process and eliminating the requirement to program in kernel mode.
WinDriver is based on a generic device driver, which resides in the Linux kernel. The application calls the WinDriver “kernel module” through a user mode API. As a result, it is possible to write Linux device drivers without being familiar with Linux internals. “WinDriver makes it possible to write and debug hardware access code completely in user mode, thereby eliminating the need for long and tedious kernel code writing and debugging” says Omer Zimmer, of Jungo.
Additionally, the unique characteristics of the operating system are handled from within the kernel module portion of WinDriver. Consequently, the resulting user mode code is operating system independent and may be used with multiple OSes, resulting in a transportable application.
WinDriver for Linux features performance enhancement tools that move portions of the user mode code to the kernel level, thus minimizing unnecessary context switches. The tools allow writing and debugging hardware access code in user level and later “moving” performance critical parts (interrupt handling, I/O access…) to kernel level, without rewriting. This feature is supported in all operating system versions of WinDriver, resulting in portability of kernel level code between operating systems “as is” (no rewriting needed).
WinDriver for Linux supports all versions of Linux from 2.0.31 onwards. (For example, RedHat 6.1 contains kernel version 2.2.12). It is also possible to adapt WinDriver to run with a custom Linux kernel, since source code to the OS-dependent portion of WinDriver is offered, allowing it to be modified it to work with a custom Linux kernel.
WinDriver features include:
- Supports both PCI and ISA bus
- Automatic implementation of I/O, interrupt handling and access to memory mapped devices
- Support for continuous DMA, Plug-and-Play, and multiple bus devices
- Developed code runs on all supported operating systems (x86)
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.