![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 14/10/2010 08:37 PM, Warp wrote:
> Invisible<voi### [at] dev null> wrote:
>> I was going to say some fairly small number. And then I remembered that
>> "the Linux kernel" actually includes every Linux device driver ever
>> written, for every architecture, ever. That alone means it must be
>> absolutely massive. (And then there's support for every file system ever
>> implemented, every network protocol ever implemented, every kind of
>> block device, an entire route and firewall subsystem...)
>
> Most device drivers are loaded as modules rather than being hard-coded
> into the kernel.
Doesn't that mean they're still part of the kernel source tree though?
I do recall last time I tried recompiling the kernel, there were several
items that you could hard-link or have as loadable modules. But either
way, they're still part of the kernel source tree. So the kernel source
tree would still be enormous...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible <voi### [at] dev null> wrote:
> Doesn't that mean they're still part of the kernel source tree though?
> I do recall last time I tried recompiling the kernel, there were several
> items that you could hard-link or have as loadable modules. But either
> way, they're still part of the kernel source tree. So the kernel source
> tree would still be enormous...
Since you can optionally include and exclude kernel modules (so that
you can eg. compile a very minimal and small kernel for a specific
device), it's debatable how much of the source code should really be
considered part of the kernel and which parts are only optional extras.
If you only count the parts of the kernel which are necessary to compile
a binary which can be run on your computer (or on some specific device),
the source code size would be significantly smaller than if you counted
every single module ever written for it.
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> Doesn't that mean they're still part of the kernel source tree though?
Not all of them. Some are, some aren't, depending on what hardware you're
supporting. I'm pretty sure, for example, that the device drivers for the
custom hardware in the box I'm programming aren't what you'd call "part of
the kernel" in any reasonable sense, since they're neither open source nor
maintained by anyone outside the company that makes the hardware.
Stuff like USB root hub and protocol support? I'd expect that's part of the
kernel.
So, yes, the kernel is quite big. Much, much bigger than 600 lines. I'd be
surprised if the virtual memory support wasn't a whole lot bigger than 600
lines.
600 lines really isn't a whole lot of code in C. Back in college I wrote
something like 10,000 lines for a simple library to do text-only stuff like
input prompts, menus, help screens, report printing, etc for an insurance
product. C is so primitive that the line count is probably at least 10x
something equivalent in a language like Haskell.
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Darren New <dne### [at] san rr com> wrote:
> 600 lines really isn't a whole lot of code in C. Back in college I wrote
> something like 10,000 lines for a simple library to do text-only stuff like
> input prompts, menus, help screens, report printing, etc for an insurance
> product.
No offense, but that really doesn't say anything. I have seen people
write over 100 lines of code in C for something that could have been
written in 2 (no exaggeration).
--
- Warp
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp wrote:
> Darren New <dne### [at] san rr com> wrote:
>> 600 lines really isn't a whole lot of code in C. Back in college I wrote
>> something like 10,000 lines for a simple library to do text-only stuff like
>> input prompts, menus, help screens, report printing, etc for an insurance
>> product.
>
> No offense, but that really doesn't say anything.
True, but I was a pretty good programmer even back then. ;-)
The library really wasn't what I'd call "simple". It's "simple" compared to
modern graphics stuff.
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |