A continuación podrán encontrar un sencillo tutorial con los pasos para instalar Ubuntu 12 como una máquina virtual usando Vmware.
Este blog tiene como objetivo la publicación de diferentes conceptos tecnológicos, especialmente referentes a las tecnologías de la información.
Mostrando entradas con la etiqueta Sistemas Operativos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sistemas Operativos. Mostrar todas las entradas
Tipos de Kernel de los sistemas operativos
¿Que es el Kernel o Núcleo del Sistema Operativo?
El kernel representa la pieza de software principal del los sistemas operativos, es el encargado de manejar las peticiones de entrada y salida de los aplicativos pues se encarga de traducir las instrucciones o comandos que solicitan a la CPU y otros dispositivos.
El Kernel se encarga de administrar los procesos, la memoria, los dispositivos y todas las llamadas al propio sistema, siendo el responsable de ejecutar los programas y decidir cuando van a ser procesados, asignarles los espacios en memoria que requieren (aunque también debe decir cuando no haya suficiente).
![]() |
| Fuente: http://en.wikipedia.org/wiki/File:Kernel_Layout.svg |
También está dentro de las competencias del Kernel recibir y atender las peticiones que los dispositivos envíen, como es el caso del teclado o el mouse y por de igual manera si un programa especifico requiere el acceso a un determinado dispositivo, por ejemplo la impresora.
Algunos ejemplos
A continuación se se expondrán 6 tipos de kernels de sistemas Operativos y los exponentes más conocidos de cada uno de ellos.
Sistemas monolíticos
Dentro de este modelo se puede encontrar al popular Linux. Consiste en escribir una serie de procedimientos enlazados entre si, lo cual crea un único programa de gran tamaño que se ejecuta completamente en modo kernel.
Para construir este tipo de Kernel se procede a compilar cada procedimiento de forma inividual y luego se vinculan entre si, todo esto lo que permite es que todos los procedimientos sean visibles lo cual hace que sea un diseño rápido en ejecución pero en términos de ocultamiento de información, no hay nada.
Sin embargo, apesar de que todos los procedimientos están mesclados y visibles entre sí, aun se maneja un cierto orden o estructura. PAra realizar las llamadas al sistema se colocan en un sitio claramente definido para tal uso (como la pila).
En forma básica la estructura puede ser la siguiente :
- Un programa principal que invoca el procedimiento de servicio solicitado.
- Un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema.
- Un conjunto de procedimientos utilitarios que ayudan a los procedimientos de servicio.
Un modelo de estructuración simple para un sistema monolítico
| Imagen del libro: Sistemas Operativos Modernos 3ra Edición de ANDREW S. TANENBAUM. |
Sistemas de capas
Un ejemplo de este tipo de sistema es MULTICS un proyecto del MIT que sirvió de influencia en avances posteriores.
Este modelo ya presenta un diseño más jerárquico que el anterior, se basa en ir creando capas de procedimientos donde cada capa inferior tiene mayores privilegios que las siguientes.
El primer sistema operativo de este tipo fue construido por el reconocido investigador W. Dijkstra y sus estudiantes.
El sistema consistía de 6 capas, cada una de las cuales cumplía una funcionalidad especifica de tal manera que las capas superiores no se tuvieran que preocupar por las funcionalidades de las capas inferiores, por ejemplo la capa de nivel cero se encarga de la asignación del procesador, cambiar entre procesos cuando ocurrían interrupciones, de esta manera las capas superiores ya no se preocupan por la programación de varios tareas ya que simplemente relegaban esa tarea a la capa cero.
La capa uno era la encargada de administrar la memoria, de forma que las capas superiores simplemente hacían solicitud de la misma sin importar en donde se ubicaba esta tanto física como lógicamente.
La capa dos se encargaba de la comunicación entre procesos, la capa tres de administrar los dispositivos de entrada y salida del sistema, lo cual permitía a las capas superiores trabajar con dispositivos abstractos y con propiedades claramente definidas.
En la capa cuatro se ubicaban los programas de usuario y en la quita el proceso del operador.
Microkernels
Un ejemplo de este tipo de kernel es MINIX, el cual es un sistema operativo que ha llevado el concepto de microkernel a los límites de tener solo 3200 líneas en C.
Es similar a modelo de capas, pero a diferencia de que en el modelo anterior donde todas las capas iban en el kernel, en el modelo de microkernel solo algunas partes indispensables van en el kernel, esto permite evitar que en caso de fallos se pueda paralizar todo el sistema, adicionalmente al ejecutar las demás partes en modo usuario un error no sería tan fatal.
La idea de este diseño de sistema es tener una gran confiabilidad y estabilidad al dividir el S.O. en módulos pequeños y por ende más manejables.
Sistemas cliente-servidor
Un ejemplo de Sistema Operativo que usa este diseño de Kernel es el reconocido Windows.
Es en cierta forma y un modelo similar a microkernel donde existe una serie de componentes encargados cada uno de funciones específicas responsables de ejecutarlas y proveer una funcionalidad a otros procesos en forma de servicios, es decir que un proceso solo puede acceder a su espacio de memoria y se comunica con los demás procesos por medio de paso d mensajes como un servicio. En este sentido es indiferente si la petición se ejecuta localmente o en otra máquina siendo ideal para la implementación de sistemas distribuidos.
Máquinas virtuales
En la actualidad se encuentran varios sistemas de reconocida trayectoria: vmware, vitual box, virtual server.
Con el aumento de la capacidad de cálculo, memoria y almacenamiento este tipo de diseño se ha venido popularizando al punto que se ha trasladado su uso incluso para equipos domésticos.
En construcción..
Exokernels
En construcción..Máquinas virtuales
Introducción al uso de máquinas virtuales
Definción:
Una máquina virtual es un software que simula un computador de tal manera que pueda ejecutarse como si fuera un computador real, permitiendo instalar sistemas operativos, asignar memoria y recursos de disco y procesador.
Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".
Referencia: http://es.wikipedia.org/wiki/Máquina_virtual
El uso de máquinas virtuales da una amplia gama de usos posibles desde la prueba de sistemas operativas sin necesidad de tener que hace una instalación en la máquina física (lo que implicaría el desuso de la misma mientras se instala el S.O.). También a nivel empresarial tiene usos practico ya que la flexibilidad de las máquinas virtuales permite que los recursos sean asignados de forma más dinámica, así si un servidor requiere en determinado momento más memoria RAM podría simplemente asignarla e incluso en caso de que la máquina física no disponga de ella se podría simular dando espacio en el disco duro (aunque eso disminuiría el rendimiento).
Otra de las ventas que ha generado el uso de máquinas virtuales son las llamadas "Appliances", máquinas virtuales completamente funcionales para una determinada tarea, es decir que tienen pre-instalado el sistema operativo y el software necesario por tal razón alguien sin muchos conocimientos técnicos podría encontrar máquinas con cualquier servicio pre-instalado y las configuraciones necesarias ya realizadas.
algunos ejemplos de donde encontrar dichas máquinas listas para usar son:
https://solutionexchange.vmware.com/store/category_groups/virtual-appliances
Utilidad:
El uso de máquinas virtuales da una amplia gama de usos posibles desde la prueba de sistemas operativas sin necesidad de tener que hace una instalación en la máquina física (lo que implicaría el desuso de la misma mientras se instala el S.O.). También a nivel empresarial tiene usos practico ya que la flexibilidad de las máquinas virtuales permite que los recursos sean asignados de forma más dinámica, así si un servidor requiere en determinado momento más memoria RAM podría simplemente asignarla e incluso en caso de que la máquina física no disponga de ella se podría simular dando espacio en el disco duro (aunque eso disminuiría el rendimiento).
Inconvenientes de las máquinas virtuales:
Uno de los inconvenientes de las máquinas virtuales es que agregan gran complejidad al sistema en tiempo de ejecución. Esto tiene como efecto la ralentización del sistema, es decir, el programa no alcanzará la misma velocidad de ejecución que si se instalase directamente en el sistema operativo "anfitrión" (host) o directamente sobre la plataforma de hardware. Sin embargo, a menudo la flexibilidad que ofrecen compensa esta pérdida de eficiencia.![]() |
| Image courtesy of Stuart Miles - FreeDigitalPhotos.net |
Algunos software para crear máquinas virtuales:
A continuación se presentan algunos de los programas de virtualización más conocidos:- http://www.vmware.com/ (descarga para PC versión gratuita)
- https://www.virtualbox.org/ (Descarga)
- Virtual PC 2007 (Descarga)
Máquinas listas para usar:
Otra de las ventas que ha generado el uso de máquinas virtuales son las llamadas "Appliances", máquinas virtuales completamente funcionales para una determinada tarea, es decir que tienen pre-instalado el sistema operativo y el software necesario por tal razón alguien sin muchos conocimientos técnicos podría encontrar máquinas con cualquier servicio pre-instalado y las configuraciones necesarias ya realizadas.
algunos ejemplos de donde encontrar dichas máquinas listas para usar son:
https://solutionexchange.vmware.com/store/category_groups/virtual-appliances
Como se usa:
A continuación algunos vídeos muestras como usar las máquinas virtuales
SO - Introducción a los Sistemas Operativos
Introducción a los sistemas operativos
El objetivo de este curso es suministrar sólidos conocimientos referidos a los sistemas operativos como administradores de recursos de las computadoras, en especial la administración de recursos compartidos tales como el procesador, la memoria y los dispositivos de entrada/salida, analizando los principales algoritmos de cada caso.
![]() |
| Image courtesy of xedos4 - FreeDigitalPhotos.net |
¿Qué es un Sistema Operativo?
Un sistema operativo (SO, frecuentemente OS, del inglés Operating System) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, ejecutándose en modo privilegiado respecto de los restantes y anteriores próximos y viceversa. Referencia: http://es.wikipedia.org/wiki/Sistema_operativo
Historia de los Sistemas Operativos - Generaciones
Generaciones por décadas:- 1940s: Se considera como la primera generación de de los sistemas operativos. En aquel entonces las computadoras eran máquinas muy costosas lo que hacía que estuvieran muy solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo se hacía en lenguaje de máquina, no existían los sistemas operativos, y los programadores debían interaccionar con el hardware del computador sin ayuda externa.
- 1950s: Los sistemas operativos hacen una aparición discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal.
- 1960s: Hubo cambios bastante significativos en tanto del software como del hardward, aparecen los circuitos integrados lo cual aumenta el poder calculo. Se desarrollan nuevos modelos para gestionar y aprovechar mejor los recursos físicos disponibles.
- 1970s: En esta década aparece Unix uno de los sistemas operativos más famoso, además se empezó a plantear la programación orientada a objetos, sin embargo aún eran muy costosos y los tiempos de fabricación muy extensos y peor aun, los usuarios debían conocer y recordar comandos complejos para la ejecución de trabajos, aun así fue un cambio significativo en la forma en que se debía interaccionar con la máquina.
- 1980s: Esta década es conocida como la del nacimiento del computador personal, esto se logró gracias a la producción de circuitos integrados (ships), a gran escala, además de la cada vez más notoria reducción del tamaño de los componentes que constituían los computadores. También se dio origen a los sistemas operativos más populares de la actualidad (al menos en el ámbito domestico), MS-DOS (posteriormente Microsoft Windows) y Mac OS. Empiezan a aparecer las interfaces gráficas y se piensa en ser más amigables con el usuario.
- 1990s: Ve la luz uno de los sistemas para servidores más difundido en el mundo, GNU/Linux. Con la expansión de Internet se masificó la aparición de programas auto gestionados con fines no deseados para los usuarios en muchos casos, como es el caso de los virus, adicionalmente los computadores se vieron expuestos a robos de información, todo esto llevo a que los sistemas operativos empezaran a fortalecer su seguridad y a crear mecanismos que redujeran el impacto de estos problemas.
- 2000s: La masificación de los dispositivos móviles hizo que se creará también sistemas operativos con características propias que permitieran manejar de mejor manera los recursos mucho más limitados que los de un computador de escritorio (aunque las distancias entre ambos cada vez es más corta). Si bien es cierto que ya existían dispositivos como la Palm realmente hasta la aparición de symbian, prácticamente cada fabricante de teléfonos celulares tenia su propio sistema operativo, pero fue la aparición del iPhone (2007) lo que dio un impulso vertiginoso al desarrollo de dispositivos móviles "inteligentes", sin embargo el iPhone seguía siendo un sistema propietario y de uso exclusivo para dispositivos de Apple, pero en el año 2008 Google libero Android que es sin duda el líder del mercado móvil en S.O., este sistema fue diseñado sobre el núcleo de Linux, aunque inicialmente fue diseñado para teléfonos inteligentes luego de unas modificaciones fue adaptado para otro tipo de dispositivos como tablets.
Referencia: http://es.wikipedia.org/wiki/Historia_de_los_sistemas_operativos
http://es.wikipedia.org/wiki/Sistema_operativo_móvil
Conceptos de los Sistemas Operativos
Estructura de los Sistemas Operativos
A continuación se presenta una imagen ejemplo con la estructura de un sistema Operativo en capas:| Fuente: http://www.fing.edu.uy/inco/cursos/sistoper/recursosTeoricos/4-SO-Teo-EstructuraSistemasOperativos.pdf |
Tendencias
| Fuente: http://www.kienyke.com/noticias/el-sujetador-que-interactua-con-twitter/ |
Ya no basta con tener sistemas operativos en teléfonos u otros aparatos móviles, cada vez se hace más habitual el encontrar otro tipo de dispositivos y otra forma de interacción con ellos: gafas, zapatillas, hasta brasiers con ships, además de los otros viejos conocidos que aumentan su inteligencia con velocidad: lavadoras, neveras, hornos, etc. Son solo un ejemplo de todos los dispositivos que se desean controlar de manera eficiente y segura, adicionalmente y de la misma manera en que cada vez más las personas interaccionan entre sí, los dispositivos que nos rodean también deben hacerlo. Neveras que se comunican con relojes, automóviles que se comunican con las carreteras y con otros vehículos incluso marca-pasos que envían SMS.
Básicamente todo lo que nos rodea tendrá uno o cientos de ships con cada vez más poder de cálculo y todos intercomunicables y cada uno con su interfaz para interaccionar con las personas, todos ellos necesitarán sistemas operativos que permitan gestionar sus recursos, pero esto también trae con sigo problemas que ya se han vivido con los tradicionales anfitriones de sistemas operativos y es que así como un computador de escritorio puede ser infectado con un virus informático, es casi seguro que nuestra nevera, nuestra lavadora o nuestro horno microondas también pueda verse infectado por uno.
Así pues la guerra entre tener un sistema operativo saludable y el tiempo disponible de muchos entusiastas de los virus parece que se seguirá librando en el futuro.
![]() |
| Fuente: http://malkun.blogspot.com/2013_02_01_archive.html |
Libro de referencia (Sistemas operativos modernos Escrito por Andrew S. Tanenbaum)
También se recomienda la 3ra edición del mismo libro:
Suscribirse a:
Entradas (Atom)
Programación Orientada a Objetos (POO - en inglés OOP)
Image courtesy of digitalart - FreeDigitalPhotos.net La programación orientada a objetos es un paradigma o un modelo de programación qu...
-
La vida está organizada desde un nivel muy simple hasta sistemas complejos, cada uno con sus características particulares representadas esp...
-
Para aquellos que han entrado al mundo de la programación con la herramienta PSeInt luego de un tiempo notan que a pesar de su flexibilidad...
-
¿Que es el Kernel o Núcleo del Sistema Operativo? El kernel representa la pieza de software principal del los sistemas operativos, es el ...
-
Una primera relación que se puede establecer entre la biología como una de las ciencias básicas y la ingeniería como uno de los procesos...
-
Resumen Antes de la aparición de Google en Internet, llevar el conteo de las visitas a un sitio no era más que un simple dato e incluso p...
-
Un post bastante pequeño pero con una respuesta muy puntual. Para cambiar el tamaño de los archivos que pueden ser subidos al servidor en ...
-
Esta entrada presenta los pasos que deberán ser realizados una vez hecho un modelo, para que dicho modelo sea creado en PostgreSQL. ...
-
Durante mis años como ingeniero he trabajado en unas cuantas compañías de tecnologías de la información y de desarrollo de sistemas de info...





