Un pequeño paseo por la historia de Linux

Aunque Linux es sin duda la fuente más popular sistema operativo abierto el, su historia es bastante corta teniendo en cuenta la cronología de los sistemas operativos. En los primeros días de la informática, los programadores desarrollado en el hardware al descubierto en el hardware de la lengua. La falta de un sistema operativo significa que sólo una aplicación (y un usuario) podría utilizar el dispositivo de grandes y costosos a la vez. Los primeros sistemas operativos fueron desarrollados en la década de 1950 para proporcionar una experiencia de desarrollo más simple. Los ejemplos incluyen el sistema operativo de General Motors (OMG) desarrollado para el IBM 701 y el FORTRAN Monitor System (FMS), desarrollado por North American Aviation para la IBM 709.
En la década de 1960, Massachusetts Institute of Technology (MIT) y una serie de empresas desarrollaron un sistema operativo experimental llamado Multics (o multiplexados Servicio de Información y Computación) para el GE-645. Uno de los desarrolladores de este sistema operativo, AT & T, se retiró de Multics y desarrollado su propio sistema operativo en 1970 unics llamado. Junto con este sistema operativo era el lenguaje C, para lo cual se desarrolló C y luego vuelto a escribir para hacer que el sistema operativo portátil de desarrollo.
Veinte años más tarde, Andrew Tanenbaum creó una versión microkernel de UNIX ®, llamado MINIX (por mínima UNIX), que corría en pequeños ordenadores personales. Este código abierto del sistema operativo inspirado en "el desarrollo inicial de Linux Linus Torvalds en la década de 1990


Linux evolucionó rápidamente de una persona solo proyecto a una amplia el desarrollo de proyectos en el mundo con miles de desarrolladores. Una de las decisiones más importantes de Linux fue la aprobación de la GNU General Public License (GPL). Bajo la GPL, el núcleo Linux fue protegido contra la explotación comercial, y se contó también con la del espacio de usuario el desarrollo del proyecto GNU (de Richard Stallman, cuya fuente hace que la de núcleo de Linux). Esto permitió a aplicaciones útiles, como la colección de compiladores de GNU (GCC) y soporte de shell diferentes.



Propiedades del kernel de Linux
Cuando la arquitectura de un debate complejo y de grandes sistemas, puede ver el sistema desde muchas perspectivas. Uno de los objetivos de una descomposición de la arquitectura es proporcionar una manera de entender mejor el origen, y eso es lo que vamos a hacer aquí.
El kernel de Linux se ha implementado una serie de importantes atributos arquitectónicos. En un nivel alto, y en los niveles inferiores, el núcleo se acoda en una serie de subsistemas distintos. Linux también puede considerarse monolítica porque mezcla todos los servicios básicos en el núcleo. Esto difiere de una arquitectura microkernel donde el núcleo proporciona servicios básicos como la comunicación, E / S y la memoria y gestión de procesos, y servicios específicos de más están conectados a la capa de microkernel. Cada uno tiene sus propias ventajas, pero voy a alejarse de ese debate.
Con el tiempo, el núcleo de Linux se ha convertido en eficientes en términos de memoria y CPU, así como una gran estabilidad. Pero el aspecto más interesante de Linux, dado su tamaño y complejidad, es su portabilidad. Linux puede ser compilado para correr en un gran número de procesadores y plataformas con diferentes limitaciones arquitectónicas y necesidades. Un ejemplo es la capacidad de Linux para ejecutar en un proceso con una unidad de gestión de memoria (MMU), así como los que proporcionan sin MMU. El puerto uClinux del kernel de Linux-MMU prevé una ayuda que no. Ver la de Recursos para obtener más detalles.

Gestión de la memoria
Otro importante recurso que es administrado por el núcleo es la memoria. Por eficiencia, dada la forma en que el hardware gestiona la memoria virtual, la memoria se gestiona en las llamadas páginas (4 KB de tamaño para la mayoría de las arquitecturas). Linux incluye los medios para gestionar la memoria disponible, así como los mecanismos de hardware para su desarrollo físico y virtual asignaciones.
Pero la gestión de memoria es mucho más que la gestión de búferes de 4 KB. Linux proporciona abstracciones más de 4 KB topes, como el asignador slab. Este sistema de gestión de memoria usa tampones 4KB como su base, pero luego asigna estructuras desde dentro, no perder de vista qué páginas están llenas, parcialmente utilizados, y vacío. Esto permite que el régimen de crecer dinámicamente y reducir los basados en las necesidades del sistema mayor.
Apoyo a varios usuarios de la memoria, hay momentos en que la memoria disponible puede agotarse. Por esta razón, las páginas se puede mover fuera de la memoria y en el disco. Este proceso se llama intercambio porque las páginas de la memoria se intercambian en el disco duro. Usted puede encontrar las fuentes de gestión de memoria en. / Linux / mm.



Sistema de interfaz de llamada
El SCI es una fina capa que proporciona los medios para realizar llamadas a funciones desde el espacio de usuario en el núcleo. Como se ha dicho, esta interfaz puede ser dependiente de la arquitectura, incluso dentro de la familia de procesadores mismo. El SCI es en realidad una función y demultiplexación de servicios de atención de multiplexación interesante. Usted puede encontrar la implementación del SCI en. / Linux / kernel, así como las porciones dependientes de arquitectura en. / Linux / arch. Más detalles de este componente están disponibles en los Recursos de la sección.

Sistema de archivos virtual
El sistema de archivos virtual (VFS) es un aspecto interesante del kernel de Linux, ya que proporciona una abstracción de interfaz común de sistemas de archivos. El VFS proporciona una capa de conmutación entre el SCI y los sistemas de ficheros soportados por el núcleo