Skip Navigation

  • At the same time Windows is going down the drain, so if you compare removed to that it definitely has an edge. And that 8GB Air is not that expensive either... And fanboy can tell you it can swap to SSD so fast blah blah...

    But if you have the knowledge to use Linux, there are less and less reasons to go even near removed computers...

  • But scrub is not fsck. It just goes through the checksums and corrects if needed. That's why you need ECC ram so the checksums are always correct. If you get any other issues with the fs, like a power off when syncing a raidz2, there is a chance of an error that scrub cannot fix. Fsck does many other things to fix a filesystem...

    So basically a typical zfs installation is with UPS, and I would avoid using it on my laptop just because it kind of needs ECC ram and you should always unmount it cleanly.

    This is the spot where bcachefs comes into place. It will implement whatever we love about zfs, but also be kind of feasible for mobile devices. And its fsck is pretty good already, it even gets online checks in 6.11.

    Don't get me wrong, my NAS has and will have zfs because it just works and I don't usually need to touch it. The NAS sits next to UPS...

  • Rule

    Jump
  • This is kind of funny. I live in Germany and I've got better German food in the US. Very often German food here is kind of aiming to be cheap and filling, but kind of bland and boring. There are a few exceptions, and what you say about food from other countries makes a lot of sense.

  • It is one of the most addictive games I've played. The good thing is that it is cheap and doesn't have any microtransactions. And a lot of fun.

  • I mean... If you have a ton of raw photos in one directory, you can enable the highest compression rate with zstd to it. Every other directory has lz4 with the fastest compression. Your pics take much less space, but the directory will be slower to read and write.

  • For me the reason was that I wanted encryption, raid1 and compression with a mainlined filesystem to my workstation. Btrfs doesn't have encryption, so you need to do it with luks to an mdadm raid, and build btrfs on top of that. Luks on mdadm raid is known to be slow, and in general not a great idea.

    ZFS has raid levels, encryption and compression, but doesn't have fsck. So you better have an UPS for your workstation for electric outages. If you do not unmount a ZFS volume cleanly, there's a risk of data loss. ZFS also has a weird license, so you will never get it with mainline Linux kernel. And if you install the module separately, you're not able to update to the latest kernel before ZFS supports it.

    Bcachefs has all of this. And it's supposed to be faster than ZFS and btrfs. In a few years it can really be the golden Linux filesystem recommended for everybody. I sure hope Kent gets some more help and stops picking fights with Linus before that.

  • One of the best filesystem codebases out there. Really a top notch file system if you don't need to resize it once it's created. It is a write through, not copy on write, so some features such as snapshots are not possible using XFS. If you don't care about features found in btrfs, zfs or bcachefs, and you don't need to resize the partition after creating it, XFS is a solid and very fast choice.

    Ext4 codebase is known to be very complex and some people say even scary. It just works because everybody's using it and bugs have been fixed years ago.

  • I'm too old to rant about systemd :D

  • It kind of fails with certain protocols. I once wrote an async MSSQL client for Rust, and some data doesn't say its size in the headers. So this kind of forced the business logic to be async too.

  • Yeah. Scary stuff. I live in central Berlin, and it's pretty relaxed here. Did the Mauerlauf last weekend and immediately when you cross the Brandenburg border to some of these villages, they're full of AfD advertisement. Berlin is definitely the Portland of Germany :D

  • Never had one, just partied in the uni and dropped out :D

  • So basically your typical network protocol is something that converts an async stream of bytes into things like Postgres Row objects. What you do then is you write a synchronous library that does the byte conversion, then you write an asynchronous library that talks with the database with async functions, but most of the business logic is sync for converting the data coming from the async pipe.

    Now, this can also be done in a higher level application. You do a server that is by nature async in 2024. Write the server part in async, and implement a sync set of mapping functions which take a request coming in and returns a response. This can be sync. If you need a database, this sync set of functions maps a request to a database query, and your async code can then call the database with the query. Another set of sync functions maps the database result into http response. No need to color everything async.

    The good part with this approach is that if you want to make a completely sync version of this library or application, you just rewrite the async IO parts and can reuse all the protocol business logic. And you can provide sync and async versions of your library too!

  • That's why you write your protocol as a sync library, then implement the async IO separately and mapping the data over the protocol modules.

  • Thanks for sparking my interest on cachyos kernels and what they patch. In addition to bore, they also patch the sched_ext support!

    https://github.com/CachyOS/linux-cachyos?tab=readme-ov-file#cachyos-default-kernel

    Now, what this means is you can boot this kernel, then just start the scheduler from userland, e.g.

     bash
        
    run0 scx_rustland
    
      

    It uses bpf, so the scheduler switches immediately and is as fast as anything in the kernel space. What makes this rustland scheduler super interesting is how it can detect what application is currently active, and give it a full priority over anything else. So you can compile code in the background with all cores, and at the same time play a game with the best frame rate.

    There are other sched_ext schedulers available, at least on nixos with the cachyos kernel I get a bunch of scx_ binaries to play with.

    For nix users here, nyx flake packages and compiles the cachyos kernel:

    https://github.com/chaotic-cx/nyx

  • Not until sched_ext lands, and you can then switch schedulers as you wish. Maybe in 6.12?

  • Me neither. But. I think the answer is much simpler here: Microsoft doesn't make their money with schedulers, but bundling that Office and tracking to everybody, and charging rent every month. They have way less people working on making the kernel as fast as possible, compared to Linux where:

    • there are many companies running crazy workloads 24/7, and providing patches
    • very talented individual hackers who have an open source kernel and can play around with things, getting that last oomph out from their system

    This is why, for a pro user, Linux is an amazing platform.