Everything is a file

"Everything is a file" is an idea that Unix, and its derivatives, handle input/output to and from resources such as documents, hard-drives, modems, keyboards, printers and even some inter-process and network communications as simple streams of bytes exposed through the 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 /proc that exposes many system properties as files. All of these files, in the broader sense of the word, have standard Unix file attributes such as an owner and access permissions, and can be queried by the same classic Unix tools and filters. However, this is not universally considered a fast or portable approach. Some operating systems do not mount /proc by default due to security or speed concerns, relying on system calls instead.[5] It is, though, used heavily by Linux shell utilities,[6][7] such as the procps ps implementation and BusyBox, which is widely installed on embedded systems.[8] Android Toolbox program depend on it as well.[9]

Another example is sysfs, which is usually mounted to /sys, which exposes kernel data structures.[10] sysfs provides functionality similar to the sysctl mechanism found in BSD operating systems, with the difference that sysfs is implemented as a virtual file system instead of being a purpose-built kernel mechanism.[11] The philosophy behind sysfs is to represent each value with a dedicated file. In addition each file has a maximum size of PAGE_SIZE bytes.

For a kernel module there are three possibilities to use a file below /sys:

  • module parameter
  • register new subsystem
  • debugfs: debugfs, mounted in /sys/kernel/debug.

The standard sysfs API uses a dedicated terminology: A file is called an attribute, the function executed upon reading an attribute is called show and the one for writing an attribute store.[12]

Sysfs was derived from procfs between Linux kernel versions 2.5-2.6, initially as a dedicated filesystem to debug a new driver model. Both sysfs and procfs are memory-based. Sysfs contains directories for block devices, physical bus types, device classes (such as those used for graphics, networking, input or printing), firmware-specific objects and attributes, kernel modules and the power subsystem.[13]

For example, writing mem to /sys/power/state will trigger a suspend-to-RAM procedure.[14]

Another example of files with specific behaviors are /dev/null and /dev/zero device files. Writes to them will be discarded.[15] This can, for example, be used to redirect unneeded standard streams.

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. ^ Benvenuti, Christian (2006). "3. User-Space-to-Kernel Interface". Understanding Linux network internals (Nachdr. ed.). Beijing Köln: O'Reilly. p. 58. ISBN 9780596002558.
  5. ^ "8. procfs: Gone But Not Forgotten". Freebsd.org. Retrieved 2015-08-28.
  6. ^ Xiao, Yang; Li, Frank Haizhon; Chen, Hui (2011). Handbook of security and networks. Hackensack (NJ): World scientific. p. 160. ISBN 9789814273039.
  7. ^ "27. Upgrading and customizing the kernel". Red Hat Linux Networking and System Administration. John Wiley & Sons. 2007. p. 662. ISBN 9780471777311.
  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.
  10. ^ Mochel, Patrick; Murphy, Mike (16 August 2011). "sysfs - _The_ filesystem for exporting kernel objects". kernel.org. Archived from the original on 13 March 2024. Retrieved 15 June 2024.
  11. ^ Vskills, Team. "SysFS and proc". Tutorial. Retrieved 2024-06-15.
  12. ^ "sysfs, procfs, sysctl, debugfs and other similar kernel interfaces". John's Blog. 2013-11-20. Retrieved 2024-06-15.
  13. ^ Patrick Mochel, The sysfs subsystem, 2005 Linux Symposium, pp. 314-317
  14. ^ Wysocki, Rafael J. "System Power Management Sleep States". kernel.org. Retrieved 15 June 2024.
  15. ^ "null(4) - Linux manual page". www.man7.org. Retrieved 2024-06-15.

Read other articles:

Historic district in Vermont, United States United States historic placeJericho Village Historic DistrictU.S. National Register of Historic PlacesU.S. Historic district Show map of VermontShow map of the United StatesLocationVT 15, Plains Rd., Mill St. and Old Pump Rd., Jericho, VermontCoordinates44°30′15″N 72°59′53″W / 44.50417°N 72.99806°W / 44.50417; -72.99806Area96 acres (39 ha)Built1858 (1858)Architectural styleGreek Revival, Italianate,...

British historian (born 1947) Richard OveryFRHistS FBAOvery lecturing at King's College London in 2015BornRichard James Overy (1947-12-23) 23 December 1947 (age 75)NationalityBritishAlma materGonville and Caius College, CambridgeOccupationHistorianKnown forStudies on military history, especially the Second World WarNotable credit(s)Why the Allies Won, The Air War: 1939–1945 Richard James Overy FRHistS FBA (born 23 December 1947) is a British historian who has publishe...

Esta página ou seção foi marcada para revisão devido a incoerências ou dados de confiabilidade duvidosa. Se tem algum conhecimento sobre o tema, por favor, verifique e melhore a coerência e o rigor deste artigo. Pode encontrar ajuda no WikiProjeto Cinema. Se existir um WikiProjeto mais adequado, por favor corrija esta predefinição. (Dezembro de 2019) Esta página cita fontes, mas que não cobrem todo o conteúdo. Ajude a inserir referências. Conteúdo não verificável pode ser remov...

Politieprefectuur van Parijs Préfecture de police de Paris Geschiedenis Opgericht 17 februari 1800 Voorganger(s) lieutenance générale de police (1667) Geschiedenis Type Politie en veiligheidsdienst Directeur Michel Cadot Functie minister Ministerie van Binnenlandse Zaken Jurisdictie Petite Couronne (specifieke taken voor het gehele Île-de-France) Hoofdkantoor rue de la Cité, Parijs Aantal werknemers 46.000 Media Website https://www.prefecturedepolice.interieur.gouv.fr/ De Politieprefectu...

العلاقات السعودية التوفالية السعودية توفالو   السعودية   توفالو تعديل مصدري - تعديل   العلاقات السعودية التوفالية هي العلاقات الثنائية التي تجمع بين السعودية وتوفالو.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المق�...

Zuilaزويلة   Cidade   Localização ZuilaLocalização de Zuila Coordenadas 26° 10' N 15° 07' E País  Líbia Região Fezã Distrito Murzuque História Fundação Antes de 642 Características geográficas População total (2012[1]) 3 402 hab. Fuso horário 2 EET Zuila (em árabe: زويلة; romaniz.:Zawila)[2] é uma cidade da Líbia do distrito de Murzuque. Está a 26,9 quilômetros de Meseguine, 28,4 de Hamira e 71,4 de Temissa.[3] Segundo cen...

2013年大会 モトクロス・オブ・ネイションズ(Motocross of Nations,MXoN)は、FIMが主催するモトクロスの国別対抗戦。毎年秋開催。モトクロスのワールドカップと称される。 フランス語で『モトクロス・デ・ナシオン(Motocross des Nation)』と呼ぶ場合もある。 2008年から2010年までレッドブルが[1]、2011年から現在までモンスターエナジーがタイトルスポンサーとなっている

Claude Oscar monetClaude Monet dipotret oleh Nadar pada tahun 1899.Lahir(1840-11-14)14 November 1840Meninggal5 Desember 1926(1926-12-05) (umur 86)Giverny, PrancisKebangsaanPrancisDikenal atasPelukisGerakan politikImpresionisme Claude Monet dikenal juga dengan nama Oscar-Claude Monet atau Claude Oscar Monet (14 November 1840 – 5 Desember 1926) adalah pelukis Prancis dengan aliran impresionisme. Lukisannya Impression, Sunrise adalah asal nama penamaan aliran impresionisme. ...

Bagian dari seriAgama Hindu Umat Sejarah Topik Sejarah Mitologi Kosmologi Dewa-Dewi Keyakinan Brahman Atman Karmaphala Samsara Moksa Ahimsa Purushartha Maya Filsafat Samkhya Yoga Mimamsa Nyaya Waisesika Wedanta Dwaita Adwaita Wisistadwaita Pustaka Weda Samhita Brāhmana Aranyaka Upanishad Wedangga Purana Itihasa Bhagawadgita Manusmerti Arthasastra Yogasutra Tantra Ritual Puja Meditasi Yoga Bhajan Upacara Mantra Murti Homa Perayaan Dipawali Nawaratri Siwaratri Holi Janmashtami Durgapuja Nyepi ...

CobijaCobijaLocation in BoliviaTampilkan peta BoliviaCobijaCobija (Amérique du Sud)Tampilkan peta Amérique du SudKoordinat: 11°01′50″S 68°46′00″W / 11.03056°S 68.76667°W / -11.03056; -68.76667Negara BoliviaDepartemen Departemen PandoProvinsiNicolás SuárezBerdiri1906Pemerintahan • WalikotaAna Lucia Reis MelenaLuas • Total401 km2 (155 sq mi)Ketinggian280 m (919 ft)Populasi (2020) • Total78....

Method of baptism A full-immersion baptism in a New Bern, North Carolina river at the turn of the 20th century. 15th-century painting by Masaccio, Brancacci Chapel, Florence Immersion baptism (also known as baptism by immersion or baptism by submersion) is a method of baptism that is distinguished from baptism by affusion (pouring) and by aspersion (sprinkling), sometimes without specifying whether the immersion is total or partial,[1][2][3][4][5] but v...

American TV series or program ThiefAndre BraugherCreated byNorman MorrillStarringAndre BraugherMae WhitmanMalik YobaYancey AriasClifton Collins Jr.Country of originUnited StatesOriginal languageEnglishNo. of seasons1No. of episodes6ProductionRunning time43-46 minutesProduction companiesPariah TelevisionSarabrande ProductionsRegency TelevisionFox Television StudiosOriginal releaseNetworkFXReleaseMarch 28 (2006-03-28) –May 2, 2006 (2006-05-02) Thief is a 2006 American thri...

This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Estadio Aurora – news · newspapers · books · scholar · JSTOR (September 2014) (Learn how and when to remove this template message) Estadio Aurora is a football stadium in San José de Colinas, Honduras. It is currently used mostly for football matches and is the home stadium of ...

1995 film Dongeng Kancil untuk KemerdekaanThe film follows four children on Malioboro StreetDirected byGarin NugrohoStarringChildren: Kancil, Topo, Sugeng and HattaRelease date1995Running time55 minutesCountryIndonesiaLanguageIndonesian Dongeng Kancil untuk Kemerdekaan (Kancil's Tale of Freedom) is a 1995 Indonesian documentary film directed by Garin Nugroho. Synopsis The film commemorates the 50th anniversary of Sukarno driving through the street in the aftermath and waving the Flag of Indon...

KRI Cut Nyak Dien Karier (ID) Mulai dibuat Diluncurkan Status Pelabuhan utamaArmada Barat TNI-AL Karakteristik umum Berat benaman 793 ton standar854 ton beban penuh Panjang 75,2 m (246,7 ft) Lebar 9,78 m (32,1 ft) Draft2,65 m (8,7 ft)Tenaga penggerak3 shaft M504 Diesel, 14.250 hp Kecepatan 24,7 knot Jarak tempuh2.100 nm pada 14 knot Awak kapal 62 orang Sonar & RadarRadar MR-302/Strut CurveRadar kontrol tembakan MR-123 Vympel/Muff CobPersenjataan elektronikSonar MG-322T...

Громадський Андрій Степанович А.С. ГромадськийНародився 29 листопада 1920(1920-11-29)с. Северинівка, Таращанського району, Київської областіПомер 10 травня 2009(2009-05-10) (88 років)м. НовосибірськПоховання НовосибірськКраїна  СРСР РосіяДіяльність організатор виробництваЗнання ...

Process of discerning sex or gender at birth This article is about sex assignment in humans. For sex assignment in other animals, see sexing.AGAB redirects here. For the enzyme, see AgaB. This article needs more reliable medical references for verification or relies too heavily on primary sources. Please review the contents of the article and add the appropriate references if you can. Unsourced or poorly sourced material may be challenged and removed.Find sources: Sex assignment –...

Comics character American CrusaderAmerican Crusader, from Project Superpowers vol. 1 #3.Publication informationPublisherNedor ComicsAC ComicsAmerica's Best ComicsFirst appearanceThrilling Comics #19In-story informationAlter egoArchibald Archie MastersTeam affiliations(AC Comics) Sentinels of Justice(ABC) SMASHAbilitiesSuper strengthSuper speedFlightBulletproofElectromagnetic pulse The American Crusader is a superhero who originally appeared in Thrilling Comics #19 (Better Publications, Aug 19...

History museum in Chromio, Greece This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Museum of the Macedonian Struggle Chromio – news · newspapers · books · scholar · JSTOR (July 2011) (Learn how and when to remove this template message) General view of the museum The Museum of the Macedonian Struggle near Chromio, Kozani r...

Battle in the Polish–Russian War of 1792 For the 1812 battle, see Battle of Mir (1812). Battle of MirPart of the Polish–Russian War of 1792Map of the Polish–Russian War of 1792Date11 June 1792LocationMir in BelarusResult Russian victoryBelligerents Polish–Lithuanian Commonwealth Russian EmpireCommanders and leaders Józef Judycki Boris MellinStrength 8,000[1] to 10,000[2] 5,500[1]Casualties and losses up to 400 killed,up to 150 captured[2] 2 guns[2&...