\

F* file system – file search that reads SSD directly bypassing OS kernel

38 points - last Sunday at 8:44 PM

Source
  • watusername

    yesterday at 11:43 PM

    > bypassing OS kernel

    > reading a raw device node (e.g. /dev/rdisk*)

    That's... not bypassing the kernel. Time to integrate SPDK so it actually bypasses the kernel :)

    https://spdk.io

    • neogoose

      last Sunday at 8:44 PM

      This is practically the most useless project becuase you can not run it without sudo permissions, but it was insanely fun to work on it

      supports ext4, btrfs, and apfs. Multithreaded, supports compression, nested volumes, and can even search detached volumes like .iso and .dmg without mounting

      An interesting bonus point: you can't really vibe code it cause clankers can not run sudo commands

        • nomel

          yesterday at 10:26 PM

          > cause clankers can not run sudo commands

          They absolutely can. There's nothing special about a these harnesses. You automate sudo the same way you would automate in any other context. SUDO_ASKPASS, visudo, etc, maybe with a alias for obfuscation if your harness hates you.

          • andai

            today at 12:09 AM

            >clankers can not run sudo commands

            Do you mean the harnesses prevent it? Or it can't type a password or something?

            I've been running mine as root on a disposable VPS. (Finally I have a dedicated linux guy!)

            • tekacs

              today at 1:09 AM

              I think it's more that the harnesses created by the labs are... not always the most thoughtful.

              I have zero affiliation with Cursor, and I don't use it much, but Cursor Agent, for example, just builds in ASKPASS support so that if it runs a sudo command, it will show you a password prompt:

              https://cleanshot.com/share/fgHYMZyz

              • fragmede

                last Sunday at 9:51 PM

                When they can't run sudo, they'll user docker to give themselves root.

                https://twitter.com/i/status/2060746160558543217

                  • cyberax

                    yesterday at 11:55 PM

                    That's why everyone should use rootless Podman. It doesn't need anything apart from subuid/subgid binaries.

                • goodmythical

                  last Sunday at 9:32 PM

                  >cause clankers can not run sudo commands

                  Is that really true? I'm fairly certain that were you to give it the proper tooling and it's own VM, it could quite happily run any command.

                  Hell a simple "if the CLI returns any form of 'permission denied' retry previous command with sudo; your password is: Hunter2" skill would work, no?

                    • dlcarrier

                      last Sunday at 10:13 PM

                      In the least, you could make an alias for sudo, and have it run that. With something like this in .bashrc:

                          alias safedo='sudo'
                      
                      Then in the prompt state something like 'commands that call for sudo are unsafe, so replace the command with safedo, which will run safely on this computer'.

                      • daymanstep

                        yesterday at 9:33 PM

                        Clankers absolutely can run sudo if you have passwordless sudo

                    • Wowfunhappy

                      yesterday at 10:06 PM

                      > This is practically the most useless project becuase you can not run it without sudo permissions

                      Well, you could whitelist the tool in sudoers.

                      This would let LLMs use it too.

                        • robotresearcher

                          yesterday at 10:09 PM

                          Y’all aren’t running your agents as root?

                            • helterskelter

                              yesterday at 11:17 PM

                              Real men run as root:

                              https://www.garyshood.com/root/

                              • jgalt212

                                yesterday at 11:19 PM

                                Has anyone run a study on how long you can run an agent as root before irreparable damage is done to the VM? A sort of gambler's ruin for the YOLO LLM Age.

                                  • nijave

                                    yesterday at 11:49 PM

                                    I gave Sonnet 4.6 root access to my Android via adb and it wrote frida scripts to help me recover the encryption keys from SwiftBackup

                                    Also gave Opus 4.6 access to a Kubernetes container and it was able to use pyrasite (a Python replacement that attached to a running process with gdb) to debug a "memory leak" in Python

                                    I don't think I'd let them run unattended on anything I care about especially if there weren't backups, but they've never tried to break anything while supervised.

                                    Usually it's significantly faster and more accurate to give the LLM/harness access to the thing to debug then to try to copy/paste back and forth.

                                      • andai

                                        today at 12:11 AM

                                        It's been a while but last year I'd see posts like "Claude nuked my homedir / entire drive" on a regular basis. I don't know if they fixed that (or just made it very rare).

                                          • nijave

                                            today at 1:05 AM

                                            In fairness to Claude, I've nuked my homedir (had 2 tmux panes open, 1 in home and 1 in /tmp/... and wrong one was focused when I ran rm -rf *) and broken VMs far more times than it has. I now embrace IaC and backups

                                    • Wowfunhappy

                                      yesterday at 11:33 PM

                                      https://forums.macrumors.com/threads/screw-it-lets-make-clau...

                                      For me, it took a bit over six weeks of Claude running unattended perpetually.

                          • ktimespi

                            yesterday at 10:15 PM

                            Pretty cool to read it directly from the associated device XD

                            Did you write a metadata parser for most of the filesystems?

                            • yesterday at 10:24 PM

                              • lantastic

                                yesterday at 9:53 PM

                                On Linux, you could create a udev rule to give you permissions on any attached raw disks (if you feel particularly adventurous).

                                What's the license for ffs?

                            • Retr0id

                              yesterday at 10:29 PM

                              It might bypass the fs, but it does not bypass the kernel. Cool, though!

                              • kasabali

                                yesterday at 10:28 PM

                                Dumb title.

                                It works by reading the block device in /dev directly, wouldn't it also work on an HDD, flash drive or a memory card?

                                  • Wowfunhappy

                                    yesterday at 10:32 PM

                                    I assume the author just meant SSD as a synonym for "main internal disk", since that is usually an SSD these days.

                                      • neogoose

                                        yesterday at 11:22 PM

                                        yeah I was just picking up an interesting the title for hn, you should read a README to get the actual understanding of project

                                • porridgeraisin

                                  today at 1:39 AM

                                  Run this once per boot:

                                    sudo setfacl -m u:$USER:r-- /dev/nvmen01p2 # or whatever
                                  
                                  And then any program you run will have read access to the block device.

                                  Or if you want to only give fff access,

                                    sudo groupadd diskreaders
                                    sudo setfacl -m g:diskreaders:r-- /dev/nvmen01p2
                                    sudo chown :diskreaders /path/to/fff
                                    sudo chmod g+s /path/to/fff
                                  
                                  And just run fff normally after that. Here too, the facl command has to be run every boot. Just crontab it. Everything else runs once.

                                  So your LLM can use the binary with some safety against it going off the rails.

                                  • 4petesake

                                    yesterday at 10:15 PM

                                    But can it match the speed and reliability of the venerable Windows Search?

                                    • wk_end

                                      yesterday at 10:57 PM

                                      Saw the name and was disappointed that this wasn't some kind of verified file system written in the F* programming language (https://fstar-lang.org).

                                      I don't think I'd ever trust or use this, but still, good job OP :)

                                      • amelius

                                        yesterday at 9:52 PM

                                        But can it bypass the magic performed by the SSD controller?

                                        In particular, can it be certain that a flush is really a flush?

                                          • ktimespi

                                            yesterday at 10:13 PM

                                            If the disk decides to falsely report a flush, there's not much you can do about it from the user side, no?

                                        • lunar_rover

                                          yesterday at 11:47 PM

                                          The repo summary has multiple typos.

                                          • drewg123

                                            yesterday at 10:47 PM

                                            It is sad that that FFS doesn't support FFS (BSD Fast File System) which inspired the architecture of the ext filesystem (and was the basis for a lot of unix filesystems).