martes, 31 de mayo de 2016

Bibliografía

Diseño de Sistemas Operativo. (s.f.). En Gestion de memoria (pág. 3.19). Almería: Departamento de Lenguajes y Computación. Universidad de Almería.

(s.f.). INTRODUCCIÓN AL SISTEMA OPERATIVO. Universidad de Las Palmas de Gran Canaria.
Lara, E. (s.f.). GESTIÓN DE PROCESOS. UNIDAD DIDACTICA 7.

Misfud, E. (2008). Seguridad básica en Linux. Madrid: Instituto Nacional de Tecnologías Educativas y Formación del Profesorado .


El sistema de entrada y salida

Los dispositivos de entrada y salida son los  encargados de ingresar o mostrar la información almacenada en la memoria, permiten al usuario poder comunicarse con la computadora, algunos ejemplos de ello son: teclado, monitor, impresora, USB, etc.

"La Entrada/Salida se realiza por medio de los controladores de dispositivos, que tienen un rol especial en el núcleo de Linux. Estos son los encargados de ocultar completamente los detalles de funcionamiento interno de un dispositivo a nivel del Hardware, independizando así los programas de usuario que deberán utilizar ciertas funciones para poder operar con dichos dispositivos; de esta manera, si hubiera cambios en los dispositivos, porque se añadan, quiten o cambien, no hará falta volver a programar los programas, bastando con reemplazar los controladores antiguos por los que gestionen el nuevo hardware."

Gestión del almacenamiento secundario

Los sistemas de información necesitan almacenar información fuera de la computadora, en un estado que no requiera alimentación eléctrica, y guardar volúmenes de datos tan grandes que no caben en una computadora actual, por más grande que sea.

Gestión de la memoria principal

A la parte del sistema operativo que se ocupa de gestionar la memoria se le denomina Gestor de Memoria. Su cometido consiste en llevar la cuenta de las partes de memoria que se están utilizando y las que están libres, así como de gestionar el trasvase de información entre la memoria principal y la secundaria cuando la memoria RAM no sea suficientemente grande para acoger a todos los procesos


"En lo que respecta a memoria virtual, el direccionamiento de memoria virtual de Linux, hace uso de una estructura de tabla de páginas con tres niveles, formada por los siguientes tipos de tablas (cada tabla individual es del tamaño de una página): (1) Directorio de páginas un proceso activo tiene un solo directorio de páginas que es del tamaño de una página. Cada entrada en el directorio de páginas apunta a una página del directorio intermedio de páginas. Para un proceso activo, el directorio de páginas tiene que estar en  la memoria principal; (2) Directorio intermedio de páginas este directorio puede ocupar varias páginas y cada entrada de este directorio apunta a una página de la tabla de páginas; (3) Tabla de páginas esta tabla de páginas también puede ocupar varias páginas, y cada entrada de la tabla de página hace referencia a una tabla virtual del proceso."  (Diseño de Sistemas Operativo, p 3.19)

Gestión de procesos


Paramentros de un proceso:

PROCESS ID (PID): Cada proceso tiene un número asociado que se le asigna cuando es creado. Los PIDs son números enteros únicos para todos los procesos sistema.
USER ID & GROUP ID: Cada proceso tiene que tener asociado unos privilegios que limiten el acceso al sistema de ficheros. Estos privilegios quedan determinados por el user ID y group ID del usuario que creo el proceso.
PARENT PROCESS: Todo proceso es creado por otro proceso, el proceso padre (parent process). El primer proceso iniciado por el kernel cuando el sistema arranca es el programa init. Este proceso tiene el PID 1 y es el padre de todos los procesos del sistema.
PARENT PROCESS ID: El PID del proceso que inicio el proceso hijo.
ENVIROMENT:Cada proceso mantiene una lista de variables y sus correspondientes valores. El conjunto de estas variables recibe el nombre de process enviroment. Normalmente el entorno de un proceso hijo se hereda del proceso padre a menos de que se indique de otra forma.
CURRENT WORKING DIRECTORY: Cada proceso tiene asociado un directorio por defecto, donde el proceso leerá/escribirá archivos, a menos que se le especifique explícitamente lo contrario.
NICE NUMBER: Permite al usuario modificar la prioridad de ejecución de un proceso
(Lara,Gestión de procesos)
Tomado de http://softlibre.unizar.es/manuales/linux/868.pdf

Desarrollo

Linux aparece como una combinación de dos sistemas operativos que son UNIX y el sistema educativo Minix, a partir de estos Linus Torvalds crea el sistema operativo conocido como Linus’s Unix que es el núcleo del sistema operativo. A demás de ser gratuito para que cualquier persona con conocimiento de programación lo pueda tomar y crear su propio sistema operativo con esta base.

“Linux se crea con esta filosofía de libre distribución y el sistema operativo completo que se construye con este núcleo también. A todo el sistema se le da el nombre de GNU/Linux (distribución completa del sistema operativo con Linux), que contiene el núcleo (1,5 millones de líneas de código) más las otras capas del sistema operativo y utilidades. Si bien muchas veces se denomina a todo el sistema simplemente LINUX” (INTRODUCCIÓN AL SISTEMA OPERATIVO, p.3).  Existe tambien una comunidad muy grande de desarrolladores dedicados a verificar errores y crear nuevas actualizaciones al sistema, por medio de foros o comunidades se coordina todo para poder asi mejorar bugs encontrados.

Arquitectura

        El sistema operativo Linux se compone de diferentes componentes el núcleo, el Shell, sistema de archivos y utilidades. El núcleo es quien se encarga de ejecutar programas y gestionar dispositivos periféricos, el Shell es quien se encarga de la interfaz gráfica de usuario y recibir las órdenes de los usuarios para ser enviadas al núcleo. El sistema de archivos es quien gestiona como se van a almacenar la información en los discos duros y memorias. Las utilidades son programas especializados que realizan operaciones de un computador estándar como por ejemplo, procesadores de texto, editores, etc.

ESTRUCTURA DE MICRO NÚCLEO (Minix, Mach)
•El núcleo se implementa mediante varios procesos o módulos separados núcleo, mm, fs, net, ...
•Los procesos se ejecutan en modo privilegiado y se comunican mediante mensajes.
•Tiene ventajas en el diseño y en la actualización de un módulo.
•Módulos que no se necesitan no tienen que ser cargados.
•Desventaja, la utilización de un recurso de otro modulo se solicita por mensajes lo que lo hace más lento.
ESTRUCTURA MONOLÍTICA O MACRONÚCLEO (Unix)
• El núcleo es un único gran proceso.
•La   utilización   de   un   procedimiento   se   llama   directamente,   no   necesita mensajes, por lo que es más rápido.

• Actualizaciones, implican recompilar todo el núcleo 

(INTRODUCCIÓN AL SISTEMA OPERATIVO, p.8).  

Imagen tomada de http://sopa.dis.ulpgc.es/ii-dso/leclinux/introduccion/estkernel/LEC1_INTRODUCCION.pdf

Seguridad

Como es bien sabido la parte de la seguridad en un sistema operativo es muy importante ya que se pone en riesgo la información personal que en este se contiene. Según detalla Elvira Misfud “la seguridad en un sistema se basa en los mecanismos de protección que ese sistema proporciona. Estos mecanismos deben permitir controlar qué usuarios tienen acceso a los recursos del sistema y qué tipo de operaciones pueden realizar sobre esos recursos” (Misfud, 2008). Como en otros sistemas operativos Linux controla el acceso de sus usuarios mediante un administrador quien es el que puede tener un acceso más profundo al sistema y el resto de cuentas de usuarios quienes solo tienen acceso a las partes que se les es permitido. En los mecanismos de protección del sistema se manejan dos conceptos, los recursos y los dominios de protección. “Para controlar el acceso de los dominios a los recursos se utilizan las Listas de Control de Acceso por cada recurso. La Lista de Control de Acceso (ACL) especifica qué dominios tienen acceso al recurso y qué operaciones asociadas al recurso pueden utilizar. El problema que plantea la lista de control de acceso es su tamaño variable, ya que depende del número de dominios que tengan acceso al recurso y de las operaciones que pueda realizar cada uno de ellos”  (Misfud, 2008). Los usuarios de un sistema Linux se dividen en diversos grupos, el propietario que es el que indica el creador del archivo, el grupo del propietario donde se encuentran los usuarios que crearon un archivo propietario y el resto de usuarios que son los que no pertenecen al grupo propietario ni crearon  algún archivo.

Gestor de recursos



En Linux, el usuario puede gestionar los recursos, programas y demás desde la consola (terminal) con algunos comandos básicos, por ejemplo “kill”, el cual finaliza cualquier programa en ejecución.

También existe un gestor de recursos profesional, diseñado para empresas, llamado Simple Linux Utility for Resource Management (o simplemente SLURM), el cual es un planificador de tareas open-source usado por muchos de los súper ordenadores a nivel mundial y por clusters de computación. Provee tres funcionalidades clave:

·         Permite acceso exclusivo y/o no exclusivo a recursos (nodos) a usuarios durante un tiempo determinado de forma que puede ejecutar tareas.
·         Provee un framework para iniciar, ejecutar y monitorizar tareas (típicamente tareas paralelas como MPI) en un set de nodos asignados.
·         Arbitra el acceso a los recursos gestionando una cola de tareas pendientes.

Programas de sistema



Cada distribución o versión de Linux viene con distintos programas instalados por defecto. Una parte importante de ellas vienen hasta con una suite ofimática avanzada y programas potentes de edición de audio, video e imágenes. 
Sin embargo si deseamos instalar más programas, estos se deben descargar de los repositorios oficiales de tu sistema o versión de sistema Linux, ejemplo: Ubuntu.
Un repositorio es un servidor en el que se almacenan todos los paquetes disponibles para tu sistema, se podría comparar como una “Google Play Store”, donde se suben y bajan programas de acuerdo a la necesidad del usuario, con la diferencia de que todos los programas son gratuitos y libres para modificar. También en Linux es común, utilizar la terminal para instalar o eliminar programas.

Ejemplo de repositorio en Ubuntu

Sistema de comunicaciones



Hay veces en las que estamos conectados en una red de algún tipo y necesitamos comunicarnos con el resto de usuarios de la misma (o con tu hermano en la otra habitación). Para estos casos hay muchas formas de hacerlo y programas muy completos para ello. Pero en realidad no es necesario instalar nada, ya que nuestro sistema nos proporciona todo lo necesario para hacerlo de una manera muy simple mediante la terminal.
1.       Utilizando el comando echo, por ejemplo:


2.       Con write:


3.       Con echo y Wall, este comando sirve para enviar un mensaje a el grupo de usuarios al que se pertenece:
  
Si un usuario no desea que le sean enviados mensajes, Linux posee la opción de desactivar los mensajes, para eso existe el comando “mesg y/n”. Si queremos desactivarlos utilizaremos “n” (no) y para volver a activarlos “y” (yes).
También existen dos comandos más: “talk” y “mail”, sin embargo, para utilizar estos se deben descargar desde el repositorio oficial de Linux.