Slashdot Mirror


TCCBOOT Compiles And Boots Linux In 15 Seconds

An anonymous reader writes "TCCBOOT is the first boot loader able to compile and boot a Linux kernel directly from its source code. It can compile and start booting a typical Linux kernel in less than 15 seconds on a 2.4 GHz Pentium 4. TCCBOOT uses the latest version of the TinyCC C compiler."

27 of 342 comments (clear)

  1. Too fast... by smudge8 · · Score: 5, Funny

    To be honest, I LIKE the delay when I have to reboot. It gives me time to have a pee, stretch my legs, have a drink...

    Eventually we're going to spend 24 hours a day staring at the screens because there'll be no excuse at all for leaving the screen.

    1. Re:Too fast... by Dasein · · Score: 4, Funny

      there'll be no excuse at all for leaving the screen

      Um. Social life, family, sex, ....

      Yes, I do realize that I'm posting to slashdot.

      --
      You are not a beautiful or unique snowflake -- but you could be if you got off your ass.
    2. Re:Too fast... by wrook · · Score: 5, Funny

      That might be OK for Windows. For Linux, you might not want to wait for a reboot to take a pee. Just a word of warning...

    3. Re:Too fast... by D-Cypell · · Score: 5, Funny

      I LIKE the delay when I have to reboot. It gives me time to have a pee, stretch my legs, have a drink...

      Then I suggest you stay away from windows, you will end up as a dehydrated, 12 foot alcholic!

    4. Re:Too fast... by rattler14 · · Score: 5, Funny

      well said!

      plus, my boss really thinks i'm working hard when he sees 4 terminals open with stuff flying past them. hence, i always compile from source

      --
      my last sig was too controversial... now, a new and improved useless sig!
  2. usefulness? by FUF · · Score: 5, Interesting

    Why would anyone *possibly* want their bootloader be able to compile the kernel?

    1. Re:usefulness? by Walkiry · · Score: 4, Interesting

      Two words: ATI drivers. These fuckers have to be compiled in the kernel, and I don't doubt there may be some other dumbasses who make similar drivers for other stuff. If the kernel just compiles like that (as in, is designed to just compile on boot), it'd make messing with the drivers less painful.

      --
      ---- Take the Space Quiz!
    2. Re:usefulness? by Jahf · · Score: 5, Insightful

      No it wouldn't. You'd still have to reboot to see the change ... at least if you compile -before- the reboot you know that the compile worked.

      Plus using this mechanism as-is without alternative boots would mean compiling your kernel every time you boot. A waste of time and resources.

      Note that it didn't say it booted in 15 seconds ... only that it -started- to boot in 15 seconds. Even removing all modules I find it impossible to believe that a P4 could compile the entire kernel with -any- compiler faster than it takes to load a precompiled kernel. No matter what you still have a "+ compile time" situation even if it is much faster than the stock gcc.

      This has some "because you can" value, but otherwise I just don't see it as being useful to the user, or even to the vast majority of kernel developers.

      Making C feel like Perl is not a good thing for me :)

      --
      It is more productive to voice thoughtful opinions (reply) than to judge (moderate) others.
  3. What we really want to know is by Anonymous Coward · · Score: 4, Funny

    How long does it take to boot Gentoo?

  4. Hmm by Anonymous Coward · · Score: 4, Funny

    If only they could apply this to compiling the rest of Gentoo . . .

  5. Yes, but... by Anonymous Coward · · Score: 4, Funny

    does it run Linux?

  6. Do you know what this means?! by AKAImBatman · · Score: 5, Interesting

    This could allow for platform independent Linux programs! i.e. If programs could be compiled on the fly from source bundles as an acceptable speed, then there would be no need to distribute binaries any longer. One source bundle, and you'll rule them all!

    Failing that, one could always fall back on my previous plan. My thought was that if GCC compiled to P-Code instead of the final binary, the target GCC could complete the P-Code conversion at install time.

  7. Not a complete compile by cbreaker · · Score: 4, Informative

    The README says it needs some of the binaries and headers on the linux kernel, so you have to pre-compile these first.

    I guess this could have some limited use somewhere, perhaps, but I can't really see how if you need some precompiled stuff.

    --
    - It's not the Macs I hate. It's Digg users. -
  8. Great for Gentoo by Solder+Fumes · · Score: 5, Funny

    Now they can compile their kernel with "-mday=Wednesday" for even better optimization.

    1. Re:Great for Gentoo by Solder+Fumes · · Score: 4, Funny

      I'm so sorry for being distro-ist. I apologize to all Gentoo-Americans for my extreme insensitivity.

  9. How? by wowbagger · · Score: 4, Interesting

    How can this thing:

    Load the needed environment for the compiler.
    Load the source
    Build the source
    Boot the source

    in 15 seconds, when it takes much longer than that for my already booted system to build a kernel? A P4 isn't THAT much faster than an AMD3200! (And I have done the old "drop to RL1 and build" trick, so it is not an issue of other tasks running).

    I want to know a) What kernel options are enabled b) From when are they starting the clock (are they counting the time to load the bootloader and initrd?) and c) is this TRULY a fully functional kernel, or "just enough to get a prompt"?

    1. Re:How? by vidarh · · Score: 5, Informative

      TCC is an incredibly tiny compiler with practically no dependencies on the environment. It's based on a cleaned up entry to the obfuscated C contest. So you can safely assume it's using every dirty trick in the book and then some. It still sounds incredible though.

    2. Re:How? by LiENUS · · Score: 4, Informative

      Actually the TinyCC site lists a speedchart at http://fabrice.bellard.free.fr/tcc/#speed measurements are done on a 500 MHz K6. That should give you a better idea than just estimating based on Turbo C 2.0

  10. Re:script? by vidarh · · Score: 5, Insightful
    Comparing it to Perl is a bit unfair considering we don't exactly have a full fledged Unix like kernel written in Perl to boot...

    I prefer to see this as a great proof of concept that kernel compilation can be made fast enough to do "on the fly". Considering that driver installation for Linux still often requires a kernel recompile, if this system can be made solid enough it could make things like that a lot easier for end users, though I think I'd prefer to have it done at package installation time rather than boot time :-)

  11. Wow! Ultimate Gentoo! by Eunuchswear · · Score: 5, Funny

    Recompile your programs EVERY TIME YOU RUN THEM.

    Ricers Rule!

    --
    Watch this Heartland Institute video
  12. Main reason for this? by kbahey · · Score: 5, Insightful

    I think the main thing here is the TCC compiler, which is 100K or so, and very fast.

    This TCCBOOT is something to showcase the speed of the TCC compiler.

    1. Re:Main reason for this? by kbahey · · Score: 4, Interesting

      You are generally right.

      But think about it for a bit: this fast C compiler turns the tables, and redefines what we know (paradigm shift anyone?). No longer will C be seen as a compiled language. One can think of it as a scripting language. A construct like this works with tcc:

      #!/usr/local/bin/tcc -run
      main()
      {
      DoSomethingHere();
      }

      Something that was unthinkable under GCC.

      As someone else posted, this can mean the proliferation of self contained bundles that are platform independant.

      The potential is enormous. Not the boot part, but the compiler and what it can be twisted into doing.

  13. Wow. That really is fast. by TheRaven64 · · Score: 5, Interesting

    Out of sheer boredom, I just downloaded the demo ISO and ran it inside VirtualPC on a 1.5GHz G4. The emulated system is probably roughly equal to a P2 300. The total time from turning the emulated machine on to a shell was around a minute.

    --
    I am TheRaven on Soylent News
  14. Re:Wow. That really is fast. by TheRaven64 · · Score: 4, Interesting
    I just ran the same thing again (exactly the same configuration), with a stopwatch. 46 seconds. 15 seconds on a P4 sounds like they were being a bit pessimistic. Note that this doesn't include launching any daemons, or a
    sh-2.05b# ps -x
    PID TTY STAT TIME COMMAND
    1 ? S 0:01 /bin/sh /sbin/init auto
    2 ? SW 0:00 [keventd]
    3 ? SW 0:00 [bdflush]
    4 ? SW 0:00 [kupdated]
    5 ? SWN 0:00 [ksoftirqd_CPU0]
    6 ? SW 0:00 [kswapd]
    15 ? S 0:00 /bin/sh
    17 ? R 0:00 ps -x
    --
    I am TheRaven on Soylent News
  15. Re:Just-in-time compilation by maxwell+demon · · Score: 4, Funny

    Well, maybe a BIOS-integrated Emacs automatically launches and allows you to edit the code ...

    --
    The Tao of math: The numbers you can count are not the real numbers.
  16. Re:TCC compiler by TheRaven64 · · Score: 5, Informative
    TCC has a few significant drawbacks.
    1. It is not portable (well, technically it is portable, but currently only has an i386 back end).
    2. It only supports C (not a drawback if you are just compiling C, but a lot of projects use C++/Objective-C/Whatever).
    3. It produces fairly sub-optimal code. The register allocation done by TCC is not very clever, and it performs no serious optimisation steps.
    On the other hand, TCC has two huge advantages:
    1. It is not GCC. Compiling your code using two or more compilers and ideally for 2 or more CPU architectures is a good way of finding some more obscure bugs.
    2. It is very fast. The less time you spend compiling, the more time you can spend testing / debugging.
    --
    I am TheRaven on Soylent News
  17. This guy is amazing. by meff · · Score: 5, Interesting

    http://fabrice.bellard.free.fr/

    Just look at this guy's work.. It's amazing what this he can do.
    If you haven't tried it yet, definately check out QEMU, it's great, and totally free.
    He also wrote FFMPEG which most definately your linux media player uses..

    I am always wondering what he'll put out next :)