2003-08-05 11:42:46

by Rafael Costa dos Santos

[permalink] [raw]
Subject: Module Programming

Where can I follow the modifications under the main functions of linux kernel
programming between versions of kernerl?

I am asking that because I have some work on that area and I want it to be
portable to every kernel versions.

--
Rafael Costa dos Santos


2003-08-05 12:00:50

by Tommy Reynolds

[permalink] [raw]
Subject: Re: Module Programming

Uttered Rafael Costa dos Santos <[email protected]>, spoke thus:

> Where can I follow the modifications under the main functions of linux kernel
> programming between versions of kernerl?
>
> I am asking that because I have some work on that area and I want it to be
> portable to every kernel versions.

The authoritative reference for Linux device drivers is Rubini and
Corbet's book "Linux Device Drivers". You should buy your own copy
but there is an online copy available:

http://www.xml.com/search/index.ncsp?sp-q=rubini&search=search

Linux device drivers are not guaranteed to be portable between kernel
versions, however they are usually platform-independent.

Cheers!

2003-08-05 12:13:12

by Richard B. Johnson

[permalink] [raw]
Subject: Re: Module Programming

On Tue, 5 Aug 2003, Rafael Costa dos Santos wrote:

> Where can I follow the modifications under the main functions of linux kernel
> programming between versions of kernerl?
>
> I am asking that because I have some work on that area and I want it to be
> portable to every kernel versions.
>

Well you can't be "portable to every kernel version", but you
can design your modules so that they will compile and run on
every version that supports modules.

The easiest thing is to try to compile your module, designed for
an older version, using a newer version of kernel headers. You
can then "fix" things that don't compile. You fix them inside
some compiler conditionals so they are not "fixed", hense broken,
for previous versions.

If you have a lot of modules, then you probably should make a
'configure' program or script that sets the proper conditionals
in some dynamic header file, based upon the kernel version.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.20 on an i686 machine (797.90 BogoMips).
Note 96.31% of all statistics are fiction.