Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)GA
Posts
0
Comments
124
Joined
6 mo. ago

  • They are not irrelevant points and hopefully I can show why.

    So I went fishing through the kernel rust directory and didn’t find any drivers. It’s late and I definitely missed a lot (I didn’t even go through the drivers branch, but should rust code be there? I thought it all lived in /rust…), but the r4l page lists the nvme driver, an implementation of existing functionality in rust that is in the words of its description page “not suitable for general use”. The r4l page also has the null block driver, which is not a strictly speaking useful thing for actually doing stuff with the computer but is a great way to do a bunch of goofy crap and its page on the r4l website explains why it’s being rewritten in rust.

    I just want to pause here in the comment and say that the null block driver is actually a phenomenal thing to be rewriting in rust for so many reasons.

    Then there’s the android binder driver which is not something I understand enough to comment on, but is a rewrite in rust. I also saw a puzzlefs driver on the r4l page. Puzzlefs is an experimental file system written in rust to begin with so it’s no surprise the Linux driver is rust.

    Last the r4l page offers two gpu drivers, the apple one that asahi uses and the nvidia nova one which seems to be in the early stages of development.

    As I said, I probably missed some drivers and other rust code that needs to use —since it’s our topic of discussion— the c dma bindings through a wrapper.

    But if all six of those used the dma c bindings wrapper then that’s still far short of my agreement with you that the right way would be to write a bunch of good rust shit that uses the wrapper then say “hey, if we move this wrapper into dma directly it’ll save 10k lines of code because it’s a hundred lines and used in a hundred things”.

    Instead it’s used by three rewrites (the point of r4l!), an experimental file system, a in development gpu driver and the asahi mac driver.

    For a third time, I’m absolutely 100% sure there’s more rust drivers than that, but enough to make the argument that you’re taking a hundred lines out of a hundred places?

    When I was younger I was involved in local government. I was idealistic and thought that having been accepted at the table, the correctness of my ideas would be evident and they would be accepted and implemented quickly. Of course I was very wrong and was surrounded by competing interests vying for limited resources so the force of my argumentation had almost no effect.

    What was effective was constructing scenarios that made it almost impossible for people to act in ways other than what I wanted.

    I chose a narrative analogous to the common rust person complaint of “political reasons” here on purpose because ultimately instead of appealing to an authority to settle the chicken or egg problem for them (which is somehow not political, despite the authority existing within some governing structure but whatever!) rust devs should be saying “who the fuck cares, I’m headed to market with a cartload of chickens and eggs, you gonna give me a stall to sell out of or am I gonna be clogging up the thouroughfares?”

  • I’m not at a computer with the source on it, so if you get to it before me, how many rust drivers are there? How many that would use the rust dma wrapper?

    I ask because last year there were relatively few.

    People writing in c don’t have to use a wrapper because there’s no need to wrap c code for use by other c code.

    More broadly there are times when duplicated c code has been condensed into a library or something and added to the kernel.

  • Yes, literally include the wrapper code in every rust driver that needs it then when you push the wrapper on its own you can say “this code is currently duplicated 900 times because there isn’t a rust wrapper” not “this would make it easier for hypothetical rust drivers that might hypothetically exist in the future” and no one will bat an eye!

    That’s how you get things added to the kernel!

    If it was about adding rust code to the kernel, which is what r4l universally says they’re doing, then they’d be taking that approach instead of farting around with the chicken and egg problem trying to get rust everything first.

    That’s the whole point of the part of my comment that you dismissed out of hand. They’re nearly universally behaving in a way that it takes actual concerted brainpower to read as anything other than duplicitous.

    And then when people say “hey, why don’t you not act like that” you get responses like “Linus said we could!” And “nontechnical nonsense” and “Dino devs”.

    I don’t think that’s a broken foundation.

  • This is where you lose me. I’m not a good programmer or a very smart person, but I have enough experience with c, c++ and rust to know that those wrappers don’t need to be in the kernel if the kernel has c bindings.

    If I were writing something in rust I could just include the r4l wrapper for the kernels c bindings and everything would work fine. The wrapper doesn’t need to be in the kernel.

    There’s a fundamental disconnect here. When people speaking about r4l including official statements from the r4l project say “our plan to add rust, a language intended to address shortcomings of c, to the kernel is only for new code, not a rewrite of existing systems.” I don’t believe them.

    Not only do supporters of and contributors to the r4l project make offhanded remarks about how different things would be better if they were written in rust but if they truly believed in the language’s superiority to c then they would be trying to replace existing c code with rust.

    Then the whole rust using and supporting world melts down when people oppose adding it into an existing huge c codebase.

    Then they all complain that they’re being discriminated against for “nontechnical reasons”, which is becoming a great dog whistle for if you should just disregard someone’s opinion on rust outright.

    Perhaps that explains some of why I don’t believe rust people when they flip out over not being allowed to do the thing that no one else is allowed to do either.

  • So why can’t rust modules use the c bindings?

    What im building towards is: if r4l isn’t about replacing c code then it doesn’t need to be in the kernel. If its about replacing c code (which it absolutely should be, that’s the whole point of memory safe languages like rust) then r4l people need to have a clear process and understanding of how they expect to accomplish that goal and be open about it.

  • For the purposes of the average person the tech guy in your op is absolutely 100% correct.

    All the platforms listed use transport encryption and that’s enough to avoid mitm surveillance which is enough for most people.

    Most people’s “threat model” is the police or a pi. All the apps listed including signal have to comply with orders from American police and have “sidechain attacks” that involve stuff like getting some member of the groupchat’s device and scrolling up or tricking someone into giving up sensitive information.

  • Okay so if the point of the rust for Linux project isn’t to replace c code with rust then what is the point?

    I understand the project maintains a coy line regarding that question but let’s be serious for a second and really consider why r4l is happening.

  • I would recommend people not do that unless they know they need to and again, if you know you need to you’re not asking on lemmy.

    Hosting your own secrets not only puts the burden of protecting, providing access to and preserving the secrets entirely on you, but puts a very unique set of hosting goals squarely on you as well.

    Even a skilled administrator with significant resources at hand would often be better served by simply using bitwarden instead of hosting vaultwarden.

    An example I used in another thread about password managers was a disaster. When your local server is inoperable or destroyed and general local network failure makes your cloud accessible backup unreachable, can you access your secrets safely from a public computer at the fire department, church or refugee center?

    Bitwarden works well from public computers and there’s a whole guide for doing it as safely as possible on their website.

  • You’ve brought this up in several comments. given the situation, what do you think is the answer to replacing a huge c codebase with rust under the specific conditions of Linux development (open source, overwhelmingly maintained by 9-5 lifers employed by disparate organizations, in use everywhere for everything) when maintainers say they’ll oppose it?

    Microsoft made the news a year or so ago announcing a rewrite of some libraries in rust, but conditions and limitations in Redmond are very different than those faced by the kernel team.

  • Yes, but the bios will still need to go to the device with the bootloader on it for you to make the choice.

    In the case that the external is unplugged or had a damaged wire or something, it won’t work.

    Depending on your circumstances you may be better served by just installing Linux on the external device, not writing grub (the bootloader that lets you choose) to your internal drive and instead just booting from it like a usb.

    I don’t generally recommend that to people, but if you absolutely will not use partitions no matter what then it’s a less complex way of accomplishing some tasks.

    E: I want to be clear that you are setting yourself up for failure and unhappiness if you try to use a usb device chain booted off grub. You will make your life incredibly complex and make it hard to get help if you try to migrate that setup to your boot device.

    It is infinitely easier to move your files to the external and dual boot from partitions on one device like a normal person.

    Why do you want to use a vm or boot from your usb drive in the first place?

  • Here’s a post explaining how dual booting works.

    When you turn on your computer, the bios or bios equavalent goes down its list of devices to try and boot from. It might have usb or cd first and ssd next, so if you put a cd or usb it’ll boot that automatically.

    Devices that can be booted have special instructions in the first part of their storage that can be used to operate the hardware.

    When the bios finds a device that can be booted it hands the hardware off to that device and breathes a sigh of relief, most of its work is over. That devices work is just beginning though.

    If it finds a windows disk, that disks bootloader will load a minimal set of hardware drivers necessary to load the rest of windows and it builds itself up towards having a functional running windows operating system and presents a login screen to the user.

    If it finds a Linux disk, the disks bootloader will do the same thing but instead of loading a set of drivers, kernel and configuration that let it start a windows system it will build towards having a running Linux system. Duh.

    When you dual boot, the device the bios finds to boot from doesn’t do either of those things, it runs a bootloader that presents you the user with a choice between the two, then hands the task off to one or the other based on your choice.

    Setting up dual booting means clearing off space and shrinking the windows partition so you can have a Linux partition, installing Linux to it and then installing a bootloader that gives you the option to use either os.

  • Privacy from whom?

    I ask because the easiest way to do what you’re asking is to have your local record store sell you shit and pay in cash (that you’ve laundered so the serial numbers don’t match the atm). You can even be like “I’m trying to get away from computers man, can you order me this off eBay?” And guaranteed if you spent a hundred bucks or so on used releases they’ll say “absolutely!”

    Of course, you’ll stick out like a sore thumb and have a lie to keep up with, so you’ll not have any real measure of anonymity.

  • Permanently Deleted

    Jump
  • Using email is the worst experience in the world. There’s no security, no standard for quotes, no delivery guarantee, a patchwork of attachment deliverability guidelines and you have to understand things like bcc in order to not commit bizarre faux-pas all the time.

    Email sucks and I can’t believe a person who wants to have a conversation about ux would seriously hold it up as a positive example.

    Email literally replaced messaging held in shared files between time users of mainframes. It replaced the most centralized system imaginable which had a ux that required no additional understanding or training of a mainframe user. Twenty years after its inception, major universities still had to have special training classes to make sure students and faculty could use email.

    The problem of people not joining lemmy/activitypub isn’t the ux of choosing a server. The problem is no one wants to leave reddit enough to do so. Lemmy doesn’t offer anything except possibly the same experience as being on some idealized version of reddit so why would users flock to it?

    A better approach would be try to be a better platform than reddit like reddit was to digg, like digg was to slashdot etc. that’s what hexbear and beehaw do.

  • You can go ntfs -> qcow and put your windows in a vm. It sucks more to go qcow -> ext3 and put your Linux vm on a metal.

    Just dual boot. It’s easy and it works and you have a little computer in your pocket to look shit up on if you’re scared about fucking anything up.

    Before you dual boot: turn off fast startup in windows, turn off uhh bitlocker(?) and make sure your bios will let you.

    Make a backup first, because you don’t have one now and if anything happens you’ll lose everything. Nothing will happen, nothing ever happens, but knowing you’re not fucked makes you feel more confident.

    E: people will tell you to use a different ssd or whatever for Linux. That’s stupid and bad advice. Don’t do it. Just clear off some space on your boot device and use it.

    E2: fixed a typo.

  • Permanently Deleted

    Jump
  • It’s the same thing.

    Email even has its own version of federation and de federation in dkim.

    The only difference is that you’re oftentimes not given access to an email address from your internet provider by default anymore so you’re not automatically joined into the system.

    People balking at choosing a server are not showing you a bad user experience, they’re showing that they don’t really want to be part of a reddit alternative.

    And the broader lemmy/activitypub/whatever needs to figure out if it wants to be like beehaw and hexbear and abandon the shape of reddit or if it wants to duplicate it and try to compete with reddit.

  • There’s a lot of arguments for one solution or the other based on security or privacy, but let me present a different scenario:

    Imagine you’re in a natural disaster. Your home based self hosted server is down because of a general rolling network outage or just irrecoverably destroyed. Your offsite on the other side of the county is in a similar state. Can your cloud hosted backup be accessed at generic, public computer in a shelter or public building?

    Bitwarden can. It has specific instructions for doing so as safely as possible.

  • It’s a duplication of functionality in kernel/dma.

    That’s why the submitter didn’t say “I didn’t submit to kernel/dma, checkmate libs!”.

    The intent is to duplicate functionality in kernel/dma then get it included directly or linked to.

    That’s what the r4l project is trying to do explicitly!

    Before you say that kernel/dma didn’t have functional easy to use rust bindings, so the commit couldn’t have duplicated functionality: someone on kernel/dma said they didn’t want that and suggested using the c bindings instead which is what every other language has to do. Which means there was already a solution that was functional.

    It’s like if there’s a community bicycle and you bring your drill and tap set so you can mount your bottle caddy and the community says “please don’t make a hole we have to tig in. Just use a pipe strap.” The right answer isn’t to start building a whole new down tube you can tap for an m5 for your bottle caddy, it’s to just use a pipe strap for your bottle caddy.

    I didn’t read the linked article (or any linked article about this) because I’ve been reading the mailing list. Reporting on the kernel and people’s behavior on the list is tiring and often includes a bunch of baseless speculation.