PDF de programación - doc manual linux procfs

Filtrado por el tag: Web
<<>>
Imágen de pdf doc manual linux procfs

doc manual linux procfsgráfica de visualizaciones

Actualizado el 28 de Julio del 2017 (Publicado el 14 de Enero del 2017)
789 visualizaciones desde el 14 de Enero del 2017
68,9 KB
16 paginas
Creado hace 23a (30/05/2001)
Guía del Procfs del Núcleo Linux

Erik (J.A.K.) Mouw

Universidad de Tecnología Delft

Facultad de Sistemas y Tecnología de la Información

PO BOX 5031

2600 GA

[email protected]

Delft

Holanda

Guía del Procfs del Núcleo Linux
por Erik (J.A.K.) Mouw

Copyright © 2001 Erik Mouw

Esta documentación es software libre; puedes redistrubuirla y/o modificarla bajo los términos de la GNU General Public License tal como ha sido
publicada por la Free Software Foundation; por la versión 2 de la licencia, o (a tu elección) por cualquier versión posterior.
Este programa es distribuido con la esperanza de que sea útil, pero SIN NINGUNA GARANTIA; sin incluso la garantía implicada de
COMERCIABILIDAD o ADECUACCION PARA UN PROPOSITO PARTICULAR. Para más detalles refiérase a la GNU General Public
License.
Debería de haber recibido una copia de la GNU General Public License con este programa; si no es así, escriba a la Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Para más detalles véase el archivo COPYING en la distribución fuente de Linux.

Historial de revisiones
Revisión 1.0 30 de Mayo, 2001
Revisión Inicial mandada a linux-kernel
Revisión 1.1 3 de Junio, 2001
Revisada después de los comentarios de linux-kernel

Tabla de contenidos

Prefacio ...........................................................................................................................................................................i
1. Introducción ..............................................................................................................................................................1
2. Administrando entradas procfs ...............................................................................................................................2
2.1. Creando un archivo normal ............................................................................................................................2
2.2. Creando un enlace simbólico .........................................................................................................................2
2.3. Creando un dispositivo ...................................................................................................................................2
2.4. Creando un directorio.....................................................................................................................................3
2.5. Borrando una entrada .....................................................................................................................................3
3. Comunicación con los Procesos de Usuario............................................................................................................4
3.1. Leyendo Datos................................................................................................................................................4
3.2. Escribiendo Datos ..........................................................................................................................................4
3.3. Una simple retrollamada para varios archivos ...............................................................................................5
4. Trucos y Propinas......................................................................................................................................................6
4.1. Funciones Convenientes.................................................................................................................................6
4.2. Módulos..........................................................................................................................................................6
4.3. Modo y Dueño................................................................................................................................................6
5. Ejemplo ......................................................................................................................................................................7
6. Sobre la Traducción ................................................................................................................................................12

iii

Prefacio

Esta guía describe el uso del sistema de archivos procfs del Núcleo Linux. La idea de escribir esta guía vino del canal
de IRC kernelnewbies (ver http://www.kernelnewbies.org/), cuando Jeff Garzik explicó el uso de procfs y me envió
un mensaje de Alexander Viro que escribió a la lista de correo linux-kernel. Estuve de acuerdo en escribirla de forma
más bonita, por lo tanto aquí está.

las

gracias

a

dar

gustaría

Me
Jeff Garzik <[email protected]> y Alexander Viro
<[email protected]> por
su Selfdocbook
(http://people.redhat.com/twaugh/docbook/selfdocbook/), y a Marc Joosen <[email protected]>
por la profunda lectura.

su entrada, a Tim Waugh <[email protected]> por

Esta documentación fue escrita mientras trabajaba en el LART computing board (http://www.lart.tudelft.nl/), que
es patrocinada por los proyectos Mobile Multi-media Communications (http://www.mmc.tudelft.nl/) y Ubiquitous
Communications (http://www.ubicom.tudelft.nl/).

Erik

i

Capítulo 1. Introducción

El sistema de archivos /proc (procfs) es un sistema de archivos especial en el núcleo Linux. Es un sistema de archivos
virtual; no está asociado con un dispositivo de bloque ya que existe sólo en memoria. Los archivos en el procfs están
allí para permitir a los programas de usuario acceder a cierta información del núcleo (como información sobre los
procesos en /proc/[0-9]+/), y también para propósitos de depuración (como /proc/ksyms).

Esta guía describe el uso del sistema de archivos procfs del núcleo Linux. Empieza introduciendo todas las funciones
relevantes para administar los archivos en el sistema de archivos. Después de esto muestra cómo se comunica con los
programas de usuario, y algunos trucos y propinas serán apuntados. Finalmente, será mostrado un ejemplo completo.

Destacar que los archivos en /proc/sys son archivos sysctl: no pertenecen al procfs y son gobernados por una API
completamente diferente descrita en el libro de la API del Núcleo.

1

Capítulo 2. Administrando entradas procfs

Este capítulo describe las funciones de varios componentes del núcleo usadas para propagar el procfs con archivos,
enlaces simbólicos, nodos de dispositivos, y directorios.

Una pequeña nota antes de empezar: si quieres usar alguna de las funciones procfs, ¡asegúrate de incluir el archivo de
cabeceras correspondiente! Esta debería de ser una de las primeras líneas en tu código:

#include <linux/proc_fs.h>

2.1. Creando un archivo normal

struct proc_dir_entry* create_proc_entry(const char* name, mode_t mode, struct
proc_dir_entry* parent);

Esta función crea un archivo normal con el nombre name, el modo del archivo mode en el directorio parent. Para
crear un archivo en el directorio raíz, usa NULL como parámetro a parent Cuando tenga éxito, la función retornará
un puntero a la nueva struct proc_dir_entry creada; en otro caso retornará NULL. Capítulo 3 describe cómo hacer algo
útil con los archivos normales.

Destacar que está específicamente soportado el poder pasarle un camino que se extienda a través de múltiples directo-
rios. Por ejemplo, create_proc_entry("drivers/via0/info") creará el directorio via0 si es necesario, con
los permisos estándar 0755.

Si sólo quieres ser capaz de leer el archivo, la función create_proc_read_entry descrita en Sección 4.1 puede ser
usada para crear e inicializar la entrada en el procfs con una simple llamada.

2.2. Creando un enlace simbólico

struct proc_dir_entry* proc_symlink(const char* name, struct proc_dir_entry* parent,
const char* dest);

Esto crea un enlace simbólico en el directorio procfs parent que apunta a name en dest. Esto se traduce en los
programas de usuario en ln -s dest name.

2.3. Creando un dispositivo

struct proc_dir_entry* proc_mknod(const char* name, mode_t mode, struct
proc_dir_entry* parent, kdev_t rdev);

2

Capítulo 2. Administrando entradas procfs

Crea un archivo de dispositivo name con el modo mode en el directorio procfs parent. El archivo del dispos-
itivo trabajará en el dispositivo rdev, que puede ser generado usando la macro MKDEV desde linux/kdev_t.h.
El parámetro mode debe de contener S_IFBLK o S_IFCHR para crear un nodo de dispositivo. Compáralo con el
programa de usuario mknod --mode=mode name rdev.

2.4. Creando un directorio

struct proc_dir_entry* proc_mkdir(const char* name, struct proc_dir_entry* parent);

Crea un directorio name en el directorio procfs parent.

2.5. Borrando una entrada

void remove_proc_entry(const char* name, struct proc_dir_entry* parent);

Borra la entrada name en el directorio parent del procfs. Las entradas son quitadas por su name, no por la struct
proc_dir_entry retornada por las diversas funciones de creación. Destacar que esta función no borra recursivamente
las entradas.

Asegúrate de liberar la entrada data de struct proc_dir_entry antes de que sea llamado remove_proc_entry (esto
es: si había alguna data asignada, por supuesto). Ver Sección 3.3 para más información sobre el uso de la entrada
data.

3

Capítulo 3. Comunicación con los Procesos de
Usuario

En vez de leer (o escribir) información directamente desde la memoria del núcleo, procfs trabaja con funciones de
retrollamada para los archivos: funciones que son llamadas cuando un archivo específico está siendo leído o escrito.
Tales funciones tienen que ser inicializadas después de que el archivo procfs sea creado estableciendo los campos
read_proc y/o write_proc en la struct proc_dir_entry* que retorna la función create_proc_entry:

struct proc_dir_entry* entry;

entry->read_proc = read_proc_foo;
entry->write_proc = write_proc_foo;

Si sólo quieres usar la read_proc, la función create_proc_read_entry descrita en Sección 4.1 puede ser uti-
lizada para crear e inicializar la entrada procfs co
  • Links de descarga
http://lwp-l.com/pdf1330

Comentarios de: doc manual linux procfs (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad