• 1 Post
  • 103 Comments
Joined 3 years ago
cake
Cake day: June 10th, 2023

help-circle
  • signofzeta@lemmygrad.mltoLinux@lemmy.mlWhy Gentoo?
    link
    fedilink
    English
    arrow-up
    4
    ·
    6 hours ago

    Same here. It was my first Linux. The Gentoo Handbook circa 2005 did not even attempt to hold your hand. But when I got through, it worked well! I got into dependency hell and bricked my system trying to upgrade Firefox. I like how Debian is stable, but I still do wonder about Gentoo.



  • It’ll probably happen in the next few years. Compiling for PowerPC went away after macOS dropped it, and it was the same story for i386. Running and targeting x86_64 will soon be a distant memory.

    That being said, if you have a Mac/Hackintosh/VM with an older Xcode, keep it! You can still compile with the old version, compile with the new version, and stick the results together with the lipo command. I wrote a simple C CLI app and I can put five architectures in one binary if I want (ppc, ppc64, i386, x86_64, arm64) and it’ll run on any macOS/Mac OS X version ever made.






  • signofzeta@lemmygrad.mltoLinux@lemmy.ml*Permanently Deleted*
    link
    fedilink
    English
    arrow-up
    4
    ·
    6 months ago

    I wound up switching to Debian. It’s stable. It works. It lets me tinker and upgrade some packages without compromising the whole system.

    My only gripe is that OS upgrades are a manual process. I miss Ubuntu’s do-release-upgrade command, though following a process isn’t hard.






  • Maybe. Some people have used SpinRite 6.1 to rewrite every sector, and that’s improved performance on some SSD’s. It rewrites each sector and restores the cell’s charge. That’s great if you need the data on there now.

    Now, if you’re erasing the disk (by any means, including just a quick format C:), any sectors you use will be written with new data, so that shouldn’t matter.

    Just erase the disk (securely, if you want) and get going, and it should be fine.








  • This is a compile-time option that will tell the compiler to optimize for the CPU in your computer, rather than any CPU.

    By default, the x86_64 kernel will build itself so that it can boot and run on any 64-bit Intel or AMD processor. This means it may have to ignore or check for newer instruction sets like (let’s say, totally at random) AVX512:

    if (CPU supports AVX512)
        do_efficient_avx512_thing (a, b, c)
    else
        a = something()
        b = some_nonavx512_prep_work()
        c = some_other_old_way_of_doing_things()
        do_nonavx512_thing (a, b, c)
    

    So, if you have an AVX512-capable CPU, it still has to check before using that instruction. Plus, your compiled kernel will be slightly larger because it needs to contain both ways of doing the thing.

    Using this option tells the compiler to compile code optimized for your current processor:

    do_efficient_avx512_thing (a, b, c)
    

    This is a gross oversimplication. The compiler will also take things into consideration such as instruction sets, scheduling, core and thread counts, big and small cores, and more.

    But the tl;dr is that optimized code is smaller, faster, and maybe a teensy bit more power efficient.

    The downside? If you try to boot this optimized code on an older CPU (or rarely, a newer CPU), it will eventually say “illegal instruction” and crash.