[linux] /proc of /devfs vanuit userspace?

Pagina: 1
Acties:

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
Is het mogelijk om vanuit userspace een node aan te maken in het devfs of proc filesystem?
Ik wil een programma schrijven dat op ieder moment een staat heeft (in mijn testomgeving is dit een klokje, in werkelijkheid moet dit een soort reverse-logging en monitoring systeem worden). Andere programma's moeten deze staat uit kunnen lezen. Liefst maak ik dit zo makkelijk mogelijk, zodat zelfs eenvoudige scriptingomgevingen gebruik kunnen maken. Mijn idee was om deze scripts een eenvoudig bestand te laten lezen, dat alle info bevat die gevraagd word. Helaas is dat nogal inefficient: Ik moet dan namelijk iedere keer als de staat van mijn progsel wijzigt, het bestandje aanpassen of opnieuw genereren. De staat van mijn huidige klokje wijzigt iedere seconde. Gelukkig is de staat niet zo moeilijk te berekenen, en is ondanks de hoge schijfactiviteit de load niet zeer hoog. Helaas is niet altijd de staat eenvoudig te berekenen, en kan de berekening mogelijk langer duren dan de tijd tussen twee state-changes. (denk hierbij aan remote logging en latancy).

Lieft zou ik een /prog of /dev bestandje maken, dat mijn proces genereert tegen de tijd dat het nodig is, op die manier bepaalt de monitoring intensiteit zwaar de betreffende machine het heeft in termen van load...

Ik weet dat dit in kernel-mode mogelijk is, maar is dit ook mogelijk vanuit userspace? Zijn er eventueel alternatieven (bidi pipes, sockets), en hoe zijn die toe te passen?

Localhost, sweet localhost


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025
* kick *
Misschien niet zo handig om dit soort vragen op zaterdagavond te posten...

Localhost, sweet localhost


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Lijkt me zeer sterk als het zou kunnen ?

Kan je niet een unix-socket laten openen?

  • igmar
  • Registratie: April 2000
  • Laatst online: 23-08 16:57

igmar

ISO20022

kvdveer schreef op 14 september 2002 @ 20:23:
Is het mogelijk om vanuit userspace een node aan te maken in het devfs of proc filesystem?
Ik wil een programma schrijven dat op ieder moment een staat heeft (in mijn testomgeving is dit een klokje, in werkelijkheid moet dit een soort reverse-logging en monitoring systeem worden). Andere programma's moeten deze staat uit kunnen lezen. Liefst maak ik dit zo makkelijk mogelijk, zodat zelfs eenvoudige scriptingomgevingen gebruik kunnen maken. Mijn idee was om deze scripts een eenvoudig bestand te laten lezen, dat alle info bevat die gevraagd word. Helaas is dat nogal inefficient: Ik moet dan namelijk iedere keer als de staat van mijn progsel wijzigt, het bestandje aanpassen of opnieuw genereren. De staat van mijn huidige klokje wijzigt iedere seconde. Gelukkig is de staat niet zo moeilijk te berekenen, en is ondanks de hoge schijfactiviteit de load niet zeer hoog. Helaas is niet altijd de staat eenvoudig te berekenen, en kan de berekening mogelijk langer duren dan de tijd tussen twee state-changes. (denk hierbij aan remote logging en latancy).

Lieft zou ik een /prog of /dev bestandje maken, dat mijn proces genereert tegen de tijd dat het nodig is, op die manier bepaalt de monitoring intensiteit zwaar de betreffende machine het heeft in termen van load...

Ik weet dat dit in kernel-mode mogelijk is, maar is dit ook mogelijk vanuit userspace? Zijn er eventueel alternatieven (bidi pipes, sockets), en hoe zijn die toe te passen?
devfs / proc filesystem kun je vergeten, de inhoud ervan is alleen vanuit kernelspace aan te passen.

In jouw situatie zijn named pipes het meest efficient.