“Everything is a file” is what made me start understanding linux few years ago and from there it got easier to use with each new concept.
Still this was really revolutionary to me when I first heard it. Made a bunch of things just click.
“Everything is a file” is what made me start understanding linux few years ago and from there it got easier to use with each new concept.
Still this was really revolutionary to me when I first heard it. Made a bunch of things just click.
I think the meme mostly refers to configuration. In Linux configurations are stored as plain text files. Windows uses the registry for many configurations.
Also, in unixoid systems, devices are files too.
Anyone interested in this concept should take a look at plan9. Everything is even more of a file there.
Taking a screenshot, for example, can be done with:
cat /dev/screen | topng > screenshot.pngThat combined with the way that parent processes can alter their children’s view of the filesystem namespace allows for extremely elegant abstractions. For example, every program just tries to write directly to
screenoraudio, but the desktop environment redirects their writes to the relevant servers. Which means that, in the absence of those servers, those same programs can run just fine and don’t care whether they’re being multiplexed or not. That also means that the plan9 userspace can be nested inside itself just using the normal mechanisms of how the OS works (that is, without a special tool like Docker).This is very interesting.
That might be part of it, but I was thinking it was more how things we don’t think of as files, like sockets, are accessed with a file descriptor.
Hell, Bash provides filesystem-based sockets in
/dev/tcp, so a tcp connection can almost be like Unix sockets or anything else.I always found it weird that it was specifically provided by Bash…
Also hardware is treated like a file in /dev
Mind you, the registry is also just a couple of files that are shown to the user as “the registry”. IIRC, on Windows, go into the user account’s root folder, and you’ll have NTUSER.dat. That’s the HKCU hive for that user.
And that’s precisely the difference. In both cases the configuration is data stored on disk but Linux presents it as files while Windows presents it as a registry tree. In Windows, you’re not supposed to edit the registry by interacting with NTUSER.dat as a file.