It makes more sense when you realize that it's not that everything is files it's that everything can be treated as a file. There are other APIs to interact with things, but everything can be interacted with as if it was a file. It doesn't seem as bonkers like this.
linuxmemes
Hint: :q!
Sister communities:
Community rules (click to expand)
1. Follow the site-wide rules
- Instance-wide TOS: https://legal.lemmy.world/tos/
- Lemmy code of conduct: https://join-lemmy.org/docs/code_of_conduct.html
2. Be civil
- Understand the difference between a joke and an insult.
- Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
- Don't get baited into back-and-forth insults. We are not animals.
- Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
- Bigotry of any kind will not be tolerated. This is an LGBTQ+-friendly community -- if that is a problem for you, you should leave.
3. Post Linux-related content
- Including Unix and BSD.
- Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of
sudoin Windows. - No porn, no politics, no trolling or ragebaiting.
- Don't come looking for advice, this is not the right community.
4. No recent reposts
- Everybody uses Arch btw, can't quit Vim, <loves / tolerates / hates> systemd, and wants to interject for a moment. You can stop now.
5. π¬π§ Language/ΡΠ·ΡΠΊ/Sprache
- This is primarily an English-speaking community. π¬π§π¦πΊπΊπΈ
- Comments written in other languages are allowed.
- The substance of a post should be comprehensible for people who only speak English.
- Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
6. (NEW!) Regarding public figures
We all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations. - Keep discussions polite and free of disparagement.
- We are never in possession of all of the facts. Defamatory comments will not be tolerated.
- Discussions that get too heated will be locked and offending comments removed. Β
Please report posts and comments that break these rules!
Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.
Exactly. A file is really just a way to understand a collection of bits. So saying everything is files is like saying everything in computers can be described as sets of bits, which is not a terrible heuristic.
It's like saying everything is a wave IRL.
Well, if you go back far enough you might encounter punch cards or even switches, but then again you're not taking about modern computers anymore.
What's this "back far enough" shit, I've used punch cards and punch tape.
Fuck me I'm old.
To feel really old: http://themindsetlist.com/lists/
That's funny. I have a pair of Converse tennis shoes that are 27 years older than that list......
You could argue that a collection of punch cards is a file
If you put them in a physical file and it gets jostled they go out of order and you have a problem. You want them in stacks.
I think technically it's only a file when it's managed by the system itself (reading, writing, modifying, storing) so punch cards are not files.
Stages of POSIX enlightenment:
- It couldn't possibly all be files
- It's all files
- What is a file, anyway?
- There's no such thing as a file
- It couldn't possibly all be files
- Everything is a file
Most people stop at stage 2, stage 3 hits when you decide to write a filesystem, stage 4 when you've finished your first filesystem. Stage 5 is when you start working on kernel internals. No one can tell you how to reach stage 6, you must discover it for yourself.
Missing stage 7: Not everything is a file.
Linux is closer than other *nixes (sysctl equivalents in some platforms are not files, but they are files in Linux).
However get very far into network and the file-like behaviors become more limited. From an application, at least you have a decent chance of having unseekable, but otherwise 'file-like' interaction with stream protocols. Then you need recvmsg/sendmsg. Then you want to deal with low level interaction with the network stack and dealing with NETLINK and such..
And the hidden 0th level that you only get after being nearly killed by a falling server rack:
"Files Aren't Things"
Which looks great on a tshirt, btw :p
Am I a file?
Can you read me?
"How can files be real if the filesystem isn't real?" - Jaden Smith (probably)
/dev/null sez nothing is also a file
A file would be something. No, it was nothing.
Asking for a friend.
If you can recognize "nothing" then "nothing" must be something right? So if nothing is a file, because /dev/null says so, then nothing MUST be something to be a file. And therefore /dev/null can't be nothing.
Or do I just need more tea? Or maybe whisk(e)y?
The word "nothing" isn't itself nothing. It is something used to describe nothing.
The word "nothing" is the English word describing the concept of nothing. And I have to use the word to describe the concept. So yes, you are correct the word is itself "something". So that is probably one point for "nothing" to not exist.
I have now consumed 3 cups of tea. And my head now hurts from thinking about nothing. I should never have stepped into this post.
Unfortunately, no one can be told what a file is. You have to see it for yourself.
This is your last chance. After this, there is no turning back. You take the blue pill - the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill - you stay in Wonderland and I show you how deep the file system goes.
That way lies madness!
You'll know you've reached stage 6 when you seriously start considering running Plan 9 as a daily driver
Okay, but what are blocks then? A file is really just a bunch of blocked stacked together with the inode metadata also sitting on another block, so is everything just blocks or because you can emulate a block device on a filesystem, are blocks themselves files? If that last part is true then files are infinitely recursive and my head is starting to spin.
The devnode that is used to reference the block is a file, so you come back to blocks just 'being offsets into some file'.
Though system calls, ioctls and networking credibly get away from file semantics
You are almost ready to take the next step. But to do so, you must unlearn what you think you know. Write a filesystem that does not have blocks for a media without pages, and you will find the footprints of your next teacher.
Yep, takes a moment to wrap your head around but the longer you read linux/unix documentation, the more it makes sense why it is the case.
But some things are directories (like cgroups). And Networknamespaces were also controled in a weird way.
And then there are kernel features which are not exposed through a file or syscall but through a special type of socket.
Aren't directories just files that say "hey i am directory ABCD and file X, Y and Z are my childs"?
Directories are just files if you squint at then right, and sockets are basically files too. As another commenter said, it's not that everything is literally a file, but that it presents as a file, and can be interacted with as one.
Want take it to 11 plan 9 did it.
Epstein's?
Yeah, but in the BSD land as their licensing is more Libertarian esqu.
