Everything is a file

Source: Wikipedia, the free encyclopedia.

"Everything is a file" is an idea that

filesystem name space.[1] Exceptions include semaphores, processes and threads
.

The advantage of this approach is that the same set of tools, utilities and APIs can be used on a wide range of resources and a number of file types. When a file is opened, a file descriptor is created, using the file path as an addressing system. The file descriptor is then a byte stream I/O interface on which file operations are performed. File descriptors are also created for objects such as anonymous pipes and network sockets – and therefore a more accurate description of this feature is Everything is a file descriptor.[2][3]

Additionally, a range of pseudo and virtual filesystems exists which exposes internal kernel data, such as information about processes, to user space in a hierarchical file-like structure.[4] These are mounted into the single file hierarchy.

An example of this purely virtual filesystem is under

embedded systems BusyBox.[8] Android Toolbox program depend on it as well.[9]

See also

References

  1. ^ In UNIX Everything is a File Archived January 10, 2015, at the Wayback Machine
  2. ^ "Linus Torvalds - 'everything is a file descriptor or a process'". Yarchive.net. Retrieved 2015-08-28.
  3. ^ "Ghosts of Unix Past". Lwn.net. Retrieved 2015-08-28.
  4. .
  5. ^ "8. procfs: Gone But Not Forgotten". Freebsd.org. Retrieved 2015-08-28.
  6. .
  7. .
  8. ^ "busybox - BusyBox: The Swiss Army Knife of Embedded Linux". Git.busybox.net. Retrieved 2015-08-28.
  9. ^ "platform_system_core/ps.c at master · android/platform_system_core · GitHub". GitHub.com. 2015-03-09. Retrieved 2015-08-28.