• Home
  • Raw
  • Download

Lines Matching +full:processor +full:- +full:a +full:- +full:side

8 Greg Kroah-Hartman <greg@kroah.com>
10 This is being written to try to explain why Linux **does not have a binary
11 kernel interface, nor does it have a stable kernel interface**.
20 will not break. I have old programs that were built on a pre 0.9something
27 -----------------
28 You think you want a stable kernel interface, but you really do not, and
29 you don't even know it. What you want is a stable running driver, and
32 tree, all of which has made Linux into such a strong, stable, and mature
38 -----
40 It's only the odd person who wants to write a kernel driver that needs
41 to worry about the in-kernel interfaces changing. For the majority of
48 released under the GPL. Please consult a lawyer if you have any legal
49 questions, I'm a programmer and hence, I'm just going to be describing
59 -----------------------
60 Assuming that we had a stable kernel source interface for the kernel, a
64 - Depending on the version of the C compiler you use, different kernel
71 - Depending on what kernel build options you select, a wide range of
74 - different structures can contain different fields
75 - Some functions may not be implemented at all, (i.e. some locks
76 compile away to nothing for non-SMP builds.)
77 - Memory within the kernel can be aligned in different ways,
80 - Linux runs on a wide range of different processor architectures.
84 Now a number of these issues can be addressed by simply compiling your
87 want to provide a module for a specific release version of a specific
90 releases of the Linux distribution and you quickly have a nightmare of
92 Linux distribution release contains a number of different kernels, all
93 tuned to different hardware types (different processor types and
94 different options), so for even a single release you will need to create
98 of release, I learned this the hard way a long time ago...
102 -------------------------------
104 This is a much more "volatile" topic if you talk to people who try to
105 keep a Linux kernel driver that is not in the main kernel tree up to
108 Linux kernel development is continuous and at a rapid pace, never
110 current interfaces, or figure out a better way to do things. If they do
117 As a specific examples of this, the in-kernel USB interfaces have
119 subsystem. These reworks were done to address a number of different
122 - A change from a synchronous model of data streams to an asynchronous
123 one. This reduced the complexity of a number of drivers and
126 - A change was made in the way data packets were allocated from the
128 more information to the USB core to fix a number of documented
131 This is in stark contrast to a number of closed source operating systems
139 relatively little pain. If Linux had to ensure that it will preserve a
140 stable source interface, a new interface would have been created, and
144 gain, for free, is not a possibility.
146 Security issues are also very important for Linux. When a
147 security issue is found, it is fixed in a very short amount of time. A
156 Kernel interfaces are cleaned up over time. If there is no one using a
164 ----------
166 So, if you have a Linux kernel driver that is not in the main kernel
167 tree, what are you, a developer, supposed to do? Releasing a binary
168 driver for every different kernel version for every distribution is a
170 is also a rough job.
173 talking about drivers released under a GPL-compatible license here, if your
175 you leech). If your driver is in the tree, and a kernel interface changes,
180 The very good side effects of having your driver in the main kernel tree
183 - The quality of the driver will rise as the maintenance costs (to the
185 - Other developers will add features to your driver.
186 - Other people will find and fix bugs in your driver.
187 - Other people will find tuning opportunities in your driver.
188 - Other people will update the driver for you when external interface
190 - The driver automatically gets shipped in all Linux distributions
193 As Linux supports a larger number of different devices "out of the box"
195 different processor architectures than any other operating system, this
200 ------