Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Desarrollo de DE
ADMINISTRACIÓN
Aplicaciones Web
SISTEMAS
INFORMÁTICOS EN RED
Desarrollo deDE
IMPLANTACIÓN
Aplicaciones Web
SISTEMAS OPERATIVOS
U.D. 1:Desarrollo
INTRODUCCIÓN
de A
SISTEMAS OPERATIVOS
Aplicaciones Web Y
SU INSTALACIÓN
INDICE
Lógica Booleana
Circuitos Combinacionales
Transistores
Puertas lógicas
Circuitos Aritméticos
Sumadores
Multiplicadores
Circuitos Secuenciales.
Autómatas Finitos
Un aspecto crucial de las computadoras, que está presente en todas ellas menos en
los modelos más simples, es que disponen de más de un nivel de ejecución.
INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
Hay que recalcar que los verdaderos clientes del sistema operativo son los
programas de aplicación (a través de los programadores de aplicaciones, desde
luego). Son los que tratan directamente con el sistema operativo y sus abstracciones.
En contraste, los usuarios finales tienen que lidiar con las abstracciones que
proporciona la interfaz de usuario, ya sea un shell de línea de comandos o una
interfaz gráfica.
INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
El sistema operativo es un administrador de recursos cuya tarea principal es
llevar un registro de qué programa está utilizando qué recursos, de otorgar las
peticiones de recursos, de contabilizar su uso y de mediar las peticiones en
conflicto provenientes de distintos programas y usuarios.
bits Posiciones
ARQUITECTURA DEL SISTEMA INFORMÁTICO
26
ARQUITECTURA DEL SISTEMA INFORMÁTICO
La unidad de control tiene asociados una serie de registros, entre los que cabe
destacar: el contador de programa (PC, Program Counter), que indica la dirección de la
siguiente instrucción máquina a ejecutar; el puntero de pila (SP, Stack Pointer), que
INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS
La unidad de control tiene asociados una serie de registros, entre los que cabe
destacar:
el contador de programa (PC, Program Counter), que indica la dirección de la
siguiente instrucción máquina a ejecutar;
el puntero de pila (SP, Stack Pointer), que sirve para manejar cómodamente una
pila en memoria principal;
el registro de instrucción (RI), que permite almacenar —una vez leída de la
memoria principal— la instrucción máquina a ejecutar,
y el registro de estado (RE), que almacena diversa información producida por la
ejecución de alguna de las últimas instrucciones del programa (bits de estado
aritméticos) e información sobre la forma en que ha de comportarse el computador
(bits de interrupción, modo de ejecución, etc.).
ARQUITECTURA DE UN SISTEMA INFORMÁTICO
https://www.youtube.com/watch?v=apM1_35fdRA
EVALUCIÓN DE LOS SISTEMAS OPERATIVOS
Ante las posibilidades que prometía el timesharing MIT, Bell Labs, y General Electric,
deciden crear un sistema que soporte cientos de usuarios. De la misma manera que
múltiples casas podían tener acceso a la red eléctrica, en este sistema múltiples
usuarios tendrían acceso a tiempo de cómputo (en la actualidad esto se llamaría
"Computing Time as a Service") con tan solo conectarse a este mainframe (una nube
de cómputo). El sistema fue bautizado como MULTICS (MULTiplexed Information and
Computing Service).
EVALUCIÓN DE LOS SISTEMAS OPERATIVOS
MULTICS tuvo un éxito parcial. Además de ser escrito en PL/I, un lenguaje poco
popular y con un compilador deficiente, el proyecto resultó ser sumamente
ambicioso para la época (como la máquina de Babbage) y demasiado complejo, lo
que demoró el desarrollo al punto que Bell Labs y General Electric abandonaron el
proyecto. MIT persistió y el sistema eventualmente fue terminado.
Como parte de su proyecto se definió la GNU General Public License, GPL, se publicó
el GNU Manifesto y se desarrollaron múltiples herramientas como gcc (GNU
Compiler Collection), glibc (GNU C Library), coreutils (GNU Core Utilities), binutils
(GNU Binary Utilities), bash (GNU Bash Shell), y el entorno de escritorio GNOME
(originalmente GNU Network Object Model Environment).
Sin embargo el microkernel, denominado GNU Hurd, demoró en ser terminado.
En 1987, Andrew S. Tanenbaum desarrolló un clon de UNIX llamado MINIX con fines
educacionales (POSIX-compliant), un microkernel modular de código abierto con la
capacidad de detectar y reemplazar dinámicamente módulos defectuosos. Todo en
13000 líneas de código.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
En 1991, ante la ausencia de un kernel gratuito de UNIX, y bajo la inspiración de
MINIX, Linus Torvalds desarrolla un clon monolítico "just for fun", al cual llama Linux
e incluye gran parte de las herramientas desarrolladas por el proyecto GNU. Los
puristas suelen denominar al sistema operativo GNU/Linux, pues se trata de un
"kernel Linux con herramientas GNU", de la misma manera que GNU/Hurd sería un
kernel Hurd con herramientas GNU".
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
Con el tiempo se desarrollaron múltiples distribuciones de Linux.
Linux distribution timeline
En 1974, Intel presenta el chip Intel 8080, una CPU de propósito general de 8-bit
con un clock de 2MHz, sucesora del 4004 y el 8008, los primeros
microprocesadores del mercado. Fue parte del popular MITS Altair 8800, que dió
inicio a la era de los microcomputadores.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
Intel deseaba un sistema operativo propio para el Intel 8080, por lo cual Gary
Kildall construyó un sistema operativo basado en disco (contenido en un floppy
disk de 8") conectado al 8080, y llamado CP/M (Control Program for
Microcomputers).
CP/M era un sistema single-task de 8-bit y capaz de utilizar hasta 64 KB de
memoria. Si bien el sistema fue adoptado por Intel, no le veían mucho futuro a un
sistema operativo residente en disco, y los derechos quedaron en manos de Gary
Kildall quien formó la compañía Digital Research Inc. para desarrollar y vender
CP/M.
Digital Research adaptó CP/M para diversos microcomputadores usando el Intel
8080, pero también para otros microprocesadores de la época como el Zilog Z80,
dominando el mercado durante unos 5 años. En este periodo se desarrollaron
versiones multitasking y de 16-bit. Aplicaciones que surgieron bajo CP/M fueron
WordStar (procesador de texto), dBase (base de datos), Multiplan (planilla de
cálculo), y Turbo Pascal (IDE y compilador para Pascal).
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
IBM, por su parte, que había dominado el mercado de los mainframes se estaba
quedando atrás en el nuevo mercado de los microcomputadores y empezó a
desarrollar su propia versión: el IBM Personal Computer (IBM PC) basado en el
Intel 8088 de 16-bit, 4.77MHz de clock, y hasta 256 kB de RAM. En 1980, IBM
contactó a una pequeña compañía de nombre Microsoft fundada por Bill Gates
y Paul Allen en 1975, y conocida por desarrollar un intérprete del lenguaje BASIC
para el popular Altair 8800.
Sin embargo, IBM deseaba un sistema operativo completo, y Bill Gates les sugirió
contactar a Digital Research, que con CP/M era el dominador absoluto de los
sistemas operativos. La negociación con Digital Research fracasó al no llegar a un
NDA (Non-Disclosure Agreement) respecto al IBM PC.
Lo cierto es que IBM regresó con Microsoft para solicitar el desarrollo de un
sistema operativo para su IBM PC. Bill Gates adquirió un clon de CP/M de una
compañía más pequeña aún llamada Seattle Computer Products (SCP). SCP
también se encontraba construyendo un sistema basado en el 8088, y había
desarrollado en 4 meses un clon llamado QDOS (Quick and Dirty Operating
System) que fue renombrado a 86-DOS.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
Microsoft logró un acuerdo con SCP para distribuir, y posteriormente adquirir
todos los derechos sobre 86-DOS llamándolo MicroSoft Disk Operating System
(MS-DOS). Este sistema operativo, junto al intérprete de BASIC fueron ofrecidos
a IBM. Finalmente el IBM PC fue lanzado junto al sistema operativo renombrado
por IBM como PC-DOS. Debido a que, en el fondo, PC-DOS había nacido como un
clon de CP/M y para evitar problemas legales, IBM eventualmente distribuyó su
IBM PC también con CP/M-86. Sin embargo, CP/M-86 había llegado 6 meses
tarde y en ese tiempo la popularidad de PC-DOS creció rápidamente.
Dado que el sistema operativo no era propiedad de IBM, cada constructor podía
obtener una licencia de MS-DOS desde Microsoft para incluirla en su propio
sistema. Esto posicionó a Microsoft como líder en el mercado de los sistemas
operativos, y desplazó definitivamente a CP/M y Digital Research Inc.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
En 1983, IBM lanza el IBM PC/AT, con el chip Intel 80286, de 16-bit, con clock de
6MHz, y con modo de protección para soportar multitasking. MS-DOS continuó
siendo el sistema operativo de preferencia de los consumidores, distribuido
como PC-DOS en las máquinas originales de IBM. Este soporte continuó con la
introducción de los Intel 80386 (32-bit, 12 a 40MHz, 1985) y 80486 (32-bit, 16 a
100MHz, 1989). MS-DOS también evolucionó incorporando características de
UNIX como multitasking y soporte de nombres largos de archivos.
Eventualmente Microsoft produjo su propia implementación de UNIX llamada
Xenix.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
Aún a inicios de los años 1980s, tanto MS-DOS como CP/M-86 seguían
interactuando con el usuario a través de líneas de comando y teclado. Esto
cambiaría debido a una investigación en interacción humano-computador que
venía siendo desarrollada desde los años 1960s por Doug Engelbart (1925-2013)
en el Stanford Research Institute (SRI), quien creó las GUI (Graphical User
Interface) como medio de interactuar con el computador mediante un conjunto
de abstracciones gráficas como ventanas, íconos, menúes, hipertexto, y un
novedoso dispositivo llamado mouse capaz de controlar un puntero en pantalla.
Su trabajo, el sistema NLS (oN-Line System) fue presentado en un evento
histórico que se conoció posteriormente como The Mother of All Demos (vale la
pena verlo con los ojos de 1968), de gran tanta influencia que este tipo de
interfaces .
No sería, hasta el desarrollo del Apple Lisa (1983) y el Apple Macintosh (1984),
los primeros computadores personales en incluir una interfaz gráfica, que las
GUIs se harían populares al acercar el uso del computador al público general.
Apple Macintosh fue ampliamente popular en particular en el ámbito del diseño
gráfico.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
Fuertemente influenciado por el éxito del Apple Macintosh, a inicios de 1980s
Microsoft planeaba un sucesor para MS-DOS que tuviera su propia GUI. Su primer
intento fue un sistema administrador de ventanas llamado Windows 1.0 (1985) que
funcionaba como una aplicación sobre MS-DOS. La versión que consiguió mayor
adopción fue Windows 3.11, para sistemas de 16-bit. Fue en 1995, con el
lanzamiento de Windows 95 y luego Windows 98, que se incorporó código para
aprovechar las nuevas CPU de 32-bit, aun cuando parte del sistema operativo debía
soportar aún aplicaciones de 16-bit por retrocompatibilidad. MS-DOS seguía siendo
usado para iniciar el sistema y como soporte subyacente para aplicaciones
antiguas.
Desde 1987, Microsoft había trabajado en conjunto con IBM para construir un
sistema operativo con GUI. Este sistema se conoció como OS/2, sin embargo nunca
alcanzó gran popularidad ante Macintosh y los mismos Windows 9x.
Eventualmente Microsoft tomó parte del trabajo desarrollado para OS/2 y
reimplementó Windows usando código completamente de 32-bit. Este nuevo
sistema se llamó Windows NT (Windows New Technology), mientras OS/2 fue
eventualmente abandonado por IBM.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS
Windows NT fue desarrollado bajo el concepto de portabilidad. Implementó
preemptive multitasking, soporte para múltiples arquitecturas modernas como IA-
32, MIPS y DEC-Alpha, soporte para Windows API y POSIX, e introdujo un nuevo
sistema de archivos, NTFS. La línea de Windows NT continuó con Windows XP,
Windows Vista, Windows 7, Windows 8, y Windows 10. Paralelamente se introdujo
una línea para servidores con Windows 2000, Windows Server 2003, Windows
Server 2008, Windows Server 2012, y Windows Server 2016.
Una vez visto qué aspecto tienen los sistemas operativos por fuera (es decir, la
interfaz con el programador, vamos a dar una mirada al interior. Hay cinco
estructuras distintas que son:
los sistemas monolíticos
los sistemas por capas
las máquinas virtuales
los sistemas cliente-servidor o microkernels
Éstas no son de ninguna manera las únicas estructuras posibles, pero nos darán
una idea de algunos diseños que se han llevado a la práctica.
ESTRUCTURAS DE UN SISTEMA OPERATIVO
SISTEMA MONOLÍTICO
Este enfoque, que es por mucho la organización más común, bien podría
subtitularse “El Gran Desorden”. La estructura consiste en que no hay
estructura. El sistema operativo se escribe como una colección de
procedimientos, cada uno de los cuales puede invocar a cualquiera de los otros
cuando necesita hacerlo. Cuando se usa esta técnica, cada procedimiento del
sistema tiene una interfaz bien definida en términos de parámetros y
resultados, y cada uno está en libertad de invocar a cualquier otro, si este
último realiza algún cálculo útil que el primero necesita.
ESTRUCTURAS DE UN SISTEMA OPERATIVO
SISTEMA MONOLÍTICO
ESTRUCTURAS DE UN SISTEMA OPERATIVO
EL SISTEMA POR CAPAS
Consiste en organizar el sistema operativo como una jerarquía de capas, cada
una construida sobre la que está abajo de ella. El primer sistema que tuvo
esta estructura fue el sistema THE(Technische Hogeschool Eindhoven). El
sistema THE era un sencillo sistema por lotes para una computadora
holandesa,que tenía 32K de palabras de 27 bits.
MICROKERNEL
ESTRUCTURAS DE UN SISTEMA OPERATIVO
Lo único que el kernel hace es manejar la comunicación entre los
clientes y los servidores.
Al dividir el sistema operativo en partes, cada una de las cuales sólo
se encarga de una faceta del sistema, como el servicio de archivos, de
procesos, de terminales o de memoria, cada parte puede ser
pequeña y manejable.
Dado que todos los servidores se ejecutan como procesos en modo
de usuario, y no en modo de kernel, no tienen acceso directo al
hardware. Por tanto, si se activa un error en el servidor de archivos, es
posible que el servicio de archivos se caiga, y normalmente esto no hará
que se caiga toda la máquina.
Otra ventaja del modelo cliente-servidor es su adaptabilidad para usarse
en sistemas distribuidos . Si un cliente se comunica con un servidor
enviándole mensajes, el cliente no necesita saber si el mensaje será
atendido localmente en su propia máquina o si se envió a través
de la red a un servidor en una máquina remota.
ESTRUCTURAS DE UN SISTEMA OPERATIVO
MAQUINAS VIRTUALES
MAQUINAS VIRTUALES
INSTALACIÓN DE SISTEMAS OPERATIVOS
Aunque la instalación de los S.O. actuales se realiza normalmente mediante una
serie de pasos guiados por un asistente que incorpora el propio disco de
instalación, es conveniente realizar una planificación.
El software de red que se instala en los clientes (para trabajar como cliente): con
S.O que permiten la conexión mediante identificación a un ordenador cliente que
actúa compartiendo un servicio o recurso. Se denominan estaciones de un grupo
de trabajo o terminales. Las estaciones de trabajo pueden estar coordinadas
entre sí (compartiendo aplicaciones y dispositivos) cuando forman un grupo de
trabajo. El software cliente de red debe instalarse sobre el S.O existente, en
aquellos S.O de equipo que no incluyan funciones propias de red.
APLICACIONES INFORMÁTICAS
Software de sistema o software base (como pueden ser pueden ser cargadores
de programas, sistemas operativos de estaciones de trabajo o de servidores,
controladores de hardware, utilidades) encargado de proporcionar al usuario el
control del sistemas informático de una forma desatendida con herramientas
interactivas para su correcto mantenimiento. Podemos incluir como caso especial
el software de programación (como son compiladores, ensambladores,
enlazadores, utilidades, etc.) que permiten desarrollar programas y aplicaciones
informáticas utilizando diferentes herramientas y los lenguajes de programación.
Una variante destacable es el llamado software con licencia Open Source iniciative que
detalla claramente la libertad a los usuarios para leer, modificar y redistribuir el código
fuente de un programa; los usuarios lo adaptan a sus necesidades, corrigen sus errores
a una velocidad impresionante, mayor a la aplicada en el desarrollo de software
convencional o cerrado, dando como resultado la producción de un mejor software.
LICENCIAS Y TIPOS DE LICENCIAS
Software propietario o privado: es aquel que sin permiso del propietario queda
prohibida la copia, redistribución o modificación. Para poder usar se suele pedir
permiso a la organización que lo desarrollo. Generalmente para su disponibilidad hay
que pagar bajo unos derechos de autor (un Copyryght). En conclusión, los propietarios
son los que establecen los derechos de uso, distribución, redistribución, copia,
modificación, cesión y en general cualquier otra consideración que se estime necesaria.
Los fabricantes de programas sometidos a este tipo de licencias por lo general ofrecen
servicios de soporte técnico y actualizaciones durante el tiempo de vida del producto,
también regulan el número de copias que pueden ser instaladas e incluso los fines
concretos para los cuales puede ser utilizado.
Software comercial: para su disponibilidad hay que realizar un pago. Puede existir
software libre y propietario de este tipo.
GPL: se la puede considerar como Licencia de software libre con protección heredada.
Su propósito es declarar que el software cubierto por esta licencia es software libre y
protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios,
impidiendo que este software sea integrado en software propietario. Es la licencia que
acompaña una gran variedad de software que incluye el núcleo del sistema operativo
Linux. Una de las más destacada es Licencia Pública General de GNU (GNU GPL) en la
que autor conserva los derechos de autor (copyright), y permite la redistribución y
modificación bajo términos diseñados para asegurarse de que todas las versiones
modificadas del software permanecen bajo los términos más restrictivos de la propia
licencia.
Licencias estilo MPL: licencia pública de Mozilla, es una licencia de software libre, de código
abierto y detallada desarrollada y mantenida por la Fundación Mozilla. Se caracteriza por ser un
híbrido de la Licencia BSD modificada y GNU General Public License (GPL) que busca equilibrar los
intereses de los desarrolladores de código abierto y propietario.
Shareware: es el software disponible con permiso para ser redistribuido, pero su uso está
limitado en tiempo o en funciones (no contienen todas los procesos). Para tener una
disponibilidad completa hay que realizar un pago. Generalmente, el código fuente no se
encuentra disponible.
La mejor forma de aprender es “haciendo”.
Educación y empresas forman un binomio inseparable