Settings

Theme

A Base Filesystem Project for macOS

kext.io

119 points by mattbauer 9 years ago · 44 comments

Reader

0x0 9 years ago

It's always good to see open source projects published, especially for tricky and often under-documented stuff like file system kexts.

Not to derail from this fine post, but I wanted to give a shoutout to FUSE for macOS (previously known as OSXFUSE). As an outsider from the project - merely a happy user - it seems to be a well maintained FUSE implementation for macOS, with signed kexts available. https://osxfuse.github.io/

  • azinman2 9 years ago

    According to Dropbox it has performance & security risks: https://blogs.dropbox.com/tech/2016/05/going-deeper-with-pro...

    • sweettea 9 years ago

      According to Dropbox, it has performance implications and is complicated thereby introducing a large attack surface. For some reason, they believe their own kernel module is less complicated and easier to reason about than FUSE, despite having more in-kernel code and not being open source; I would venture to say their words about security are more about control of the attack surface rather than any actual implications about the quality of the FUSE code.

    • Longhanks 9 years ago

      According to Dropbox it is okay to circumvent security mechanisms of the operating system (https://news.ycombinator.com/item?id=12463338) unless the media discovers your shady way of tricking the user into granting you full system access.

      Their lost a lot of their credibility in my opinion.

  • jjtheblunt 9 years ago

    why are there kexts in file system user space extensions? in OSX multiple driver types can exist entirely in user space, with no kext. [ former Apple engineer here ]

    • 0x0 9 years ago

      Are you saying you can write a 100% user-space "driver" that allows for `mount`ing into the regular file system? How does that work? Can a non-root user supply the code running to serve /some/path that is visible for any process on the system, even root?

raimue 9 years ago

In order to deploy and run your own kernel extensions on recent versions of the Mac operating system you will need to disable System Integrity Protection (SIP). Otherwise you will need a paid Apple developer account and ask Apple for a special codesigning certificate for kernel extensions.

https://developer.apple.com/library/content/documentation/Se...

ianai 9 years ago

Just yesterday I was thinking how all of the platforms are still using vfat as a go between. There really should be a new FS "for them all"

  • stonogo 9 years ago

    All attempts at such will fail. vfat won because it works in Windows without additional drivers. Anything you come up with to replace it will also have to work in Windows without additional drivers.

    It will also have have a workable implementation in what is essentially equivalent to the public domain, and be simple enough to process that hardware manufacturers can read it with a microcontroller.

    I would love to see it happen, but I am not optimistic.

    • cmurf 9 years ago

      Already exists, UDF. Built-in support on macOS, Windows, Linux.

      Another option is NTFS, the one limitation is by default it is read only on macOs.

    • asveikau 9 years ago

      > vfat won because it works in Windows without additional drivers.

      I would not understate that it is also very simple to write a driver for. The reasons for this have high overlap with the fact that the ondisk structure is crap. But it does mean that many people were able to write drivers.

      • tonyarkles 9 years ago

        I wrote a driver for it on an 8-bit chip that had 16kB of code space and 2kB of RAM. It was ugly, and it could only hold two sectors at a time in memory (if I recall, one from the FAT and one from the current file). Despite it being ugly... it worked! Best of luck getting pretty much any other standard filesystem running in that.

    • tracker1 9 years ago

      as mentioned above, ntfs works, but you'll need a driver for linux and macOS, which isn't too bad, and easier than getting unix file systems on windows.

      • hobarrera 9 years ago

        There's also no fsck for NTFS on linux, so in the event of a power failure (or out-of-battery), you're stuck with a useless FS until you visit someplace with windows/osx machines.

    • duaneb 9 years ago

      vfat only won in the sense that if you're forced to use windows you still have to use vfat. In every other context there is a better option. I haven't needed to move files to a windows box in 15 years so—to me—it's a massive surprise anyone still uses it at all.

      Just don't use USB keys; they're terrible security-wise and you're forced to use technology built for your grandmother.

      • stonogo 9 years ago

        That is the only sense in which a 'universal file system' can win. There is no other context. Your personal usage habits are completely irrelevant ("I haven't had to shoot a gun since the first gulf war, so to me it's a massive surprise that anyone still fights wars at all.")

        I don't use USB keys. I don't have any windows systems. But I do have UEFI, and that is based on FAT as well. Disregarding my grandmother's technical prowess, this technology is here to stay, and sticking your head in the sand about it doesn't advance any causes.

      • Aloha 9 years ago

        You're an outlier.

        I live in an environment where I need to move files between several builds of Windows, Linux and macOS - and often where there is no network access because of security policy (misguided policy perhaps). Thumb Drives are the only way to function.

        • viraptor 9 years ago

          Can you say anything more about the environment? I'm curious.

          • mschuster91 9 years ago

            Smells like the IT department of BigCo or public agencies to me. Been there, seen that. Literally terabytes of Debian binary packages transferred by hand with USB keys and disks between the dev network and the secure network.

            Oh, and the USB serial numbers of the keys had to be whitelisted on the secure network. What a fun that one was. They didn't even stop doing that after I showed them that I could modify the firmware of some of the sticks using software from some obscure Russian site and thus bypass the control...

            (Does anyone know by chance how that website is/was named? All I remember is that it held hundreds of manufacturer tools for all kinds of USB stick controllers/flash chips)

          • Aloha 9 years ago

            I work in the public service industry - many of the systems I work on are isolated from the internet, and from other networks even - so I often have to sneakernet software updates and other things around to all these various machines. The no network thing is reasonable when you consider the requirements these systems operate under - its also an easy way for folks with no system administration abilities to ensure some security and stability.

  • wmf 9 years ago

    You could call it a universal disk format. https://en.wikipedia.org/wiki/Universal_Disk_Format

    • RayDonnelly 9 years ago

      I tried UDF for a few months on a macOS/Linux/Windows triple boot. It doesn't work reliably enough. I've switched to ext2 using e2fsd and Paragon (which I paid for) on Windows and macOS respectively. Fingers crossed.

      I wish someone would port F2FS to Windows and macOS. This could be a good starting point for macOS.

      • ianai 9 years ago

        What sort of issues did you have with udf?

        • RayDonnelly 9 years ago

          Windows threw up CRC errors. I am not blaming Windows here, that would be unfair. Perhaps it was the only one that checked CRCs on read and one of the others didn't write CRCs on write.

          My use case was to store many large git repo clones and MP3s.

  • djsumdog 9 years ago

    I think today it's exFat instead of vfat. That seems to be supported by a lot of phones and devices for large storage.

    • loeg 9 years ago

      No, exFat is patent encumbered and isn't as simple and well documented as vfat (so non-Windows implementations are worse). vfat is still the common denominator.

      https://en.wikipedia.org/wiki/ExFAT#Restrictive_licensing_an...

    • wruza 9 years ago

      exFAT suddenly dirty-dismounts both on windows and osx, and is hard to mount again for regular user. Tried it as common r/w storage for bootcamp -- complete trash, cannot be used for long-connected drives, hyperactive torrents, big files. Copying some files forth-back is okay though.

    • hobarrera 9 years ago

      Far from being "simple to implement", it's patent encumbered, making implementations for many OSs highly unlikely.

  • tracker1 9 years ago

    via fuse, ntfs is pretty broadly available... iirc there was a recent post about efforts to bring a fuse alternative for windows in (which should bring ext3 and btrfs)...

    I tend to just use ntfs for most of my external storage and cifs for network storage only because it's easier to get on my non-windows systems than nfs and ext3 are to get working on windows... ymmv though.

    • dom0 9 years ago

      > about efforts to bring a fuse alternative for windows in

      You mean dokany? 'cause that one is one quite stable project.

  • nathancahill 9 years ago
    • DigitalJack 9 years ago

      Pretty soon, we'll just use XKCD numbers and not bother linking. We'll just call something or other "hey, that's a 927"

      • Sophistifunk 9 years ago

        We should create a URI standard for that; xkcd://927

        • chungy 9 years ago

          Should be simple enough: https://github.com/chungy/xkcd-uri

          • ChoHag 9 years ago

            > Just made for fun, not expected to see any wide use.

            Well that's jinxed it.

        • rndgermandude 9 years ago

          Let me propose the xkcd2 scheme, to be used like xkcd2:927, because who really needs those two slashes?!

          • tychuz 9 years ago

            My proposal: xkcd3, works as xkcd3:927 AND xkcd3://927

            And that's why Linux desktop is going nowhere.

            • jepler 9 years ago

              hi, what about xkcd4:ⅽⅿⅹⅹⅶⅹ or xkcd5:٩٢٧ (note: may not appear in correct reading order due to technical limitations)

              • Razengan 9 years ago

                I propose a browser powered by deep machine learning that lets you just write 927 and automatically figures out that it refers to an XKCD by inferring the context from looking at the content on the rest of the page.

      • sdrothrock 9 years ago

        Echoes of "Shaka, when the walls fell."

rrggrr 9 years ago

Akin to this is the keybase.io encrypted file system. It's in beta and brilliantly implemented so far.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection