are filesystems on linux just safer than the network subsystems or do filesystems just never expose any interface besides posix i/o so they have a much smaller and better-characterized attack surface?
Post
hilarious that FIPS imposes requirements upon posix write() return values and not like eventually consistent persistence semantics. cryptography doesn't care about the contents of your hard drive, just the quality of your character streams
amazed that libc fwrite has the fflush call to sync in-mem state as well as feof/ferror. it's deeply annoying to me that posix requires every file to be a globally mutable shared memory mapping and every write to be unbuffered. that's fucked up! who asked for this?
why would you make a portable operating system interface specification that isn't portable
no wonder nobody does microkernels. what's the point of an isolation boundary
@julia is this why posix sux or am i missing more reasons. learning that posix is why filesystems are all boring and can't do inodes is radicalizing
fucking amazing that section 4.15.1.1 Data Races does not mention THE FUCKING PAGE CACHE
i don't understand how the page cache doesn't have a data race if a file write is not defined as an atomic operation
they just don't care
After a write() to a regular file has successfully returned:
Any successful read() from each byte position in the file that was modified by that write shall return the data specified by the write() for that position until such byte positions are again modified.
Any subsequent successful write() to the same byte position in the file shall overwrite that file data.
i'm not just getting stuck in the wording i also believed that a data race i.e. UB was supposed to result from cross-thread access to the same memory location without atomicity
An application contains a data race if it contains two conflicting actions in different threads, at least one of which is not atomic, and neither happens before the other. Any such data race results in undefined behavior.
cute that this condition fails to apply because write() only defines its behavior if a read() happens after
is it time to email the austin group
my god making an account on their site is scammy. this is the nature of posix
i'm writing an email and learning about write combining which is like if io_uring was good
and apparently page attribute tables let you direct CPU cache behavior per page which is even better if you also wield an omniscient knowledge of future I/O requirements via the magic of graph theory
i'm pretty sure i could defeat theodore ts'o. i can must and will defeat linus
specifically by cheating. idk if any of this will work without two independent cores