El kernel de Linux es como un puente que permite la comunicación informática entre las aplicaciones y el hardware y administra los recursos del sistema. Linus Torvalds desarrolló el kernel de Linux con C y Assembly y, por lo tanto, logró crear un núcleo liviano y portátil que se lanzó al público como código abierto.
Puede ver el kernel de Linux en muchos sectores diferentes, como el espacio, las computadoras, los relojes inteligentes, los teléfonos móviles, la robótica y la salud. Pero, ¿alguna vez te has preguntado cómo funciona el kernel de Linux bajo el capó?
Uso de hardware en Linux
El kernel de Linux, en primer lugar, controla qué hardware se ejecutará y de qué manera cuando enciende su computadora. Además, el control de software de gama alta es posible gracias a la interfaz de programación. Para dar un ejemplo de estos controles, es posible que vea información sobre el hardware instalado en las ranuras de su placa base y se beneficie de esta información detallada.
Además, esta interfaz de programación proporciona una capa de abstracción. Por ejemplo, si desea tener una conversación de video con sus amigos, necesitará una cámara web. La capa de abstracción hace posible que el software que utiliza emplee esta cámara web independientemente de su marca y modelo. El software aquí solo puede usar la interfaz que existe para Linux. El kernel de Linux traduce las llamadas de función de esta interfaz en comandos de hardware reales que necesita la cámara web.
Utilizando el /proc y /sys sistemas de archivos virtuales, el kernel de Linux puede exportar información detallada sobre el hardware detecta. A continuación, puede ver algunas herramientas utilizadas para esto y qué dispositivos y tarjetas exportan:
- lspci: para dispositivos PCI
- susb: para dispositivos USB
- lspcmcia: Para tarjetas PCMCIA
Como puede ver, la distribución de Linux en la captura de pantalla anterior se ejecuta en VirtualBox. Sin embargo, tiene la oportunidad de ver mucha información, como VGA, controlador USB, puentes y controlador SATA.
También puede utilizar el -v parámetro para obtener información mucho más detallada.
En el kernel de Linux, las aplicaciones suelen acceder a los dispositivos a través de archivos especiales que existen en el /dev directorio. Estos archivos especiales representan unidades de disco y otros dispositivos físicos. archivos como /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 y dev/snd/* son ejemplos de estos archivos especiales.
Gestión del sistema de archivos de Linux
Los sistemas de archivos son uno de los componentes más notables del kernel de Linux. El sistema de archivos de Linux es uno de sus mayores beneficios. Todos los archivos en un sistema Linux se reúnen en una sola rama. Los usuarios pueden utilizar esta jerarquía para llegar a los lugares deseados.
El punto de partida de esta jerarquía es el directorio raíz (/). Otros subdirectorios están bajo el directorio raíz. El subdirectorio más utilizado en / es el /home directorio. Este subdirectorio contiene otros subdirectorios y cada directorio tiene archivos que almacenan los datos reales.
Por ejemplo, puede pensar en un archivo de texto en su escritorio. Si crea un archivo de texto llamado holamundo.txt en su escritorio, puede referirse a él como /home/muo/Desktop/helloworld.txt. el ejemplo de /muo aquí, por supuesto, variará. Porque el nombre de este subdirectorio depende del nombre de su usuario actual. Con este sistema de nombres, el kernel de Linux traduce entre almacenamiento real y físico que existe en un disco.
Además, el kernel de Linux puede integrar datos de varios discos. Aquí es donde entra en juego el sistema de montaje. Utiliza uno de los discos en el sistema raíz y monta los otros en directorios existentes en la jerarquía. Luego se colocan otros discos debajo de los puntos de montaje. Esto permite a los usuarios almacenar la /home directorio en un segundo disco duro que también contiene otros subdirectorios.
Cuando monta un disco en el /home directorio, puede acceder a estos directorios desde ubicaciones normales. Así, caminos como /home/muo/Desktop/helloworld.txt seguir trabajando
Puede ver los puntos de montaje entre los archivos en su sistema con el encontrar -A dominio.
Con muchos formatos de sistemas de archivos, puede almacenar datos físicamente en discos. Los más conocidos en Linux son los ext2, ext3, y ext4 formatos del sistema de archivos. Sin embargo, hay muchos otros formatos de sistemas de archivos. En cualquier caso, debe formatear el sistema de archivos antes de montarlo. Puedes usar comandos como mkfs.ext3 (mkfs significa make file system y ext3 es el sistema de archivos) para esto.
Estos comandos aceptan la ruta del archivo del dispositivo que desea formatear como parámetro. Es una operación destructiva y debe usarla con precaución si no desea borrar o restablecer un sistema de archivos.
Aparte de estos, también hay sistemas de archivos de red como NFS que utiliza el kernel de Linux. NFS es un sistema de archivos de red donde los datos no se almacenan en un disco local. Con NFS, los datos pasan por la red a un servidor que almacena los datos. Dado que los datos estarán en un servidor, los usuarios no tienen que lidiar con ellos constantemente. También pueden usar el sistema de archivos jerárquico tradicional de Linux como de costumbre.
Operaciones de funciones compartidas
Todo el software del sistema Linux tiene funciones comunes. Es por eso que estas funciones son centrales en el kernel de Linux. Por ejemplo, al abrir un archivo, puede abrirlo solo con el nombre del archivo, sin saber dónde está almacenado físicamente el archivo y qué funciones y operaciones utilizará. Todas estas funciones ya están presentes en el núcleo.
Puede almacenar su archivo en el disco duro, dividirlo entre varios discos duros o incluso mantenerlo en un servidor remoto. Las funciones de comunicación de archivos compartidos son importantes en tales casos. Las aplicaciones intercambian datos independientemente de cómo se muevan los datos. Las funciones de comunicación compartidas están ahí para realizar estos intercambios de datos. Este movimiento puede ser a través de redes inalámbricas o incluso de una línea telefónica fija.
Gestión de Procesos en Linux
Una instancia activa de un programa que opera con datos o información en la memoria se conoce como proceso. La tarea del kernel de Linux es generar y realizar un seguimiento de estas regiones de memoria. El kernel asigna memoria para un programa en ejecución y carga el código ejecutable en la memoria desde el sistema de archivos. Inmediatamente después, el núcleo ejecuta el código.
El kernel de Linux admite multitarea. Es capaz de ejecutar numerosos procesos al mismo tiempo. Sin embargo, solo hay una transacción en un período de tiempo determinado. Sin embargo, el kernel de Linux divide el tiempo en pequeños fragmentos y, como resultado, cada procedimiento se lleva a cabo secuencialmente.
Debido a que estos pequeños segmentos de tiempo están en incrementos de milisegundos, solo están activos en momentos específicos y permanecen inactivos el resto del tiempo. El trabajo del kernel de Linux aquí es maximizar el rendimiento ejecutando múltiples procesos a la vez.
Si los intervalos de tiempo son demasiado largos, es posible que la aplicación en ejecución no responda tan bien como le gustaría. Si los plazos son demasiado cortos, puede haber problemas con los cambios de tareas. Dependiendo de la prioridad del proceso, el intervalo de tiempo requerido aquí variará. Es posible que haya oído hablar de procesos de alta prioridad y procesos de baja prioridad antes. Esta es una de las funciones que controla el kernel de Linux.
Esta explicación no siempre es correcta. La limitación real es que solo puede haber un proceso de trabajo por núcleo de procesador a la vez. Los sistemas multiprocesador permiten que varios procesos se ejecuten en paralelo. Un sistema básico casi siempre tiene docenas de procesos en ejecución.
Derechos de acceso en Linux
Al igual que con otros sistemas operativos, puede crear muchos usuarios en un sistema Linux. En tales casos, existe un sistema de administración de derechos que admite usuarios individuales y grupos. Aquí es donde permisos de archivo y usuario ven a jugar.
El kernel de Linux gestiona los datos y comprueba los permisos necesarios para cada proceso. Por ejemplo, si intenta abrir un archivo, el kernel tiene que comprobar el ID del proceso con los permisos de acceso. Si el kernel verifica y ve que tiene permisos, abrirá el archivo.
El kernel de Linux lo controla todo
Como puede ver, el kernel de Linux supervisa todo, desde la seguridad de sus archivos hasta la creación de usuarios y la descarga de archivos de Internet. Todo está en un cierto orden. Todo usuario tiene derechos. El kernel de Linux administra los procesos y los intervalos de tiempo para lograr el máximo rendimiento.
Además, el sistema de archivos, que es una de las características más importantes que distinguen al kernel de Linux de otros sistemas operativos, es muy importante. Linux no es una caja oculta. Por el contrario, todos los archivos y códigos fuente son accesibles. Para comprender mejor la naturaleza práctica y poderosa del kernel de Linux, puede examinar la jerarquía del sistema de directorios de Linux.