9 ms·
RedoxFS is the default filesystem of Redox OS, inspired by ZFS
- zxspectrum1982 1y agoWhy? Why not simply adopt btrfs?
- johncolanduoni 1y agoWell they’d have to write their own driver anyway for one. If they were going to take an existing design and write a new driver, ZFS would be the better choice by far. Much longer and broader operational history and much better documentation.
- MadnessASAP 1y agoAnd you might not get sued by Oracle! RedoxOS seems to use the MIT license while OpenZFS is under the CDDL. Given Oracles litigious nature they'd have to make sure none of their code looked like OpenZFS code, even better make sure any of the developers had ever even looked at the ZFS code. Its much better to hope that OpenZFS decides to create a RedoxOS implementation themselves then to try and make a clean room ZFS implementation.
- johncolanduoni 1y agoFair enough, though you can’t really understand how BTRFS works without reading the GPLed Linux source while ZFS has some separate disk format documentation. Don’t know that anyone would sue you though.
- MadnessASAP 1y agoIts not unreasonable to look at the source code to understand the disk format to then create an independent driver. So long as you are not directly copying code (or in this case, paraphrasing C to Rust.) More importantly though, Linux or the Linux Foundation are unlikely to file a lawsuit without clear evidence of infringement, whereas Oracle by their nature will have filed lawsuits and a dozen motions if they catch even a whiff of possible infringement. I wouldn't touch Oracle IP with a 50' fibreglass pole while wearing rubber boots.
- p_l 1y agoOracle can't exactly sue them this way, and CDDL is remarkably less litigation-oriented than some other licenses.
- MadnessASAP 1y agoIts certainly not as bad as some licences but there are still some gotchas to the CDDL. The 2 big ones here (AFAICT) is it's not compatible with MIT, and any reimplementation of CDDL code would not have the patent protections of the original. Also, and again, the validity of a lawsuit isn't going to stop Oracle from filing it.
- hsbauauvhabzb 1y agoWhy not use ext2 or fat16?
- craftkiller 1y agoLicense is the obvious blocker, aside from all the technical issues[0]. Btrfs is GPL, RedoxOS is MIT, ZFS is CDDL. You can integrate CDDL into an MIT project without problems[1], but due to the viral nature of the GPL, integrating btrfs would have impacts on the rest of the project. What I'm wondering is what about HAMMER2? It's under a copyfree license and it is developed for a microkernel operating system (DragonflyBSD). Seems like a natural fit. [0] btrfs holds the distinction of being the only filesystem that has lost all of my data, and it managed to do it twice! Corrupt my drive once, shame on you. Corrupt my drive twice, can't corrupt my drive again. [1] further explanation: The CDDL is basically "the GPL but it only applies to the files under the CDDL, rather than the whole project". So the code for ZFS would remain under the CDDL and it would have all the restrictions that come with that, but the rest of the code base can remain under MIT. This is why FreeBSD can have ZFS fully integrated whereas on Linux ZFS is an out-of-tree module.
- aidenn0 1y agoLast time I looked at DragonflyBSD, it was kind of an intermediate between a traditional kernel and a microkernel. There certainly was a lot more in the kernel as compared to systems built on e.g. L4. There certainly is a continuum. I've always wanted to build a microkernel-ish system on top of Linux that only has userspace options for block devices, file systems and tcp/ip. It would be dog-slow but theoretically work.
- phire 1y ago> Corrupt my drive twice, can't corrupt my drive again. Exact same drive? You might want to check that drive isn't silently corrupting data. I still blame btrfs, something very similar happened to me. I had a WD Green drive with a known flaw were it would just silently zero data on writes in some random situations. EXT4 worked fine on this drives for years (the filesystem was fine, my files had random zeroed sections). But btrfs just couldn't handle this situation and immediately got itself into an unrecoverable state, scrub and fsck just couldn't fix the issue. In one way, I was better off. At least I now knew that drive had been silently corrupting data for years. But it destroyed my confidence in btrfs forever. Btrfs didn't actually lose any additional data for me, it was in RAID and the data was all still there, so it should have been able to recover itself. But it simply couldn't. I had to manually use a hex editor to piece a few files back together (and restore many others from backup). Even worse, when I talked to people on the #btrfs IRC channel, not only was nobody was surprised the btrfs had borked itself due to bad hardware, but everyone recommend that a btrfs filesystem that had been borked could never be trusted. Instead, the only way to get a trustworthy, clean, and canonical btrfs filesystem was to delete it and start from scratch (this time without the stupid faulty drive) Basically, btrfs appears to be not fit for purpose. The entire point of such a filesystem is that it should be able to run in adverse environments (like faulty hardware) and be tolerant to errors. It should always be possible to repair such a filesystem back to a canonical state.
- jhack 1y agoNo transparent compression?
- Modified3019 1y agoAccording to this https://www.redox-os.org/faq/ https://www.redox-os.org/faq/ Looks like snapshots are planned.
- cyboru 1y ago> Redox had a read-only ZFS driver but it was abandoned because of the monolithic nature of ZFS that created problems with the Redox microkernel design. Curious about the details behind those compatibility problems.
- arghwhat 1y agoIf it relied on OpenZFS, then I wouldn't be too surprised. The whole ARC thing for example, sidestepping the general block cache, feels like a major hack resulting from how it was brutally extracted from Solaris at the time... The way zfs just doesn't "fit" was why I had hope for btrfs... ZFS is still great for a file server, but wouldn't use it on a general purpose machine.
- johannes1234321 1y agoEven on Solaris the ARC existed. ZFS replaces a lot of systems traditionally not directly related to a Filesystem implementation. For instance using the `zfs` tool one wouldn't only configure file system properties, but also control NFS exports, which traditionally was done using /etc/exports.
- p_l 1y agoThis was done as part of major UI/UX reshaping in Solaris 10 to make sysadmin lives easier, what it ultimately does is... Edits exports file.. ZFS and ZPOOL tools provide accesses to multiple different subsystems in ways that make more sense to end user, a lot like LVM and LUKS do on top of device mapper these days
- goku12 1y agoCan you elaborate the last paragraph? In what way doesn't zfs fit? (I couldn't make it out from the first two paragraphs.) Where did btrfs fall short of your expectations? Why would you avoid zfs on general purpose machines if you deem it good enough for file servers?
- 1y ago
- ladyanita22 1y agoRedox is shaping up to be the most advanced OSS alternative to Linux apart from BSDs.
- snvzz 1y agoYou might not be aware of Genode[0]. 0. https://genode.org/ https://genode.org/
- Rochus 1y agoGenode looks interesting. As far as I understand it uses the sel4 kernel? Is it really in development since 2008?
- wucke13 1y agoIt doesn't necessarily, but it can. Genode/SculptOS is kind of a microkernel OS framework, and it can use seL4 as the kernel. Here is a talk about that porting effort: https://m.youtube.com/watch?v=N624i4X1UDw https://m.youtube.com/watch?v=N624i4X1UDw
- snvzz 1y agoYes, it supports seL4 among a range of kernels. Note the binaries are not specific to the kernel, so anything built for Genode will work on Genode systems of compatible ISA irrespective of kernel. I am surprised to hear 2008, I could swear they have been active far longer. Maybe I am conflating it with TUD:OS. They are indeed quite active. Just see their backlog of release notes. They release 4 times a year, on the clock, and always document what they've done.
- NewJazz 1y agoFuchsia?
- stevefan1999 1y agoFuchsia, or Zicron kernel to be specific, is pretty much dead since the last layoff of Google
- 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.
- snvzz 1y ago>File/directory quantity limit up to 4 billion per 193TiB (2^32 - 1 = 4294967295) 32bit inodes? why? Other systems had to go through pains to migrate to 64bit. Why not skip that?
- adgjlsfhk1 1y agoExt4 and NTFS both have a 2^32-1 limit on number of files as well. Realistically, you never actually want to make tons of files, so I have a pretty hard time seeing this being an issue in practice.
- hexo 1y agoWhy not?
- adgjlsfhk1 1y agoFiles in nested folders are primarily an abstraction for humans. They are a maximally flexible and customizable system. This has substantial costs (especially in environments with parallel work). As such, no one really has millions of pieces of fully separate, unstructured, hierarchical data. Once you have that much data, there is almost always additional structure that would be better represented in something like a database where you can actually express the invariants that you have.
- pitched 1y agoAren’t block sizes (and minimum file size) normally around 4kB? So a max number of 1-byte files would take up around 16 TB, without adding any overhead. Those drives are available these days
- adgjlsfhk1 1y agoMany file systems support sub-block allocation
- 1y ago
- adastra22 1y agoHow is redoxos on actual hardware? Are there laptops with good support?
- kimixa 1y agoIt doesn't currently have any GPU support (for example) - even for a pretty simple desktop CPU rendering is rather incompatible with battery life or performance in a laptop form factor.
- adastra22 1y agoNot even Intel integrated GPU? Ugh.
- hsbauauvhabzb 1y agoThe project does state it’s not ready to be used in any factor (server, desktop, etc).
- adastra22 1y agoWell, I’d be willing to develop and contribute to it, but I have absolutely no interest whatsoever in just running in virtualization.
- kimixa 1y agoIt still supports display out through UEFI framebuffer, so it's technically usable, just you likely wouldn't want it as a daily driver.
- hsbauauvhabzb 1y agoThat’s your call to make.
- dralley 1y agoIt would be more interesting to see bcachefs picked up there
- koverstreet 1y agoIf someone's interested in working on a port, that'd be an interesting conversation.
- fn-mote 1y agoInnovation is wonderful, but it’s hard to believe this has enough users to flush out the challenging bugs. Maybe if it had some kind of correctness proof, but it just seems like there are way too many subtle bugs in file systems in general for me to try a new FS.
- rorychatt 1y agoBuilding out test infrastructure for correctness to support the project sounds like a fantastic idea. That said, while it's compatible with Linux via fuse, unless you're helping to build RedoxOS, I don't think there's any real expectation that you would try it.
- pluto_modadic 1y agoThe developer is also kind which makes this awesome.
- ants_everywhere 1y agoI'm not a filesystem person, but this sets off similar red flags to rolling your own encryption. Isn't writing a robust file system something that routinely takes on the order of decades? E.g. reiserfs, bcachefs, btrfs. Not to rain on anyone's parade. The project looks cool. But if you're writing an OS, embarking on a custom ZFS-inspired file system seems like the ultimate yak shaving expedition.
- MangoToupe 1y agoIsn't brtfs itself just a ZFS-inspired filesystem? If that can manage to find a foothold, why can't this?
- koverstreet 1y agoThe only thing btrfs took from ZFS was the featureset - COW, data checksumming, snapshots, multi device. ZFS was a much more conservative design, btrfs is based on COW b-trees (with significant downsides) and if you can put it in any lineage it would be Reiserfs.
- crest 1y agoBtrfs is also a clusterfuck. Perfect example for the consequences of NIH-syndrome.
- LexiMax 1y ago> Btrfs is also a clusterfuck. In what sense?
- baggy_trough 1y agoI've had 3 really bad kernel downtimes over the past 15 years or so, and 2 of them were due to btrfs quotas.
- LexiMax 1y agoQuotas that didn't work, or quotas that worked perfectly fine, but blew up your system in an unexpected way? The reason I ask is because I'm trying to tease out if you have architectural problems with the way the filesystem is designed, or if you simply think it's unreliable.
- loeg 1y agoDoes anyone have more context? This appears to be a very short, high-level blurb.
- n3storm 1y agoI hope someone can bring this issue to redox-os project about its package management command "pkgar". Reading it aloud in spanish sounds as "pa cagar". "pa" is a very common contramption of "para" so we have "para cagar" which translated back is "to shit". Sorry for commenting this here, Redox is using a private gitlab instance I have no access to.
- Gabrys1 1y ago`fusermount3 ./redox-img` at the end of the page should read `fusermount3 -u ./redox-img`
- Y_Y 1y agoFor that matter, the "./file" pattern is only required to disambiguate executables in the local directory so it doesn't try to look them up in the PATH. For arguments like here it's redundant.
- Gabrys1 1y agoI guess the ./xxx makes it clear that the command expects a path (that may be relative to the cwd), so I'm not hating _that_ part.
- scoopr 1y agoI've occasionally pondered, how feasible would it be to write a APFS implementation just from the specs[0] alone. Is it harder or easier to create the implementation when you have a provided layout and mechanism how it works. Would it be easy to keep compatibility, and would it be a dead-end design for extensions that you'd like? [0] https://developer.apple.com/support/downloads/Apple-File-System-Reference.pdf https://developer.apple.com/support/downloads/Apple-File-Sys...
- summa_tech 1y agoCan tell you first hand that while the specs are useful, they do not cover APFS as it is deployed by Apple today.
- mnw21cam 1y ago> File/directory size limit up to 193TiB (212TB) This would be a significant problem with my use case in the very near future. I already have double-digit-TB files, and that doesn't look like much margin on top of that.
- irusensei 1y agoUnrelated but there is another older but still niche operating system with a new advanced file system: https://orib.dev/gefs.html https://orib.dev/gefs.html
- ori_b 1y agoNote: that page is being served from a host running that file system.
- sellmesoap 1y agoI've been dogfooding bcachefs for a few months, aside from a nixos kernel regression, and LKML drama :-(, it's been good (anecdote +1) I was early on the reiser4 bandwagon back on gentoo, a glutton for data loss is what I am... I'm excited for RedoxFS time for to have a play!
- tredre3 1y agoI thought that bcachefs was pretty much only Kent, what is your role in the project? Unless you meant rawdogging or another similar sounding word to dogfooding?
- koverstreet 1y agoheh, it's really not
- koverstreet 1y agowhat was the NixOS kernel regression? NixOS and Arch are the two distros that are making the DKMS transition the smoothest.
- sellmesoap 1y agoI run nixos unstable, at some point in the last few weeks the kernel supplied with * boot.supportedFilesystems = [ "bcachefs" ]; in my config, went from version 6.16.0 to 6.12.45 and I had very long boot times (30 minutes+) with a lot of messages. My solution was to switch to the latest kernel * boot.kernelPackages = pkgs.linuxPackages_latest; Which bumped me back up to kernel 6.16.8 and smooth sailing.
- childintime 1y agoThe file descriptor is to support capabilities? Source: https://nlnet.nl/project/Capability-based-RedoxOS/ https://nlnet.nl/project/Capability-based-RedoxOS/ "[..] In this project we will replace Redox's internal file descriptor representation with capability descriptors, optimized for both security and performance. This will provide a foundation for capability-based security on Redox, and possibly capability extensions from other UNIX-like systems, while also supporting POSIX-style file descriptors for application compatibility".