<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://1984.lsi.us.es/wiki-ssoo/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alehidcot</id>
		<title>Wiki de Sistemas Operativos - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://1984.lsi.us.es/wiki-ssoo/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alehidcot"/>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php/Especial:Contribuciones/Alehidcot"/>
		<updated>2026-06-10T15:00:19Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Introducci%C3%B3n_hist%C3%B3rica&amp;diff=3934</id>
		<title>Introducción histórica</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Introducci%C3%B3n_hist%C3%B3rica&amp;diff=3934"/>
				<updated>2018-01-27T18:37:19Z</updated>
		
		<summary type="html">&lt;p&gt;Alehidcot: /* Introducción histórica a los SSOO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducción histórica a los SSOO =&lt;br /&gt;
&lt;br /&gt;
* Breve introducción histórica de los sistemas operativos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Año 1939 ==&lt;br /&gt;
&lt;br /&gt;
* [https://es.wikipedia.org/wiki/Bombe EL BOMBE], en Reino Unido durante la II Guerra Mundial.&lt;br /&gt;
&lt;br /&gt;
== Años 40 ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Colossus_computer MARK-1 y MARK-2], en Reino Unido durante la II Guerra Mundial.&lt;br /&gt;
&lt;br /&gt;
* [http://es.wikipedia.org/wiki/ENIAC ENIAC], desarrollado en EE.UU, entre 1943 y 1946.&lt;br /&gt;
&lt;br /&gt;
http://www.youtube.com/watch?v=mxj6h5JyfXs&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/EDSAC EDSAC], desarrollado en Inglaterra en 1949.&lt;br /&gt;
&lt;br /&gt;
== Años 50 ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/UNIVAC_I UNIVAC I], en EE.UU (1951). Hasta 16 instalaciones.&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/IBM_701 IBM 701], en EE.UU (1952). Después vinieron IBM 702 y 650.&lt;br /&gt;
&lt;br /&gt;
== Años 60 ==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/IBM_7094 IBM 7094]&lt;br /&gt;
&lt;br /&gt;
* minicomputers: PDP-1 (primera máquina de Digital). Comienzos de la cultura hacker en el MIT (EE.UU).&lt;br /&gt;
&lt;br /&gt;
http://www.youtube.com/watch?v=7bzWnaH-0sg&lt;br /&gt;
&lt;br /&gt;
http://www.youtube.com/watch?v=tyDZjEcCgaI&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
* Unión Sovietica: Ural&lt;br /&gt;
http://www.youtube.com/watch?v=2IRN4nZrDwk&lt;br /&gt;
&lt;br /&gt;
== Años 70 ==&lt;br /&gt;
&lt;br /&gt;
* IBM 360. In 1960, a typical system sold for $2,900,000 or could be rented for $63,500 a month.&lt;br /&gt;
&lt;br /&gt;
* PDP-7 y PDP-11 de Digital. Miniordenadores en la universidades. Costaba un 5% del precio de un IBM 360.&lt;br /&gt;
&lt;br /&gt;
* 1969, UNIX: Dennis Ritchie and Ken Thompsom talks about UNIX.&lt;br /&gt;
http://www.youtube.com/watch?v=7FjX7r5icV8&lt;br /&gt;
&lt;br /&gt;
*En 1973, se crea el primer sistema operativo de tipo [http://es.wikipedia.org/wiki/Unix UNIX]&lt;br /&gt;
&lt;br /&gt;
* Programando un PDP-11 con los &amp;quot;switches&amp;quot; (no terminal gráfico):&lt;br /&gt;
http://www.youtube.com/watch?v=XV-7J5y1TQc&amp;amp;feature=related&lt;br /&gt;
http://www.youtube.com/watch?v=7zaaD_xP6nU&amp;amp;feature=related&lt;br /&gt;
http://www.youtube.com/watch?v=xiE2QldpQRQ&amp;amp;feature=related&lt;br /&gt;
http://www.youtube.com/watch?v=NUSn59iY8U8&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
* PDP-11 test program:&lt;br /&gt;
http://www.youtube.com/watch?v=Foch69Nm2F0&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
* PDP-11 con Video Terminal (VT) en 1973:&lt;br /&gt;
http://www.youtube.com/watch?v=7ND6oLXocR0&amp;amp;feature=related&lt;br /&gt;
http://vt100.net/vt_history (no video)&lt;br /&gt;
&lt;br /&gt;
* 1975, PDP-11/3:&lt;br /&gt;
http://www.youtube.com/watch?v=goOjxSZW1aQ&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
== Años 80 ==&lt;br /&gt;
&lt;br /&gt;
* Ejemplo de UNIX funcionando sobre PC AT:&lt;br /&gt;
http://www.youtube.com/watch?v=Aj1n2_qEq5k&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
* Personal computers (PC). 198X, IBM XT running PC-DOS 3.1&lt;br /&gt;
http://www.youtube.com/watch?v=9-RyvZxKufo&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
*En 1980, los fabricantes más conocidos crean sistemas operativos basados en UNIX, como IBM crea AIX, SUN crea Solaris, Digital crea The64,HP crea HP-UX y Microsoft crea Xenix. También paralelamente en la Universidad de California se crea un sistema operativo llamado BSD.&lt;br /&gt;
&lt;br /&gt;
* 1984, GNU (Richard Stallman):&lt;br /&gt;
http://www.youtube.com/watch?v=y1DFwtR755I&lt;br /&gt;
&lt;br /&gt;
* Software Libre:&lt;br /&gt;
http://www.youtube.com/watch?v=7x7LGrVvYZ4&lt;br /&gt;
&lt;br /&gt;
* 1984, 1st Apple macintosh:&lt;br /&gt;
http://www.youtube.com/watch?v=HhsWzJo2sN4&lt;br /&gt;
http://www.youtube.com/watch?v=G0FtgZNOD44&lt;br /&gt;
&lt;br /&gt;
* MS-DOS 5.0 (1985)&lt;br /&gt;
http://www.youtube.com/watch?v=dmEvPZUdAVI&lt;br /&gt;
&lt;br /&gt;
* 1986, Windows 1.0 (Steve Ballmer advert)&lt;br /&gt;
http://www.youtube.com/watch?v=sforhbLiwLA&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
* Microcomputer (home computers):&lt;br /&gt;
Sinclair Spectrum:&lt;br /&gt;
http://www.youtube.com/watch?v=Q17zTQMHxGs&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
Commodore:&lt;br /&gt;
http://www.youtube.com/watch?v=-yLRCmWJ_DU&lt;br /&gt;
&lt;br /&gt;
== Años 90 ==&lt;br /&gt;
&lt;br /&gt;
* En 1990, se porta BSD a Intel 80386.&lt;br /&gt;
&lt;br /&gt;
* IBM System/390 (mainframe)&lt;br /&gt;
http://www.youtube.com/watch?v=ytMgyrZm87A&amp;amp;feature=related&lt;br /&gt;
&lt;br /&gt;
* 1992, Linux:&lt;br /&gt;
http://www.youtube.com/user/TheLinuxFoundation#p/u/0/5ocq6_3-nEw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.3. [[Tipos de Sistemas Operativos|Tipos de sistemas operativos]]&lt;/div&gt;</summary>
		<author><name>Alehidcot</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=P%C3%A1gina_Principal&amp;diff=3933</id>
		<title>Página Principal</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=P%C3%A1gina_Principal&amp;diff=3933"/>
				<updated>2018-01-27T18:29:53Z</updated>
		
		<summary type="html">&lt;p&gt;Alehidcot: /* Importante */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bienvenido al wiki de la asignatura de Sistemas Operativos del departamento de Lenguajes y Sistemas Informáticos de la Universidad de Sevilla. ¡Contribuye!&lt;br /&gt;
&lt;br /&gt;
= Novedades y noticias =&lt;br /&gt;
&lt;br /&gt;
* Primer control, jueves 16 de noviembre (Temas 1, 2, 3, 4 y 5).&lt;br /&gt;
* Segundo control, jueves 7 de diciembre（Temas 6 y 7).&lt;br /&gt;
* Tercer control, jueves 21 de diciembre (Temas 8 y 9).&lt;br /&gt;
* Cuarto control, viernes 19 de enero ( Temas 10, 11, 12 y 13).&lt;br /&gt;
&lt;br /&gt;
= Importante =&lt;br /&gt;
&lt;br /&gt;
Si has realizado cambios en la Wiki y quieres que se te tenga en cuenta, añade tus datos a continuación:&lt;br /&gt;
&lt;br /&gt;
    Apellidos, Nombre (UVUS)&lt;br /&gt;
 Gómez Mateos, Juan (juagommat)&lt;br /&gt;
 Leal Mateu, José María (josleamat)&lt;br /&gt;
 Carande Cabeza, Fco. Javier (fracarcab)&lt;br /&gt;
 Puerto Borreguero, Antonio J. (antpuebor)&lt;br /&gt;
 Romero Vázquez, Damián (damromvaz)&lt;br /&gt;
 Hidalgo Cotán, Alejandro (alehidcot)&lt;br /&gt;
&lt;br /&gt;
= Notas exámenes =&lt;br /&gt;
&lt;br /&gt;
                           C1    C2	C3    C4&lt;br /&gt;
 Romero Sánchez, Pablo     3     8,75	5     5&lt;br /&gt;
 Tejera García, Juan M.    4     8	2,5   6,5&lt;br /&gt;
 Celis Gómez, Juan M.      3     -	-     -&lt;br /&gt;
 Carande Cabeza, Javier    8     7,5	5     6,25&lt;br /&gt;
 Herrería Orio, Asier      5     8	3     8,75&lt;br /&gt;
 Heredia Pérez, Elena      9     7	3,25  2,75&lt;br /&gt;
 Jimenez Romero, Jesús     9,25  9,5	6,25  5,5&lt;br /&gt;
 Gómez Mateos, Juan        7     6,25	3,75  8,75&lt;br /&gt;
 Chura Pascual, Albaro     4,25  3,75	3,75  8&lt;br /&gt;
 Romero Vázquez, Damián    7,5   6,75	5,25  6,75&lt;br /&gt;
 Santos Aguila, David      4,5   0,5	3,5   -&lt;br /&gt;
 Puerto Borrego, Antonio   5,5   6	6,25  8,5&lt;br /&gt;
 Villamor Carrasco, José   1     6,25	0     -&lt;br /&gt;
 García Arroyo, Manuel     7,5   3,25	4,25  6,25&lt;br /&gt;
 Serrano Fernández, Jesús  6,5   -	5     8,75&lt;br /&gt;
 Rus Gómez, Alberto        2     8,75	2,25  7,25&lt;br /&gt;
 Juan Rodríguez, Simón     4,5   10	5     6,25&lt;br /&gt;
 Jiménez Quintero, Eduardo 4     7,5	4,5   8,5&lt;br /&gt;
 Lobato Salas, Jesús       2     8,75	8,25  6&lt;br /&gt;
 Triguero Navarro, Antonio 8     8,25	10    8,25&lt;br /&gt;
 Gutiérrez Sanjuán, Isaac  0,25  2,5	-     -&lt;br /&gt;
 García Latorre, Isaías    3     4,25	-     -&lt;br /&gt;
 Viana Hirasawa, André H.  9,25  8,75	5,5   3,75&lt;br /&gt;
 Blasco Vázquez, Javier    8,5   7,5	9,5   6&lt;br /&gt;
 Navas Gutiérrez, Ángeles  3     4,25	4,5   6&lt;br /&gt;
 Leal Malteu, José M.      6     5,5	2,5   7&lt;br /&gt;
 Moreno Murube, Alberto    7     7,5	1,25  9,5&lt;br /&gt;
 Belloso Caso, Gabriel     2,75  7,5	7,5   10&lt;br /&gt;
 Valdivieso Casado, José   10    10	5,25  5,75&lt;br /&gt;
 Hidalgo Cotán, Alejandro  7     10	7,5   6,25&lt;br /&gt;
 Viera Chaves, Fco. Javier 4     7,5	5,5   10&lt;br /&gt;
 Oviedo Ramirez, Alexis    4,5   5,5	6,5   8,75&lt;br /&gt;
 Olabarrieta Eduardo, I    6,5   8	2,75  7,5&lt;br /&gt;
 Reina Ballesta, Irene     6     2,5	3,75  4,25&lt;br /&gt;
 Macias Vellarino, Juan    2     -	-     -&lt;br /&gt;
 Ruiz Porro, Jorge         2     0,5	-     -&lt;br /&gt;
 Martagón Cabrera, Fco.    2,5   3,75	1,25  -&lt;br /&gt;
 Alonso Sánchez, Víctor    4     8,75	2,5   6&lt;br /&gt;
 Gustos Hidalgo, Eduardo   -     5,5	5     5&lt;br /&gt;
&lt;br /&gt;
Revisión: Miércoles 24 a las 12h30.&lt;br /&gt;
&lt;br /&gt;
= Unidades didácticas =&lt;br /&gt;
&lt;br /&gt;
A continuación encontrarás las unidades didácticas que forman parte de la asignatura.&lt;br /&gt;
&lt;br /&gt;
== Introducción a los Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* 1.1. [[Qué es un  Sistema operativo|Qué es un Sistema Operativo]]&lt;br /&gt;
* 1.2. [[Introducción histórica|Breve introducción histórica a los Sistemas Operativos]]&lt;br /&gt;
* 1.3. [[Tipos de Sistemas Operativos|Tipos de Sistemas Operativos]]&lt;br /&gt;
&lt;br /&gt;
== Fundamentos de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* 2.1. [[Organización básica de un ordenador]]&lt;br /&gt;
* 2.2. [[Modos de operación de la CPU|Modos de operación de la CPU]]&lt;br /&gt;
* 2.3. [[Interrupciones y excepciones|Interrupciones y excepciones]]&lt;br /&gt;
* 2.4. [[Conceptos básicos|Conceptos básicos]]&lt;br /&gt;
* 2.5. [[Arranque del sistema|Arranque del sistema]]&lt;br /&gt;
* 2.6. [[Componentes básicos de un sistema operativo|Componentes básicos de un sistema operativo]]&lt;br /&gt;
* 2.7. [[Llamadas al sistema|Llamadas al sistema]]&lt;br /&gt;
* 2.8. [[Ejercicios fundamentos Sistemas Operativos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Modelos de diseño de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* 3.1. [[Modelos de Diseño de Sistemas Operativos|Modelos de diseño de sistemas operativos]]&lt;br /&gt;
* 3.2. [[Virtualización]]&lt;br /&gt;
* 3.3. [[Ejercicios 3|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Procesos ==&lt;br /&gt;
* 4.1. [[Multiprogramación|La multiprogramación]]&lt;br /&gt;
* 4.2. [[Estados de los procesos|Estados de los procesos]]&lt;br /&gt;
* 4.3. [[Planificador de procesos|El planificador de procesos]]&lt;br /&gt;
* 4.4. [[Comportamiento de los procesos|El comportamiento de los procesos según el planificador]]&lt;br /&gt;
* 4.5. [[Bloque de control de procesos|El bloque de control del proceso]]&lt;br /&gt;
* 4.6. [[Conmutación de procesos|La conmutación de procesos]]&lt;br /&gt;
* 4.7. [[Hilos|Hilos]]&lt;br /&gt;
* 4.8. [[Ejercicios Procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Planificación de Procesos ==&lt;br /&gt;
* 5.1. [[Planificación de procesos|La planificación de procesos]]&lt;br /&gt;
* 5.2. [[Índices de evaluación|Índices de evaluación de la planificación de procesos]]&lt;br /&gt;
* 5.3. [[Criterios de planificación|Criterios de planificación]]&lt;br /&gt;
* 5.4. [[Planificadores de sistemas operativos existentes|Planificadores de sistemas operativos existentes]]&lt;br /&gt;
* 5.5. [[Planificación de procesos de tiempo real|La planificación de procesos de tiempo real]]&lt;br /&gt;
* 5.6. [[Planificación en sistemas multiprocesadores|La planificación de procesos en sistemas multiprocesadores]]&lt;br /&gt;
* 5.7. [[Ejercicios otros aspectos de la planificación|Ejercicios]]&lt;br /&gt;
* 5.8. [[Ejercicios planificación de procesos|Ejercicios]]&lt;br /&gt;
* 5.9. [[Ejercicios_simples_de_planificación_de_procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Concurrencia de procesos ==&lt;br /&gt;
&lt;br /&gt;
* 6.1. [[Concurrencia de procesos|Concurrencia de procesos]]&lt;br /&gt;
* 6.2. [[Mecanismos de sincronización|Control optimista y pesimista de la concurrencia]]&lt;br /&gt;
* 6.3. [[Cerrojos|Cerrojos]]&lt;br /&gt;
* 6.4. [[Ejercicio de concurrencia de procesos|Ejercicios]]&lt;br /&gt;
* 6.5. [[Semáforos|Semáforos]]&lt;br /&gt;
* 6.6. [[Monitores|Monitores]]&lt;br /&gt;
* 6.7. [[Mensajería|Mensajería]]&lt;br /&gt;
* 6.8. [[Ejercicios sincronización y comunicación|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Interbloqueo ==&lt;br /&gt;
&lt;br /&gt;
* 7.1. [[Definición de interbloqueo|Definición]]&lt;br /&gt;
* 7.2. [[Condiciones para el interbloqueo y estrategias de resolución|Modelado y Estrategias]]&lt;br /&gt;
* 7.3. [[Algoritmo para averiguar interbloqueo|Algoritmo del banquero]]&lt;br /&gt;
* 7.4. [[Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Administración de memoria ==&lt;br /&gt;
&lt;br /&gt;
* 8.1. [[Introducción|Introducción]]&lt;br /&gt;
* 8.2. [[SO multiprogramables con particiones variables|SO multiprogramables con particiones variables]]&lt;br /&gt;
* 8.3. [[Segmentación|Segmentación]]&lt;br /&gt;
* 8.4. [[Paginación|Paginación]]&lt;br /&gt;
* 8.5. [[Sistema combinado|Sistema combinado]]&lt;br /&gt;
* 8.6. [[Ejercicios administración de memoria contigua|Ejercicios (Administración de memoria contigua)]]&lt;br /&gt;
* 8.7. [[Ejemplo de segmentación, paginación y combinado|Ejercicios (Segmentación, paginación y sistemas combinados)]]&lt;br /&gt;
&lt;br /&gt;
== Memoria virtual ==&lt;br /&gt;
&lt;br /&gt;
* 9.1. [[Memoria Virtual|Introducción]]&lt;br /&gt;
* 9.2. [[Criterios de reemplazo|Criterios de reemplazo]]&lt;br /&gt;
* 9.3. [[Memoria virtual con multiprogramacion|Otros aspectos relacionados con la memoria virtual]]&lt;br /&gt;
* 9.4. [[Ejercicios memoria virtual|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Entrada/Salida ==&lt;br /&gt;
&lt;br /&gt;
* 10.1. [[EstructuraES|Estructura dispositivo E/S]]&lt;br /&gt;
* 10.2. [[GestionES|Modos de gestionar dispositivos E/S]]&lt;br /&gt;
* 10.3. [[Diseño modular E/S|Diseño modular E/S]]&lt;br /&gt;
* 10.4. [[Ejercicios de Entrada/Salida|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Gestión E/S ==&lt;br /&gt;
&lt;br /&gt;
* 11.1. [[Discos Magnéticos|Discos Magnéticos]]&lt;br /&gt;
* 11.2. [[Mejoras de tiempos de desplazamiento|Mejoras de tiempos de desplazamiento]]&lt;br /&gt;
* 11.3. [[Mejoras en la demora de rotación|Mejoras en la demora de rotación]]&lt;br /&gt;
* 11.4. [[Tipos de errores en discos magnéticos|Tipos de errores en discos magnéticos]]&lt;br /&gt;
* 11.5. [[Reloj hardware: Intel 8253]]&lt;br /&gt;
* 11.6. [[Ejercicios Gestión L/E|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Administración de archivos ==&lt;br /&gt;
&lt;br /&gt;
* 12.1. [[Introducción en la administración de archivos|Introducción en la administración de archivos]]&lt;br /&gt;
* 12.2. [[FAT|FAT]]&lt;br /&gt;
* 12.3. [[EXT2 |EXT2]]&lt;br /&gt;
* 12.4. [[Ejercicios Administración Ficheros|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Anexo ==&lt;br /&gt;
&lt;br /&gt;
Esta sección contiene información interesante pero que no pertenece al temario de la asignatura.&lt;br /&gt;
&lt;br /&gt;
* Todo lo que siempre has querido saber sobre el protocolo SSH está [[SSH|aquí]].&lt;br /&gt;
* Instrucciones para emular BATHOS usando QEMU [[bathos_QEMU|aquí]].&lt;br /&gt;
* Instrucciones para emular XV6 usando QEMU [[xv6|aquí]].&lt;/div&gt;</summary>
		<author><name>Alehidcot</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Llamadas_al_sistema&amp;diff=3932</id>
		<title>Llamadas al sistema</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Llamadas_al_sistema&amp;diff=3932"/>
				<updated>2018-01-27T18:28:43Z</updated>
		
		<summary type="html">&lt;p&gt;Alehidcot: /* Familias de llamadas al sistema operativo: POSIX y WIN32/64 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 2.7. Llamadas al sistema =&lt;br /&gt;
&lt;br /&gt;
== Definición de llamada al sistema ==&lt;br /&gt;
&lt;br /&gt;
Una llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos del sistema requiere la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos. En otras palabras, el sistema operativo actúa como intermediario, ofreciendo una interfaz de programación (API) que el programa puede usar en cualquier momento para solicitar recursos gestionados por el sistema operativo.&lt;br /&gt;
&lt;br /&gt;
Algunos ejemplos de llamadas al sistema son las siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''write''', que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o un disco magnético.&lt;br /&gt;
* '''read''', que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magnético.&lt;br /&gt;
* '''open''', que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.&lt;br /&gt;
* '''close''', que se emplea para cerrar un descriptor de fichero.&lt;br /&gt;
&lt;br /&gt;
Todo sistema operativo ofrece un conjunto de llamadas al sistema. En el caso de Linux 3.0, se ofrecen un total de [http://syscalls.kernelgrok.com/ 345 llamadas al sistema]. El sistema operativo xv6 ofrece también una lista de llamadas al sistema [https://github.com/mit-pdos/xv6-public/blob/master/syscall.c#L107 mucho menor] al ser un sistema operativo muy sencillo.&lt;br /&gt;
&lt;br /&gt;
Toda llamada al sistema se identifica de manera unívoca mediante un valor numérico que no debe ser modificado a lo largo de la vida del sistema operativo para evitar que se rompa la compatibilidad hacia atrás.&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra en C la invocación de las llamadas al sistema '''write''', '''read''', '''open''' y '''close'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	char buf[1024];&lt;br /&gt;
	int fd, ret;&lt;br /&gt;
&lt;br /&gt;
	fd = open(&amp;quot;f123&amp;quot;, O_RDONLY);&lt;br /&gt;
	if (fd &amp;lt; 0) {&lt;br /&gt;
		perror(&amp;quot;open&amp;quot;);&lt;br /&gt;
		exit(EXIT_FAILURE);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ret = read(fd, buf, sizeof(buf));&lt;br /&gt;
	if (ret &amp;lt; 0) {&lt;br /&gt;
		perror(&amp;quot;read&amp;quot;);&lt;br /&gt;
		exit(EXIT_FAILURE);&lt;br /&gt;
	}&lt;br /&gt;
	close(fd);&lt;br /&gt;
&lt;br /&gt;
	write(1, buf, ret);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Familias de llamadas al sistema operativo: POSIX y WIN32/64 ===&lt;br /&gt;
&lt;br /&gt;
Las dos familias de APIs estandarizas más importantes son:&lt;br /&gt;
&lt;br /&gt;
* [http://es.wikipedia.org/wiki/POSIX POSIX].&lt;br /&gt;
* WIN32/64, empleada en los sistemas operativos de tipo-Windows. Además, existen emuladores como '''Wine''' ''(permite instalar y ejecutar aplicaciones de Windows en distribuciones de Linux)'' que también las implementan.&lt;br /&gt;
&lt;br /&gt;
== Implementación de llamadas al sistema ==&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra el código en ensamblador de x86 para invocar a la llamada al sistema '''write''' que permite escribir un dato en cualquier dispositivo. En concreto, se va a escribir una cadena por el dispositivo de salida '''pantalla''', que se identifica mediante el descriptor de fichero número 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
section .text&lt;br /&gt;
    global _start&lt;br /&gt;
_start:&lt;br /&gt;
    mov eax, 4         ;cargamos el número de la llamada al sistema en el regitro eax&lt;br /&gt;
    mov ebx, 1         ;cargamos el descriptor de fichero sobre el que queremos escribir&lt;br /&gt;
    mov ecx, string    ;cargamos en ecx la dirección de la cadena a imprimir&lt;br /&gt;
    mov edx, lenght    ;cargamos en edx el tamaño de la cadena a imprimir&lt;br /&gt;
    int 80h            ;se invoca al de&lt;br /&gt;
&lt;br /&gt;
    mov eax, 1&lt;br /&gt;
    mov ebx, 0&lt;br /&gt;
    int 80h&lt;br /&gt;
&lt;br /&gt;
section .data&lt;br /&gt;
    string: db &amp;quot;Hola Mundo&amp;quot;, 0x0A&lt;br /&gt;
    lenght: equ 13&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La instrucción ''int'' forma parte del conjunto de instrucciones de procesadores x86. Esta instrucción emite una [[Gestión_de_Entrada/Salida|interrupción]] por software cuyo tratamiento es realizado por la rutina ''dispatcher''. Dicha rutina se encarga del tratamiento de la interrupción por software número 80.&lt;br /&gt;
&lt;br /&gt;
En siguiente segmento de código muestra una llamada a sistema en un procesador de 32 bits:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
_start:&lt;br /&gt;
    movl $4, %eax   ; use the write syscall&lt;br /&gt;
    movl $1, %ebx   ; write to stdout&lt;br /&gt;
    movl $msg, %ecx ; use string &amp;quot;Hello World&amp;quot;&lt;br /&gt;
    movl $12, %edx  ; write 12 characters&lt;br /&gt;
    int $0x80       ; make syscall&lt;br /&gt;
    &lt;br /&gt;
    movl $1, %eax   ; use the _exit syscall&lt;br /&gt;
    movl $0, %ebx   ; error code 0&lt;br /&gt;
    int $0x80       ; make syscall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Análogamente en un procesador de 64 bits:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
_start:&lt;br /&gt;
    movq $1, %rax   ; use the write syscall&lt;br /&gt;
    movq $1, %rdi   ; write to stdout&lt;br /&gt;
    movq $msg, %rsi ; use string &amp;quot;Hello World&amp;quot;&lt;br /&gt;
    movq $12, %rdx  ; write 12 characters&lt;br /&gt;
    syscall         ; make syscall&lt;br /&gt;
    &lt;br /&gt;
    movq $60, %rax  ; use the _exit syscall&lt;br /&gt;
    movq $0, %rdi   ; error code 0&lt;br /&gt;
    syscall         ; make syscall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de llamadas al sistema de Linux (64 bits):''' http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/&lt;br /&gt;
&lt;br /&gt;
[http://cs.lmu.edu/~ray/notes/linuxsyscalls/ Implementación de llamadas al sistema en Linux (32 y 64 bit)]&lt;br /&gt;
&lt;br /&gt;
== El ''dispatcher'' ==&lt;br /&gt;
&lt;br /&gt;
El dispatcher, que forma parte del SO, se ejecuta cuando se invoca una llamada al sistema. &lt;br /&gt;
Cuando un proceso hace una llamada al sistema, el dispatcher, se encarga de invocar la llamada que el proceso ha solicitado.&lt;br /&gt;
 &lt;br /&gt;
Tiene un comportamiento sincronizado, cuando recibe una llamada se la pasa al sistema operativo y hasta que no recibe respuesta no atiende otra llamada. &lt;br /&gt;
&lt;br /&gt;
En el caso de x86, el dispatcher consulta el registro eax e invoca a la llamada al sistema identificada con dicha numeración.&lt;br /&gt;
&lt;br /&gt;
El sistema xv6 ofrece un dispatcher muy sencillo, que se puede consultar [https://github.com/mit-pdos/xv6-public/blob/master/syscall.c#L132 aquí].&lt;br /&gt;
&lt;br /&gt;
== El punto de entrada == &lt;br /&gt;
&lt;br /&gt;
Es la posición de memoria desde la cual es posible solicitarle servicios al sistema operativo. Normalmente hay un único punto de entrada.&lt;br /&gt;
En algunos SO se realiza mediante llamadas a subprogramas. La dirección de memoria del punto de entrada puede cambiar si se modifica el SO. En algunos SO este problema lo solucionan usando una dirección fija, mientras en otros han preferido usar una referencia a dicha dirección.&lt;br /&gt;
&lt;br /&gt;
Lo ideal es que sean compatibles a lo largo del tiempo (aunque Windows normalmente no lo respeta).&lt;br /&gt;
&lt;br /&gt;
2.8. [[Ejercicios_fundamentos_Sistemas_Operativos | Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
3.1. [[Modelos_de_Diseño_de_Sistemas_Operativos | Modelos de Diseño de SSOO]]&lt;/div&gt;</summary>
		<author><name>Alehidcot</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Llamadas_al_sistema&amp;diff=3931</id>
		<title>Llamadas al sistema</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Llamadas_al_sistema&amp;diff=3931"/>
				<updated>2018-01-27T18:28:22Z</updated>
		
		<summary type="html">&lt;p&gt;Alehidcot: /* Familias de llamadas al sistema operativo: POSIX y WIN32/64 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 2.7. Llamadas al sistema =&lt;br /&gt;
&lt;br /&gt;
== Definición de llamada al sistema ==&lt;br /&gt;
&lt;br /&gt;
Una llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos del sistema requiere la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos. En otras palabras, el sistema operativo actúa como intermediario, ofreciendo una interfaz de programación (API) que el programa puede usar en cualquier momento para solicitar recursos gestionados por el sistema operativo.&lt;br /&gt;
&lt;br /&gt;
Algunos ejemplos de llamadas al sistema son las siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''write''', que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o un disco magnético.&lt;br /&gt;
* '''read''', que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magnético.&lt;br /&gt;
* '''open''', que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.&lt;br /&gt;
* '''close''', que se emplea para cerrar un descriptor de fichero.&lt;br /&gt;
&lt;br /&gt;
Todo sistema operativo ofrece un conjunto de llamadas al sistema. En el caso de Linux 3.0, se ofrecen un total de [http://syscalls.kernelgrok.com/ 345 llamadas al sistema]. El sistema operativo xv6 ofrece también una lista de llamadas al sistema [https://github.com/mit-pdos/xv6-public/blob/master/syscall.c#L107 mucho menor] al ser un sistema operativo muy sencillo.&lt;br /&gt;
&lt;br /&gt;
Toda llamada al sistema se identifica de manera unívoca mediante un valor numérico que no debe ser modificado a lo largo de la vida del sistema operativo para evitar que se rompa la compatibilidad hacia atrás.&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra en C la invocación de las llamadas al sistema '''write''', '''read''', '''open''' y '''close'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	char buf[1024];&lt;br /&gt;
	int fd, ret;&lt;br /&gt;
&lt;br /&gt;
	fd = open(&amp;quot;f123&amp;quot;, O_RDONLY);&lt;br /&gt;
	if (fd &amp;lt; 0) {&lt;br /&gt;
		perror(&amp;quot;open&amp;quot;);&lt;br /&gt;
		exit(EXIT_FAILURE);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ret = read(fd, buf, sizeof(buf));&lt;br /&gt;
	if (ret &amp;lt; 0) {&lt;br /&gt;
		perror(&amp;quot;read&amp;quot;);&lt;br /&gt;
		exit(EXIT_FAILURE);&lt;br /&gt;
	}&lt;br /&gt;
	close(fd);&lt;br /&gt;
&lt;br /&gt;
	write(1, buf, ret);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Familias de llamadas al sistema operativo: POSIX y WIN32/64 ===&lt;br /&gt;
&lt;br /&gt;
Las dos familias de APIs estandarizas más importantes son:&lt;br /&gt;
&lt;br /&gt;
* [http://es.wikipedia.org/wiki/POSIX POSIX].&lt;br /&gt;
* WIN32/64, empleada en los sistemas operativos de tipo-Windows. Además, existen emuladores como '''Wine''' ''permite instalar y ejecutar aplicaciones de Windows en distribuciones de Linux'' que también las implementan.&lt;br /&gt;
&lt;br /&gt;
== Implementación de llamadas al sistema ==&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra el código en ensamblador de x86 para invocar a la llamada al sistema '''write''' que permite escribir un dato en cualquier dispositivo. En concreto, se va a escribir una cadena por el dispositivo de salida '''pantalla''', que se identifica mediante el descriptor de fichero número 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
section .text&lt;br /&gt;
    global _start&lt;br /&gt;
_start:&lt;br /&gt;
    mov eax, 4         ;cargamos el número de la llamada al sistema en el regitro eax&lt;br /&gt;
    mov ebx, 1         ;cargamos el descriptor de fichero sobre el que queremos escribir&lt;br /&gt;
    mov ecx, string    ;cargamos en ecx la dirección de la cadena a imprimir&lt;br /&gt;
    mov edx, lenght    ;cargamos en edx el tamaño de la cadena a imprimir&lt;br /&gt;
    int 80h            ;se invoca al de&lt;br /&gt;
&lt;br /&gt;
    mov eax, 1&lt;br /&gt;
    mov ebx, 0&lt;br /&gt;
    int 80h&lt;br /&gt;
&lt;br /&gt;
section .data&lt;br /&gt;
    string: db &amp;quot;Hola Mundo&amp;quot;, 0x0A&lt;br /&gt;
    lenght: equ 13&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La instrucción ''int'' forma parte del conjunto de instrucciones de procesadores x86. Esta instrucción emite una [[Gestión_de_Entrada/Salida|interrupción]] por software cuyo tratamiento es realizado por la rutina ''dispatcher''. Dicha rutina se encarga del tratamiento de la interrupción por software número 80.&lt;br /&gt;
&lt;br /&gt;
En siguiente segmento de código muestra una llamada a sistema en un procesador de 32 bits:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
_start:&lt;br /&gt;
    movl $4, %eax   ; use the write syscall&lt;br /&gt;
    movl $1, %ebx   ; write to stdout&lt;br /&gt;
    movl $msg, %ecx ; use string &amp;quot;Hello World&amp;quot;&lt;br /&gt;
    movl $12, %edx  ; write 12 characters&lt;br /&gt;
    int $0x80       ; make syscall&lt;br /&gt;
    &lt;br /&gt;
    movl $1, %eax   ; use the _exit syscall&lt;br /&gt;
    movl $0, %ebx   ; error code 0&lt;br /&gt;
    int $0x80       ; make syscall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Análogamente en un procesador de 64 bits:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
_start:&lt;br /&gt;
    movq $1, %rax   ; use the write syscall&lt;br /&gt;
    movq $1, %rdi   ; write to stdout&lt;br /&gt;
    movq $msg, %rsi ; use string &amp;quot;Hello World&amp;quot;&lt;br /&gt;
    movq $12, %rdx  ; write 12 characters&lt;br /&gt;
    syscall         ; make syscall&lt;br /&gt;
    &lt;br /&gt;
    movq $60, %rax  ; use the _exit syscall&lt;br /&gt;
    movq $0, %rdi   ; error code 0&lt;br /&gt;
    syscall         ; make syscall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de llamadas al sistema de Linux (64 bits):''' http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/&lt;br /&gt;
&lt;br /&gt;
[http://cs.lmu.edu/~ray/notes/linuxsyscalls/ Implementación de llamadas al sistema en Linux (32 y 64 bit)]&lt;br /&gt;
&lt;br /&gt;
== El ''dispatcher'' ==&lt;br /&gt;
&lt;br /&gt;
El dispatcher, que forma parte del SO, se ejecuta cuando se invoca una llamada al sistema. &lt;br /&gt;
Cuando un proceso hace una llamada al sistema, el dispatcher, se encarga de invocar la llamada que el proceso ha solicitado.&lt;br /&gt;
 &lt;br /&gt;
Tiene un comportamiento sincronizado, cuando recibe una llamada se la pasa al sistema operativo y hasta que no recibe respuesta no atiende otra llamada. &lt;br /&gt;
&lt;br /&gt;
En el caso de x86, el dispatcher consulta el registro eax e invoca a la llamada al sistema identificada con dicha numeración.&lt;br /&gt;
&lt;br /&gt;
El sistema xv6 ofrece un dispatcher muy sencillo, que se puede consultar [https://github.com/mit-pdos/xv6-public/blob/master/syscall.c#L132 aquí].&lt;br /&gt;
&lt;br /&gt;
== El punto de entrada == &lt;br /&gt;
&lt;br /&gt;
Es la posición de memoria desde la cual es posible solicitarle servicios al sistema operativo. Normalmente hay un único punto de entrada.&lt;br /&gt;
En algunos SO se realiza mediante llamadas a subprogramas. La dirección de memoria del punto de entrada puede cambiar si se modifica el SO. En algunos SO este problema lo solucionan usando una dirección fija, mientras en otros han preferido usar una referencia a dicha dirección.&lt;br /&gt;
&lt;br /&gt;
Lo ideal es que sean compatibles a lo largo del tiempo (aunque Windows normalmente no lo respeta).&lt;br /&gt;
&lt;br /&gt;
2.8. [[Ejercicios_fundamentos_Sistemas_Operativos | Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
3.1. [[Modelos_de_Diseño_de_Sistemas_Operativos | Modelos de Diseño de SSOO]]&lt;/div&gt;</summary>
		<author><name>Alehidcot</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Arranque_del_sistema&amp;diff=3930</id>
		<title>Arranque del sistema</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Arranque_del_sistema&amp;diff=3930"/>
				<updated>2018-01-27T18:23:42Z</updated>
		
		<summary type="html">&lt;p&gt;Alehidcot: /* Arranque de un sistema operativo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Arranque de un sistema operativo==&lt;br /&gt;
&lt;br /&gt;
Un poco de historia:&lt;br /&gt;
* Inicialmente, las instrucciones se introducían a mano desde un panel.&lt;br /&gt;
* Los equipos más grandes tenían las instrucciones en una ROM, las cuales se copiaban a la memoria RAM.&lt;br /&gt;
* Los equipos basados en microprocesadores tienen las instrucciones en una memoria junto a la BIOS. La ventaja de esto es que no hay que                                                                                           copiarlas a la RAM, el inconveniente es que dichas instrucciones ocupan memoria.&lt;br /&gt;
&lt;br /&gt;
A partir de aquí, el proceso de arranque difiere, en esta entrada trataremos el arranque de los equipos tipo PC.&lt;br /&gt;
&lt;br /&gt;
Estos equipos, al ser de arquitectura abierta, no sólo contemplan la BIOS como su propia ROM, sino también dispositivos externos.&lt;br /&gt;
&lt;br /&gt;
El arranque de un sistema operativo suele ser un proceso muy común hasta cierto punto, en el cual difieren en función del tipo de sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Se inicia el procesador y se prepara para ejecutar instrucciones, las condiciones iniciales son fijas.&lt;br /&gt;
&lt;br /&gt;
2. Se ejecutan las primeras instrucciones.&lt;br /&gt;
&lt;br /&gt;
3. Se inicia lo principal (comprobación de memoria, pantalla, teclado, reloj…).&lt;br /&gt;
&lt;br /&gt;
4. Se inician los dispositivos adicionales con ROM propia. Se miran ciertas posiciones de memoria, y si no están vacías, la ROM principal salta ahí para iniciar el dispositivo (disco duro, disquete,…).&lt;br /&gt;
&lt;br /&gt;
5. Se determina de dónde se cargará el SO. Para esto, la BIOS carga un pequeño programa que es el que inicia el SO.&lt;br /&gt;
&lt;br /&gt;
En caso de que éste se inicie desde el disco duro, la BIOS consultará la posición 0 del disco, en la que se encuentra la tabla de particiones, donde se indica dónde está el programa de carga del SO, el cual se iniciará y continuará con el proceso de arranque.&lt;br /&gt;
&lt;br /&gt;
6. Se carga la parte principal del sistema operativo.&lt;br /&gt;
&lt;br /&gt;
7. Se inicia el sistema operativo.&lt;br /&gt;
* Se inician los elementos fundamentales del sistema operativo.&lt;br /&gt;
* Se inician los elementos fundamentales de lectura/escritura (drivers).&lt;br /&gt;
* Se comprueba el sistema de archivos.&lt;br /&gt;
* Se completan las pruebas y se carga el software adicional.&lt;br /&gt;
* Se arrancan los procesos necesarios del SO para que realice sus inicializaciones particulares.&lt;br /&gt;
* En ciertos casos, se inicia un archivo de órdenes que arranca los programas de servicios.&lt;br /&gt;
&lt;br /&gt;
A partir de este punto, se realiza una nueva división, en función de si el SO es interactivo sin identificación de usuario (MS-DOS, por ejemplo), si requiere identificación, si es por lotes sencillos o si es por lotes superior.&lt;br /&gt;
&lt;br /&gt;
8a. Se lanza el intérprete de órdenes y la interfaz gráfica.&lt;br /&gt;
&lt;br /&gt;
8b. Se lanza un proceso de log-in por cada terminal, el cual se mantiene en espera hasta que se identifique correctamente, punto en el cual, se lanzará el intérprete y la UI (interfaz de usuario).&lt;br /&gt;
&lt;br /&gt;
8c. Se pone en marcha la cola de trabajos.&lt;br /&gt;
&lt;br /&gt;
8d. Se inicia sesión en la consola del operador y éste montará los dispositivos, fijará los criterios de funcionamiento…&lt;br /&gt;
&lt;br /&gt;
2.6.[[Componentes_básicos_de_un_sistema_operativo| Componentes básicos de un sistema operativo]]&lt;/div&gt;</summary>
		<author><name>Alehidcot</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Arranque_del_sistema&amp;diff=3929</id>
		<title>Arranque del sistema</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Arranque_del_sistema&amp;diff=3929"/>
				<updated>2018-01-27T18:22:44Z</updated>
		
		<summary type="html">&lt;p&gt;Alehidcot: /* Arranque de un sistema operativo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Arranque de un sistema operativo==&lt;br /&gt;
&lt;br /&gt;
Un poco de historia:&lt;br /&gt;
* Inicialmente, las instrucciones se introducían a mano desde un panel.&lt;br /&gt;
* Los equipos más grandes tenían las instrucciones en una ROM, las cuales se copiaban a la memoria RAM.&lt;br /&gt;
* Los equipos basados en microprocesadores tienen las instrucciones en una memoria junto a la BIOS. La ventaja de esto es que no hay que                                                                                           copiarlas a la RAM, el inconveniente es que dichas instrucciones ocupan memoria.&lt;br /&gt;
&lt;br /&gt;
A partir de aquí, el proceso de arranque difiere, en esta entrada trataremos el arranque de los equipos tipo PC.&lt;br /&gt;
&lt;br /&gt;
Estos equipos, al ser de arquitectura abierta, no sólo contemplan la BIOS como su propia ROM, sino también dispositivos externos.&lt;br /&gt;
&lt;br /&gt;
El arranque de un sistema operativo suele ser un proceso muy común hasta cierto punto, en el cual difieren en función del tipo de sistema.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Se inicia el procesador y se prepara para ejecutar instrucciones, las condiciones iniciales son fijas.&lt;br /&gt;
&lt;br /&gt;
2. Se ejecutan las primeras instrucciones.&lt;br /&gt;
&lt;br /&gt;
3. Se inicia lo principal (comprobación de memoria, pantalla, teclado, reloj…).&lt;br /&gt;
&lt;br /&gt;
4. Se inician los dispositivos adicionales con ROM propia. Se miran ciertas posiciones de memoria, y si no están vacías, la ROM principal salta ahí para iniciar el dispositivo (disco duro, disquete,…).&lt;br /&gt;
&lt;br /&gt;
5. Se determina de dónde se cargará el SO. Para esto, la BIOS carga un pequeño programa que es el que inicia el SO.&lt;br /&gt;
&lt;br /&gt;
En caso de que éste se inicie desde el disco duro, la BIOS consultará la posición 0 del disco, en la que se encuentra la tabla de particiones, donde se indica dónde está el programa de carga del SO, el cual se iniciará y continuará con el proceso de arranque.&lt;br /&gt;
&lt;br /&gt;
6. Se carga la parte principal del sistema operativo.&lt;br /&gt;
&lt;br /&gt;
7. Se inicia el sistema operativo.&lt;br /&gt;
* Se inician los elementos fundamentales del sistema operativo.&lt;br /&gt;
* Se inician los elementos fundamentales de lectura/escritura (drivers).&lt;br /&gt;
* Se comprueba el sistema de archivos.&lt;br /&gt;
* Se completan las pruebas y se carga el software adicional.&lt;br /&gt;
* Se arrancan los procesos necesarios del SO para que realice sus inicializaciones particulares.&lt;br /&gt;
* En ciertos casos, se inicia un archivo de órdenes que arranca los programas de servicios.&lt;br /&gt;
&lt;br /&gt;
A partir de este punto, se realiza una nueva división, en función de si el SO es interactivo sin identificación de usuario (MS-DOS, por ejemplo), si requiere identificación, si es por lotes sencillos o si es por lotes superior.&lt;br /&gt;
&lt;br /&gt;
8a. Se lanza el intérprete de órdenes y/la interfaz gráfica.&lt;br /&gt;
&lt;br /&gt;
8b. Se lanza un proceso de log-in por cada terminal, el cual se mantiene en espera hasta que se identifique correctamente, punto en el cual, se  lanzará el intérprete y la UI (interfaz de usuario).&lt;br /&gt;
&lt;br /&gt;
8c. Se pone en marcha la cola de trabajos.&lt;br /&gt;
&lt;br /&gt;
8d. Se inicia sesión en la consola del operador y éste montará los dispositivos, fijará los criterios de funcionamiento…&lt;br /&gt;
&lt;br /&gt;
2.6.[[Componentes_básicos_de_un_sistema_operativo| Componentes básicos de un sistema operativo]]&lt;/div&gt;</summary>
		<author><name>Alehidcot</name></author>	</entry>

	</feed>