5 ms·
"because of the monolithic nature of ZFS that created problems with the Redox microkernel design" Anyone have an idea what this actually means and what problem
by cayleyh 1y ago
"because of the monolithic nature of ZFS that created problems with the Redox microkernel design"
Anyone have an idea what this actually means and what problems they were having in practice?
- evanjrowley 1y agoGood question. I don't know about other microkernels, but NetBSD is a small kernel that supports ZFS. The support has been there since the 4.0.5 and 5.3[0], possibly earlier too. I'm not adept at navigating the mailing lists here, but I imagine a good place to learn about the challenges of porting ZFS to a smaller kernel would be the NetBSD and ZFS lists from that era (2008-2009). What NetBSD does today is use a 'zfs' modlue that depends on a 'solaris' kernel modile. The dependency of Solaris primitives is probably one of the major challenges with porting ZFS to any kernel. FWIW, somehow a ZFS port for the "hybrid" kernel in Windows also exists[1]. [0] https://vermaden.wordpress.com/2022/03/25/zfs-compatibility/ https://vermaden.wordpress.com/2022/03/25/zfs-compatibility/ [1] https://github.com/openzfsonwindows/openzfs https://github.com/openzfsonwindows/openzfs
- adastra22 1y agoNetBSD isn’t a microkernel.
- bdhcuidbebe 1y ago[flagged]
- adastra22 1y ago“I don’t know about other microkernels” implies that NetBSD is also a microkernel. It is not. Microkernel is not a size distinction. NetBSD kernel may even be smaller in terms of LOC or binary size than some microkernels. Idk. But that is beside the point. Microkernel is an *architecture*. It is a name for a specific type of kernel design, which NetBSD is not.
- bdhcuidbebe 1y ago[flagged]
- dang 1y agoCan you please edit out personal swipes from your HN comments? You did it repeatedly, and the site guidelines ask you not to: https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html. It's great, of course, to provide correct information. But please do it without putdowns; you don't need them, and they acidify discussion.
- jibal 1y agoThey also didn't provide any correct information.
- dang 1y agoThat may be so. Generally speaking, it's not against HN's rules to be wrong. How could it be? We're all wrong about nearly everything. But it is against HN's rules to post disrespectfully, put others down, etc. - for the obvious reason that it poisons community discussion, plus is unnecessary. It's especially important to follow those rules when one is right about something, because when a post contains both correctness and poison, the poison has has the side effect of discrediting the truth. That is bad for all of us (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sort=byDate&type=comment&query=truth%20discredit%20by:dang https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...).
- bdhcuidbebe 1y agoNot even sure what you are asking here. What is personal? adastra attacked the discussion by twisting their parents words.
- dang 1y ago"Maybe you should read it more careful, instead adding nothing to the discussion" is crossing into personal attack. So is "Read more, comment less." from your other post in this thread. Your account has a pattern of posting personal swipes like this. Two other cases are https://news.ycombinator.com/item?id=45328774 https://news.ycombinator.com/item?id=45328774 and https://news.ycombinator.com/item?id=45210601 https://news.ycombinator.com/item?id=45210601. If you would please stop this, we'd appreciate it. It's not what this site is for, and destroys what it is for. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- pests 1y agoWho is calling it a microkernel? The post youre replying to calls it a “small kernel” - that does not imply it’s a microkernel tho, right? I didn’t think size has anything to do with it.
- deleted 1y ago[deleted]
- Dylan16807 1y agoI'm not sure if it originally said small kernel, though I know for sure the italics weren't originally there. The wording is unclear in a couple ways.
- pests 1y agoI came back to maybe delete my comments as I felt I might have came off harsh, esp before I saw the dead comment chain. No ill will, was confused as well I think.
- aidenn0 1y agoThat seems odd to me too. It seems like they could have put all of ZFS (and SPL) in a single system service.
- yjftsjthsd-h 1y agoI particularly don't buy it because ZFS used to have a FUSE build, and I'm pretty sure there's at least one company still running it in userspace in some form (something for k8s, IIRC?)
- aidenn0 1y agoMaybe they meant that they couldn't separate out the various layers of ZFS into their own services?
- yjftsjthsd-h 1y agoI guess? I'm not personally convinced that even 1 ZFS service per zpool would be a serious problem, but I can see why it would be considered unideal to a microkernel designer.
- AndrewDavis 1y agoI can only speculate, but maybe they're referring to the same thing Andrew Morton meant when he described ZFS as a rampant layering violation. ie ZFS isn't just a file system. It's a volume manager, raid and file system rolled into one holistic system vs for example LVM + MD + ext4. And (again I'm only speculating) in their micro kernel design want to have individual components running separately to layer together a complete solution.
- p_l 1y agoIt's only a rampant layering violation if you mandate the use of external layers like Linux device mapper as the only allowed way... Or you haven't actually read through the code and assume based on external user interface. No, ZFS is not "monolithic". It's just that on the outside you have a well integrated user interface that does not expose you to SPA (block layer), ZIO (IO layer, that one is a bit intersectional but still a component others call), DMU (object storage), and finally ZVOL (block storage emulated over DMU) and ZPL (POSIX-compatible filesystem on top of DMU) or Lustre-ZFS (Lustre metadata and object stores implented on top of DMU). There are also a few utility components that are effectively libraries (AVL trees, key-value data serialization library, etc)
- panick21_ 1y agoIn the Linux world you need to be hard to use in order to prove how pure you are. Anything that is actually easy to use is always considered unpure and bad.
- creshal 1y agoNot sure why you're getting downvoted, considering how people torture themselves with calculating SSD cache sector offsets by hand so they can imitate 1% of ZFS's feature set with LVM2.
- boxed 1y ago> when he described ZFS as a rampant layering violation I read some blog posts back in the day about why they did this and it sounded a lot like those layers were more historical accidents or something. You can turn it around and say that ZFS is a full stack filesystem (or vertically integrated if you will) and it should be pretty obvious that a rethink on that level can have big advantages.
- StrangeDoctor 1y agoI don’t think it’s microkernels in general but their microkernel design which wants as much as possible in userspace. They want each component to have its own memory space. ZFS blurs the layers between filesystem and the volume management. This kinda bothers layers of abstraction model folks. And I assume combined with their posix like model it just sorta clashes with what they want to do. Not impossible to integrate, but they want something a little different.
- Neikius 1y agoThe main selling point of ZFS is it being monolithic. Because of that it can optimize many things that are impossible in a layered approach.
- jandrewrogers 1y agoIf I had to guess, it is because ZFS likes to insert itself into things beyond just being a filesystem. It is one of the reasons ZFS notoriously works poorly with database engines, which have a tendency to bypass or ignore the filesystem (for good reason). It is a design choice on the part of ZFS.
- panick21_ 1y agoOracle specifically came back to Sun because they had ZFS based servers. So that seems a bit strange to me.