Cualidades y tareas de Kernels / Sistemas Operativos
Estas son las cualidades que puede tener un kernel:
- Multi-user: tienen la habilidad de permitir a usuarios distintos usar el sistema operativo de forma simultánea.
- Multiprocessing: tiene la habilidad de ejecutar tareas en uno o más procesadores al mismo tiempo. Esto es útil para procesadores con más de un núcleo.
- Multitasking (Multitareas) : Tienen la capacidad de ejecutar más de una tarea o proceso a la vez. La mayoría de los kernels en realidad no pueden ejecutar más de una tarea a la vez (a menos de que tengan más de un núcleo en su CPU) debido a que solo tienen un procesador. En lugar de esto lo que la mayoría hace es cambiar de tareas de forma muy rápida para que a la percepción del usuario parezca que en realidad si se están haciendo varias cosas a la vez.
- Realtime (Tiempo Real): Son aquellos que tienen la capacidad de responder a los comandos del usuario en tiempo real.
También existen una infinidad de funciones que un kernel debe de satisfacer para que el usuario pueda usar su computadora al maximo. Aprenderemos más de ellas conforme avancemos, pero algunas de las principales que puede que no cubra son:
- Manejamiento de sistemas de archivos: La habilidad de leer de un sistema de archivos o un filesystem.
- Manejamiento de dispositivos externos como una impresora.
- Manejamiento de procesos y memoria.
- Control de Interrupciones
Tipos de Sistemas Operativos e Historia de Estos
Hoy en día existen 2 tipos de Sistemas Operativos principales: de tipo UNIX y Windows. También hay otros pero ya fueron descontinuados o simplemente no son relevantes para este trabajo.
UNIX
"The UNIX brand has traditionally been applied to the family of multitasking, multiuser computer operating systems that derive from the original AT&T UNIX operating system, developed in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others " (The Open Group, 2017). Traducción al español: La marca UNIX ha sido tradicionalmente aplicada a la familia de sistemas operativos multiusuario y multitarea (multitasking) que se derivan del sistema operativo original AT&T UNIX, desarrollado en la década de los 70s en el centro de investigación de los Laboratorios Bell por Ken Thompson, Dennis Ritchie, y otros.
UNIX es un sistema operativo originalmente desarrollado por AT&T en 1970 en los Laboratorios Bell, por un equipo conformado por Ken Thompson, Dennis Ritchie y otros. Un sistema operativo UNIX está escrito en C (en ocasiones derivados de este) y un poco de lenguaje ensamblador. Está formado por los siguientes componentes:
Programas del Sistema y Aplicaciones: Son lo que te permite utilizar el sistema, lo que le da utilidad ya que sin estos el sistema no es nada. En realidad si hay una diferencia entre un programa y una aplicación. Un programa es necesario para hacer funcionar el sistema (ej. bash) y una aplicación es algo que nos ayuda a hacer algo útil (ej. Microsoft Office).
Librería Estándar de C: A diferencia de otros sistemas operativos, esta librería es esencial para el funcionamiento de cualquier sistema operativo de tipo UNIX. Definiremos que es más adelante en el trabajo.
Otras utilidades: Aunque estas pueden entrar en la sección de _Programas del Sistema y Aplicaciones, _decidí darles una sección separada debido a que la gran mayoría de sistemas de tipo UNIX incluyen un conjunto de utilidades (ya sean de GNU o de BSD) las cuales generalmente siempre son las mismas y son esenciales para funciones del sistema. Ejemplos de estás utilidades (del conjunto de GNU) son: una Shell (bash), Binutils, tar, GCC, etc...
Cabe resaltar que hoy en día UNIX no es solo un sistema operativo, sino una especificación la cual a dado origen a una familia de sistemas operativos similares, cada uno con un Kernel y en ocasiones programas diferentes, pero todos funcionan de la misma manera. Este factor se empezó a dar cuando en los 70’s AT&T, permitió el uso de UNIX bajo una licencia a ciertas instituciones educativas y marcas comerciales como: University of California, Berkeley (BSD), Microsoft (Xenix, nada que ver con Windows), IBM (AIX) y a Sun Microsystems (Solaris). Finalmente, al principio de la década de los 90, AT&T vendió los derechos de UNIX, los cuales acabaron en manos de The Open Group, el cual permite el uso de UNIX certificado si se cumplen ciertos requisitos. Pero aun no todos los sistemas UNIX son oficiales y certificados, existen clones como Linux. Ejemplos de sistemas operativos tipo UNIX de hoy en día son Oracle Solaris, macOS, FreeBSD, NetBSD, Linux (un clon de Unix), Android (basado en Linux), HP-UX, IOS, etc… Unix no está limitado solamente al uso de computadoras, sino que también puede ser utilizado en teléfonos, relojes, consolas, drones, etc… Además de todo esto, también es muy bueno en el manejo de las redes y para programadores debido a su compatibilidad; es un sistema operativo multi-user y multi-tasking, que además tiene un sistema de permisos en los archivos para protegerlos. UNIX también es de código abierto.
Fotografía de bash en un sistema de tipo UNIX (macOS)
Windows
Windows realmente comenzó como la interfaz gráfica de usuario de un sistema operativo completamente diferente llamado MS-DOS. Este fue un sistema operativo originalmente desarrollado por Seattle Computer Products (86-DOS, un clon de CP/M para la arquitectura x86), luego adquirido por Microsoft en 1981 debido a una solicitud de IBM de un nuevo sistema operativo para su nueva gama de computadoras personales. Microsoft compró los derechos para la versión 1.10 por 75.000 dólares e hizo algunas modificaciones para cumplir con las especificaciones de IBM y renombró el sistema operativo a MS-DOS, pero mantuvo el número de versión. IBM lo licenció y lanzó al mercado como PC DOS 1.0 en 1981 para el uso en sus computadoras personales. Durante los primeros años Microsoft desarrolló ambas versiones de DOS, y eran el mismo producto, solo que con nombres diferentes. Pero más tarde, Microsoft dejó de desarrollar PC-DOS dejando a IBM para hacerlo, y debido a esto los sistemas operativos se convirtieron en 2 productos totalmente distintos. MS-DOS utilizaba un kernel monolítico, que no era multiusuario y tampoco era multitarea (la versión 4.0 fue la única que incluyó capacidades de multitarea). La interfaz de usuario predeterminada era una línea de comandos (terminal) en la que el usuario escribía comandos para indicarle al sistema qué hacer. Algunos de los comandos eran:
cd: Se usa para cambiar de folder / directorio.
chdir: También se usa para cambiar de directorio.
dir: Se usa para mostrar los contenidos de uno o más directorios.
attrib: Se usa para mostrar y editar los atributos de un archivo.
cls: Limpia la pantalla (la pone en blanco).
color: Cambia el color de fondo de la línea de comandos.
comp: Se usa para comparar 2 archivos..
compact: Comprimir y descomprimir archivos y directorios.
copy: Se usa para copiar un archivo de un lugar a otro.
date: Se usa para ver y cambiar la fecha del sistema.
mkdir: Se usa para crear un directorio.
Ejemplo de la Línea de Comandos de MS-DOS
Windows se comercializó como una interfaz de usuario para MS-DOS desde la versión 1.0 hasta la versión 3.11 (de Windows). La siguiente versión, Windows 95 se comercializó como un sistema operativo completo y diferente a MS-DOS , aunque seguía basado en este y lo usaba como sub-sistema. Las siguientes dos versiones de Windows que siguieron (98, Millenium [Me]) también fueron basadas en MS-DOS y todas las versiones (95 - Me) usaban un Kernel monolítico, un poco diferente al de MS-DOS. A esta serie de sistemas operativos se les puede agrupar en la categoría de Windows9x.
Escritorio de Windows 95
Las siguientes versiones del sistema operativo fueron completamente independientes basadas en otro sistema operativo (y kernel) llamado Windows NT. Este es un kernel híbrido con intención de ser compatible con POSIX, ser multitarea, multiusuario, portable y modular. El primer sistema operativo que estuvo basado en esta plataforma fue Windows NT 3.1 y salió al mercado en 1993. En 1995 Windows NT 3.5 al mercado y finalmente en 1996 Windows NT 4.0 salió al mercado. Cabe notar que aunque Windows NT estaba presente en el momento, Windows 9x no estaba basado en este sistema operativo. Este sistema operativo se desarrolló por separado de forma paralela. Windows XP fue la primera versión (popular y primaria) del sistema operativo Windows basada en WIndows NT y salió al mercado en el año 2001. Hasta el día de hoy, la versión más nueva del sistema operativo Windows es Windows 10, la cual salió al mercado en el año 2015.
Escritorio de Windows 10