IRC channel logs
2024-11-24.log
back to list of logs
<janus>it's interesting that .NET appeared after Java and still it seems less bootstrappable <lilyp>it does seem like "modern" software cares less about bootstrappability than older one – consider kotlin, scala, etc. vs java for example <stikonas>which meant people were trying to write some alternative free implementations <stikonas>and those were very helpful for bootrapping <kpcyrd>pabs3: I'm confused why the entire article seems to be written around some proprietary operating system I've never heard of <sam_>because that was the main point of opposition <aggi>x86 kernel bootstrapping and 16bit real-mode isn't bootstrappable <aggi>in particular 16bit real-mode assembly <aggi>to distinguish this further, it is two options available for this <aggi>tccboot/jit (bellard) or linux-2.4/aot (not considering the tiny staging kernels/loaders of bootstrappable) <aggi>either need 16bit bootcode, that's implemented with GNU assembly <aggi>tcc itself fails with .code16, and even if it fully supported it, a circular dependency remained for itself <aggi>with linux-2.4, SMP support introduces another piece of 16bit asm (trampoline.S), hence SMP would NOT be available with tccboot <aggi>hence, smp/ioapic/usb may not be available with a bootstrappable kernel (whichever this would be) <aggi>anyway, for linux2.4 i succeeded to salvage an almost complete kconfig, including smp/ioapic/usb <aggi>but all 16bit asm remains dependent on binutils-as still <aggi>nonetheless linux-2.4 can be supported with tcc <aggi>with a few exceptions, a recent package set of ~500ebuilds too compiled/linked with tcc, against linux-2.4 api headers since recently <aggi>i'll backport/re-integrate squashfs support into linux-2.4 today, to throw i486-tcc-musl-rootfs.squashfs at linux-2.4/tcc kernel <aggi>tccboot/JiT would provide a decent approach to bootstrapping, but it would exclude smp/ioapic/usb support for those x86 systems that need it <aggi>depends where 16bit asm sneaks into the dependency graph, which options remain then, in practice <aggi>and 16bit real-mode assembler was needed at two places: outside tcc for bootcode.S parts, and within kernel (trampoline.S) if smp/ioapic/usb was required (in practice, to access storage and peripheral i/o) <aggi>earlier linux-2.x kernels implemented their 16bit asm differently, which was not GNU as syntax <aggi>besides, fiwix certainly would need 16bit boot code too <aggi>although a 16bit assembler separated from tcc would be needed (to avoid circular dependency) <aggi>to my understanding, bootstrappable approached this by avoiding the need of such an assembler with hex0 loaders/kernel/utils <aggi>realistically, a kernel bootstrapping path could be (simplified speaking) hex0 -> assembler needed for 16bit bootcode, compiler needed for tccboot/tcc and some userspace <aggi>i don't see a realistic chance to fully support 16bit asm with tcc, hence any kernel compiled with it may not support smp/ioapic/usb <aggi>which in practice, would exclude rather many real x86 hardware and it's peripheral i/o