top | item 47020622

(no title)

barfiure | 15 days ago

I’m a tad confused so maybe I’m not understanding the horror show.

Tanenbaum explicitly mentions multiple times that the book is a subset of the code because it would be too long to print with the library. So he covers mostly the main areas.

But the source code, in its entirety, is mounted under /usr/src. And it has all the assembly files in ACK files, mostly in lib I believe. You can compile it with a make command and it works as expected.

The author makes it seem like there’s some terrible thing. Am I missing some gory directory? Yes the ACK syntax would need to be ported over to something more modern like NASM or FASM if someone wants to move the whole kitchen sink, new linker scripts made as a result of exported symbols etc. It is painful but alas, so is the archaic K&R C.

I don’t know if that’s necessary though? It sounds like a waste of time to begin with.

I mean this book is ancient, and nobody really uses 32-bit protected mode. I’m mostly doing it out of curiosity even though I already stood up a small 64-bit long mode thinger.

Let me know what I’m missing!

discuss

order

Rochus|15 days ago

The author writes in the book explicitly "This is a modified version of config.h for compiling a small Minix system with only the options described in the text". This leaves no doubt that the book indeed describes a working microkernel of less than 15kSLOC which can be built and run (even if the "small Minix" lacks a few features). I blieved the author (like generations of other scholars) until I tried to actually build and run it myself.

phicoh|14 days ago

Converting between ACK and GCC assembler is a solved problem. Minix-vmd can be compiled with both ACK and GCC.

Unfortunately, when MINIX3 as started, it was copied directly from MINIX2 and a lot of interesting stuff was left out.

Rochus|14 days ago

> Converting between ACK and GCC assembler is a solved problem.

I assume you mean because the assembler was manually migrated in later Minix versions, not because there is a tool which can do so automatically. Or did I miss this?

> and a lot of interesting stuff was left out

Can you please make examples what you mean specifically?