559
top 50 comments
sorted by: hot top new old
[-] BartyDeCanter@piefed.social 126 points 5 days ago* (last edited 5 days ago)

Stages of POSIX enlightenment:

  1. It couldn't possibly all be files
  2. It's all files
  3. What is a file, anyway?
  4. There's no such thing as a file
  5. It couldn't possibly all be files
  6. 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.

[-] Sinthesis@lemmy.today 56 points 5 days ago* (last edited 5 days ago)

/dev/null sez nothing is also a file

[-] Bluewing@lemmy.world 9 points 5 days ago

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?

[-] HeHoXa@lemmy.zip 12 points 5 days ago

The word "nothing" isn't itself nothing. It is something used to describe nothing.

[-] Bluewing@lemmy.world 11 points 5 days ago

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.

load more comments (3 replies)
[-] gandalf_der_13te@feddit.org 5 points 5 days ago

in fact that gets used in abstract mathematics to first introduce the natural numbers. the empty set (nothing) (which you define as 0) is not itself nothing, so you can define the set that contains just the empty set, which now is not empty itself, but contains one element, so you define that as 1 ...

load more comments (1 replies)
[-] SpaceCowboy@lemmy.ca 27 points 5 days ago

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.

[-] NeatNit@discuss.tchncs.de 33 points 5 days ago
[-] UnderpantsWeevil@lemmy.world 3 points 4 days ago

I feel like it's more of a "If I tried to tell you what this was, you wouldn't believe me" than a "I am physically incapable of explaining the idea that you're plugged into a computer".

load more comments (1 replies)
[-] chrash0@lemmy.world 12 points 5 days ago

true enlightenment: everything is a string over an IO socket

[-] mkwt@lemmy.world 3 points 4 days ago

But are sockets not files?

[-] chrash0@lemmy.world 3 points 4 days ago

files are named sockets ๐Ÿ•‰๏ธ

[-] swab148@lemmy.dbzer0.com 15 points 5 days ago

You'll know you've reached stage 6 when you seriously start considering running Plan 9 as a daily driver

[-] Agent641@lemmy.world 10 points 5 days ago
[-] Ensign_Crab@lemmy.world 9 points 5 days ago

Can you read me?

[-] thorcik@lemmy.world 6 points 5 days ago

Hope your name isn't Peter

[-] BartyDeCanter@piefed.social 2 points 4 days ago

In the end, we are all files. We have our read()s and write()s, in in our time we play many offsets.

[-] rtxn@lemmy.world 10 points 5 days ago

"How can files be real if the filesystem isn't real?" - Jaden Smith (probably)

[-] socsa@piefed.social 5 points 4 days ago
  1. Everything is a FIFO
[-] Zozano@aussie.zone 5 points 5 days ago* (last edited 5 days ago)

Files? In my Linux?

It's more likely than you think.

[-] Equinox1289@sh.itjust.works 6 points 5 days ago

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.

load more comments (2 replies)
[-] jj4211@lemmy.world 4 points 5 days ago

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..

load more comments (2 replies)
load more comments (5 replies)
[-] JackbyDev@programming.dev 53 points 5 days ago

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.

[-] absentbird@lemmy.world 17 points 5 days ago* (last edited 5 days ago)

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.

[-] BobWehadababyitsaboy@lemmy.world 14 points 5 days ago

It's like saying everything is a wave IRL.

[-] InternetCitizen2@lemmy.world 7 points 5 days ago

Especially the particles

[-] possiblylinux127@lemmy.zip 8 points 5 days ago

Files don't actually exist once you dig down

[-] socsa@piefed.social 14 points 4 days ago

Bro stop digging I need those files to keep existing

[-] JackbyDev@programming.dev 9 points 4 days ago

Yeah, it sort of depends on the definition of the word file. "File" in the sense that it can be interacted with like a file versus "file" in the sense that it's data on a disk. But then, if you're really thinking about it, data on a disk isn't a file, it's data, and we can just interact with it like a file.

[-] ivanafterall@lemmy.world 5 points 4 days ago

๐Ÿคฏ

[-] BartyDeCanter@piefed.social 2 points 4 days ago

Welcome, brother. But remember that they must walk the path themselves or they will never reach true understanding.

[-] anarchy79@lemmy.world 4 points 4 days ago

Everything is computer.

[-] Truscape@lemmy.blahaj.zone 47 points 5 days ago

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.

[-] gandalf_der_13te@feddit.org 7 points 5 days ago* (last edited 5 days ago)

tldr: it's to have nicer, less complicated I/O operations

it enables just having two API calls: read() and write() to do everything

[-] AnimalsDream@slrpnk.net 20 points 5 days ago
[-] bhamlin@lemmy.world 13 points 4 days ago

Can confirm; user is file too

[-] anarchy79@lemmy.world 9 points 4 days ago

Source: user

[-] notptr@lemmy.cyberia9.org 12 points 5 days ago

Want take it to 11 plan 9 did it.

[-] heartSagan5@lemmy.zip 6 points 4 days ago

In Windows land, it's HANDLEs...which is typedef void* HANDLE IIRC

[-] h4x0r@lemmy.dbzer0.com 2 points 4 days ago

Generally speaking, a handle is an opaque reference to an os object; the typedef here makes that clear. Linux uses the same general concept as well, though file objects are typically referenced through file descriptors rather than windows style handles.

[-] anarchy79@lemmy.world 5 points 4 days ago

Ok you got me with this one.

Btw the mitochondria are the powerhouse of the cell.

[-] Flower@sh.itjust.works 6 points 5 days ago

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.

[-] Bluewing@lemmy.world 9 points 5 days ago

What's this "back far enough" shit, I've used punch cards and punch tape.

Fuck me I'm old.

load more comments (5 replies)
[-] Axolotl_cpp@feddit.it 5 points 5 days ago

You could argue that a collection of punch cards is a file

load more comments (1 replies)
[-] BlueKey@fedia.io 6 points 5 days ago

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.

[-] Axolotl_cpp@feddit.it 9 points 5 days ago* (last edited 5 days ago)

Aren't directories just files that say "hey i am directory ABCD and file X, Y and Z are my childs"?

[-] notabot@piefed.social 5 points 5 days ago

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.

load more comments
view more: next โ€บ
this post was submitted on 14 Sep 2026
559 points (98.4% liked)

linuxmemes

32826 readers
1153 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

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 sudo in 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 figuresWe 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.

    founded 3 years ago
    MODERATORS