miércoles, 6 de marzo de 2019

9° CONCEPTOS DE NUCLEO Y SISTEMA DE ARCHIVOS

SISTEMAS OPERATIVOS

Un Sistema Operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc.

INTÉRPRETE DE ÓRDENES

El programa principal del sistema es un intérprete de órdenes o de comandos, es un programa informático que tiene la capacidad de traducir las órdenes que introducen los usuarios, mediante un conjunto de instrucciones facilitadas por él mismo directamente al núcleo y al conjunto de herramientas que forman el sistema operativo.

FUNCIONES PRINCIPALES DE UN SISTEMA OPERATIVO

Las cuatro grandes funciones del Sistema Operativo son:

  1. Coordinar y manipular el hardware del computador
  2. Organizar los archivos en diversos dispositivos de almacenamiento
  3. Gestionar los errores de hardware y la pérdida de datos
  4. Encargado de brindar al usuario una interfaz con la cual pueda operar de manera fácil todas las funciones anteriores.
OTRAS FUNCIONES DE UN S.O

Las distintas funciones de los Sistemas Operativos son: 
Gestión de tareas
Interpretación de comandos
Control de recursos
Manejo de dispositivos de E/S
Manejo de erroresSecuencia de tareas
ProtecciónMulti-acceso
Contabilidad de recursos

ORGANIZACIÓN DE UN SISTEMA OPERATIVO

La organización de un Sistema Operativo está compuesta por lo siguiente:

  1. En el primer nivel y más bajo, se encuentra el núcleo (kernel), que es el que tiene contacto directo con los circuitos electrónicos.
  2. En el segundo se encuentran las rutinas que implementan los servicios que ofrece el Sistema Operativo, como el manejo de lo discos, el monitor, teclado y la gestión de los procesos.
  3. En el tercero se encuentran el gestor de la memoria y de archivos.
  4. El cuarto, están los procesos que permiten la comunicación del usuario con el Sistema Operativo: el caparazón [shell] y las órdenes propias del Sistema Operativo. La comunicación sólo es posible entre los niveles inmediatamente superior e inferior.

SISTEMA DE ARCHIVOS

Los sistemas de archivos o fichero, estructuran la información guardada en una unidad de almacenamiento (Disco Duro) que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos manejan su propio sistema de archivos.

SISTEMAS DE ARCHIVOS USADOS POR S.O


PROCESOS

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea.

ESTADOS DE UN PROCESO
  1. Ejecución: El proceso está actualmente en ejecución.
  2. Listo: El proceso está listo para ser ejecutado, sólo está esperando que el PLANIFICADOR así lo disponga.
  3. Espera: El proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida.
  4. Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.
  5. Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.
MASTER BOOT RECORD

El Master Boot Record es el primer sector ó sector cero de un dispositivo de almacenamiento de datos, como un disco duro. A veces, se emplea para el arranque del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones, se usa sólo para identificar un dispositivo de disco individual, aunque en algunas máquinas esto último no se usa y es ignorado. 

El Master Boot Record está compuesto por un código ejecutable y las entradas de la tabla de particiones. 

Bootstrap es un término utilizado para describir el arranque, o proceso de inicio de cualquier ordenador. Suele referirse al programa que arranca un sistema operativo como por ejemplo GRUB, LiLo o NTLDR. Se ejecuta tras el proceso POST del BIOS. También es llamado Bootstrap Loader (Cargador de inicialización). 

EL NÚCLEO

Un núcleo es un software que actúa de Sistema Operativo, es el que facilita los distintos programas de acceso seguro al hardware de la computadora, en conclusión es el encargado de gestionar recursos a través de servicios de llamada al sistema.

Su función es garantizar la carga y la ejecución de los procesos, las entradas/salidas y proponer una interfaz entre el espacio núcleo y los programas del espacio del usuario.

TIPOS DE NUCLEOS

  1. Núcleos Monolíticos: Facilitan abstracciones del hardware subyacente realmente potentes y variadas
  2. Núcleos Micronúcleos: Proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.
  3. Núcleos Híbridos: Son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente.
  4. Núcleos Exonúcleos: No facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.
LINUX

GNU/Linux es usado para referirse a la combinación del núcleo Linux que es usado con herramientas de sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU, en inglés: General Public License) y otra serie de licencias libres.


A pesar de que Linux (núcleo) es, en sentido estricto, el sistema operativo, parte fundamental de la interacción entre el núcleo y el usuario (o los programas de aplicación) se maneja usualmente con las herramientas del proyecto GNU o de otros proyectos como GNOME. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos.
Nota: Para más información consulte artículos como "Denominación GNU/Linux" o "Controversia por la denominación GNU/Linux".

A las variantes de la unión de programas y tecnologías, a las que se agregan diversos programas de aplicación de propósitos específicos o generales se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Es usado en servidores y supercomputadoras,  también es usado en el segmento de las computadoras de escritorio, portátiles, computadoras de bolsillo, teléfonos móviles, sistemas embebidos, videoconsolas y otros dispositivos.

El proyecto GNU, que fue iniciado en 1983 por, Richard Stallman; la historia del núcleo Linux está fuertemente vinculada a la del proyecto GNU. En 1991 Linus Torvalds empezó a trabajar en un reemplazo no comercial para MINIX9 que más adelante acabaría siendo Linux. Cuando Torvalds liberó la primera versión de Linux, el proyecto GNU ya había producido varias de las herramientas fundamentales para el manejo del sistema operativo, incluyendo un intérprete de comandos, una biblioteca C y un compilador. Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando en la Universidad de Helsinki, llenó el "espacio" final que había en el sistema operativo de GNU.

EL KERNEL

Un núcleo o kernel, es un software que trabaja en un sistema operativo como puede ser Linux o Windows, como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware.

FUNCIONES DEL NÚCLEO O KERNEL

Su función principal es facilitar a diferentes programas un acceso seguro al hardware, se encarga de gestionar recursos a través del sistema.



ARQUITECTURA DE WINDOWS Y DE LINUX

Actualmente Linux es un núcleo monolítico híbrido

Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento simétrico.

La arquitectura de Windows NT es altamente modular y se basa en dos capas principales:
  • Modo usuario: Cuyos programas y subsistemas están limitados a los recursos del sistema a los que tienen acceso.
  • Modo núcleo: Tiene acceso total a la memoria del sistema y los dispositivos externos. Los núcleos de los sistemas operativos de esta línea son todos conocidos como núcleos híbridos, aunque hay que aclarar que este término está en discusión ya que este núcleo es esencialmente un núcleo monolítico que está estructurado al estilo de un micronúcleo. La arquitectura dentro del modo núcleo se compone de lo siguiente:
COMPARACIÓN ENTRE EL NÚCLEO DE LINUX Y WINDOWS

En las discusiones típicas de “Windows vs Linux” suelo verse  algo habitual y es que  que se limiten a facilidad de uso, programas de terceras compañías (software, juegos, etcétera) y algo de FUD ( fearuncertainty y doubt. - Sirve para crear escenarios de miedo en caso de utilizar productos de la competencia.) por en medio pero nunca se comenta cosas como el núcleo, algo que suele ser muy importante. 

El tamaño en líneas de código en Windows aumenta en cada versión (actualmente 80 millones de líneas) de forma exagerada aunque Linux en cada versión mete soporte para mucho hardware sin que aumente el número tanto (25 millones actualmente) 
NOMENCLATURA DEL KERNEL EN LINUX

El kernel de Linux (Linux) está escrito en C y es código abierto licenciado bajo licencia GNU/GPL (excepto el planificador de recursos, el cual pertenece a Linus Torvalds y al resto de programadores que se han ocupado de dicha parte), con lo cual tenemos acceso al código para su estudio y/o modificación.
La nomenclatura del Kernel se divide en 3 campos separados por un punto

Primer campo: Número de la versión.

Segundo campo: Numero de "sub-versión", por llamarlo de algún modo, es la versión dentro de la propia versión, si este número es par, la versión será estable, si por el contrario es impar, ésta será inestable.

Tercer campo: Nivel de corrección el en que se encuentra.
PARTICIONES EN LINUX

Swap: Se usa para la memoria virtual, cuyo tamaño es aproximadamente equivalente al tamaño de la memoria.

Root: / Contiene los datos más importantes para el sistema y es el punto de montaje para otras particiones.

El directorio raíz: / El directorio raíz contiene toda la jerarquía del sistema.

DIRECTORIOS USADOS EN LINUX

/bin: archivos binarios esenciales del sistema. Este directorio contiene los comandos básicos que usarán todos los usuarios y son necesarios para la operación del sistema 
/boot: contiene los archivos que necesita el administrador de arranque de GNU/Linux (grub o LILO para las plataformas Intel). 
/dev: archivos de los dispositivos del sistema (dev por DEVices, Dispositivos).
/etc: este directorio contiene todos los archivos de configuración específicos a la máquina.
/home: contiene todos los directorios personales de los usuarios del sistema.
/lib: este directorio contiene las bibliotecas esenciales al sistema 
/mnt: directorio que contiene los puntos de montaje para los sistemas de archivos temporales. 
/opt: este directorio contiene los paquetes que no son necesarios para la operación del sistema. 
/root: directorio personal de root. 
/sbin: contiene los binarios del sistema esenciales para el arranque del mismo, sólo utilizables por root. 
/tmp: directorio destinado a contener archivos temporales que pueden crear ciertos programas.

TIPOS DE SOFTWARE POR DISTRIBUCIÓN

Software Libre: Es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, modificado y redistribuido libremente. Según la Free Software Fundación, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modificado.


Software Gratuito: El término freeware define un tipo de software no libre que se distribuye sin costo, disponible para su uso y por tiempo ilimitado siendo una variante gratuita del shareware, en el que la meta es lograr que un usuario pruebe el producto durante un tiempo ("trial") limitado, y si le satisface, pague por él, habilitando toda su funcionalidad. A veces se incluye el código fuente pero no es lo usual.


Software de Dominio Público: Es aquel software que no requiere de licencia, pues sus derechos de explotación son para toda la humanidad, porque pertenece a todos por igual.

No hay comentarios:

Publicar un comentario