LinCAN is a Linux kernel module which implements a CAN driver capable of working with multiple cards, even with different chips and IO methods. Each communication object can be accessed from multiple applications concurrently. The driver supports Linux 2.4.x, 2.6.x, and 3.x kernels and implements select, poll, fasync, O_NONBLOCK, and O_SYNC semantics and multithreaded read/write capabilities. It works with the common Intel i82527, Philips 82c200, and Philips SJA1000 (in standard and PeliCAN mode) CAN controllers. It is part of a set of CAN/CANopen-related components developed as one of the OrtCAN project components.
OpenCAN is a software platform for interacting with various Controller Area Network (CAN or CANbus) devices. It provides an abstract C++ interface that can be used to control CAN devices. Support for specific devices can be written as plugins, and then loaded through a simple API call. Each component is cross-platform, enabling the efficient development of CAN software on Windows, Linux, and Mac OS X.