Originally posted by oiaohm
View Post
One thing to note here is that FreeBSD I believe doesn't even use the slab because there own memory manager is so close to it, they didn't need to change.. however that may no longer be the case in future releases because of their transition to ZoL/OpenZFS.
You talk a lot about the design but you don't really seem to know the design very well. So.. here we go.
Back in ~2000's era Jeff Bonwick (the same guy that wrote the Slab) frustrated that hard disk and storage management were such a pain to manage set out with Matt Ahrens to reinvent the wheel. The basic idea was that storage could be like ram. That is was a resource your computer automatically managed for you. (Since leaving Sun Jeff has become CTO for several companies and has been rather quiet, he does make an appearance every now and then though.)
You talk about traditional classical layers and the importance of them, the trouble is that (and you rightly identified it) is that those layers are blind to each other.
Historical model:
- Loopback layer (qcow2, overlays)
- Posix layer (VFS, read/write)
- File layer (ext3, xfs etc)
- Logical volume layer (LVM, MD Raid, LUKS or sometimes all 3 chained together! All pretending to be a block layer to each other.)
- Block Layer (fixed block size, usually 4k)
In ZFS they ripped all that out and changed it.
ZFS model:
- ZPL (Speaks a language the OS understands, usually posix.)
--- Optional ZVOL Layer (Pools storage for Virtual Machienes, iSCSI, Fiber channel and distributed storage etc, no extra layer added on top like with qcow2)
- DMU (re-orders the data into transaction groups)
- SPA (SPA works with plugins to do LVM, Raid-Z, Compression using existing or future algorithms, Encryption, other stuff not invented yet, etc. It can even load balance devices.)
- Block layer (variable block size)
ZFS rewrote how all the layers work and changed them to be aware of each other. It actually takes blocks, bundles them up as objects in transaction groups and that is what's actually written. You can find out more about that here. https://www.youtube.com/watch?v=MsY-BafQgj4
Some observations on where these systems are going? Well.. this is going to be a bit of a rant but as you know I'm a systems engineer and I quickly had to add 4 IP's to an interface temporally on Ubuntu. Have you ever really used the "ip" command? It drives me nuts every real OS for 40 years used ifconfig, Linux changed this a few years back the first thing they did is they didn't keep backward syntax and they changed the name to something meaningless. "ip"? what about network interfaces that don't speak "ip"? IP is a pretty common protocol but it's not every protocol. Using this command I bungled the obtuse syntax and it had grammar mistakes (Eg: you are an error) and also told me that I was using a depreciated syntax and had to update my scripts? I'm not using a script I'm typing it! Does anyone in Linux type this anymore? Looking at Ubuntu's networking it's a tangled web of python scripts that call other scripts. It's got 4? different methods to configure the IP, systemd, netplan, debian net.if and network manager. And this is the work of developers. They like systems like this with rich API's, options and yaml "Dude, got to have some yaml or json.. but not XML never XML that's sooo last decade bro". This is the stuff I bleed over daily. We are the ones who have to deal with it when the code doesn't work as intended. Or has very odd behavior. Or just sucks and is slow and nobody knows why (but it works fine on the developers laptop).
Know how you do it on FreeBSD?
ifconfig same way as always, and one line in rc.conf. Python isn't even installed by default! Simplicity has a lot of value.
Linux was deployed and put into the position it was by sysadmins because it was simple and they needed to solve problems. It's no longer like that however..
Same thing you can see in KVM and bhyve. bhyve is almost a different class of hypervisor in that it's a few hundred kilobytes in size and does no hardware emulation (qemu) at all. KVM well, how bloated CAN it get? At least those gamers will be able to pass through skyrim... But.. So if you want a really really thin light hypervisor bhyve is your go to, a FreeBSD system after install probably has less than 10 PID's you actually need. Ubuntu has hundreds.
I do believe that in 40 years both OS's will still be around.. but they may look very different by then.
Leave a comment: