13 ms·
I don't remember the exact claims I tried to fight, but let's pick a random diagram from the page I linked: https://upload.wikimedia.org/wikipedia/commons/4/43/
by Jasper_ 8y ago
I don't remember the exact claims I tried to fight, but let's pick a random diagram from the page I linked: https://upload.wikimedia.org/wikipedia/commons/4/43/Linux_API.svg https://upload.wikimedia.org/wikipedia/commons/4/43/Linux_AP...
See if you can spot any inaccuracies. Here are a few:
1. SDL doesn't use libevdev. It uses the kernel ioctls directly: http://hg.libsdl.org/SDL/file/3a50eb90e4b2/src/core/linux/SDL_evdev.c http://hg.libsdl.org/SDL/file/3a50eb90e4b2/src/core/linux/SD...
2. Sockets, netfilter, network protocols are all listed under "everything is a file", but notably, sockets are one of the few places of the UNIX API that isn't a file namespace! Sockets can be files in the case of UNIX domain sockets, but configuring Netfilter goes through NETLINK: http://man7.org/linux/man-pages/man7/netlink.7.html http://man7.org/linux/man-pages/man7/netlink.7.html
3. Similarly, the I/O scheduler isn't a file. Admittedly, I don't have a source for this other than the kernel source code itself.
These are nitpicks, yes, but they add up, especially considering the near-100 diagrams this guy has made and cloned all over Wikipedia. When we saw people joining our community and asking questions, this information made them think things were different than they were, and that was frustrating. And yes, I used sources like these when trying to correct this misinformation.
- tptacek 8y agoYou haven't linked to an article, so I don't have the context here. Where is this diagram included? But I suspect you're running into exactly what I ran into: you're trying to correct a page using yourself as a source. I'm sure you're right (although I think you're nitpicking about the sockets-are-files thing --- not that they are, but rather than I don't think the diagram is making that claim --- it is a _really_ bad diagram though). It can be easier on WP to strike content from a page (because it is inaccurate) than it is to replace that content.
- MattHeard 8y agohttps://commons.wikimedia.org/wiki/File:Linux_API.svg https://commons.wikimedia.org/wiki/File:Linux_API.svg
- tptacek 8y agoThat's a resource, not a WP page. It has no talk page. I'm trying to get a sense of what the actual argument was. It's not a good diagram, and its author is clearly trying to attach it in as many prominent places as they can, which is not great. But I still don't know what the actual controversy is.
- Tehnix 8y agoHere, I'll help (from just googling "Linux API wiki"), - https://en.wikipedia.org/wiki/Linux_kernel_interfaces https://en.wikipedia.org/wiki/Linux_kernel_interfaces - https://en.wikipedia.org/wiki/The_Linux_Programming_Interface https://en.wikipedia.org/wiki/The_Linux_Programming_Interfac... Probably a lot more, but can't really reverse image search SVGs.
- ThoAppelsin 8y agoYou can see the "File usage on other wikis" section to see Wikipedia pages in which any commons file is being used. I see a list of couple pages for the particular resource linked there, and verified that the resource exists in those pages.
- tptacek 8y agoRight, I'm trying to find where the argument is, and what the rationale was for shooting down the proposed alteration to the diagram.
- deleted 8y ago[deleted]
- burfog 8y ago1. You missed a thin red line in the diagram. The diagram is not meant to claim that SDL uses libevdev. 2. Sockets are files. No, they don't have filenames usually, but they do have file descriptors and even inode numbers. 3. The diagram does not imply that the I/O scheduler is a file. The I/O scheduler is listed as a component underlying the listed filesystems. There are no inaccuracies. That said, the diagram is awful. It is hard to follow (your misinterpretation being a great example) and seems to be a cluttered and incomplete collection of parts.
- hueving 8y ago>2. Sockets are files. No, they don't have filenames usually, but they do have file descriptors and even inode numbers. I challenge you to create a symbolic link to one. :)
- burfog 8y agoln -s /proc/`pidof Xorg`/fd/1 here-you-go Really though, it's the file descriptor that matters. This is the abstraction that lets you do things like pass a socket between different processes in the same way that you'd pass an opened directory between different processes. The few places where this abstraction is missing are painful. A good example is ptrace. You can't pass a ptrace between processes. Handling it nicely in poll or select isn't easy. The use of file descriptors might not seem so amazing today, now that Windows has the HANDLE and MacOS X has the Mach port, but it was revolutionary when it was introduced. For about 15 years, it was just a UNIX thing. MS-DOS had separate ways to deal with everything: files, directories, each different vendor's network stack, etc. Every other OS was like that, more or less.
- hueving 8y agoAh, my memory fails me of the limitation I was running into. IIRC it was passing socket FDs from a process in an ip namespace to a parent process outside of the namespace via a unix domain socket.
- Jasper_ 8y ago