To be honest, you’re much better off with a battle hardened platform for your use case. Tilck is meant to be educational, not secure in either the InfoSec nor data robustness sense.
To be honest, you’re much better off with a battle hardened platform for your use case. Tilck is meant to be educational, not secure in either the InfoSec nor data robustness sense.
* “It could be fun to be the author of a block layer, VFS and an AHCI driver for SATA. NCQ support is a must if I do.”
* “It could be fun to port ZFS: ztest and zdb, plus the userland version of the driver into which they hook need pthreads, but the important userland utilities do not. Having to statically link everything would be a pain. I would probably have to reimplement the entire SPL for this to work and that would probably be at least 10,000 lines of code.”
* “If I port ZFS, a NFS server needs to follow so ZFS has an application. This will need support for setting/getting user/group ownership and mode bits. If I rewrite the VFS, I could maybe sneak that feature into it for a NFS server to use while preserving the documented syscall behavior that requires everything be root. If I port the NFS server from illumos, it could share the SPL code with ZFS. NFSv4 permissions will be needed to make it fully happy. Beyond that, I will need a network stack.”
* “It could be fun to port a network stack. Maybe LwIP could be used.”
* “It could be fun to write an e1000 driver.”
I have already found the documentation I need if I actually were to implement AHCI and e1000 drivers:https://www.intel.com/content/dam/www/public/us/en/documents...
https://www.intel.com/content/dam/doc/manual/pci-pci-x-famil...
If I were to do all of this, I would likely try my best to make it a production platform. The purpose would be fun.
Anyway, I wonder if these thoughts will continue if I sleep on them.
It's a lot of work but definitely rewarding stuff. And you'll learn a lot along the way too.
Your options were basically just:
- GNU: which didn't have a kernel
- BSD: which had massive question marks over ownership
- Minix: which wasn't free back then
- or a commercial Unix
These days you have a dozen BSDs, Darwin, several OpenSolaris forks, hundreds of Linux distros as well as non-commercial licenses for many commercial Unixes. Minix is free. Free reimplementations of BeOS too. And that's before you count the plethora of free non-POSIX systems like Plan 9, ReactOS, and so on and so forth.
And, ironically, there's now less of a need for competition in this space because web engines have replaced OS kernels for a lot of common use cases and WASM is fast becoming the new ABI.
To be clear, I'm not saying this project has no merit. Nor am I saying there is zero chance this project might evolve into something big. I'm just saying that quoting Linus like you have is extremely simplistic.
this is called "judging a book by its cover"
So you think they're lying about not having implemented block devices nor a network stack...? Or are you suggesting that NFS doesn't need network nor file system support?