Está en la página 1de 33

Introducción:

Este documento tiene como finalidad el instruir al lector acerca de los conceptos mas
importantes así como de las características destacables de el tema de sistemas operativos
partiendo desde sus orígenes,los tipos de sistemas operativos y las familias que encapsulan
a estos.
Cabe recordar que la informática como hoy la conocemos nace después de la segunda
guerra mundial cerca de la década de los 40's en esta época no existía el termino “sistema
operativo” ya que los programadores interactuaban directamente con el hardware en código
maquina (solo ceros y unos).

Objetivos:
• Este documento pretende que al finalizar su lectura el lector conozca :
• La historia de los sistemas operativos
• Los tipos de sistemas operativos existentes
• Las Familias de los sistemas Operativos (enfocándonos en las familias D.O.S y Posix)
1. Familia D.O.S
• El concepto de :
1. Portable Executable
2. Executable and Linkeable Format
HISTORIA
Primera Generación (Finales de la década de los 50's)
En esta década aparecen los sistemas de procesamiento por lotes, donde los trabajos se
reunían por grupos o lotes. Cuando se ejecutaba alguna tarea, ésta tenía control total de la
máquina. Al terminar cada tarea, el control era devuelto al sistema operativo, el cual limpiaba,
leía e iniciaba la siguiente tarea. Aparece el concepto de nombres de archivo del sistema
para lograr independencia de información. Los laboratorios de investigación de General
Motors poseen el crédito de haber sido los primeros en poner en operación un sistema
operativo para su IBM 701.
El concepto de Sistema Operativo surge en la década de los 50. El primer
Sistema Operativo de la historia fue creado en 1956 para un ordenador IBM
704, y básicamente lo único que hacía era comenzar la ejecución de un
programa cuando el anterior terminaba.

Segunda Generación (Mitad de la década de los 60's)


En esta generación se desarrollan los sistemas compartidos con multiprogramación, en los
cuales se utilizan varios procesadores en un solo sistema, con la finalidad de incrementar el
poder de procesamiento de la máquina. El programa especificaba tan sólo que un archivo iba
a ser escrito en una unidad de cinta con cierto número de pistas y cierta densidad. El sistema
operativo localizaba entonces una unidad de cinta disponible con las características
deseadas, y le indicaba al operador que montara una cinta en esa unidad.

Tercera Generación
En esta época surge la familia de computadores IBM/360 diseñados como sistemas para uso
general, por lo que requerían manejar grandes volúmenes de información de distinto tipo, lo
cual provocó una nueva evolución de los sistemas operativos: los sistemas de
modos múltiples, que soportan simultáneamente procesos por lotes, tiempo compartido,
procesamiento en tiempo real y multiprocesamiento.

Cuarta Generación (Mitad de la década de los 70's hasta nuestros días)


Los sistemas operativos conocidos en la época actual son los considerados sistemas de
cuarta generación. Con la ampliación del uso de redes de computadoras y del procesamiento
en línea es posible obtener acceso a computadoras alejadas geográficamente a través de
varios tipos de terminales. Con estos sistemas operativos aparece el concepto de máquinas
virtuales, en el cual el usuario no se involucra con el hardware de la
computadora con la que se quiere conectar y en su lugar el usuario
observa una interfaz gráfica creada por el sistema operativo.
Definición:
Es un software que actúa de interfaz entre los dispositivos de hardware y los programas
usados por el usuario al utilizar un ordenador. Es responsable de gestionar, coordinar las
actividades y llevar a cabo el intercambio de los recursos y actúa como estación para las
aplicaciones que se ejecutan en la máquina.

Los sistemas operativos modernos se encuentran divididos por capaz siendo las mas
importantes :
• Núcleo o Kernel.
• Administrador de memoria.
• Sistema de entrada/salida.
• Administrador de archivos.

Núcleo
Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente sobre el
hardware de la computadora. Entre las tareas que desempeña se incluyen el manejo de las
interrupciones, la asignación de trabajo al procesador y el proporcionar una vía de comunicación
entre los distintos programas. En general, el núcleo se encarga de controlar el resto de los módulos y
sincronizar su ejecución. El núcleo contiene un submódulo denominado "planificador", el cual se
encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de
planificación que varía de un sistema operativo a otro. Normalmente se utiliza una jerarquía de
prioridades que determinan cómo se asignará el tiempo del CPU a cada programa. Una política de
planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas
de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del
procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de
programas.

Administrador de memoria
Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes
programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas
se mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una
parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La
forma más común de administración de la memoria supone crear una memoria virtual; con este
sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de
lo que en realidad es.
Sistema de entrada/salida (E/S)
Este componente presenta al usuario la E/S de datos como una cuestión independiente del
dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son
tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades
de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en
salida, es el uso de "spoolers". Los datos de salida se almacenan de forma temporal en una cola
situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico
requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el
periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar
archivos del spool.
Administrador de archivos:
Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes
usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de
almacenamiento masivo. El administrador de archivos también supervisa la creación, actualización y
eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el
sistema en cada momento y coopera con el módulo administrador de memoria durante las
transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria
virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para
mantener la estructura de la misma.
Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos propósitos.
Algunos contienen información que puede ser compartida. Otros son de carácter privado, e incluso
secreto. Por tanto, cada archivo está dotado de un conjunto de privilegios de acceso, que indican
la extensión con la que se puede compartir la información contenida en el archivo. El sistema
operativo comprueba que estos privilegios no sean violados.
Características:
Las características deseables más importantes de un sistema operativo son:
• Permitir la concurrencia de procesos, trasladándose el tiempo de entrada/salida (E/S)
con el de cálculo y ocupando la memoria con varios programas.
• Posibilitar la ejecución de cualquier proceso en el momento que se solicite siempre y
cuando haya suficientes recursos libres para él.
• Ser eficiente en cuanto a reducir: el tiempo medio que ocupa cada trabajo, el tiempo
que no se usa la CPU, el tiempo de respuesta en sistemas multiacceso y el plazo
entre dos asignaciones de CPU a un mismo programa.
• Ser eficiente en cuanto a aumentar la utilización de recursos en general, tales como
memoria, procesadores, dispositivos de E/S, discos magnéticos, datos, etc.
• Ser fiable, es decir, un sistema operativo no debe tener errores y debe prever todas
las posibles situaciones.
• Ser de tamaño pequeño.
• Posibilitar y facilitar en lo posible el "diálogo" entre computadora y usuario de la
misma.
• Permitir compartir entre varios usuarios los recursos de hardware con que cuenta una
computadora.
• Permitir a los usuarios compartir datos entre ellos, en caso necesario.
• Facilitar la E/S de los diferentes dispositivos conectados a una computadora.
Clasificación:
Sistemas operativos por lotes
Los sistemas operativos por lotes requieren que la información esté reunida en bloque o
"lote" (el programa, los datos, y las instrucciones). Los trabajos son procesados en el orden
de admisión, según el modelo de "primero en llegar primero en ser atendido". En estos
sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el sistema
operativo, y la otra se usa para cargar programas transitorios para su ejecución. Cuando
termina la ejecución de un programa se carga un nuevo programa en la misma zona de
memoria.

Sistemas operativos multiprogramación


Los sistemas de multiprogramación son capaces de soportar dos o más procesos
concurrentes múltiples, permiten que residan al mismo tiempo en la memoria primaria las
instrucciones y los datos procedentes de dos o más procesos. Estos sistemas implican la
operación de multiproceso, para el manejo de la información. Se caracterizan principalmente
por un gran número de programas activos simultáneamente que compiten por los recursos
del sistema, como el procesador, la memoria , y los "dispositivos de E/S". Estos sistemas
monitorean el estado de todos los programas activos y recursos del sistema.

Sistemas operativos multiusuario


Los sistemas operativos multiusuario permiten acceder simultáneamente a un sistema de
computadoras a través de dos o más terminales. Este tipo de sistema operativo es
fundamental en el manejo de redes de computadoras actualmente.

Sistemas operativos de tiempo compartido


Los sistemas operativos de tiempo compartido tratan de proporcionar un reparto equitativo de
los recursos comunes para dar la impresión a los usuarios de que poseen una computadora
independiente. En estos sistemas el administrador de memoria proporciona aislamiento y
protección de los programas, ya que generalmente no tienen necesidad de comunicarse
entre ellos. El control de E/S se encarga de proporcionar o retirar la asignación a los
dispositivos de forma que se preserve la integridad del sistema y se proporcione servicio a
todos los usuarios. El administrador de archivos proporciona protección y control en el
acceso de la información, dada la posibilidad de concurrencia y conflictos al tratar de acceder
a los archivos.
Sistemas operativos de tiempo real
Estos sistemas tienen como objetivo proporcionar tiempos más rápidos de respuesta,
procesar la información sin tiempos muertos. En estos sistemas el administrador de memoria
es relativamente menos solicitado debido a que muchos procesos residen permanentemente
en memoria. El administrador de archivos se encuentra normalmente en grandes sistemas de
tiempo real y su objetivo principal es manejar la velocidad de acceso, más que la utilización
eficaz del almacenamiento secundario.

MenuetOS Sistema Operativo de Tiempo Real

Familias:
Los sistemas operativos se clasifican en familias,los miembros de dichas familias tienen
características similares entre si y que los diferencian de las otras familias.
• AtheOS / Syllable / Cosmoe
• SkyOS
• Familia OSBOS
BeOS, Haiku, Zeta, BlueEyedOS, Cosmoe, BeFree, Sequel, Mockup/BeOS
• Familia Amiga
AmigaOS, WarpOS (AmigaOS + subsistema PowerPC), MorphOS
• Familia Macintosh
Mac OS, Mac OS X
• Familia QNX
RTOS, Neutrino, RTP
• Familia DOS
MS-DOS, DR-DOS (antiguo DOS Plus o CP/M) , PC-DOS, FreeDOS, Novell DOS,
QDOS,Windows, Windows NT, Windows Ce, Windows Mobile, Windows Tablet
• Familia IBM
OS/2, Warp, eComStation, OS/360, OS/370, OS/390, OS/400
• Familia POSIX
AIX, AMIX, GNU/Linux (Distribuciones), GNU/Hurd, HP-UX, Irix, Minix, System V,
Solaris,UnixWare, LynxOS, Xenix, Digital UNIX, SCO Unix,FreeBSD, DragonFlyBSD,
NetBSD, VINO, OpenBSD, PicoBSD, Darwin, GNU/Darwin
• Familia Mach
GNU/Hurd, BSD lites, Mac OS X, NEXTSTEP, YAMIT, MKlinux

Y aunque existen muchas familias de sistemas operativos en este texto nos enfocaremos en
3 las cuales son las mas importantes :
• D.O.S
• POSIX
• MACH
SISTEMAS OPERATIVOS BASE D.O.S
DR-DOS
el sistema operativo base d.o.s(disk operator system) creado por Gary Killdam fundador de
Digital Recearch este sistema operativo fue la base para todos los otros sistemas operativos
base dos.

DOS o MS-DOS
En un principio llamado QDOS (Quick and Dirty Operating System) creado por Tim
Patterson y posteriormente comprado y comercializado por Microsoft con el
nombre de MS-DOS(MicroSoft Disk Operator System).Era un sistema operativo
que carecia de interfaz gráfica de usuario (GUI) y que por si mismo no detectaba
por si solo el hardware,pero si se podía instalar mediante una serie de ordenes y
herramientas incluidas en el núcleo de este,No soportaba particiones mayores de
2 gb.
Era además Mono Usuario y Mono Tarea.
FreeDos:
Es un clon exacto del MS-DOS y aunque tiene funciones clónicas este sistema operativo
puede ser diferenciado por las siguientes razones:
• Soporta el sistema de archivos FAT32.
• Controlador DOSLFN para usar los nombres de archivo largos de VFAT.
• Licencia libre (GPL).
• Soporte de internacionalización definida por el usuario

Microsoft Windows
Originalmente Windows no nace como un sistema operativo si no que surge como un
complemento,un gui para el MS-DOS debido a la creciente demanda de las interfaces
gráficas.
Originalmente se llamaría Interfaces Mánager, pero Rolando Hanson Uno de los jefes de
marketing de Microsoft, convenció a la compañía de que el nombre “Windows” sería más
atrayente para el mercado.
La Primera Versión de Microsoft Windows. Fue lanzada en 1985. Tomó un total de 55
programadores para desarrollarlo y no permitía ventanas en cascada. Microsoft comenzó el
desarrollo del "ADMINISTRADOR DE INTERFAZ", que posteriormente derivó en Microsoft
Windows en Septiembre de 1981. La interfaz inicial tenía menús ubicados en la parte inferior
de la ventana y la interfaz sufrió un cambio en 1982 cuando se diseñaron los ahora comunes
menús desplegables.
Windows/286
Segunda versión de Microsoft Windows, lanzada en 1987. características tales como iconos
y ventanas traslapadas. Cuando se lanzó Windows/386, Windows 2 fue renombrado como
Windows/286.
En 1987 Microsoft lanzó Windows/386.
A pesar de ser equivalente a su hermano Windows/386, mientras corrían aplicaciones
Windows, éste proveía la capacidad de ejecutar múltiples aplicaciones DOS
simultáneamente en memoria extendida

Windows 3.1
Una versión de Windows con muchas mejoras a Windows 3.0. Incluye soporte para fuentes
True Type y OLE. Esta versión fue testigo de la pérdida del modo real, lo cual significa que
no corre en procesadores Intel 8086.
Windows 95 Código Chicago
Sucesor de Windows 3.11 para PC's IBM. Se le conoció cómo "Chicago" durante su
desarrollo. Lanzado el 24 de Agosto de 1995. En contraste con las anteriores versiones de
Windows, Win95 es un sistema operativo más que una interfaz gráfica de usuario que corre
sobre DOS. Provee soporte para aplicaciones de 32 bits, multitarea con desalojo soporte de
red incorporado (TCP/IP,IPX, SLIP, PPP, y Windows Sockets). Incluye MS-DOS 7.0 como una
aplicación.
La interfaz gráfica, aunque similar a las previas versiones, fue significativamente mejorada.

Windows 98
Podría decirse que es una compilación de características. Muchas de estas
características ya se encontraban en Internet Explorer 4.0 (al ser instalado con la
actualización de escritorio) y en Windows 95 OSR-2. Permite soporte para la FAT32
(al igual que Win95 OSR-2) y el Active Desktop (de IE 4). Soporte para USB y DVD
Windows ME
Es una actualización de Windows 98 que toma algunas características de Windows
2000, pero orientada a la computación casera o de pequeños negocios mejorando
algunos de sus aspectos de seguridad y multimedia.

Windows 2000
Un cambio de nomenclatura para el sistema NT. Así, lo que habría sido Windows
NT 5.0 se conoce ahora como Windows 2000. Hasta la versión 4.0 Windows NT se
comercializaba en tres versiones: Workstation, Server, y Advanced Server
Las características nuevas que incluye, se pueden citar:
1. Verdadero soporte para Plug and Play.
2. Servicios de Directorio
3. Mayor integración con Internet e Intranet
Windows XP eXPeriense

Principal característica del nuevo Windows es su nueva apariencia. El mayor


cambio en WXP es cosmético, y además es el que mayores requisitos de sistema
necesita. Lo mínimo es un Pentium II (o equivalente) con 128 MB de RAM, sin
embargo se recomienda un Pentium IV con 256 MB de RAM. Otras nuevas
características están enfocadas a hacerlo más fácil de utilizar

• Un nuevo menú inicio.


• Una barra de tareas
• Menos "amontonamiento" y mensajes más significativos en la barra de tareas.
• Un nuevo panel de navegación que muestra las tareas y los detalles
• Una nueva organización del Panel de Control que permite categorizar
• los elementos de configuración y las herramientas.
• Características integradas para quemar CD´s.
Windows Vista
Esta es una nueva versión del sistema operativo de Microsoft destaca su nueva
apariencia y un nuevo gestor gráfico llamado aero la inclusión de muchos drivers
genéricos y la aparición del programa de control de cuentas de usuario para
mejorar la seguridad.

Windows 7
La mas reciente versión del sistema operativo de microsoft destaca su nueva
barra de tareas,mejoras en seguridad con la eliminación de la ejecución
automática (autoruns) y la mejora en consumo de recursos a comparación de su
antecesor vista.
Reactos React Operating System
es un avanzado sistema operativo gratuito de código abierto que provee una implementación
creada de cero de un sistema operativo compatible con Microsoft Windows XP. ReactOS
tiene como meta lograr compatibilidad binaria con aplicaciones y drivers de dispositivos para
sistemas NT (XP, 2003) usando una arquitectura similar y proveyendo una interfaz pública
completa y equivalente.
ReactOS es el modelo más completo de un sistema operativo como Windows disponible
libremente. Por lo tanto, los programadores podrán aprender mucho estudiando el código de
ReactOS o inclusive participando en el desarrollo del mismo.
ReactOS tiene y va a continuar incorporando características de nuevas versiones y cuando
sea posible definirá tecnología de punta en sistemas operativos.
Reactos Utiliza parte del código de un programa llamado Wine(Wine is Not A Emulator) el
cual pretende ser un calzador de aplicaciones de las apis de win32 para los sistemas posix.
POSIX:
Posix es el acronimo de Portable Operating System Interface la X viene de UNIX el termino fue
sugerido por Richard M. Stallman a la IEEE que buscaba un nombre facil de recorda para identificar
esta api.
Define un estándar de llamadas al sistema operativo. La librería estándar de C define unas funciones
que deben estar en cualquier entorno de desarrollo de C. POSIX Define un estándar IEEE de funciones
que requieren ``ayuda'' del sistema operativo. En la siguiente sección mostramos algunas de ellas.

Unix
Es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un
grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis
Ritchie y Douglas McIlroy
1. - Emplea manejo dinámico de memoria por intercambio o paginación.
2. - Tiene capacidad de interconexión de procesos.
3. - Permite comunicación entre procesos.
4. - Emplea un sistema jerárquico de archivos, con facilidades de
protección de archivos, cuentas y procesos.
5. - Tiene facilidad para redireccionamiento de Entradas/Salidas.
6. - Garantiza un alto grado de portabilidad.
De este sistema operativo se derivan muchos otros que pueden ser apreciados continuación:
GNU/Linux
Para entender que es gnu/Linux tenemos que definir dos cosas:
GNU:
Es el proyecto creado por Richard M. Stallman para desarrollar un sistema operativo libre en este
proyecto radican una gran cantidad librerías y aplicaciones utilizados para el desarrollo o para usuario
final
Linux:
Kernel o núcleo creado por Linus Benedict Torvalds, es un núcleo basado en un Unix de tipo
monolítico en su mayoría esta escrito en lenguaje c.
Una vez definido esto entenderemos que es incorrecto llamar Linux a secas este sistema operativo ya
que Linux es solo el kernel y este no funciona sin las librerías de gnu.
Este sistema operativo se caracteriza no solo por su potencia, seguridad por ser robusto, altamente
Portable,de código abierto y por tener un gran numero de distribuciones (Ediciones personalizadas por
usuarios o por empresas) .
¿Cual es la diferencia entre una distribución y otra?
Si bien todas las distribuciones están basadas en la misma base el núcleo de Linux , las aplicaciones y
librerías del proyecto gnu,Existe una diferencia muy notable y esta es el sistema de empaqueta-miento
de los precompilados lo que en Windows son los instaladores.
¿Cuales son las distribuciones mas importantes?
En la actualidad las distribuciones mas importantes son:
Debian - usa archivos .deb
Fedora - usa archivos .rpm
Slackware - usa archivos tar.gz
Debian
(Debian GNU/Linux). Debian es un sistema operativo gratuito, una de las distribuciones de
Linuxmás populares e influyentes.

Debian es conocido por su adhesión a las filosofías del software libre y por su abundancia de
opciones (su actual versión incluye más de 18 mil paquetes de
software, para once arquitecturas de computadora).

Debian GNU/Linux, también es base para otras múltiples distribuciones de


Linux como Knoppix, Linspire, MEPIS, Xandros y la familia Ubuntu.

Debian también es conocido por su sistema de gestión de paquetes (especialmente APT),


por sus estrictas políticas con respecto a sus paquetes y la calidad de sus lanzamientos.
Estas prácticas permiten fáciles actualizaciones entre lanzamientos, y una instalación y
removión sencilla de paquetes.

También utiliza un desarrollo y proceso de testeo abiertos. Es desarrollado por voluntarios


de todoel mundo, y apoyado por donaciones a través de la "Software in the Public Interest",
unaorganización sin fines de lucro para el apoyo de proyectos de software libre.
Fedora
(anteriormente llamado Fedora Core). Es una distribución de Linux, desarrollada por
la comunidadque soporta al Proyecto Fedora y es patrocinado por Red Hat.

Es un completo sistema operativo de propósito general, que contiene sólo software libre y
decódigo abierto.

En general, un nuevo lanzamiento de Fedora sale cada seis meses. Fedora es


una derivación de la distribución original de Red Hat Linux, e intenta reemplazar la
distribuciones "de hogar" de Red Hat Linux.
Slackware
Slackware Linux es un avanzado sistema operativo diseñado con un doble proposito como
objetivo principal: la facilidad de uso y la estabilidad. Su lanzamiento oficial se encuentra a
cargo de Patrick Volkerding. Incluyendo el software mas popular y reciente, pero a su vez
manteniendo esa sensación de tradición, Slacware provee facilidad de uso asi como
flexibilidad y poder, brindando de esta forma lo mejor de los dos mundos.
Slackware Linux proporciona tanto a usuario nuevos como experimentados, un sistema
totalmente equipado, listo para ser utilizado como estación de escritorio, o como equipo
Servidor. Servidores web, ftp o de correos se encuentran disponibles dentro de Slackware,
asi como los entornos de escritorio mas populares. Los usuarios que deseen utilizar
Slackware para desarrollar o compilar software adicional, cuentan además con una completa
gama de herramientas de desarrollo, editores y actualizadas librerias.
¿Por que algunas distribuciones se ven diferentes en apariencia grafica?
A diferencia de Windows los sistemas operativos en base unix (posix) no solo cuentan con la
posibilidad de tener una sola interfaz grafica de usuario se pueden tener la cantidad de
interfaces que el usuario desee.
Existen tantas interfaces graficas como distribuciones pero las mas importantes son:
GNOME
Es un entorno de escritorio e infraestructura de desarrollo para sistemas operativos Unix y derivados
Unix como GNU/Linux, BSDo Solaris; compuesto enteramente de software libre.
El proyecto fue iniciado por los programadores mexicanos Miguel de Icaza y Federico Mena y forma
parte oficial del proyecto GNU. Nació como una alternativa a KDE bajo el nombre
de GNU Network Object Model Environment. Actualmente se encuentra disponible en 48 idiomas,
entre ellos el español.

KDE
KDE es un proyecto de software libre para la creación de un entorno de escritorio e infraestructura de
desarrollo para diversos sistemas operativos como GNU/Linux, Mac OS X, Windows, etc.
De acuerdo con su página web, «KDE es un entorno de escritorio contemporáneo para estaciones de
trabajo Unix. KDE llena la necesidad de un escritorio amigable para estaciones de trabajo Unix, similar
a los escritorios de Mac OS X o Windows».4
Las aplicaciones KDE están traducidas a más de 88 idiomas3 y están construidas con los principios de
facilidad de uso y de accesibilidad moderna en mente. Las aplicaciones de KDE 4 funcionan de forma
completamente nativa en GNU/Linux, BSD,Solaris, Windows y Mac OS X.
XFCE
Xfce (se pronuncia como cuatro letras por separado) es un entorno de escritorio ligero para sistemas
tipo Unix como Linux, BSD,Solaris y derivados. Se configura íntegramente con el ratón o mouse. Su
creador, Olivier Fourdan, lo describe así: «Diseñado para la productividad, las aplicaciones se cargan y
se ejecutan rápidamente, mientras conserva recursos de sistema».
Xfce esta basado en las librerias gtk1 y utiliza el manejador de ventanas xfwm
lxde
LXDE es un entorno de escritorio libre para Unix y otras plataformas POSIX, como Linux o BSD. El
nombre corresponde a "Lightweight X11 Desktop Environment", que en español significa Entorno de
escritorio X11 ligero.
LXDE es un proyecto que apunta a entregar un nuevo entorno de escritorio ligero y rápido. No está
diseñado para ser tan complejo como KDE o GNOME, pero es bastante usable y ligero, y mantiene una
baja utilización de recursos. A diferencia de otros ambientes de escritorio, los componentes no se
integran firmemente. Al contrario, los componentes son independientes, y cada uno de ellos se puede
utilizar independientemente con muy pocas dependencias

BSD
BSD son las iniciales de Berkeley Software Distribution (en español, Distribución de
Software Berkeley) y se utiliza para identificar un sistema operativo derivado del sistema Unix
nacido a partir de los aportes realizados a ese sistema por la Universidad de California en
Berkeley.
Darwin
Darwin es el sistema que subyace en Mac OS X, cuya primera versión final salió en el
año 2001 para funcionar en computadoras Macintosh.

Integra el micronúcleo Mach y servicios de sistema operativo de tipo UNIX basados en


BSD 4.4 (en particular FreeBSD) que proporcionan una estabilidad y un
rendimiento mayor que el de versiones anteriores de Mac OS. En realidad, se
trata de una evolución del sistema operativo NEXTSTEP (basado en el núcleo
Mach 2.5 y código BSD 4.3) desarrollado por NeXT en 1989 para correr en los
ordenadores NeXT, llamados 'black boxes', comprado por Apple Computer en
diciembre de 1996.

Solaris de Sun
Solaris es un sistema operativo de tipo Unix desarrollado desde 1992 inicialmente por Sun
Microsystems y actualmente por Oracle Corporation como sucesor de SunOS. Es un
sistema certificado oficialmente como versión de Unix. Funciona en
arquitecturas SPARC yx86 para servidores y estaciones de trabajo.
Familia MACH
Mach es un núcleo de sistema operativo desarrollado en la Carnegie-Mellon
University (CMU) para soportar la investigación de sistemas operativos,
principalmente computación distribuida y paralela. El proyecto en CMU se ejecutó
desde 1985 hasta 1994.
Mach se desarrolló con la premisa de que todos los sistemas operativos modernos
comparten una serie de características en común, o son deseadas si es que no las tienen
aún. Éstas incluyen:
• Soporte para múltiples aplicaciones usando multitarea.
• Hilos, los cuales pueden ser pensados como las partes de una aplicación, o mini-
aplicaciones cuando hay multitarea.
• Soporte multi-procesadores, en una máquina única o sobre una red.
• Comunicaciones interprocesos, enviando mensajes directamente entre aplicaciones.
• Protección y seguridad de memoria.

GNU/HURD
GNU Hurd es un conjunto de programas servidores que simulan un núcleo Unix que
establece la base del sistema operativo GNU. El Proyecto GNU lo ha estado
desarrollando desde 1990 como software libre, distribuyéndolo bajo la licencia
GPL.

Hurd intenta superar los núcleos tipo Unix en cuanto a funcionalidad, seguridad y
estabilidad, aun manteniéndose compatible con ellos. Esto se logra gracias a que
Hurd implementa la especificación POSIX (entre otras), pero eliminando las
restricciones arbitrarias a los usuarios.
Portable Executable
Desde La versión 3.1 de Windows NT introdujo un nuevo tipo de formato de archivo
ejecutable llamado PE (Portable Executable).
Este nuevo formato PE se inspiró en el formato COFF (Common Object File Format) de los
sistemas operativos UNIX. Pero para mantener su compatibilidad con las versiones del MS-
DOS y los sistemas operativos Windows, el formato PE mantuvo la antigua
cabecera MZ del MS-DOS.
El nombre de Portable Executable se debe a que este nuevo formato de archivo, es
completamente portable y compatible con cualquier versión de Windows
95/98/NT/Me/2000/XP. Asimismo este mismo formato es usado en micro procesadores
diferentes a los Intel x86, tales como MIPS, Alpha y Power PC, entre otros. Los
archivos DLL de 32 bits y los devices drivers (manipuladores de dispositivos o periféricos)
también emplean el formato PE.
Debido a esta explicación básica, cualquier especie viral desarrollada en
formato PE (Portable Executable) tiene mayor capacidad de ocasionar daños a los sistemas
o archivos que infecta.
Conocer acerca del formato PE ayuda a comprender muchos conceptos de los sistemas
operativos Win32, como por ejemplo, la forma que opera el cargador del sistema operativo
para ejecutar las funciones dinámicas de los archivos .DLL, la estructura de la data
relacionada con enlaces dinámicos, tales como la importación y exportación de tablas, etc.
Elf (Executable and Linkeable Format)
El formato ELF (Executable and Linkable Format) es un formato de archivo para ejecutables, código
objeto, librerías compartidas y volcados de memoria. Fue desarrollado por el UNIX System Laboratory
(USL) como parte de la ABI. En principio fue desarrollado para plataformas de 32 bits, a pesar de que
hoy en día se usa en gran variedad de sistemas.
Es el formato ejecutable usado mayoritariamente en los sistemas
tipo UNIX como GNU/Linux, BSD, Solaris, Irix, Sodium. Existen otros formatos soportados en algunos
de estos sistemas como COFF o a.out, pero ELF es sin duda el más usado.
Herramientas
Dentro del formato ELF podemos distinguir varias partes.
En primer lugar la cabecera ELF, que contiene información general sobre el ejecutable. En él se
indican las posiciones de las tablas de cabeceras de sección y cabeceras de programa.
Cada una de estas cabeceras indican dónde se encuentran los datos de cada una de las secciones.
Las cabeceras de programa definen las regiones del ejecutable o librería que es necesario cargar
para crear la imagen del proceso e iniciar su ejecución. Las cabeceras de sección contienen
información importante para el enlazado y la relocalización.
Las secciones tienen nombres que suelen coincidir en todos los sistemas. Ejemplos de secciones
son:
.data Contiene datos inicializados del programa.
.debug Contiene información para ayudar a la depuración.
.ctors Contiene punteros a constructores de C++.
.dtors Contiene punteros a destructores de C++.
.dynamic Contiene información relevante para el enlazado dinámico.
.dynsym Contiene la tabla de símbolos para el enlazado dinámico.
.fini Contiene código de finalización del programa.
.init Contiene código de inicialización del programa.
.shstrtab Contiene una tabla de strings con los nombres de las secciones.
.strtab Contiene una tabla de strings normalmente usada para nombrar los elementos de la tabla de
símbolos.
.symtab Contiene una tabla de símbolos.
.text Contiene la parte ejecutable de un programa
Resumen:
Si bien el tema de sistemas operativos es muy extenso nosotros intentamos de guiarlo de
la manera mas simple posible para que usted conociera los conceptos mas básicos sobre
el tema de los sistemas operativos y sobre como estos se clasifican las familias en los
que se dividen y algunos de los sistemas operativos existentes (no todos ya que son una
infinidad ).
la diferencia que existe entre los sistemas operativos de tipo posix y los de la familia
DOS u porque de la existencia de las distribuciones y que no solo existe Windows como
sistema operativos