it-swarm-eu.dev

Jaký je rozdíl mezi procfs a sysfs?

Jaký je rozdíl mezi procfs a sysfs? Proč jsou vyráběny jako souborové systémy? Jak to chápu, proc je prostě něco, co uchovává okamžité informace týkající se procesů probíhajících v systému.

74
Sen

Jaký je rozdíl mezi procfs a sysfs?

proc je starý, je víceméně bez pravidel a struktury. A v určitém okamžiku bylo rozhodnuto, že proc je příliš chaotický a je potřeba nový způsob.

Poté byl vytvořen sysfs a nové věci, které byly přidány, byly vloženy do sysfs podobných informací o zařízení.

V jistém smyslu tak dělají totéž, ale sysfs je trochu strukturovanější.

Proč jsou vyráběny jako souborové systémy?

Filozofie UNIX nám říká, že vše je „soubor“, proto byl vytvořen tak, aby se choval jako soubory.

Jak to chápu, proc je prostě něco, co uchovává okamžité informace týkající se procesů probíhajících v systému.

Tyto části tam vždy byly a pravděpodobně se nikdy nepřesunou do sysfs.

Existuje však několik starých věcí, které najdete v proc, který nebyl přesunut.

63
Johan

Na začátku (cesta zpět v Unixu) byl způsob, jakým se programy zjišťovaly o běžících procesech v systému, prostřednictvím přímého čtení procesních struktur z paměti jádra (otevírání/dev/mem a přímá interpretace prvotních dat). Takto fungovaly úplně první příkazy „ps“. Postupem času byly některé informace zpřístupněny prostřednictvím systémových volání.

Je však špatnou formou vystavovat systémová data přímo do uživatelského prostoru prostřednictvím/dev/mem a je nepříjemné neustále vytvářet nová systémová volání pokaždé, když jste chtěli exportovat nová data procesních dat, a tak byla vytvořena nová metoda pro přístup ke strukturovaným datům pro aplikace v uživatelském prostoru, kde se dozvíte o atributech procesu. Toto byl souborový systém/proc. Pomocí/proc bylo možné udržovat rozhraní a struktury (adresáře a soubory) stejné, i když se změnila základní datová struktura v jádře. To bylo mnohem méně křehké než dřívější systém a bylo to lepší měřítko.

Souborový systém/proc byl původně navržen tak, aby publikoval informace o procesu a několik klíčových systémových atributů, vyžadovaných 'ps', 'top', 'free' a několika dalšími systémovými nástroji. Protože se však snadno používalo (jak ze strany jádra, tak ze strany uživatelského prostoru), stalo se to skládkou pro celou řadu systémových informací. Začala také získávat soubory pro čtení a zápis, které se používají k úpravě nastavení a řízení provozu jádra nebo jeho různých subsystémů. Metodika implementace kontrolních rozhraní však byla ad-hoc a/proc se brzy stala spletitou nepořádkem.

Systém sysfs (nebo souborový systém sys) byl navržen tak, aby přidával strukturu této nepořádku a poskytoval jednotný způsob, jak vystavit systémové informace a řídicí body (nastavitelné atributy systému a ovladače) uživatelskému prostoru z jádra. Rámec ovladačů nyní v jádře automaticky vytvoří adresáře pod/sys, když jsou ovladače zaregistrovány, na základě typu ovladače a hodnot v jejich datových strukturách. To znamená, že ovladače konkrétního typu budou mít všechny prvky odkryté prostřednictvím sysfs.

Mnoho původních systémových informací a kontrolních bodů je stále přístupných v/proc, ale všechny nové sběrnice a ovladače by měly své informační a kontrolní body vystavovat prostřednictvím sysfs.

77
Tim Bird

procfs umožňuje libovolný file_operations, sysfs je omezenější

sysfs je virtuální souborový systém vytvořený během cyklu vydání jádra 2.6, který zobrazuje informace o zařízení, protože procfs tento typ informací neučinil tak dobře.

Paměť atd. Nebyla do systému sysfs přenesena, protože nikdy nemělo ukázat tento typ informací, takže je nepravděpodobné, že bude přenesena vůbec.

3
kemra102

Jak sem také chci přidat ... As/proc je starší verze, obsahuje informace o jaderném zařízení té doby ... jako sysfs přišel s verzí 2.6 jádra, takže informace o ovladači zařízení si vytvářejí svůj vlastní adresář, podle kterého jsou trochu strukturované a snadno přístupné ..

1
gagan bajaj