I hope @HalfNormal doesn’t mind the tangent we’ve gone off on here!
When Itanic came out, Intel asked Red Hat to port it, and we quoted a price. They got a lower bid from another company, so they took the low bid. Intel eventually decided that they would come back and pay us after all.
I don’t remember anyone at Red Hat being convinced that this was going to take the market by storm, but one of the benefits of maintaining an OS on multiple architectures is that it can make the code more robust on all architectures. We upstreamed lots of general bug fixes as part of the Itanic port (it exposed lots of “latent bugs”) and I think that work ended up a net positive for quality at Red Hat and in the larger open source world.
Not only because of the bootstrap work, but also because after that I did a lot of the porting work and bug fixes, Intel eventually asked me to come to Oregon to give a group of Intel employees a day of training on how to port to Itanic.
In general, bootstrapping Linux from cross-builds is how I got my start with Linux, shortly after Linus first announced the kernel (I ordered a new hard drive for Linux I think the day after the announcement, and it took about a week to arrive, during which I was very impatient). I cross-compiled my bootstrap on Sparc running sunos.
My recollection is that how I installed my first ever Linux system, one of the first few dozen in the world to run Linux as far as I can tell, was:
- FDISK on DOS to create partitions
- boot+root disk gave me kernel, shell, and static mkfs and mknod
- make root filesystem
- make device files especially /dev/fd0
- copy the shell to the filesystem
- on sparc, binary edit the boot record to set the root device to the hard disk
- on sparc, build tar binary, dd it to a floppy
- on linux,
cat < /dev/fd0 > /bin/tar
(the extra bytes at the end don’t hurt)
- on sparc, tar the tar binary to the floppy so the floppy is now a tar image of tar
- on linux,
tar xf /dev/fd0
to replace the tar binary with one of the right length
- keep cross-building binaries on sparc and using tar to populate the linux system with build tools (e.g. libc, gcc, make, etc.)
- switch to native build on the Linux system
At Red Hat, we bootstrapped Itanic at least twice. I did it the first time because I happened to be the one available, and I think Bill Nottingham did it the second time, which I vaguely recall was to make sure that we had a clean build and didn’t depend on any accidental artifacts of the initial bootstrap. I think each time took 1-2 days total effort; it really wasn’t that hard if you knew how to do it. We had plenty of other folks who could have done it too.
This is why I have recommended to lots of people who have wanted to learn how Linux is put together that they go through Linux From Scratch. Details have changed, but doing a bootstrap like that makes you really aware of the dependency graph, which is definitely a cyclic graph…