Sistema Operativo Linux
Definición y
Concepto
Linux es un Sistema
Operativo como MacOS, DOS o Windows pero con diferentes propiedades y interfaz.
En otra palabra, El sistema operativo Linux es necesario para que tu
computadora te permita utilizar otros programas. Linux es uno de los paradigmas
del desarrollo de software libre (y de código abierto), donde el código fuente
está disponible públicamente y cualquier persona puede libremente usarlo,
modificarlo y redistribuirlo bajo los
términos de la GPL (General Public License, en español: Licencia Pública
General de GNU) y otra serie de licencias libres. Fue desarrollado
originalmente por Linus Torvalds, quién empezó a trabajar sobre Linux en 1991
siendo estudiante de la Universidad de Helsinki en Finlandia. Luego, miles de
programadores contribuyeron a su desarrollo y fue distribuido gratuitamente
sobre la Internet.
Funciones y
Características
Las funciones
principales del sistema operativo Linux son:
- Sistema multitarea
- Sistema multitarea
- Sistema multiusuario
- Shells programables
- Independencia de dispositivos
- Comunicaciones
El Linux es capaz de
ejecutar varios programas a la vez son tener que parar para efectuar cada
aplicación. Los shells programables conectan las órdenes de un usuario con
Kernel Linux y al ser programables se pueden modificar para adaptarlos a las
necesidades de cada persona; el sistema multiusuario permite que varios
individuos accedan a las aplicaciones y recursos del sistema al mismo tiempo y,
por supuesto que puedan ejecutar varios programas a la vez.
Características del
Sistema Linux:
El sistema Linux tiene las siguientes características:
-
Estabilidad: Tiene protección de la
memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
-
Multitarea: Varios programas
(realmente procesos) ejecutándose al mismo tiempo.
-
Multiusuario: Varios usuarios en la
misma máquina al mismo tiempo (y sin licencias para todos).
-
Multiplataforma: Se ejecuta en muchos
tipos de CPU, no sólo Intel.
-
Manejo de la Memoria: La memoria se gestiona
como un recurso unificado para los programas de usuario y para el caché de
disco, de tal forma que toda la memoria libre puede ser usada para caché y éste
puede a su vez ser reducido cuando se ejecuten grandes programas.
-
Interfaz Gráfica de
Usuario: KDE, GNOME.
-
Desarrollo de Software: KDevelop (Lenguaje C,
C++, Java, PHP, Perl, Phyton, entre otros).
-
Trabajo de redes: TCP/IP, incluyendo ftp,
telnet, NFS, Wíreless, etc.
-
Disponibilidad del
Código Fuente: Todo el
código fuente está disponible, incluyendo el núcleo completo, todos los
drivers, las herramientas de desarrollo y todos los programas de usuario;
además está disponible libremente.
-
Tiene soporte para cualquier elemento hardware que sea relativamente
popular.
Evolución Histórica
El
sistema operativo Linux tiene como antecedentes los sistemas operativos Unix,
BSD y MINIX y el proyecto GNU, cada elemento contribuyendo de diferentes formas
al desarrollo de este sistema.
Esta
historia empieza con el sistema operativo Unix que fue creado en 1969 en los
laboratorios Bell de AT&T en los Estados Unidos por un equipo conformado
por Ken Thompson, Dennis Ritchie, Douglas Mcllroy and Joe Ossanna. Se lanzo en
1971 originalmente codificado en lenguaje de asemblador pero en 1973 se volvió
a escribir en el lenguaje C, lo que hizo que fuera más portable a diferentes
equipos. Debido a esto y un fallo legal
que obligó a AT&T a dejar la licencia del código fuente a cualquiera que lo
pidiera, el sistema Unix fue adoptándose y creciendo en muchas instituciones,
tanto académicas como empresariales.
Luego
apareció el proyecto GNU, iniciado por Richard Stallman en 1983 con el fin de
crear un sistema de software completo compatible con Unix, conformado por solo
software libre. En 1985 empezó La Fundación de Software Libre (Free Software
Foundation) y escribió la licencia GNU GPL. Luego se desarrollaron los
programas necesarios para un sistema operativo (como compiladores, el núcleo,
editores de texto y un sistema de ventanas) sin embargo no se realizó el
desarrollo de elementos de bajo nivel como los controladores para dispositivos
y daemons. Linus Torvalds (el creador del núcleo de Linux) citó esto como una
de las razones que le provocó a desarrollar su sistema.
También
existieron los sistemas BSD y Minix. El BSD se desarrolló antes de Linux sin
embargo por problemas legales no se podía lanzar hasta 1992. Dice Torvalds que
probablemente no hubiera desarrollado Linux si ya se había lanzado BSD. El
Minix es un sistema similar a Unix pero reducido y dirigido a la educación en
Informática.
En 1991
Linus Torvalds, llevado por la curiosidad en los sistemas operativos y su
descontento con la condición de la licencia de Minix que lo limitaba al uso
académico, empezó a trabajar en su propio sistema operativo, lo que se
convertiría en el núcleo Linux. Empezó su desarrollo mientras atendía la
universidad de Helsinki en un sistema operando Minix. Muchos de los programas
utilizados en este sistema también se utilizaron en Linux, sin embargo con el
desarrollo del sistema se crearon programas bajo el proyecto GNU para
reemplazar estos programas. El desarrollo del sistema como tal también se
traslado al sistema de Linux, sin dependencia de Minix. También se hizo un
cambio de licencia a la del GNU. Con el
tiempo se hizo un esfuerzo para integrar diferentes componentes del GNU con
Linux para crear un sistema operativo completamente funcional.
Hoy en
día el sistema operativo Linux ha tenido un gran desarrollo. Existen varias
distribuciones, una comunidad extensa que contribuye a su desarrollo, lo que
incluyo voluntarios, empresas y grupos. También ha tenido un gran aceptación,
aunque tiene un base de usuarios relativamente pequeño en los sistemas de
escritorio en comparación con los sistemas de Microsoft, tiene dominio en los
sistemas de servidores y supercomputadoras.
Clasificación
Un sistema operativo
se puede clasificar por varios criterios como son el número de usuarios, número
de tareas y el número de procesadores. El sistema operativo Linux se clasifica
como multiusuario, multitarea y multiproceso. También se clasifica como
monolítico por su estructura.
Estructura:
Niveles o Estratos de diseño
ESTRUCTURA MONOLÍTICA: El sistema operativo Linux implementa
una estructura monolítica lo que
comprende un núcleo o kernel grande y complejo donde están concentrados
todos los componentes y funcionalidades posibles del sistema base como
planificación, sistema de archivos, redes, controladores de dispositivos y
gestión de memoria. También implementa
una forma de modularidad donde se permiten la carga dinámica de módulos ejecutables que pueden ser compilados,
modificados, cargados y descargados en tiempo de ejecución, de manera similar a
los servicios de un micro núcleo.
CARACTERÍSTICAS
- Construcción de programa final a base de módulos compilados separadamente que se une a través del editor de enlaces.
- Buena definición de parámetros de enlace entre las rutinas existentes.
- Carecen de protección y privilegios al entrar y manejan diferentes aspectos de la computadora.
- Generalmente están hechos a la medida
- Construcción de programa final a base de módulos compilados separadamente que se une a través del editor de enlaces.
- Buena definición de parámetros de enlace entre las rutinas existentes.
- Carecen de protección y privilegios al entrar y manejan diferentes aspectos de la computadora.
- Generalmente están hechos a la medida
Núcleo
El kernel ó núcleo de linux puede ser definido como el corazón de este sistema operativo. Que tiene la responsabilidad de que el software y el hardware de tu computador puedan trabajar juntos o comunicar entre ellos.
El kernel ó núcleo de linux puede ser definido como el corazón de este sistema operativo. Que tiene la responsabilidad de que el software y el hardware de tu computador puedan trabajar juntos o comunicar entre ellos.
Las funciones más
importantes son:
• Administrar la memoria
para todos los programas y procesos en ejecución.
• Administración del
tiempo de procesador que los programas y procesos en ejecución utilizan.
• Es el encargado de que
podamos acceder a los elementos de nuestro computador de una manera cómoda y
rápida.
Interrupciones
Una interrupción se
genera cuando se quiere que la computadora deje de ejecutar el proceso en curso
y ejecute una función específica de quien produce la interrupción. Y Cuando se
ejecuta esta función específica podemos decir que la computadora (CPU) está
atendiendo la interrupción.
Se puede clasificar en 3 niveles:
• Interrupción software: es
cuando un el Usuario solicita una llamada del sistema.
• Interrupciones hardware: son
causadas cuando un dispositivo hardware requiere la atención de la computadora
(CPU) para que se ejecute su manejador.
• Excepciones: son
interrupciones causadas por la propia computadora (CPU), cuando ocurre algo no
deseado, por ejemplo una división por cero.
Despachador (Scheduler)
Se encarga de seleccionar un proceso que espera en la fila y asignarle
tiempo de CPU o en otras palabras, El despachador se encarga de asignar el CPU
al proceso seleccionado.
Comunicación (IPC)
La comunicación IPC es una función básica de
los sistemas operativos. Los cuales pueden comunicarse entre sí y compartir espacios de memoria o socket, ya
sean variables compartidas o buffers, tuberías, semáforos, etc. La IPC provee un mecanismo que permite a los
procesos comunicarse y sincronizarse entre sí, normalmente a través de un
sistema de bajo nivel de paso de mensajes. La comunicación se establece
siguiendo una serie de reglas o protocolos de comunicación. Los protocolos
desarrollados para internet son los mayormente usados:
IP (capa de red), TCP (capa de transporte) y FTP o HTTP (capa de aplicación).
En un Sistema, los procesos pueden ejecutarse independientemente o cooperando entre sí. La comunicación entre procesos puede estar motivada por la competencia o el uso de recursos compartidos o porque varios procesos deban ejecutarse de forma síncrona para completar una tarea.
IP (capa de red), TCP (capa de transporte) y FTP o HTTP (capa de aplicación).
En un Sistema, los procesos pueden ejecutarse independientemente o cooperando entre sí. La comunicación entre procesos puede estar motivada por la competencia o el uso de recursos compartidos o porque varios procesos deban ejecutarse de forma síncrona para completar una tarea.
Bibliografía:
- Características del sistema operativo Linux
- GNU/Linux
- Historia de Linux
- Definición de Linux ¿Qué es Linux ?
- Sistema Operativo Linux
-Historia y evolución
de Linux
http://www.linux-es.org/kernel
http://www.linux-es.org/kernel
No comments:
Post a Comment