Slashdot Mirror


Calling for Smaller Kernel Sources?

FrozedSolid asks: "I can understand that the kernel contains many drivers and support for a lot of platforms, but the fact that the full kernel download can amount to 32mb doesn't make it any easier to download with a 56k modem. Kernel patches are nice, but obviously only apply when you have access to an entire kernel tree beforehand. Is there a way you can download a leaner linux kernel source? Is there a place that carries sources for x86 only or possibly sources without some of the less popular drivers?"

34 of 69 comments (clear)

  1. Actually, by GreyWolf3000 · · Score: 5, Interesting
    32MB is not too much to ask. On 56k, that amounts to like a few hours of download. Let's assume 5K/s (I used to get 2 in Windows, but 7 is Linux for some reason). That's 300K/min. That's 1 MB every 3.5 minutes. That's 32MB in ~120 minutes, or 2 hours.

    If you haven't gotten cable, and you're using Linux, the distros themselves are at a magnitude greater in size; I doubt that kernel sources are the real problem.

    --
    Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
    1. Re:Actually, by King+of+the+World · · Score: 4, Funny
      You do realise that you're turning your back on the potentially brilliant kernel developers who are physically unable to leave a download going overnight and start "hacking" the next day, don't you?!?

      What sane person would ask such a thing.

    2. Re:Actually, by kerasineAddict · · Score: 3, Interesting

      Sometimes, every byte counts.
      I'm in a University residence, where we're allowed 500MB / week...This alone can get eaten up pretty quickly when you're downloading updates to software...Or, for example a DSL provider around here charges over 5GB/month. Now in these examples 10-20 megs won't make or break you, but it does point out that these things can matter.

    3. Re:Actually, by jag164 · · Score: 2, Funny
      Hell, by the way you talk, it seems you couldn't contribute to a roman orgy with a twelve inch cock. Get with the times Jethro, and get broadband. Don't be so damn cheap. Hell, if broadband isn't available in your area there are other alternatives. Me thinks rsync'ing the kernel sources would work wonders. Worked for me when when I was stuck with 38.4 for four months. If your were so 'brilliant' you would have thought of this already.

      Have a nice day.

    4. Re:Actually, by jag164 · · Score: 2

      The sentence following the one you quoted you stupid AC. Need more?

  2. Part already answered by gmhowell · · Score: 4, Informative

    Part of this has already been answered. If you just pick x86 (or PPC or Alpha etc.) the size does not change that much. The vast majority of the kernel is not architecture specific. That's a good thing!

    I don't know of any sites, but let me say a few things. First, your distro probably has a binary package with almost everything either compiled in or a module. Barring that, when I used to be stuck on dialup, I'd get the most recent kernel and then download the patch each time. It was a pain in the butt, but not as bad as downloading the full sources each time.

    --
    Jesus was all right but his disciples were thick and ordinary. -John Lennon
  3. RSYNC!!! by Jeremiah+Cornelius · · Score: 5, Informative
    You need rsync.

    It was devised to combat just the problem you cite.

    rsync://rsync.kernel.org/pub/[wherever you want to go]

    Thank you, TRIDGE!

    --
    "Flyin' in just a sweet place,
    Never been known to fail..."
  4. Online make menuconfig by cybermace5 · · Score: 4, Interesting

    Seems like a person could set up a few webservers, let people select kernel configuration options, and send the much smaller bzImage (and compiled modules) through email. Sure, the size would vary wildly based on how many modules were selected, the architechture, etc., but on average I'd say it would be much smaller.

    The benefit is less bandwidth wasted for people downloading 35 megs of source to recompile a 900K kernel image. The disadvantage is processor time required, well, how many Athlons do you have to buy to serve the same number of kernels per day, and how does it compare to bandwidth costs?

    Yes, *I* would like to have the sources to myself, I have a few source files I need to tweak to get my machine working properly. But many people just have the burned CD from the friend of a friend, and would appreciate a recent kernel without a mammoth download.

    Maybe someone's already doing this, I don't know.

    --
    ...
    1. Re:Online make menuconfig by FueledByRamen · · Score: 5, Interesting

      Hey, this does sound interesting. I have a few spare computers around and a little knowledge of PERL... I think that I'll look into this tomorrow. That would be _really_ neat. If I do manage to get something working, I (of course) will insure that it won't remain that way for long by posting it back up here...

      It really shouldn't be too hard. I've been staring at your post thinking for a bit, and the best way to do it that I can think of is to read in the config template file from the kernel source tree (have several selectable versions) and generate a huge page full of radio-select buttons. Once that is submitted, an MD5 hash is applied to the generated config file. If it matches an existing package (unlikely at best), simply serve that up. Otherwise, make a new build tree named "builds/$VERSION/$MDSUM" and copy the config file into it. Build the kernel, tar.gz the resulting modules and kernel image, and email the links to the person.

      This would require quite a bit of CPU horsepower, but it would make for a nice, small kernel download and a sort of set-and-forget build. Set the options and press the button on your lunch break, and have the link sitting in your inbox when you get home (unless it's slashdotted, in which case I'll come home to a hole melted in my floor where a server and accompanying cable modem used to be).

      --
      Every cloud has a silver lining (except for the mushroom shaped ones, which have a lining of Iridium & Strontium 90)
    2. Re:Online make menuconfig by addaon · · Score: 2

      Go for it. Coming up with ideas like this is important, and it's great that cybermace did. But it's through people taking ideas and running with them that great things get done.

      --

      I've had this sig for three days.
    3. Re:Online make menuconfig by Permission+Denied · · Score: 2
      Seems like a person could set up a few webservers, let people select kernel configuration options, and send the much smaller bzImage

      Hmm...yes....

      Well, I have a kernel for you to run. Just send me your config, and I'll send you a bzImage. Problem solved!

      All that's missing is the web server part, but I can fix that once a few people start using my kernels :)

    4. Re:Online make menuconfig by einstein · · Score: 2

      but all you're 0wz0r3d b0x3n would be on 56k. why bother? :)
      --

    5. Re:Online make menuconfig by aridhol · · Score: 2
      Aren't you proposing the distribution of binaries without the source?
      Include a link to kernel.org, or mirror the kernel on your site.
      Besides which, you would be AMAZED at how many kernals some DOS adventurer can request in a matter of a few seconds.
      Keep a cache of pre-built kernels. Odds are in your favor that multiple people will request the same configuration. Use that to your advantage.
      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    6. Re:Online make menuconfig by cybermace5 · · Score: 2

      What this project needs is a distributed gcc.

      Wow, that pie sure is way up there.

      But, imagine a huge network of computers all compiling your kernel...in a few seconds. You could even have redundancy and checksums to guard against the security concerns some are having about this idea.

      Again, 6000% more work, but interesting nonetheless.

      --
      ...
  5. Seek bandwidth elsewhere. by toybuilder · · Score: 5, Insightful

    Never under-estimate the bandwidth of a plane full of CD's... ...or the CD-RW drive at your nearest Internet Cafe.

    1. Re:Seek bandwidth elsewhere. by schnurble · · Score: 2

      Yeah, but the latency's a bitch.

      --
      "To err is human, to forgive is simply not my policy." --root
  6. Distro's SRPMs + Incremental patches by Lurch00 · · Score: 2, Informative

    The last time I was poking around the kernel source SRPM for a Mandrake install, the stock linux-2.4.? tarball was in there (along with all the other patches they apply to it).. Your distribution may have the same thing. Unpack the SRPM to get a linux tarball, unpack that to get the source tree, then download and install the patches to bring it up to the version you want to run.

    Granted, this doesn't answer your question, but it may ease the download times a bit..

  7. Well... by joto · · Score: 2
    There is this thing called CD distributions you know. Back before I had my cable-modem, I used to have a subscription to the InfoMagic linux developer set. It contained (back then), at least RedHat and Slackware, as well as a dump of some popular ftp-sites with active development).

    I don't think making a smaller kernel tree just for those people who unecessarily wants to be bleeding edge, don't like CD distributions, don't like downloading patches, won't or can't have broadband at home, and doesn't have access to broadband at a friends place, library, workplace, school or anywhere else is worth the trouble. But if you feel otherwise, just go ahead and make it.

  8. This is nothing by 0x0d0a · · Score: 3, Interesting

    Incredibly, Mozilla 1.2 is going to have built-in, enabled-by-default prefetching. The amount of bandwidth this will waste blows the mind. Imagine every single Joe on the Net suddenly using up 20 times as much bandwidth downloading stuff that he will *never see*. The intermitent activity on lines turning into constant load -- and ISPs rely on being able to oversell their lines.

    Back in the day when the now-unpopular "web accelerators" were getting big, I always brushed them off as used by network abusers who didn't know what they were doing. Now this abuse has been legitimized.

    The people who are going to be the real losers in all this are the techies, the ones who tend to have several browser windows loading at once, or a n ssh connection, or a server running. Up until now, they've been somewhat subsidized by the fact that ISPs can charge cheap prices because the other 98% of users only use their line 10% of the time. Now that everyone's lines are going to be under continuous load...goodbye Quake.

    The entire idea of single window browsing is simply awful. It places extremely tight constraints on bandwidth and latency. When the user clicks a link, they want the new page there, now, and damn anything that has to be done to get it there. If you work with several windows downloading at once, so that you're reading one while another is coming in, you never run into this problem, since even a modem is easily enough to comfortably handle web browsing of nearly any site...as long as you're not waiting around staring at a progress bar while the image loads. Prefetching simply feeds this flawed single-window user-behavior model.

    For once, a Microsoft program (IE) is actually less of a network abuser than its competitors. Awful.

    1. Re:This is nothing by Anonymous Coward · · Score: 2, Informative

      It only prefetches next/previous link rels, which would be little bandwidth. The only downside of this is the abuse to - in the background - prefetch ads to fake ad impressions.

    2. Re:This is nothing by jensend · · Score: 3, Informative

      This is false. The Mozilla prefetching is only for pages which explicitly request to be prefetched by a or type construction- a slideshow, for instance, might use Moz's link prefetching (since the probability that someone will proceed to the next slide is rather high), but most sites won't.

      Of course, they ideally ought to implement blacklist blocking for prefetching so people could exclude sites which use it in ways which affect network traffic adversely enough to be a worry, but my guess is that people won't start abusing it until IE does it as well.

      I had the same feeling of shock when I first heard about it a week ago- until I read the FAQ. Remember- any large project like this is unlikely to make highly visible stupid decisions. You linked to the FAQ; please read it.

    3. Re:This is nothing by jensend · · Score: 2

      Ack. Slashdot stripped the tags (even though I told it to format as Plain Old Text). That would be a "link rel=prefetch" or "link next=" construction.

  9. Re:get an autodownloader by den_erpel · · Score: 2

    Just a quick look at the suggested software, but you are asking a GNU/Linux user to:

    1. buy and install some W32 OS
    2. buy and install DAP
    3. download the Linux kernel sources
    4. reboot and compile

    I am aware of vmware, wine, ... but I guess you see the problem here... (next to the fact that it's not even certain you are using an ia32 architecture, something W32 prophets are always assuming obviously).
    I personally do not like 4a ;) because rebooting is for installing new hardware ;)

    --
    Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."
  10. The catch with rsync by Sits · · Score: 2

    rsync is great when what you are downloading is a newer version of something old and is uncompressed (ISOs tend to work quite well). Unfortunately, things like a compressed kernel tarball (or an RPM) seem tend to compress differently each time leaving relatively little in common causing the speed up from rsync to be very small (if there at all).

    1. Re:The catch with rsync by robin · · Score: 3, Informative

      I thought that recent gzip compressed files were "rsyncable", in that the blocks they consist of are designed to remain as invariant as possible given the slight differences in content of the files. See, for example, this patch.

      --
      W.A.S.T.E.
    2. Re:The catch with rsync by robin · · Score: 2

      bzip2 seems to use 900k blocks (see ref et seq), so even if it does this kind of thing I'm not sure that in the case of rsyncing updates to kernel source code it is going to be very useful. I guess you have to make the trade-off between the smaller .bz2 files vs larger but rsyncable .gz files.

      --
      W.A.S.T.E.
  11. use bitkeeper and you can update only the diffs by Zeio · · Score: 2
    warning: bitkeeper has a strange license, please consider it very carefully. I do not agree with the use of this license but Linux likes it and it helps development


    Just an FYI for people getting into kernel stuff with RedHat-ish systems:

    Getting Linux via bitkeeper.

    First, get BitKeeper:

    http://www.bitmover.com/cgi-bin/download.cgi [bitmover.com]

    Follow the instructions and it will tell you how to download and install BitKeeper.

    Then, clone the main Linux tree using BitKeeper:
    $ cd /usr/src/linux-2.5.40
    (or wherever you would like your stuff)
    $ bk clone bk://linux.bkbits.net/linux-2.5
    $ ln -s linux-2.5.40 linux
    $ (optional if needed, ln -s linux-2.5.40 linux-2.4 ; ln -s linux-2.5.40 linux-2.5) - sometimes dists and weird driver SRPMS look for linux/include in all sorts of places
    $ cd linux
    $ bk -r co

    Also don't forget.

    - /usr/src/linux , /usr/src/scsi ; /usr/src/asm ; /usr/src/asm-generic should all be re-linked to the right places in /usr/src/linux/include [if this is no longer necessary let me know]
    - make install doesn't work with grub, so you have to do your thing manually now
    - recommended compiler is gcc-2.9.5.3 [for 2.4 and 2.5 now], I always have extra compilers ready to go just in case. Make sure all the tools are the proper version, and that you have a recent ksymoops (if you need to do any messing around looking for problems ), modutils - etc.

    If the build fails, find the offending code and remove from selection, or try to hack it if you need it.

    I would like to also mention cvsup and FreeBSD. I like cvsup quite a bit and its free and open. I only wish the linux kernel was using the same method FreeBSD does. I like FreeBSD for its coherency speed and ease of maintenance, and that the kernel is released with a system for a very smooth ride. If you havent tried FreeBSD, please try it.

    rsync is also very good. use it. I would also like to promote the purchasing of very cheap CDroms to get your started, and FreeBSD CD is great because you can use CVSUP to diff the whole thing with minimal bandwidth abuse.

    --
    Legalize the constitution. Think for yourself question authority.
  12. Use the patches by Spacelord · · Score: 2, Informative

    download once
    use the patches for incremental upgrades
    problem solved

  13. While building kernels as a service... by dpilot · · Score: 2

    don't forget to install the Trojan code, too.

    It's a good idea, but how do I *trust* that webserver that just compiled a new kernel for me? I trust kernels from the disto, kernels I build, and maybe a few other places, but that's about it.

    --
    The living have better things to do than to continue hating the dead.
    1. Re:While building kernels as a service... by cybermace5 · · Score: 2

      Ultimately you have to trust the people who develop any source you compile. Unless, of course, you want to pore through the files and hunt for every possible vulnerability.

      If a trusted entity set up a service like this, I see no reason it would be more vulnerable to abuse than a source distribution. Unless you always check all the kernel source before you compile it, there is a possiblity of compromise either way.

      Since the kernel's track record on this is pretty good, I'd say would be possible to do this without too much risk. I mean, how many of you have used one of those one-floppy-wonder images? Is there any way to be sure a trojan isn't installed in that kernel?

      --
      ...
  14. Downloadable Kernel by CyberKnet · · Score: 2

    I've been thinking about this same problem for a while. Especially before I had broadband.

    Checking the posts, I see someone mentioned a solution similar to what I am thinking about, but for binary kernel downloads. Whilst nice, I think few people actually trust a binary they didn't build themselves.

    I've been wondering why kernel.org didn't create a download configurator somewhat like the one that existed for djgpp in the delorie days.

    The poster is right in a sense, there are a multitude of drivers in the kernel that a large percentage of people will never use, but which are still invaluable for the people who do. So why not allow a custom download somewhat like make menuconfig. Select the packages you *could* end up building, download them, and then build your kernel on the local machine.

    Given that I have absolutely zero knowledge about the kernel source, it's highly likely that I am overlooking something rather basic... is there something I am missing?

    --
    Video meliora proboque deteriora sequor - Ovidius
  15. Modular Kernel Sources? by Anonymous Coward · · Score: 2, Insightful

    Has anyone considered the possibility of modular kernel sources? Break the sources into several modules. Things like kernel-base, kernel-scsi, kernel-reiser. Download the ones you need. extract all to the same location. things like `make menuconfig` would scan for your "modules" and give you options based on which modules you have extracted. Is this a possible method to making smaller downloads?

  16. How about a (shudder) MS-Like installer? by RevRagnarok · · Score: 2, Insightful

    What about similar to what the MSIE and Netscape installers do - choose what parts you want to download...? Have the equivalent of a 'make menuconfig' that you run on your local machine, which will then just download the required/selected source, or even better calls some kind of CGI that custom packs your source tree into a tgz file for you?

    I think 'make depend' may kill it tho... unless that information can somehow be downloaded ahead of time also.

    - RR

    --
    I should put something clever here. Maybe someday.
  17. True by 0x0d0a · · Score: 2

    You are correct, but you made one bad assumption -- that people designing web pages are interested in responsible use of the network.

    You've got a web designer who can "improve his user experience" by marking everything as prefetchable -- what do you think is going to happen?

    And the overwhelming majority of web designers these days use GUI tools. After word gets out that websites designed with tool "foo" are snappier (because it uses prefetch by default), and it becomes a selling point...

    After all, what web designer wants to believe that people won't delve deeper into his site, and hit those pages *anyway*?