Add historia SSOO assignment.
This commit is contained in:
parent
f12d982a42
commit
e038a0339c
BIN
1/ISO/assignments/historia-ssoo/historia-ssoo.pdf
Normal file
BIN
1/ISO/assignments/historia-ssoo/historia-ssoo.pdf
Normal file
Binary file not shown.
158
1/ISO/assignments/historia-ssoo/historia-ssoo.tex
Normal file
158
1/ISO/assignments/historia-ssoo/historia-ssoo.tex
Normal file
@ -0,0 +1,158 @@
|
||||
\documentclass[12pt,a4paper]{article}
|
||||
\usepackage[spanish]{babel}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{wrapfig}
|
||||
|
||||
\title{El Sistema Operativo: Una Historia}
|
||||
\author{Nicolás Andrés Ortega Froysa}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\section{Evolución del Sistema Operativo}
|
||||
Para poder comprender la historia de los sistemas operativos, es necesario
|
||||
comprender qué es y por qué se desarrolló en primer lugar.
|
||||
|
||||
Originalmente los ordenadores servían para resolver una única tarea, y por lo
|
||||
tanto su programación era muy específica a esa máquina. De este modo, no hacía
|
||||
falta que un software fuese generalizado para varios tipos de ordenadores, ya
|
||||
que para cada ordenador distinto se programaba su tarea. Mas esto limitaba mucho
|
||||
la usabilidad de las computadoras, ya que sólo se podían usar para una tarea. Si
|
||||
uno quisiera ejercer otra tarea con la misma máquina tendría que escribir el
|
||||
código desde cero, y el código tendría que ser específico a las propiedades
|
||||
(e.g.\ periféricos, tamaño de memoria, almacenamiento) de esa máquina. Es decir,
|
||||
con que dos máquinas no fuesen exactamente iguales en sus componentes y
|
||||
periféricos, el mismo código no podría correr en ambas ya que la forma de
|
||||
comunicar con estos componentes y periféricos cambiaría de una a otra. Por poner
|
||||
un ejemplo simple, imagine un monitor que recibe los datos por medio de un
|
||||
bloque de datos de 256 bytes, y otro que lo recibe por un {\em streaming} que se
|
||||
hace byte por byte. Si el código fuese creado de modo que sólo funciona con uno,
|
||||
sería absolutamente incompatible con el otro.
|
||||
|
||||
Para resolver este problema y por lo tanto aumentar la usabilidad de las
|
||||
computadoras, se inventaron los sistemas operativos para abstraer el hardware y
|
||||
así hacer que el software fuera más portable de un sistema a otro. De este modo,
|
||||
el software tan sólo tendría que usar el interfaz que provee el sistema
|
||||
operativo, que sería uniforme, y el sistema operativo, por su parte, se ocuparía
|
||||
de transmitir esta información al hardware correspondiente, siendo programado
|
||||
para poder tratar con una variedad más amplia de configuraciones. Usando nuestro
|
||||
ejemplo de antes, el software simplemente enviaría el texto a escribir a la
|
||||
pantalla al sistema operativo por el método que fuere, y el sistema operativo,
|
||||
sabiendo en el arranque qué tipo de monitor está conectado a la máquina,
|
||||
enviaría los datos de forma que lo entendería ese hardware en concreto.
|
||||
|
||||
A consecuencia de esto, los sistemas operativos también llegaron a implementar
|
||||
métodos para manejar los recursos de la máquina (e.g.\ memoria, CPU), en
|
||||
particular cuando se desarrollaron los sistemas multiprogramados. Al tener
|
||||
varios programas corriendo en la máquina a la vez, es necesario distribuir de
|
||||
manera eficaz y justa los recursos del sistema. De esta tarea también se
|
||||
encargaron los sistemas operativos.
|
||||
|
||||
Con esta evolución, el sistema operativo ha quedado como un interfaz entre el
|
||||
software y el hardware, además de arbitro entre los propios procesos del
|
||||
ordenador. En la actualidad se van designando más tareas todavía a este
|
||||
programa para poder aprovechar del mejor rendimiento y control de la máquina.
|
||||
|
||||
\section{IBM y los Primeros Sistemas Operativos}
|
||||
Los primeros sistemas operativos se hicieron para las computadoras de IBM, que
|
||||
en esta época tan sólo se usaban en ambientes de industria, academia, o militar.
|
||||
Cada sistema operativo era muy específico a la máquina en sí, y muy diferente de
|
||||
los demás. Mientras que hoy en día estamos acostumbrados a que en todos los
|
||||
sistemas haya cierta similitud de comandos e interfaces, este no era el caso en
|
||||
los años 50. Los sistemas operativos eran muy diversos y sus comandos e
|
||||
interfaces variaban radicalmente debido a que se desarrollaron de forma
|
||||
completamente independiente, lo cual no había ningún estándar al que todos
|
||||
conformaban. Aún así servían para su propósito que era abstraer los dispositivos
|
||||
periféricos que se usaban en conjunto con la máquina.
|
||||
|
||||
Esto continuó de esta manera hasta los años 60, en que IBM tomó la decisión
|
||||
técnica y de negocios de facilitar lo que ya estaban haciendo sus clientes. En
|
||||
1964 anunciaron la creación de la serie {\em System/360}; una serie de máquinas
|
||||
caracterizadas por usar el mismo juego de instrucciones y comandos de
|
||||
entrada/salida. Todo esto fue con la intención de desarrollar un único sistema
|
||||
operativo para toda la serie: {\em OS/360}. Aunque esto fue un fracaso tan
|
||||
estrepitoso debido a la diferencia de rendimiento tuvieron que desarrollar
|
||||
también una serie de variaciones del sistema operativo en sí.
|
||||
|
||||
\section{Minicomputadoras y la Computación en Tiempo-Real}
|
||||
En los años 60 se estaba viendo la potencial que tenían las computadoras, no
|
||||
sólo para resolver tareas programadas, sino también para resolver problemas con
|
||||
entradas en tiempo-real. Para esto, se empezaron a desarrollar sistemas
|
||||
operativos en tiempo-real (RTOS). El más famoso de éstos fue el sistema
|
||||
operativo UNIX, que fue desarrollado en Bell Laboratories de AT\&T por Ken
|
||||
Thompson y Dennis Ritchie (entre otros). Este sistema operativo revolucionó el
|
||||
mundo de la informática, especialmente con su nuevo lenguaje de programación, C,
|
||||
que facilitaba la abstracción de las instrucciones de cada arquitectura en una
|
||||
lógica única. Esto fue muy necesario en esta época en que había tantas
|
||||
arquitecturas, y por lo tanto, tantos juegos de instrucciones distintos. Esto
|
||||
significaba que (en teoría) se podría escribir el código en C una vez y se
|
||||
podría compilar para cualquier sistema.
|
||||
|
||||
Gracias a esta revolución, cada vez que C se porteaba a otra arquitectura, el
|
||||
sistema operativo UNIX también se podía portear a la misma. Esto fue facilitado
|
||||
por el hecho de la filosofía de desarrollo que seguía, que se fundamentaba en
|
||||
modularidad y simplicidad, que se denomina de forma popular como la {\em
|
||||
filosofía UNIX}. Esto lo convirtió en modelo para la computación moderna y todos
|
||||
sus sucesores. Es así hasta el punto que es casi imposible encontrar algún
|
||||
sistema operativo moderno que no esté escrito en algún lenguaje de alto nivel
|
||||
(sea C, C++, Rust, u otros). Su filosofía también dio lugar a los movimientos de
|
||||
software libre y código abierto, además de inspirar la creación de proyectos
|
||||
como serían GNU is Not UNIX (GNU), Linux, las variaciones de BSD, y macOS.
|
||||
|
||||
\pagebreak
|
||||
|
||||
\section{Microcomputadores: Computación para las Masas}
|
||||
|
||||
\begin{wrapfigure}{r}{0.4\linewidth}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.45\linewidth]{imgs/system-hierarchy.png}
|
||||
\end{center}
|
||||
\caption{Jerarquía de un sistema.}
|
||||
\label{fig:system-hierarchy}
|
||||
\end{wrapfigure}
|
||||
|
||||
Ya para los años 70 empezaron a llegar los microcomputadores. Aunque al
|
||||
principio eran para los aficionados a la computación, seguirían desarrollándose
|
||||
hasta convertirse en lo que hoy en día reconoceríamos como un ordenador PC.
|
||||
|
||||
En esta nueva época de computación, los sistemas operativos se tenían que
|
||||
adaptar a las necesidades cotidianas, que solían precisar de un uso altamente
|
||||
compartido de los recursos entre muchos procesos a la vez. Ya el sistema
|
||||
operativo cobraba cada vez más importancia, aunque pasase completamente
|
||||
desapercibido por el usuario que se fijaba únicamente en las aplicaciones
|
||||
gráficas que veía en la pantalla.
|
||||
|
||||
Los sistemas operativos más populares para salir en esta época de la computación
|
||||
serían: Microsoft Windows, macOS, GNU/Linux, y BSD.
|
||||
|
||||
\subsection{Microsoft Windows}
|
||||
El sistema operativo más popular para los PCs es sin duda Microsoft Windows. Su
|
||||
primera versión, Windows 1.0, salió al mercado en 1985. Fue un intento de poner
|
||||
un interfaz gráfico por encima de MS-DOS, que lo precedía. Se popularizó sobre
|
||||
todo por ser un sistema que intentaba acomodar al usuario final en las tareas
|
||||
cotidianas, y por lo tanto también se encargó de soportar una gran variedad de
|
||||
hardware. Hasta hoy sigue siendo uno de los sistemas que más dispositivos y
|
||||
periféricos soporta.
|
||||
|
||||
\subsection{macOS}
|
||||
Sistema desarrollado por Apple Inc., originalmente tuvo su propia base, mas
|
||||
después de un fracaso y de casi desaparecer del mundo de la computación
|
||||
decidieron adoptar el modelo UNIX, rompiendo el soporte con versiones anteriores
|
||||
para poder proveer un sistema más estable y sostenible. Para hacer esto tomaron
|
||||
bastante código del sistema operativo BSD, usando su propio kernel, y
|
||||
desarrollaron la versión Mac OSX en 2001. Se popularizó por proveer una
|
||||
computación más estable, seguro, y fácil de usar que Windows, además de
|
||||
enfocarse en la estética de sus productos.
|
||||
|
||||
Originalmente macOS estaba hecho para correr en CPUs con la arquitectura de
|
||||
PowerPC, mas cuando esto empezó a caer en desuso, y había una falta de
|
||||
aplicaciones que lo soportaban, empezaron a cambiar también a la arquitectura
|
||||
x86, y sus ordenadores usaban CPUs de Intel. Recientemente han empezado a
|
||||
cambiar de nuevo su arquitectura de base, adoptando la arquitectura de ARM con
|
||||
los CPUs M1.
|
||||
|
||||
\subsection{GNU/Linux}
|
||||
|
||||
\subsection{BSD}
|
||||
|
||||
\end{document}
|
BIN
1/ISO/assignments/historia-ssoo/imgs/system-hierarchy.png
Normal file
BIN
1/ISO/assignments/historia-ssoo/imgs/system-hierarchy.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
Loading…
Reference in New Issue
Block a user