sysctl es una utilidad de software de algunos sistemas operativos similares a Unix que lee y modifica los atributos del kernel del sistema , como el número de versión, los límites máximos y la configuración de seguridad. [1] Está disponible como llamada al sistema para programas compilados y como comando de administrador para uso interactivo y secuencias de comandos. Linux además expone sysctl como un sistema de archivos virtual .
Escrito en | C |
---|---|
Sistema operativo | Tipo Unix (BSD) |
Tipo | Configuración del sistema |
BSD
En BSD, estos parámetros son generalmente objetos en una base de información de gestión (MIB) que describen límites ajustables como el tamaño de un segmento de memoria compartida, la cantidad de subprocesos que el sistema operativo utilizará como cliente NFS o la cantidad máxima de procesos. en el sistema; o describir, habilitar o deshabilitar comportamientos como el reenvío de IP , las restricciones de seguridad en el superusuario (el "nivel seguro") o la salida de depuración. [1]
En OpenBSD y DragonFly BSD , sysctl también se usa como la capa de transporte para el marco hw.sensors para el monitoreo de hardware , [2] mientras que NetBSD usa la llamada al sistema ioctl para su contraparte sysmon envsys . Tanto sysctl como ioctl son las dos llamadas al sistema que se pueden usar para agregar funcionalidad adicional al kernel sin agregar otra llamada al sistema ; [3] por ejemplo, en 2004 con OpenBSD 3.6, cuando se introdujo la utilidad tcpdrop , se utilizó sysctl como llamada al sistema subyacente. [3] [4] En FreeBSD , aunque no hay un marco de sensores, la temperatura individual y otros sensores todavía se exportan comúnmente a través del árbol sysctl a través de Newbus , por ejemplo, como es el caso del aibs(4)
controlador que está disponible en todos los 4 BSD sistemas, incluido FreeBSD. [5] [6] [7]
En BSD, generalmente se proporciona una llamada al sistema o un contenedor de llamadas al sistema para que lo utilicen los programas, así como un programa administrativo y un archivo de configuración (para establecer los parámetros ajustables cuando se inicia el sistema ).
Esta característica apareció por primera vez en 4.4BSD . Tiene la ventaja sobre las constantes codificadas de forma rígida de que los cambios en los parámetros se pueden realizar de forma dinámica sin tener que volver a compilar el núcleo.
Históricamente, aunque las variables del kernel en sí mismas podrían modificarse a través de sysctl, los elementos que componen la MIB del árbol sysctl estaban codificados en tiempo de compilación y, a partir de 2019, sigue siendo mayormente el caso en OpenBSD (con algunas excepciones como hw.sensors , que administra y proporciona su propio subárbol dinámico). FreeBSD ha tenido "magia interna sysctl" para la gestión dinámica del árbol sysctl desde 1995; NetBSD ha tenido su propia implementación de un árbol sysctl dinámico desde diciembre de 2003. [5] [6]
Linux
En Linux, el mecanismo de la interfaz sysctl también se exporta como parte de procfs en el directorio / proc / sys (que no debe confundirse con el directorio / sys ). Esta diferencia significa que verificar el valor de algún parámetro requiere abrir un archivo en un sistema de archivos virtual , leer su contenido, analizarlo y cerrar el archivo. La llamada al sistema sysctl existe en Linux, pero ha quedado obsoleta y no tiene una función contenedora en glibc ; generalmente no está disponible debido a que muchas distribuciones configuran el kernel sin CONFIG_SYSCTL_SYSCALL; por lo que no se recomienda su uso. [8]
Ejemplos de
Cuando el reenvío de IP está habilitado, el kernel del sistema operativo actuará como un enrutador . En FreeBSD , NetBSD , OpenBSD , DragonFly BSD y Darwin / Mac OS X , el parámetro net.inet.ip.forwarding se puede establecer en 1 para habilitar este comportamiento. En Linux, el parámetro se llama net.ipv4.ip_forward .
En la mayoría de los sistemas, el comando sysctl -w parámetro = 1 habilitará un determinado comportamiento. Esto persistirá hasta el próximo reinicio. Si el comportamiento debe habilitarse cada vez que se inicia el sistema, el parámetro de línea = 1 se puede agregar / reescribir en el archivo /etc/sysctl.conf . Además, algunas variables sysctl no se pueden modificar después de arrancar el sistema. Estas variables (dependiendo de la variable, la versión y el sabor de BSD) deben configurarse estáticamente en el kernel en tiempo de compilación o configurarse en /boot/loader.conf .
Ver también
- hw.sensors
- ioctl
Referencias
- ^ a b "sysctl (7) - variables de información del sistema" . Referencia cruzada BSD . NetBSD . Lay resumen .
- ^ Constantine A. Murenin (17 de abril de 2007). Interfaz generalizada con monitores de hardware del sistema de microprocesador . Actas de la Conferencia Internacional IEEE de 2007 sobre redes, detección y control, 15-17 de abril de 2007. Londres, Reino Unido: IEEE . págs. 901–906. doi : 10.1109 / ICNSC.2007.372901 . ISBN 978-1-4244-1076-7. IEEE ICNSC 2007, págs. 901—906.
- ^ a b Federico Biancuzzi (28 de octubre de 2004). "OpenBSD 3.6 Live" . ONLamp . O'Reilly Media . Archivado desde el original el 29 de octubre de 2004 . Consultado el 20 de marzo de 2019 .
- ^ Markus Friedl (2004). "tcpdrop.c" . Referencia cruzada BSD . OpenBSD . Lay resumen .
- ^ a b Constantine A. Murenin; Raouf Boutaba ( 17 de marzo de 2009 ). "8.3. Marco de sensores en FreeBSD CVS". Marco de sensores de hardware de OpenBSD (PDF) . Actas de AsiaBSDCon 2009, 12-15 de marzo de 2009. Universidad de Ciencias de Tokio, Tokio, Japón (publicado el 14 de marzo de 2009). Archivado (PDF) desde el original el 21 de febrero de 2009 . Consultado el 4 de marzo de 2019 .
- ^ a b Constantine A. Murenin (21 de mayo de 2010). "8.3. Marco de sensores en FreeBSD CVS". Sensores de hardware OpenBSD - Monitoreo ambiental y control de ventiladores ( tesis MMath ). Universidad de Waterloo : UWSpace. hdl : 10012/5234 . ID de documento: ab71498b6b1a60 ff817 b29d56997a418.
- ^ "aibs (4) - ASUSTeK AI Booster ACPI ATK0110 sensor de voltaje, temperatura y ventilador" . Referencia cruzada BSD . FreeBSD . 2010. Resumen de Lay .
- ^ "sysctl (2): leer / escribir parámetros del sistema" . man7.org . 2017-09-15 . Consultado el 4 de enero de 2018 .
enlaces externos
- sysctl (2) en OpenBSD
- sysctl (3) en FreeBSD, NetBSD, DragonFly BSD
- sysctl (7) en NetBSD
- sysctl (8) en * BSD
- sysctl (9) en FreeBSD, DragonFly y NetBSD
- - Manual del programador de Linux - Administración y comandos privilegiados
- - Manual del programador de Linux - Llamadas al sistema
- sysctl-explorer.net : una iniciativa para facilitar el acceso a la documentación de referencia de sysctl de Linux