¿Cómo se completan los archivos /proc/net en Linux/Unix?

¿Cómo se completan los archivos /proc/net en Linux/Unix?

Estoy trabajando en un monitor de red para Linux, sin rastreo de paquetes. Estoy planeando leer las estadísticas de la red y los datos relacionados de /proc/netlos archivos.

Sé que /proces el punto de montaje del sistema de archivos del proceso, que es un sistema de archivos virtual que refleja la estructura de datos interna del kernel.

Me gusta saber cómo se completa y si es posible leer los componentes internos del sistema operativo directamente.

Respuesta1

/procEl kernel lo completa “en vivo”: el contenido de los directorios y archivos se crea sobre la marcha cuando una aplicación accede a ellos. Por lo tanto, no encontrará ninguna utilidad que los pueble: si quiere saber cómo llegan las cosas allí, tendrá que leer elcódigo del núcleoo eldocumentación del núcleo. En el código fuente, las entradas son creadas por varias partes delcódigo de red. Muchas entradas /proc/netestán documentadas como parte deldocumentación de redes.

Este es el nivel más bajo posible para leer los componentes internos del sistema operativo. La única forma de profundizar más es escribir un controlador de kernel.

Otra forma de recuperar información relacionada con la red es mediante ioctlllamadas getsockopta sockets. Esto a veces es más conveniente en C. Creo que hay información que se puede obtener con un método pero no con el otro y viceversa, pero no conozco los detalles.

información relacionada