3 ms·
It's trivial to implement with CAS (e.g. Git is a transactional file system). That's a lot of code/time/money/attack surface to spend on the kernel when it is s
by zamalek 4y ago
It's trivial to implement with CAS (e.g. Git is a transactional file system). That's a lot of code/time/money/attack surface to spend on the kernel when it is so easy to do in userspace.
- hansvm 4y agoIt's only easy to do in userspace for consenting adults though. The whole point of an OS is to manage contended resources, and this particular contended resource requires every process to implement their own way of safely interacting with every other process
- bhawks 4y agoThe filesystem abstraction can only work when it's used by cooperating, well mannered consenting adults. At it's core it is just a hierarchical key-value store where the core os plays a middle manager role connecting applications looking up keys and filesystem plugins serving values and persisting them onto the kernels block device apis. It certainly can be a convenient and productive abstraction but the model itself has very clear natural limits.
- Joker_vD 4y agoAnd now I have flashbacks of trying to use flock(2)/lockf(3) for their intended purposes... such miserably misdesgined (and underdocumented) pieces of file API, bloody hell.