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 coordinar y manipular el hardware del computador, organizar los archivos en
diversos dispositivos de almacenamiento, gestionar los errores de hardware y la
pérdida de datos y se encarga de brindar al usuario una interfaz con la cual
pueda operar de manera fácil todas las funciones anteriormente descritas.
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 errores, Secuencia de tareas, Protección,
Multiacceso y Contabilidad de recursos.
ORGANIZACIÓN
DE UN SISTEMA OPERATIVO
La organización de un Sistema Operativo esta
compuesta por lo siguiente:
·
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.
·
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.
·
En el tercero se encuentran el gestor de la memoria y de archivos.
·
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.
PROCESOS
Un proceso es simplemente, un programa en ejecución
que necesita recursos para realizar su tarea.
Estados de un Proceso
·
Ejecución: El proceso está actualmente en ejecución.
·
Listo: El proceso está listo para ser ejecutado, sólo está esperando que el
PLANIFICADOR así lo disponga.
·
Espera: El proceso no puede ejecutar hasta que no se produzca cierto suceso,
como una operación de Entrada/Salida.
·
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.
·
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 esta 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).
Los 512 bytes del sector de arranque están
distribuidos de la siguiente forma:
Código maestro de carga ó Boot Loader, tamaño 446
bytes.
Tabla de particiones, tamaño 64 bytes.
Firma o validación del MBR, tamaño 2 bytes.
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
·
Núcleos Monolíticos: Facilitan abstracciones del hardware subyacente
realmente potentes y variadas
·
Núcleos Micronúcleos: Proporcionan un pequeño conjunto de abstracciones
simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer
mayor funcionalidad.
·
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.
·
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.
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.
CONVENCIONES
PARA NOMBRAR LOS DISCOS (EN LINUX)
Linux, al igual que Windows NT, puede instalarse en
una partición primaria o en una partición lógica, en cualquiera de los discos
duros. Si la instalación no se realiza en una partición primaria del primer
disco duro, es necesario instalar un gestor de arranque. Linux proporciona un
potente gestor de arranque llamado LILO. Las posibilidades de instalación son
dos: instalarlo en la partición de Linux o en el sector de arranque del disco
duro (Master Boot Record). La primera opción es preferible si Linux se instala
en una partición primaria del primer disco duro (debe ser la partición activa)
junto a otro sistema operativo.
CARGADORES DE
ARRANQUE PARA LINUX
Es un programa sencillo, diseñado exclusivamente
para preparar todo lo que necesita el sistema operativo para funcionar.
Normalmente se utilizan los cargadores de arranque multietapas, en los que
varios programas pequeños se suman los unos a los otros, hasta que el último de
ellos carga el sistema operativo. En los ordenadores modernos, el proceso de
arranque comienza con la CPU ejecutando los programas contenidos en la memoria
ROM en una dirección predefinida (se configura la CPU para ejecutar este
programa, sin ayuda externa, al encender el ordenador).
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.
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.
COMPARACIÓN ENTRE EL NÚCLEO DE LINUX Y WINDOWS
En las discusiones típicas de “Windows vs Linux”
suelo ver como algo habitual que se limiten a facilidad de uso, programas de
terceras compañías (software, juegos, etcétera) y algo de FUD por en medio pero
nunca se comenta cosas como el núcleo, algo que suele ser muy importante.
Diferencias:
·
El tamaño resultante del kernel (sin drivers/módulos) también es exageradamente,
Linux ocupa 1.3MB frente a los 4.6MB de Windows.
·
El tamaño en líneas de código en Windows aumenta en cada versión
(actualmente 10 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 (4
millones actualmente) osea que no sé que pensar. El número anterior es sin
drivers, si incluimos los drivers los números se disparan y la diferencia
también (Windows 25 millones, Linux 8).
·
Otro dato interesante es el tiempo de desarrollo, cada “versión menor”
(en el caso de linux los 2.6.x) dura 3 meses en linux y 31 en Windows. En las
versiones mayores la cosa ya se balancea menos: Linux tarda 35 meses y Windows
38. Aquí se puede observar lo que decía Linus Torvalds (si no me falla la
memoria): lanza versiones rápidamente, continuamente.
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
version 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.
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.
SISTEMAS DE ARCHIVOS USADOS POR S.O
Sistema operativo
|
Tipos de sistemas de
archivos admitidos
|
Dos
|
FAT16
|
Windows 95
|
FAT16
|
Windows 95 OSR2
|
FAT16, FAT32
|
Windows 98
|
FAT16, FAT32
|
Windows NT4
|
FAT, NTFS (versión 4)
|
Windows 2000/XP
|
FAT, FAT16, FAT32, NTFS
(versiones 4 y 5)
|
Linux
|
Ext2, Ext3, ReiserFS,
Linux Swap (FAT16, FAT32, NTFS)
|
MacOS
|
HFS (Sistema de Archivos Jerárquico), MFS (Sistemas
de Archivos Macintosh)
|
OS/2
|
HPFS (Sistema de Archivos de Alto Rendimiento)
|
SGI IRIX
|
XFS
|
FreeBSD, OpenBSD
|
UFS (Sistema de Archivos Unix)
|
Sun Solaris
|
UFS (Sistema de Archivos Unix)
|
IBM AIX
|
JFS (Sistema Diario de Archivos)
|
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.
Las necesidades para la partición raíz en términos de tamaño son muy
limitadas, 300MB es suficiente.
·
El directorio raíz: / El directorio raíz contiene toda la jerarquía del sistema. No se
puede clasificar ya que sus subdirectorios pueden,
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: ls, cp, login, etc. Estático, no compartible.
·
/boot: contiene los archivos que necesita el administrador de arranque de
GNU/Linux (grub o LILO para las plataformas Intel). Este puede, o no, contener
al núcleo: si el núcleo no está aquí, debe estar ubicado en el directorio raíz.
Estático, no compartible.
·
/dev: archivos de los dispositivos del sistema (dev por DEVices,
Dispositivos). Estático
·
/etc: este directorio contiene todos los archivos de configuración
específicos a la máquina. Estático
·
/home: contiene todos los directorios personales de los usuarios del sistema.
Este directorio puede, o no, ser compartible (algunas redes grandes lo hacen
compartible por NFS). No estático, compartible.
·
/lib: este directorio contiene las bibliotecas esenciales al sistema; también
contiene los módulos del núcleo en /lib/modules. Todas las bibliotecas que
necesitan los binarios presentes en los directorios /bin y /sbin se deben
ubicar aquí, junto con el vinculador ld.so. Estático
·
/mnt: directorio que contiene los puntos de montaje para los sistemas de
archivos temporales. No estático
·
/opt: este directorio contiene los paquetes que no son necesarios para la
operación del sistema. Se recomienda poner los archivos estáticos (binarios,
bibliotecas, páginas de manual, etc.) de tales paquetes en el directorio
/opt/nombre_del_paquete y sus archivos de configuración específicos para la
máquina en /etc/opt.
·
/root: directorio personal de root. No estático
·
/sbin: contiene los binarios del sistema esenciales para el arranque del
mismo, sólo utilizables por root. Un usuario no privilegiado también puede
ejecutarlos pero no llegará muy lejos. Estático
·
/tmp: directorio destinado a contener archivos temporal es que pueden crear
ciertos programas. No estático
No hay comentarios:
Publicar un comentario