• 0 Posts
  • 31 Comments
Joined 2 years ago
cake
Cake day: August 10th, 2023

help-circle



  • I’m pretty sure it’s possible to use timeshift to create backups on another drive using rsync (instead of btrfs). They are incremental, and deduplicated, as well.

    But the other commenters are correct, timeshift is not a backup tool, it’s more for snapshots to undo system changes you may not want. In addition to that, it doesn’t do user files by default — because again, it’s not a backup tool.

    btrfs send/receive technically does what you want, using btrfs to do backups to another drive, but I don’t think any GUI app supports it. Plus, you would have to create snapshots for btrfs from the command line.

    Your best bet are apps explicitly designed for this usecase, like someone mentioned pika, or borg or restic are good choices. They don’t do BTRFS, but they do incremental, deduplicated updates in a user friendly way.





  • Should be awful for gaming. It’s possible to run x86 things with emulation, sure, but performance (especially single-thread)

    Most modern software (games excluded), is dynamically compiled. This means that it’s not all one “bundle” that runs, but rather a binary that calls reusable pieces of code, “libraries” from the binary itself. Wine is dynamically compiled.

    What makes modern x86 to arm translators special, is that the x86 binary, like an x86 version of wine, can call upon the arm versions of the libraries it uses ­— like graphic drivers. It’s because of this that the people on r/emulationonandroid managed to play GTA 5 with 30 fps via the computer version. There definitely is overhead, but it’s not that much, and a beefy machine like this could absolutely handle it.

    https://moonpiedumplings.github.io/blog/scale-22/#exhibition-hall

    The Facebook/Meta table had a booth where they had an ARM macbook that was running steam and they were installing games on it.


  • ut I honestly doubt ARM can with the overhead of emulation

    Most modern software (games excluded), is dynamically compiled. This means that it’s not all one “bundle” that runs, but rather a binary that calls reusable pieces of code, “libraries” from the binary itself. Wine is dynamically compiled.

    What makes modern x86 to arm translators special, is that the x86 binary, like an x86 version of wine, can call upon the arm versions of the libraries it uses ­— like graphic drivers. It’s because of this that the people on r/emulationonandroid managed to play GTA 5 with 30 fps via the computer version. There definitely is overhead, but it’s not that much, and a beefy machine like this could absolutely handle it.

    https://moonpiedumplings.github.io/blog/scale-22/#exhibition-hall

    The Facebook/Meta table had a booth where they had an ARM macbook that was running steam and they were installing games on it.







  • I despise the way Canonical pretends discourse forum posts by their team members* are documentation.

    I’ve noticed they have been a bit better lately, and have migrated much of the posts to their documentation, but it seems they are doing it again.

    As this is developed, we will update this post to link to the new documentation and feature release notes.

    Pro tip: You could have just made the documentation directly, with the content of this post. Or maybe a blog post. But please stop with the forum posts. They are very confusing for people not used to these… unique locations.

    *Not that people are easily able to find this out when they don’t give any indication that the forum post is something other than just another post by a rando. Actually, I’m just guessing here, based on the quoted reply, for all I know this could be a post by someone unrelated to Canonical. The account is 3 months, and the post itself is identical to a regular forum post from a regular forum member…


  • It actually is a language issue.

    Although rust can dynamically link with C/C++ libraries, it cannot dynamically link with other Rust libraries. Instead, they are statically compiled into the binary itself.

    But the GPL interacts differently with static linking than with dynamic. If you make a static binary with a GPL library or GPL code, your program must be GPL. If you dynamically link a GPL library, you’re program doesn’t have to be GPL. It’s partially because of this, that the vast majority of Rust programs and libraries are permissively licensed — to make a GPL licensed rust library would mean it would see much less use than a GPL licensed C library, because corporations wouldn’t be able to extend proprietary code off of it — not that I care about that, but the library makers often do.

    https://en.wikipedia.org/wiki/GNU_General_Public_License#Libraries — it’s complicated.

    EDIT: Nvm I’m wrong. Rust does allow dynamic linking

    Hmmmm. But it seems that people really like to compile static rust binaries, however, due to their portability across Linux distros.

    EDIT2: Upon further research it seems that Rust’s dynamic linking implementation lacks a “stable ABI” as compared to other languages such as Swift or C. So I guess we are back to “it is a language issue”. Well thankfully this seems easier to fix than “Yeah Rust doesn’t support dynamic linking at all.”

    Edit3: Nvm, I’m very, very wrong. The GPL does require programs using GPL libraries, even dynamically linked, be GPL. It’s the LGPL that doesn’t.


  • [moonpie@osiris ~]$ du -h $(which filelight)
    316K    /usr/bin/filelight
    

    K = kilobytes.

    [moonpie@osiris ~]$ pacman -Ql filelight | awk '{print $2}' | xargs du | awk '{print $1}' | paste -sd+ | bc
    45347740
    

    45347740 bytes is 43.247 megabytes. That is to say, the entire install of filelight is only 43 megabytes.

    KDE packages have many dependencies, which cause the packages themselves to be extremely tiny. By sharing a ton of code via libraries, they save a lot of space.



  • I always wonder how Docker works on macOS with a more UNIX-style kernel than Linux

    It doesn’t. Macos also uses a virtual machine for docker.

    but is it really that hard to do Docker/OCI out of Linux?

    Yes. The runtimes containers use are dependent on cgroups, seccomp, namespaces, and a few other linux kernel specific features.

    You could implement a wine like project to run the linux binaries that containers contain, and then run some sandboxing to make it be a proper container, but no virtual machines or virtual machine container runtimes* are easier.

    Linuxulator, a freebsd project does the above.

    https://people.freebsd.org/~dch/posts/2024-12-04-freebsd-containers/

    *these are much lighter than a normal vm, I’ll need to check if this is what macos does. I know for a fact docker on windows uses a full Linux vm though.