stringtranslate.com

control del sistema

sysctl es un mecanismo de software en algunos sistemas operativos tipo Unix que lee y modifica los atributos del núcleo del sistema , como su número de versión, límites máximos y configuraciones de seguridad. [1] Está disponible tanto como una llamada al sistema para programas compilados como un comando de administrador para uso interactivo y creación de scripts. Linux también expone sysctl como un sistema de archivos virtual .

BSD

En BSD, estos parámetros son generalmente objetos en una base de información de administració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 usará como cliente NFS o la cantidad máxima de procesos en el sistema; o describen, habilitan o deshabilitan 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 utiliza como capa de transporte para el marco de trabajo hw.sensors para la monitorización de hardware , [2] mientras que NetBSD utiliza la llamada al sistema ioctl para su contraparte sysmon envsys . Tanto sysctl como ioctl son las dos llamadas al sistema que se pueden utilizar para añadir funcionalidad adicional al núcleo sin añadir otra llamada al sistema ; [3] por ejemplo, en 2004 con OpenBSD 3.6, cuando se introdujo la utilidad tcpdrop, sysctl se utilizó como la llamada al sistema subyacente. [3] [4] En FreeBSD , aunque no hay un marco de trabajo de sensores, los sensores individuales de temperatura y otros sensores se siguen exportando comúnmente a través del árbol sysctl mediante Newbus, por ejemplo, como es el caso del aibs(4)controlador que está disponible en los 4 sistemas BSD, incluido FreeBSD. [5] [6] [7]

En BSD, generalmente se proporciona una llamada al sistema o un contenedor de llamada 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 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 núcleo se podían modificar a través de sysctl, los elementos que comprendían la MIB del árbol sysctl se codificaban en tiempo de compilación y, a partir de 2019, sigue siendo 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 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 comprobar 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 ; normalmente no está disponible debido a que muchas distribuciones configuran el núcleo sin CONFIG_SYSCTL_SYSCALL; por lo que no se recomienda su uso. [8]

Ejemplos

Cuando el reenvío de IP está habilitado, el núcleo 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 configurar 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 parameter =1 habilitará un determinado comportamiento. Esto persistirá hasta el siguiente reinicio. Si el comportamiento debe habilitarse siempre que se inicie el sistema, se puede agregar o reescribir la línea parameter =1 en el archivo /etc/sysctl.conf . Además, algunas variables sysctl no se pueden modificar después de que se inicie el sistema. Estas variables (según la variable, la versión y el tipo de BSD) deben configurarse de forma estática en el núcleo en el momento de la compilación o en /boot/loader.conf .

Véase también

Referencias

  1. ^ ab "sysctl(7) — variables de información del sistema". Referencia cruzada BSD . NetBSD .
  2. ^ Constantine A. Murenin (17 de abril de 2007). Interfaz generalizada con monitores de hardware de sistemas de microprocesadores. Actas de la Conferencia internacional IEEE de 2007 sobre redes, detección y control, 15-17 de abril de 2007. Londres, Reino Unido: IEEE . pp. 901-906. doi :10.1109/ICNSC.2007.372901. ISBN . 978-1-4244-1076-7. IEEE ICNSC 2007, págs. 901—906.
  3. ^ por Federico Biancuzzi (2004-10-28). "OpenBSD 3.6 Live". ONLamp . O'Reilly Media . Archivado desde el original el 2004-10-29 . Consultado el 20 de marzo de 2019 .
  4. ^ Markus Friedl (2004). "tcpdrop.c". Referencia cruzada de BSD . OpenBSD .
    • "tcpdrop — eliminar una conexión TCP". Página del manual de OpenBSD server.
  5. ^ por 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 desde el original el 20 de junio de 2010 . Consultado el 4 de marzo de 2019 .{{cite conference}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  6. ^ ab Constantine A. Murenin (21 de mayo de 2010). "8.3. Marco de sensores en CVS de FreeBSD". Sensores de hardware de OpenBSD: monitoreo ambiental y control de ventiladores ( tesis de maestría ). Universidad de Waterloo : UWSpace. hdl :10012/5234. ID del documento: ab71498b6b1a60ff817b29d56997a418.
  7. ^ "aibs(4) — Sensor de voltaje, temperatura y ventilador ASUSTeK AI Booster ACPI ATK0110". Referencia cruzada BSD . FreeBSD . 2010.
    • "aibs -- ASUSTeK AI Booster ACPI ATK0110 sensor de voltaje, temperatura y ventilador". Páginas del manual de FreeBSD.
  8. ^ "sysctl(2): lectura/escritura de parámetros del sistema". man7.org . 2017-09-15 . Consultado el 2018-01-04 .

Enlaces externos