“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 am curious what you mean by everything is a file… What else would it be?
It’s more a philosophy for Unix systems. When we say that “everything is a file”, we’re saying that even devices should show up on the filesystem (/dev), even network ports should show up on the filesystem, even processes should show up on the filesystem(/proc), etc… and that is as opposed to having a different system abstraction handle those functions instead.
Of course when you look deeper into it, linux does not explicitly follow that rule, it more just adheres to it. It’s more a guideline than an explicit statement of fact
It could be a process, which you can talk to only via an IPC call. For example, dbus
can’t you somehow do IPC via filesystem-based sockets in linux too?
Yea, but socket is not a file. Maybe if you stretch the definition.
Well in any case, when people say that linux is great because everything is a file, they either mean that:
Yeah I’m interested in how that works too.
I’ve recently been looking at the Nextcloud “all in one” Docker image. It works by mounting the docker.sock file into the master container, which allows that container to stand up a whole bunch of other containers on your machine.
How would that work on Windows, if the Docker socket isn’t a file handle?
AIO is a fun one to setup. I found it much easier with portainer. The thing that always catches me with Docker is the permissions after it’s setup. I had nextcloud up for a week I could access my external hdd over Webdav and nothing else haha.
Docker Desktop handles the abstraction in Windows and MacOS. The container thinks it mounted a file.
Oh that’s interesting. I wonder why they do it that way, considering macOS is a Unix OS.
I dunno, but it’s a pain. Hiding low-level components from the user to make it more user-friendly.
I have an old 2014 macbook with a busted GPU temp sensor. The Mac firmware assumes the worst - that the computer is dangerously overheated - and therefore throttles back the CPU by 80% and runs the fans at full blast.
Fixing it on Mac required a number of third-party tools and flashing a custom firmware. I then installed Linux on the device - about ten lines of script that read from the working temp sensor on the CPU die and write a scaled value to /sys/ in response.
So much flippin easier on Linux.
I just said that Docker Desktop handles it. I’ve never used a Mac so I don’t know for sure what’s going on under the hood there but I imagine that everything they can do the same between Mac and Linux, they do. It’s easier that way.