aboutsummaryrefslogtreecommitdiff
path: root/iso
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan.marinn@um.es>2020-02-24 11:22:00 +0100
committerJuan Marín Noguera <juan.marinn@um.es>2020-02-24 11:22:00 +0100
commit79e1a51eb55d0df43323c0fe77a7d55b2c2bd17d (patch)
tree89bd93a329f9deb72efce8fed205b69918c3d9b9 /iso
parent1f7f9bcc7660fba0827a62c3068d5c7082f025d7 (diff)
POO
Diffstat (limited to 'iso')
-rw-r--r--iso/n.lyx336
-rw-r--r--iso/n1.lyx997
-rw-r--r--iso/n2.lyx1232
-rw-r--r--iso/n3.lyx943
-rw-r--r--iso/n4.lyx895
-rw-r--r--iso/n5.lyx879
-rw-r--r--iso/n6.lyx826
-rw-r--r--iso/na.lyx7090
-rw-r--r--iso/nb.lyx1092
-rw-r--r--iso/nc.lyx1408
-rw-r--r--iso/nd.lyx4024
-rw-r--r--iso/ne.lyx1997
-rw-r--r--iso/nf.lyx2949
-rw-r--r--iso/pegado1.pngbin0 -> 19295 bytes
-rw-r--r--iso/pegado2.pngbin0 -> 39707 bytes
-rw-r--r--iso/pegado3.pngbin0 -> 21311 bytes
-rw-r--r--iso/pegado4.pngbin0 -> 3204 bytes
-rw-r--r--iso/pegado5.pngbin0 -> 32237 bytes
-rw-r--r--iso/pegado6.pngbin0 -> 32568 bytes
19 files changed, 24668 insertions, 0 deletions
diff --git a/iso/n.lyx b/iso/n.lyx
new file mode 100644
index 0000000..d1dc6ca
--- /dev/null
+++ b/iso/n.lyx
@@ -0,0 +1,336 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize 10
+\spacing single
+\use_hyperref false
+\papersize a5paper
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 0.2cm
+\topmargin 0.7cm
+\rightmargin 0.2cm
+\bottommargin 0.7cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle empty
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Title
+Introducción a los Sistemas Operativos
+\end_layout
+
+\begin_layout Date
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+cryear{2018}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "../license.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Bibliografía:
+\end_layout
+
+\begin_layout Itemize
+Apuntes de la asignatura, anónimos.
+\end_layout
+
+\begin_layout Itemize
+Wikipedia, the free encyclopedia (
+\begin_inset Flex URL
+status open
+
+\begin_layout Plain Layout
+
+https://en.wikipedia.org/
+\end_layout
+
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Itemize
+Páginas
+\family typewriter
+man
+\family default
+ de Fedora 29 de todos los comandos y ficheros que se explican en los apéndices
+ en subsección propia, de sus respectivos autores, salvo que se indique
+ específicamente lo contrario, así como la página
+\family typewriter
+signal(7)
+\family default
+.
+\end_layout
+
+\begin_layout Chapter
+Introducción
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Gestión de procesos
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n2.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Seguridad y protección
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n3.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Sistemas de ficheros
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n4.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Gestión de memoria
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n5.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Gestión de E/S
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n6.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+\start_of_appendix
+El entorno de comandos de GNU
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "na.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Gestión de software
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "nb.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Usuarios y grupos
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "nc.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Administración de discos
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "nd.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Procesos y memoria
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "ne.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Arranque del sistema
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "nf.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/n1.lyx b/iso/n1.lyx
new file mode 100644
index 0000000..e1c15d4
--- /dev/null
+++ b/iso/n1.lyx
@@ -0,0 +1,997 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Un
+\series bold
+sistema operativo
+\series default
+ es un intermediario entre el usuario y el hardware, un programa complejo
+ que se ejecuta cuando otro lo solicita o periódicamente para realizar ciertas
+ tareas.
+
+\end_layout
+
+\begin_layout Itemize
+Como
+\series bold
+máquina extendida
+\series default
+ o
+\series bold
+virtual
+\series default
+, presenta una interfaz sencilla de la máquina al programador ocultando
+ detalles de hardware de bajo nivel (interrupciones, relojes, control de
+ memoria, etc.).
+\end_layout
+
+\begin_layout Itemize
+Como
+\series bold
+controlador de recursos
+\series default
+, proporciona una asignación ordenada y controlada de los recursos de hardware
+ (procesadores, memoria, entrada y salida, etc.) entre los programas que
+ compiten por ellos.
+\end_layout
+
+\begin_layout Standard
+Destacamos Microsoft Windows, Apple MacOS X, Linux, y para dispositivos
+ móviles, iOS y Android.
+ Las características de un sistema operativo dependen del hardware en que
+ se ejecuta; por ejemplo, este en general no puede garantizar la protección
+ entre zonas de memoria de dos programas si el hardware no dispone de un
+ mecanismo para ello.
+ Por esto los sistemas operativos han evolucionado a la par con el hardware.
+\end_layout
+
+\begin_layout Section
+Historia
+\end_layout
+
+\begin_layout Subsection
+Primera generación (1945–55)
+\end_layout
+
+\begin_layout Standard
+Grandes máquinas experimentales que ocupaban habitaciones enteras, formadas
+ por miles de válvulas de vacío y cables conectados a mano, que consumían
+ una gran cantidad de energía y eran muy poco fiables.
+ Un solo grupo de personas diseñaba, construía, programaba, operaba y mantenía
+ cada máquina.
+ No existían lenguajes de programación ni sistemas operativos: la programación
+ era en lenguaje máquina, incluyendo el código de E/S dentro del propio
+ programa, y con frecuencia se usaban conexiones directamente para controlar
+ funciones básicas.
+\end_layout
+
+\begin_layout Standard
+La interacción con la máquina era directa: los programadores la reservaban
+ durante un tiempo, en el que introducían y ejecutaban el programa.
+ Si el trabajo terminaba en ese tiempo, había periodos en que la máquina
+ no se usaba (al ser máquinas muy caras había que aprovecharlas al máximo),
+ y si no daba tiempo a terminar, el programador tenía que volver a reservar
+ la máquina.
+\end_layout
+
+\begin_layout Subsection
+Segunda generación (1955-65)
+\end_layout
+
+\begin_layout Standard
+Aparecen desarrollos como los lectores de tarjetas, impresoras de líneas,
+ cintas magnéticas y, por el lado del software, ensambladores, cargadores
+ y enlazadores.
+ La introducción del transistor hizo que los ordenadores se volvieran fiables,
+ pudiendo venderse a clientes, y las bibliotecas de E/S hicieron que el
+ programador ya no tuviera que preocuparse de este aspecto.
+\end_layout
+
+\begin_layout Standard
+Si la interacción era directa, esta incluía colocar tarjetas perforadas,
+ preparar la impresora, hacer cambios de cinta (por ejemplo, colocar la
+ cinta con el compilador de FORTRAN para compilar un programa), etc.
+ Si el programador no tenía experiencia en esto se podían producir grandes
+ pérdidas de tiempo, por lo que se contrataba a un operador profesional
+ que controlaba la máquina de forma que los programadores entregaban su
+ trabajo y esperaban al resultado, perdiendo la interacción directa.
+ Otra medida fue planificar los trabajos para minimizar los cambios de cinta
+ (por ejemplo, agrupando todos los programas en FORTRAN para ser compilados
+ tras preparar la cinta con el compilador).
+\end_layout
+
+\begin_layout Standard
+Aun así, cuando se detenía un trabajo, el operador debía percatarse observando
+ la consola, determinar si se trataba de una terminación normal o anormal,
+ efectuar un volcado si era necesario, cargar el lector de tarjetas o la
+ cinta con el siguiente trabajo y volver a preparar el ordenador.
+ En este tiempo la CPU estaba inactiva, por lo que se desarrollaron sistemas
+ de
+\series bold
+procesamiento por lotes
+\series default
+, sistemas operativos rudimentarios, como el
+\series bold
+monitor residente
+\series default
+, formado por un intérprete de tarjetas de control, un cargador de programas
+ y controladores de dispositivos de E/S compartidos con los programas.
+ Este interpretaba instrucciones de tarjetas de control insertadas entre
+ tarjetas normales de datos, que indicaban el inicio y fin de un trabajo
+ y tipo de trabajo a realizar.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+ filename pegado1.png
+ scale 30
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Ejemplo de trabajo por lotes.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Los dispositivos de E/S eran (y son) lentos en comparación con la CPU, que
+ debía esperar la terminación de cada operación de E/S, por lo que se creó
+ la
+\series bold
+operación fuera de línea
+\series default
+, consistente en pasar de operaciones en línea (
+\emph on
+on-line
+\emph default
+) donde la CPU interactuaba directamente con la E/S lenta, a operaciones
+ fuera de línea (
+\emph on
+off-line
+\emph default
+), donde la CPU interactuaba con dispositivos más rápidos.
+ Para esto, primero los datos se leían de las tarjetas y se guardaban en
+ una cinta, a continuación los datos de la cinta se procesaban y se guardaban
+ los resultados en otra cinta, y finalmente los datos de la cinta de salida
+ se imprimen.
+\end_layout
+
+\begin_layout Standard
+Esto hizo surgir la
+\series bold
+independencia de dispositivo
+\series default
+, el escribir un programa para usar dispositivos de E/S lógicos y que fuera
+ el sistema operativo el que hiciera corresponder los dispositivos lógicos
+ con los físicos.
+ También aumentó el tiempo que el programador debía esperar para obtener
+ los resultados, pues las cintas se tenían que llenar, y también hizo necesarias
+ varias máquinas en paralelo para hacer las copias de tarjetas a cintas
+ y de cintas a la impresora.
+ Solución:
+\end_layout
+
+\begin_layout Itemize
+Hacer que los dispositivos de entrada escriban directamente en un
+\series bold
+\emph on
+buffer
+\series default
+\emph default
+ en memoria principal, mientras la CPU procesa los datos anteriores, de
+ forma que la entrada y la CPU trabajen en paralelo.
+ Lo mismo ocurre con la salida.
+\end_layout
+
+\begin_layout Itemize
+Hacer que la entrada y la salida se den a través de ficheros en un disco,
+ por el mecanismo de
+\series bold
+\emph on
+spooler
+\series default
+\emph default
+ (
+\emph on
+simultaneous peripheral operation on-line
+\emph default
+), de forma que durante el cómputo de un programa se imprime la salida de
+ programas anteriores, leída del disco, y se lee la entrada de programas
+ posteriores, que se imprime en el disco.
+ Para esto el monitor necesita hacer uso de
+\emph on
+buffers
+\emph default
+ e interrupciones.
+\end_layout
+
+\begin_layout Standard
+Sigue habiendo la limitación de que un único usuario no puede mantener a
+ la CPU y la E/S ocupados todo el tiempo.
+\end_layout
+
+\begin_layout Subsection
+Tercera generación (1965-80)
+\end_layout
+
+\begin_layout Standard
+Los ordenadores se vuelven más pequeños y fiables.
+ Se crea la
+\series bold
+multiprogramación
+\series default
+: cuando un trabajo no puede continuar su ejecución porque tiene que esperar
+ a la E/S, se pasa la CPU a otro trabajo listo para ejecutarse.
+ Es necesaria una
+\series bold
+planificación de trabajos
+\series default
+, así como evitar que estos trabajos se interfieran unos a otros en el uso
+ de los recursos (por ejemplo, escribiendo a la vez en la impresora).
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+tiempo compartido
+\series default
+ o
+\series bold
+multitarea
+\series default
+ es una variante de la multiprogramación consistente en hacer un cambio
+ rápido entre tareas de forma que cada usuario pueda interactuar con el
+ programa que está ejecutando como si todos se ejecutaran a la vez (
+\series bold
+pseudoparalelismo
+\series default
+), recuperándose la interacción directa.
+ Puede ocurrir que un programa no quiera liberar la CPU durante bastante
+ tiempo, por lo que es necesario un mecanismo para obligarle a dejar la
+ CPU.
+\end_layout
+
+\begin_layout Standard
+Surgen sistemas operativos como OS/360 para el IBM 360, MULTICS y su sucesor
+ UNIX, del que se derivan sistemas como Linux.
+\end_layout
+
+\begin_layout Subsection
+Cuarta generación (1980-95)
+\end_layout
+
+\begin_layout Standard
+Los circuitos LSI (
+\emph on
+Large Scale Integration
+\emph default
+) y VLSI (
+\emph on
+Very Large Scale Integration
+\emph default
+) permiten la aparición en 1975 del primer
+\series bold
+ordenador personal
+\series default
+, invento que popularizó los computadores y la informática.
+ También aparecen las
+\series bold
+estaciones de trabajo
+\series default
+, ordenadores personales muy potentes (para empresas) conectados entre sí
+ en red.
+\end_layout
+
+\begin_layout Standard
+Se populariza el sistema operativo UNIX para estaciones de trabajo y el
+ MS-DOS, monousuario y monotarea, para ordenadores personales, si bien en
+ estos comienzan a aparecer conceptos como la multitarea o la memoria virtual
+ propios de UNIX.
+ También aparecen las redes de ordenadores personales, dando lugar a sistemas
+ operativos en red y distribuidos; los ordenadores con varias CPUs que permiten
+ ejecutar varios procesos a la vez (
+\series bold
+paralelismo
+\series default
+), y los sistemas operativos de tiempo real.
+\end_layout
+
+\begin_layout Subsection
+Quinta generación (1995-)
+\end_layout
+
+\begin_layout Standard
+Explosión del uso de Internet y aparición de dispositivos móviles, especialmente
+ los llamados
+\series bold
+teléfonos inteligentes
+\series default
+ o
+\emph on
+smartphones
+\emph default
+, que combinan telefonía y computación, siendo el primero el Nokia N9000,
+ lanzado a mediados de los 90, si bien estos no se popularizaron hasta el
+ iPhone de Apple en 2007.
+\end_layout
+
+\begin_layout Standard
+De Microsoft aparecen Windows 2000 y sus sucesores Server 2003, 2008, etc.,
+ destinados a servidores, y Windows XP y sus sucesores Vista, 7, etc., destinados
+ a usuarios.
+ También alcanzan gran popularidad Linux, MacOS X, Android e iOS.
+\end_layout
+
+\begin_layout Section
+Tipos
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De propósito general
+\series default
+, que destacan por su flexibilidad y capacidad para adaptarse, mediante
+ configuraciones concretas, tanto al hardware sobre el que se ejecutan como
+ a los trabajos a procesar.
+ Destacan Unix (principalmente Linux), Microsoft Windows y Apple MacOS X.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Unix es el más usado en
+\series bold
+supercomputadores
+\series default
+, formados por un gran cantidad de procesadores, memoria, discos, etc.
+ y capaces de procesar enormes cantidades de datos en poco tiempo, así como
+ en los
+\series bold
+\emph on
+mainframes
+\series default
+\emph default
+, capaces de procesar a la vez muchos trabajos que requieren enormes cantidades
+ de E/S (sobre todo, disco y red), y que suelen servir para procesamiento
+ por lotes o
+\emph on
+batch
+\emph default
+ (sin interacción con usuarios), transacciones (bancarias, reservas de vuelo,
+ etc.) y trabajos multitarea (cuando los usuarios interactúan con el sistema).
+\end_layout
+
+\begin_layout Itemize
+Al pasar a sistemas menos potentes como
+\series bold
+servidores
+\series default
+, computadores que sirven a varios usuarios a la vez compartiendo recursos
+ hardware y software en red, podemos encontrar tanto Unix como MacOS X o
+ incluso Windows.
+ Esto también ocurre en los ordenadores personales, caracterizados por la
+ multitarea y estar diseñados para dar buen rendimiento a un único usuario,
+ y que hoy en día son
+\series bold
+multiprocesadores
+\series default
+, pues disponen de varios
+\series bold
+núcleos
+\series default
+ o
+\emph on
+cores
+\emph default
+ que actúan como CPUs separadas y comparten memoria principal.
+\end_layout
+
+\begin_layout Itemize
+En teléfonos inteligentes, tabletas y sistemas integrados, pequeños ordenadores
+ con menos recursos que uno normal pero con un consumo de energía mucho
+ menor, encontramos versiones de estos tres sistemas adaptados a estos dispositi
+vos y a la interacción por pantalla táctil.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+De red
+\series default
+: Permiten interactuar con otros ordenadores conectados a una misma red,
+ si bien cada máquina es independiente.
+ Actualmente esto es lo común, y de hecho los tres sistemas de propósito
+ general que hemos visto también son de red.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Distribuidos
+\series default
+: También se conectan a otros mediante red, pero el conjunto de ordenadores
+ en esta red es visto como un sistema tradicional, con lo que el usuario
+ no es consciente de dónde se ejecutan los programas o dónde se encuentran
+ los ficheros (
+\series bold
+transparencia de localización
+\series default
+).
+ Las ventajas son la compartición de recursos, aceleración de los cálculos
+ y tolerancia a fallos, pues si una máquina falla el resto puede seguir
+ haciendo todo el trabajo.
+ Destacan Amoeba, Plan 9 e Inferno, si bien todos han dejado de desarrollarse.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De tiempo real
+\series default
+: En los
+\series bold
+rigurosos
+\series default
+, usados por ejemplo en coches y plantas nucleares, una acción se debe realizar
+ necesariamente en cierto intervalo de tiempo o de lo contrario se podría
+ poner el sistema en peligro.
+ En los
+\series bold
+no rigurosos
+\series default
+ es aceptable no cumplir de vez en cuando un plazo, dentro de unos límites.
+ Destacan VxWorks y QNX.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Para tarjetas inteligentes
+\series default
+, debido a las grandes limitaciones de potencia y memoria que presentan.
+ Suelen disponer de una máquina virtual de Java (JVM) que ejecuta los
+\emph on
+applets
+\emph default
+ que se cargan en la tarjeta, pequeñas porciones de código que no se pueden
+ ejecutar por sí mismas sino que necesitan de un entorno proporcionado por
+ otro programa.
+\end_layout
+
+\begin_layout Section
+Programas y procesos
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+programa
+\series default
+ es la representación estática y almacenada de un conjunto de instrucciones
+ a ejecutar.
+ Cuando es cargado en memoria y se ejecuta, lo hace como un
+\series bold
+proceso
+\series default
+, la unidad de trabajo de un sistema, y de los cuales algunos pertenecen
+ al propio sistema operativo y el resto son procesos de usuario.
+ Un proceso es dinámico, requiriendo recursos como tiempo de CPU, memoria,
+ ficheros y dispositivos de E/S.
+ Varios procesos pueden ejecutar el mismo programa y un proceso (dependiendo
+ del sistema) puede ejecutar código de varios programas.
+\end_layout
+
+\begin_layout Standard
+En general los sistemas operativos se distribuyen junto con
+\series bold
+programas de sistema
+\series default
+, cuya misión es ofrecer un entorno más cómodo para el desarrollo y ejecución
+ de programas.
+ Tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De manipulación de ficheros
+\series default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De información de estado
+\series default
+, que solicitan información al sistema operativo, le dan formato y la imprimen.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De apoyo a lenguajes de programación
+\series default
+, como compiladores, ensambladores, intérpretes y depuradores.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De comunicaciones
+\series default
+, para crear conexiones virtuales entre procesos, usuarios o máquinas, permitien
+do el envío de mensajes, correos electrónicos o ficheros a usuarios de la
+ misma máquina u otra y la conexión a una máquina remota.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De aplicación
+\series default
+, para efectuar otras operaciones comunes.
+ Incluímos aquí ditores de texto, generadores de gráficos, sistemas de bases
+ de datos, hojas de cálculo, paquetes de análisis estadístico, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Intérprete de órdenes
+\series default
+, encargado de interpretar y ejecutar órdenes dadas por el usuario.
+ Las órdenes pueden estar contenidas en el código del propio intérprete
+ o en programas independientes.
+\end_layout
+
+\begin_layout Standard
+Aunque no hay diferencia entre un programa de usuario y uno del sistema,
+ la mayoría de usuarios suelen ver el sistema operativo desde el punto de
+ vista de los programas del sistema.
+\end_layout
+
+\begin_layout Section
+Componentes y servicios
+\end_layout
+
+\begin_layout Standard
+La interfaz entre el sistema operativo y un proceso tiene lugar mediante
+
+\series bold
+llamadas al sistema
+\series default
+, con la siguiente estructura:
+\end_layout
+
+\begin_layout Enumerate
+El programa ejecuta la instrucción de la CPU para realizar la llamada al
+ sistema, cambiando la máquina a modo núcleo y pasando el control al sistema
+ operativo.
+\end_layout
+
+\begin_layout Enumerate
+Este lee el número de la llamada al sistema a realizar, y una vez validado,
+ llama al procedimiento correspondiente indicado en una tabla de apuntadores.
+\end_layout
+
+\begin_layout Enumerate
+La llamada termina y el control regresa al proceso de usuario, que continua
+ su ejecución por la instrucción inmediatamente posterior.
+\end_layout
+
+\begin_layout Standard
+El usuario informa al sistema operativo del número de la llamada a realizar
+ y los parámetros necesarios (habitualmente) mediante los registros, la
+ pila o una zona de memoria indicada en un registro.
+ Las bibliotecas de lenguajes de programación suelen contener procedimientos
+ que ocultan las llamadas al sistema, proporcionando una interfaz más sencilla.
+\end_layout
+
+\begin_layout Standard
+A continuación vemos los distintos componentes de un sistema operativo típico
+ junto a los servicios que ofrecen y las llamadas al sistema asociadas.
+
+\end_layout
+
+\begin_layout Subsection
+Administración de procesos
+\end_layout
+
+\begin_layout Standard
+El sistema operativo debe ser capaz de crear y eliminar procesos, controlar
+ el tiempo de CPU que se le da a cada uno y cargar programas en estos procesos,
+ además de proveer medios para que los procesos se comuniquen entre sí.
+\end_layout
+
+\begin_layout Standard
+Existen pues llamadas al sistema para crear y terminar procesos; finalizar
+ el proceso actual; obtener y establecer atributos de un proceso; cargar
+ un programa; esperar un tiempo; esperar un suceso; enviar una señal a otro
+ proceso; crear o eliminar una conexión; enviar o recibir mensajes, o transferir
+ información de estado.
+\end_layout
+
+\begin_layout Subsection
+Administración de memoria principal
+\end_layout
+
+\begin_layout Standard
+El esquema de administración de memoria depende sobre todo del hardware,
+ que el sistema operativo debe usar para controlar de qué procesos están
+ usando qué zonas de memoria, asignar y recuperar memoria según se requiera
+ y decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
+ Debe pues haber llamadas al sistema para solicitar y liberar memoria.
+\end_layout
+
+\begin_layout Subsection
+Administración de E/S
+\end_layout
+
+\begin_layout Standard
+En UNIX, esta se consigue mediante una interfaz uniforme con los manejadores
+ de dispositivo, un sistema de memoria caché y manejadores de hardware específic
+os para las particularidades de cada dispositivo.
+\end_layout
+
+\begin_layout Standard
+Existen pues llamadas al sistema para solicitar o liberar dispositivos;
+ leer y escribir en ellos; reposicionarnos; obtener y establecer atributos
+ de dispositivos, y unir o separar dispositivos lógicos, sean físicos y
+ conectados a la propia máquina o accedidos remotamente mediante red.
+\end_layout
+
+\begin_layout Subsection
+Administración de ficheros
+\end_layout
+
+\begin_layout Standard
+Por comodidad, el sistema operativo organiza la memoria de los dispositivos
+ de almacenamiento secundario en
+\series bold
+ficheros
+\series default
+, unidades de almacenamiento lógico, que a su vez se organizan en directorios.
+\end_layout
+
+\begin_layout Standard
+Existen pues llamadas al sistema para crear y eliminar ficheros y directorios;
+ abrir y cerrar ficheros; leer, escribir y reposicionarnos en ficheros abiertos;
+ obtener y establecer atributos de ficheros y directorios, y manipular el
+ contenido de estos directorios.
+\end_layout
+
+\begin_layout Subsection
+Sistema de protección
+\end_layout
+
+\begin_layout Standard
+Los procesos de un sistema operativo deben ser protegidos unos de otros,
+ y el sistema operativo debe ser protegido de estos.
+ Para ello existen tres mecanismos hardware:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Modos de ejecución
+\series default
+ del procesador: el
+\series bold
+modo núcleo
+\series default
+ o
+\series bold
+supervisor
+\series default
+, en el que se ejecuta el sistema operativo por ser así capaz de ejecutar
+ cualquier instrucción, y el
+\series bold
+modo usuario
+\series default
+, en el que se ejecutan los programas de usuario y que no puede ejecutar
+ ciertas instrucciones como de E/S, configuración de memoria, etc.
+ Los programas de usuario, para realizar E/S, deben usar una instrucción
+ especial de
+\series bold
+llamada al sistema
+\series default
+ (
+\emph on
+syscall
+\emph default
+), tratada como una interrupción que, como todas, es tratada por el sistema
+ operativo en modo núcleo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Protección de memoria
+\series default
+: Impedir que un programa de usuario acceda a zonas de memoria de otros
+ programas o del sistema operativo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Interrupciones periódicas
+\series default
+ mediante un reloj: Permiten al sistema operativo hacerse con el control
+ de la máquina cada cierto tiempo para evitar que un proceso monopolice
+ la CPU.
+\end_layout
+
+\begin_layout Standard
+Esta protección solo funciona si los tres mecanismos funcionan y se usan
+ de forma conjunta.
+ El sistema operativo es el encargado de hacer funcionar estos mecanismos
+ y usarlos para asegurarse de que los recursos puedan ser usados únicamente
+ por los procesos que han recibido la correspondiente autorización.
+ Además, el sistema operativo debe ser capaz de lidiar con los errores que
+ se puedan producir a nivel de hardware o dentro de un programa de usuario,
+ y emprender la acción adecuada en cada caso.
+\end_layout
+
+\begin_layout Subsection
+Mantenimiento de información
+\end_layout
+
+\begin_layout Standard
+Si bien esto generalmente no corresponde a una única parte del sistema operativo
+, puede ser deseable llevar un control del uso de recursos del ordenador
+ por parte de los usuarios, sea con fines contables para facturar a los
+ usuarios o sencillamente para recopilar estadísticas de uso del sistema
+ que son útiles para su administración.
+ Además, tanto los procesos como los dispositivos o ficheros pueden poseer
+ información adicional que se debe leer y modificar aparte, y el reloj es
+ tratado de forma especial al ser usado en el sistema de protección.
+\end_layout
+
+\begin_layout Standard
+Existen pues llamadas al sistema para obtener o establecer la fecha y la
+ hora, datos del sistema y atributos de proceso, fichero o dispositivo.
+\end_layout
+
+\begin_layout Section
+Estructura
+\end_layout
+
+\begin_layout Subsection
+Sistemas monolíticos
+\end_layout
+
+\begin_layout Standard
+Están formados por un conjunto de procedimientos que se llaman unos a otros.
+ Ofrecen una interfaz muy clara, pero no tienen una estructura formalmente
+ definida y cada procedimiento es visible a los demás.
+ Están formados por el
+\series bold
+núcleo
+\series default
+ (el sistema operativo como tal, junto a todos los controladores de dispositivo
+ o
+\emph on
+drivers
+\emph default
+) y los programas de sistema.
+ Destacan Unix (incluyendo Linux) y Windows.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename pegado2.png
+ width 100text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Esquema de un sistema monolítico.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Sistemas por capas
+\end_layout
+
+\begin_layout Standard
+El sistema operativo se divide en
+\series bold
+capas
+\series default
+ o
+\series bold
+niveles
+\series default
+, siendo la más baja (capa 0) el hardware y la más alta la interfaz con
+ el usuario, de forma que cada capa sólo usa funciones y servicios de capas
+ inferiores.
+ Esto simplifica la depuración y verificación, pues usa vez se depura una
+ capa se asciende a la siguiente, y proporciona ocultación de información,
+ haciendo posibles las modificaciones en una capa en cualquier momento siempre
+ que no se modifique la interfaz al resto de capas.
+ Sin embargo, da problemas de dependencias entre capas, pues a veces es
+ difícil saber dónde colocar una función, por lo que se opta por tener menos
+ capas con más funcionalidad.
+\end_layout
+
+\begin_layout Standard
+Destacan THE (1968) que se definió en 6 capas (hardware, planificación de
+ CPU, administración de memoria, consola del operador, administración de
+ E/S y programas de usuario) y VENUS, donde las capas inferiores se implementaro
+n directamente en hardware.
+\end_layout
+
+\begin_layout Subsection
+Sistemas cliente-servidor
+\end_layout
+
+\begin_layout Standard
+Están formados por un
+\series bold
+micronúcleo
+\series default
+ o
+\emph on
+microkernel
+\emph default
+ y una serie de procesos de usuario que implementan las funciones típicas
+ de un sistema operativo.
+ Así, los procesos
+\series bold
+clientes
+\series default
+ solicitan servicios de los procesos
+\series bold
+servidores
+\series default
+, que realizan los trabajos solicitados por los clientes y a su vez pueden
+ ser clientes de otros procesos, de modo que el micronúcleo se limita a
+ controlar las comunicaciones cliente-servidor.
+ Para la E/S, bien se incluye el servidor correspondiente en el modo núcleo
+ o existen mensajes especiales dirigidos al núcleo para que los procese
+ él mismo.
+\end_layout
+
+\begin_layout Standard
+Estos sistemas tienen la ventaja de que un fallo en un servidor concreto
+ no afecta a todo el sistema, y que pueden adaptarse como sistemas distribuidos
+ dado que no importa si los procesos que se comunican están en la misma
+ máquina o no.
+ Destacan QNX, Minix 3 y MacOS X, cuyo núcleo está basado en la versión
+ 2.5 del micronúcleo Mach desarrollado en los 80 en la Carnegie-Mellon University.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/n2.lyx b/iso/n2.lyx
new file mode 100644
index 0000000..4a252fc
--- /dev/null
+++ b/iso/n2.lyx
@@ -0,0 +1,1232 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Normalmente hay bastantes más procesos que CPUs, por lo que hay que repartir
+ el uso de estas por parte de los procesos, buscando bien la eficiencia,
+ como en sistemas antiguos, o el poder ejecutar varios programas dando la
+ sensación de que todos se ejecutan a la vez, como ocurre actualmente.
+ El paralelismo y el pseudoparalelismo, que se dan normalmente a la vez,
+ permiten compartir recursos físicos y lógicos entre varios resultados y
+ acelerar los cálculos dividiéndolos entre varias CPUs, además de aportar
+ modularidad, al poder diseñar un sistema como un conjunto de procesos,
+ y comodidad, permitiendo a los usuarios hacer varias cosas a la vez.
+\end_layout
+
+\begin_layout Standard
+El cambio de un proceso a otro se llama
+\series bold
+cambio de proceso
+\series default
+ o de
+\series bold
+contexto
+\series default
+.
+ El
+\series bold
+planificador
+\series default
+ es el procedimiento que decide el siguiente proceso a ejecutar mediante
+ un
+\series bold
+algoritmo de planificación
+\series default
+, y modifica las estructuras necesarias para que el cambio de contexto sea
+ correcto.
+\end_layout
+
+\begin_layout Standard
+En UNIX, los procesos se organizan en un árbol de procesos y se crean con
+ la llamada al sistema
+\family typewriter
+fork()
+\family default
+, que crea una copia idéntica del proceso que hace la llamada y devuelve
+ al hijo el valor 0 y al padre el PID (
+\emph on
+process identifier
+\emph default
+) del proceso hijo.
+ El PID del propio proceso se obtiene con la llamada al sistema
+\family typewriter
+getpid
+\family default
+.
+ Las llamadas de la familia
+\family typewriter
+exec
+\family default
+, como
+\family typewriter
+execve
+\family default
+, hacen que un proceso sustituya su código y datos por los de otro programa,
+ que comienza la ejecución desde el principio, si bien se conservan los
+ ficheros abiertos (aunque se puede especificar el cierre de algunos descriptore
+s de ficheros en
+\family typewriter
+execve
+\family default
+), el PID y casi todas las propiedades.
+\end_layout
+
+\begin_layout Standard
+En Windows la jerarquía de procesos de UNIX desaparece al poder un proceso
+ cambiar de proceso padre, y los procesos se crean con
+\family typewriter
+CreateProcess
+\family default
+, que equivale a ejecutar un
+\family typewriter
+fork
+\family default
+ seguido de
+\family typewriter
+exec
+\family default
+ en el proceso hijo.
+\end_layout
+
+\begin_layout Standard
+La terminación voluntaria de un proceso se hace mediante la llamada al sistema
+
+\family typewriter
+exit
+\family default
+ en UNIX y
+\family typewriter
+ExitProcess
+\family default
+ en Windows.
+ La terminación involuntaria es producida por el sistema operativo si se
+ produce un error fatal (división por cero, acceso a una zona memoria incorrecta
+, etc.) o por otro proceso autorizado a ello con la llamada al sistema
+\family typewriter
+kill
+\family default
+ en UNIX o
+\family typewriter
+TerminateProcess
+\family default
+ en Windows.
+\end_layout
+
+\begin_layout Section
+Estados
+\end_layout
+
+\begin_layout Standard
+Un proceso puede estar en uno de varios estados:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Nuevo
+\series default
+: El proceso acaba de ser creado y todavía no tiene los recursos necesarios.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+En ejecución
+\series default
+: Utilizando la CPU.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Listo
+\series default
+ o
+\series bold
+listo suspendido
+\series default
+: Ejecutable pero detenido porque otro proceso está usando la CPU.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Bloqueado
+\series default
+ o
+\series bold
+bloqueado
+\series default
+
+\series bold
+suspendido
+\series default
+: A la espera de un evento externo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Saliente
+\series default
+ (
+\emph on
+zombie
+\emph default
+): El proceso ha terminado su ejecución pero todavía no ha desaparecido
+ del todo.
+ Por ejemplo, en UNIX, cuando un proceso acaba debe esperar a que su padre
+ recoja su estado de salida mediante la llamada al sistema
+\family typewriter
+wait
+\family default
+ o
+\family typewriter
+waitpid
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Un proceso suspendido no puede ejecutarse y suele guardarse en disco.
+ La
+\series bold
+suspensión
+\series default
+ y posterior
+\series bold
+reanudación
+\series default
+ de un proceso, por parte de otro(s), es útil:
+\end_layout
+
+\begin_layout Itemize
+Si el sistema está funcionando mal, mientras se corrige el problema.
+\end_layout
+
+\begin_layout Itemize
+Si se cree que los resultados del proceso son incorrectos, para comprobar
+ si lo son.
+\end_layout
+
+\begin_layout Itemize
+Si el sistema está muy cargado, para dar servicio a procesos de más prioridad.
+\end_layout
+
+\begin_layout Standard
+Cambios de estado:
+\end_layout
+
+\begin_layout Itemize
+De
+\begin_inset Quotes fld
+\end_inset
+
+Nuevo
+\begin_inset Quotes frd
+\end_inset
+
+ a
+\begin_inset Quotes fld
+\end_inset
+
+Listo
+\begin_inset Quotes frd
+\end_inset
+
+ cuando ya dispone de los recursos o a
+\begin_inset Quotes fld
+\end_inset
+
+Listo suspendido
+\begin_inset Quotes frd
+\end_inset
+
+ si no hay memoria disponible y el proceso no tiene prioridad suficiente
+ para expulsar a otro.
+\end_layout
+
+\begin_layout Itemize
+De
+\begin_inset Quotes fld
+\end_inset
+
+Listo
+\begin_inset Quotes frd
+\end_inset
+
+ a
+\begin_inset Quotes fld
+\end_inset
+
+En ejecución
+\begin_inset Quotes frd
+\end_inset
+
+ o viceversa, debido al planificador.
+\end_layout
+
+\begin_layout Itemize
+De
+\begin_inset Quotes fld
+\end_inset
+
+En ejecución
+\begin_inset Quotes frd
+\end_inset
+
+ a
+\begin_inset Quotes fld
+\end_inset
+
+Bloqueado
+\begin_inset Quotes frd
+\end_inset
+
+, si el proces, ueado suspendido
+\begin_inset Quotes frd
+\end_inset
+
+ a
+\begin_inset Quotes fld
+\end_inset
+
+Listo suspendido
+\begin_inset Quotes frd
+\end_inset
+
+, cuando ocurre el evento esperado.
+\end_layout
+
+\begin_layout Itemize
+De
+\begin_inset Quotes fld
+\end_inset
+
+Bloqueado
+\begin_inset Quotes frd
+\end_inset
+
+ a
+\begin_inset Quotes fld
+\end_inset
+
+Bloqueado suspendido
+\begin_inset Quotes frd
+\end_inset
+
+ o de
+\begin_inset Quotes fld
+\end_inset
+
+Listo
+\begin_inset Quotes frd
+\end_inset
+
+ a
+\begin_inset Quotes fld
+\end_inset
+
+Listo suspendido
+\begin_inset Quotes frd
+\end_inset
+
+, o viceversa.
+\end_layout
+
+\begin_layout Itemize
+De
+\begin_inset Quotes fld
+\end_inset
+
+En ejecución
+\begin_inset Quotes frd
+\end_inset
+
+ a
+\begin_inset Quotes fld
+\end_inset
+
+Saliente
+\begin_inset Quotes frd
+\end_inset
+
+ cuando termina.
+\end_layout
+
+\begin_layout Section
+Implementación
+\end_layout
+
+\begin_layout Standard
+El SO mantiene una
+\series bold
+tabla de procesos
+\series default
+ con una entrada,
+\series bold
+PCB
+\series default
+ (
+\emph on
+Process Control Block
+\emph default
+) o BCP para cada proceso, donde se guarda todo lo necesario para poder
+ continuar la ejecución tras perder la CPU y recuperarla luego, junto con
+ datos estadísticos, el estado del proceso, etc.
+ En concreto suelen guardarse:
+\end_layout
+
+\begin_layout Itemize
+Para
+\series bold
+administración de procesos
+\series default
+, PID, registros (incluyendo contador del programa, palabra de estado y
+ puntero de pila), estado del proceso, prioridad, parámetros de planificación,
+ PID del proceso padre, grupo de procesos, señales, hora de inicio, tiempo
+ usado de CPU.
+\end_layout
+
+\begin_layout Itemize
+Para
+\series bold
+administración de memoria
+\series default
+, apuntadores a los segmentos de texto, datos, memoria dinámica.
+\end_layout
+
+\begin_layout Itemize
+Para
+\series bold
+administración de ficheros
+\series default
+, directorio raíz, directorio actual, descriptores de fichero, identificadores
+ de usuario y grupo.
+\end_layout
+
+\begin_layout Standard
+Crear un proceso consiste en darle nombre (como el PID en UNIX), insertarlo
+ en la tabla de procesos, determinar su prioridad inicial y asignarle recursos
+ iniciales.
+ En el caso de UNIX,
+\family typewriter
+fork
+\family default
+ busca una entrada libre en la entrada de procesos y copia la información
+ del PCB del padre a esta, cambiando el PID; evita que uno sobrescriba la
+ memoria del otro
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Según los apuntes se copian los segmentos de datos y de pila, y el de código
+ se comparte por ser de sólo lectura.
+ Realmente, desde hace mucho Linux implementa copia en escritura, consistente
+ en marcar las entradas de la tabla de página de ambos de forma que el núcleo
+ solo tenga que hacer la copia de una página cuando uno de los procesos
+ escriba en ella.
+\end_layout
+
+\end_inset
+
+; incrementa los contadores de los descriptores de ficheros del padre para
+ reflejar que estos también están abiertos en el hijo, y marca el proceso
+ hijo como
+\begin_inset Quotes fld
+\end_inset
+
+Listo
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Los procesos en UNIX tienen dos modos: modo usuario, en que ejecutan un
+ programa normal, y modo núcleo, común a todos los procesos, en que ejecutan
+ código del SO al hacer una llamada al sistema.
+ En este último los procesos pueden bloquearse esperando a algún evento,
+ lo que hace que se le ceda la CPU a otro proceso hasta que el evento suceda,
+ momento en que el proceso continuará su ejecución en modo núcleo.
+ Otro enfoque es considerar el SO como una colección de procesos de sistema
+ distintos a los procesos de usuario, de modo que cada proceso ejecuta sólo
+ código de usuario, lo que ocurre en los sistemas cliente-servidor.
+\end_layout
+
+\begin_layout Standard
+En las llamadas al sistema, el hardware almacena en una pila el contador
+ de programa del proceso que se interrumpe, pasa a modo núcleo y almacena
+ un elemento del vector de interrupciones, que debe ser la dirección de
+ inicio de alguna rutina del SO, en el contador de programa.
+ Entonces, un procedimiento guarda el contexto del proceso activo en su
+ PCB (pudiendo actualizarse otra información como estado, contabilidad o
+ auditoría), elimina la información introducida en la pila por el hardware,
+ configura una pila en el núcleo para la llamada al sistema, comprueba que
+ esta es válida y llama a un procedimiento que procesa la llamada.
+ Tras esta, el primer procedimiento ejecuta el planificador si lo determina
+ necesario, teniendo en cuenta que, si el proceso se ha bloqueado en la
+ llamada, este ya ha sido invocado y no es necesario llamarlo de nuevo,
+ y finalmente ejecuta el
+\series bold
+despachador
+\series default
+, que restaura el contexto del proceso a ejecutar, entre otras cosas cambiando
+ a la pila de usuario e introduciendo en esta la dirección de su contador
+ de programa.
+\end_layout
+
+\begin_layout Section
+Hilos
+\end_layout
+
+\begin_layout Standard
+Un proceso tradicional es:
+\end_layout
+
+\begin_layout Itemize
+Unidad de propiedad de recursos, con un espacio de direcciones, variables
+ globales, ficheros abiertos, procesos hijos, alarmas, señales, semáforos,
+ información contable, etc.
+\end_layout
+
+\begin_layout Itemize
+Unidad de planificación y ejecución, con un contador de programa, una serie
+ de registros, una pila y un estado.
+\end_layout
+
+\begin_layout Standard
+Estas funciones son independientes, y los sistemas operativos modernos llaman
+
+\series bold
+hilos
+\series default
+ (
+\emph on
+threads
+\emph default
+),
+\series bold
+procesos ligeros
+\series default
+ (
+\emph on
+LightWeight Processes
+\emph default
+, LWP),
+\series bold
+hebras
+\series default
+ o
+\series bold
+subprocesos
+\series default
+ a las unidades de ejecución y procesos a las de propiedad de recursos,
+ de forma que un mismo proceso puede tener uno o varios hilos.
+ Cuando comienza la ejecución de un programa existe un único hilo, el
+\series bold
+hilo principal
+\series default
+, que puede crear otros.
+\end_layout
+
+\begin_layout Standard
+En Linux y otros muchos UNIX, un hilo puede crear otro mediante
+\family typewriter
+pthread_create
+\family default
+, que entre sus parámetros recibe un puntero a otra función que es donde
+ comienza la ejecución el hilo hijo.
+ Todo hilo tiene un TID (
+\emph on
+thread identifier
+\emph default
+), que se obtiene desde el propio hilo con la llamada al sistema
+\family typewriter
+gettid
+\family default
+.
+ Para facilitar la colabolación entre hilos, que pueden necesitar acceder
+ y modificar las mismas variables globales, existen métodos de sincronización
+ como
+\emph on
+mutex
+\emph default
+ (exclusión mutua) y semáforos.
+\end_layout
+
+\begin_layout Standard
+Ventajas de los hilos:
+\end_layout
+
+\begin_layout Itemize
+Al compartir espacio de direcciones, se pueden comunicar entre sí sin intervenci
+ón del núcleo, por lo que esta comunicación es más rápida.
+\end_layout
+
+\begin_layout Itemize
+Los hilos se pueden bloquear mientras termina una llamada al sistema, por
+ lo que si hay varios, la E/S puede solaparse con el cómputo.
+\end_layout
+
+\begin_layout Itemize
+Es mucho más rápido crear un hilo en un proceso existente que un nuevo proceso,
+ y el cambio de uno a otro es más rápido.
+\end_layout
+
+\begin_layout Itemize
+Se puede conseguir paralelismo real dentro de un mismo proceso.
+\end_layout
+
+\begin_layout Standard
+Los hilos pueden ser soportados directamente por el núcleo, como en Windows
+ y Linux, o ser implementados mediante una biblioteca a nivel de usuario,
+ como se hacía en Linux antes de que implementara hilos en el núcleo.
+\end_layout
+
+\begin_layout Standard
+La implementación en modo usuario tiene como ventajas que el programa se
+ puede usar en núcleos que no implementan hilos, los cambios de contexto
+ son mucho más rápidos al no tener que pasar por el núcleo y cada proceso
+ puede tener un algoritmo distinto de planificación.
+ Sin embargo, en este caso una llamada al sistema bloqueante, o un fallo
+ de página, bloquearía a todos los hilos del proceso, y no es posible obtener
+ paralelismo real dentro de un mismo proceso.
+\end_layout
+
+\begin_layout Standard
+En la implementación en modo núcleo, la creación, destrucción y sincronización
+ entre hilos es más costosa, pero esto se puede aliviar usando una biblioteca
+ de sincronización que sólo realice llamadas al sistema cuando sea estrictamente
+ necesarios, y manteniendo las estructuras de un hilo después de que termine
+ para poder usarlo posteriormente en vez de crear otro nuevo.
+ En cualquier caso todos los hilos deben pasar a estado suspendido al mismo
+ tiempo, pues la memoria de todo el proceso se mueve al disco.
+\end_layout
+
+\begin_layout Section
+Planificación
+\end_layout
+
+\begin_layout Standard
+Metas:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Equidad
+\series default
+: Dar a cada proceso una proporción adecuada de CPU.
+\end_layout
+
+\begin_layout Itemize
+Maximizar la
+\series bold
+eficacia
+\series default
+ de la CPU,
+\begin_inset Formula $E:=\frac{\text{Tiempo útil}}{\text{Tiempo total}}\cdot100$
+\end_inset
+
+, y el
+\series bold
+rendimiento
+\series default
+ o
+\series bold
+productividad
+\series default
+, el número de tareas procesadas por unidad de tiempo.
+\end_layout
+
+\begin_layout Itemize
+Minimizar el
+\series bold
+tiempo de espera
+\series default
+ (el que pasa un proceso en estado
+\begin_inset Quotes fld
+\end_inset
+
+Listo
+\begin_inset Quotes frd
+\end_inset
+
+), el de
+\series bold
+respuesta
+\series default
+ (el que pasa desde que se solicita la ejecución de una acción hasta que
+ se obtienen los primeros resultados, importante para usuarios interactivos)
+ y el de
+\series bold
+regreso
+\series default
+ o
+\series bold
+retorno
+\series default
+ (el que pasa desde que se entrega a un trabajo hasta que termina y se obtienen
+ sus resultados, importante para trabajos por lotes).
+\end_layout
+
+\begin_layout Standard
+Algunas de estas, como el tiempo de espera y la eficacia, son contradictorias.
+\end_layout
+
+\begin_layout Standard
+Una planificación es
+\series bold
+apropiativa
+\series default
+ si puede expulsar a procesos de la CPU para ejecutar otros sin necesidad
+ de que se bloqueen, y
+\series bold
+no apropiativa
+\series default
+ o
+\series bold
+de ejecución hasta terminar
+\series default
+ en caso contrario.
+ Para los procesos por lotes son convenientes tanto una planificación no
+ apropiativa como una apropiativa con periodos de CPU largos (pues los cambios
+ de proceso desperdician CPU), mientras que para procesos interactivos suele
+ ser necesaria una planificación apropiativa para cambiar la CPU rápidamente
+ de un proceso a otro.
+\end_layout
+
+\begin_layout Standard
+Los procesos alternan entre ráfagas de CPU y de E/S, comenzando y terminando
+ por una de CPU.
+ Decimos que un proceso es
+\series bold
+limitado por E/S
+\series default
+ si pasa la mayor parte de su tiempo en espera de E/S, y normalmente tendrá
+ muchas ráfagas de CPU aunque breves, y es
+\series bold
+limitado por CPU
+\series default
+ si usa la CPU la mayor parte del tiempo, y normalmente tendrá pocas ráfagas
+ de CPU aunque muy largas.
+\end_layout
+
+\begin_layout Standard
+Podemos representar un algoritmo de planificación mediante un
+\series bold
+diagrama de colas
+\series default
+, en el que cada rectángulo es una cola, los círculos son recursos que dan
+ servicio a las colas y las flechas indican el flujo de los procesos.
+ Un
+\series bold
+diagrama de Gantt
+\series default
+ representa el proceso en ejecución en cada momento mediante rectángulos
+ de longitud proporcional a la duración de la ráfaga de CPU.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+ filename pegado3.png
+ width 80text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Diagrama de colas de planificación de procesos.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+ filename pegado4.png
+ width 80text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Diagrama de Gantt.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Algoritmos no apropiativos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+FCFS
+\series default
+ (
+\emph on
+First Coming, First Served
+\emph default
+,
+\begin_inset Quotes fld
+\end_inset
+
+primero en llegar, primero en ser servido
+\begin_inset Quotes frd
+\end_inset
+
+).
+ Es el más simple y se puede implementar con una cola FIFO.
+ El tiempo medio de respuesta puede ser bastante largo debido al
+\series bold
+efecto convoy
+\series default
+: Un proceso limitado por CPU ocupa la CPU mucho tiempo mientras el resto
+ terminan su E/S y entonces los dispositivos de E/S quedan inactivos hasta
+ que el proceso en ejecución pasa a realizar su E/S; entonces los procesos
+ limitados por E/S pasan a usar la CPU y terminan rápido por tener ráfagas
+ de CPU breves y la CPU queda inactiva hasta que el proceso limitado por
+ CPU continúa su ejecución, momento en que el ciclo se repite, resultando
+ en desaprovechamiento de recursos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+SJF
+\series default
+ (
+\emph on
+Shortest Job First
+\emph default
+,
+\begin_inset Quotes fld
+\end_inset
+
+primero el trabajo más corto
+\begin_inset Quotes frd
+\end_inset
+
+).
+ Adecuado para procesos por lotes, donde los tiempos de ejecución aproximados
+ se suelen conocer de antemano, y de lo contrario se puede estimar mediante
+
+\series bold
+maduración
+\series default
+:
+\begin_inset Formula $E_{t}=aE_{t-1}+(1-a)T_{t-1}$
+\end_inset
+
+, donde
+\begin_inset Formula $E_{t}$
+\end_inset
+
+ es la estimación de tiempo actual,
+\begin_inset Formula $E_{t-1}$
+\end_inset
+
+ la estimación anterior para el mismo proceso,
+\begin_inset Formula $T_{t-1}$
+\end_inset
+
+ el tiempo que tardó realmente y
+\begin_inset Formula $a$
+\end_inset
+
+ un parámetro ajustable entre 0 y 1, pues un valor de
+\begin_inset Formula $a$
+\end_inset
+
+ pequeño hace que se olviden rápidamente los tiempos de ejecuciones anteriores
+ y un valor grande hace que se recuerden demasiado tiempo.
+ Si se dispone de todos los procesos de forma simultánea, este algoritmo
+ proporciona el mínimo tiempo medio de retorno.
+\end_layout
+
+\begin_layout Standard
+Algoritmos apropiativos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+SRTF
+\series default
+ (
+\emph on
+Shortest Remaining Time First
+\emph default
+,
+\begin_inset Quotes fld
+\end_inset
+
+primero el que tenga el menor tiempo restante
+\begin_inset Quotes frd
+\end_inset
+
+).
+ Variante del SJF que permite quitar la CPU a un proceso para dársela a
+ otro con tiempo total de ráfaga de CPU menor al tiempo restante de CPU
+ de la ráfaga del proceso que se está ejecutando.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\emph on
+Round Robin
+\series default
+\emph default
+ (
+\series bold
+RR
+\series default
+) o
+\series bold
+circular
+\series default
+.
+ Es de los más antiguos, sencillos, equitativos y de mayor uso.
+ Similar al FCFS pero con un
+\emph on
+quantum
+\emph default
+ de tiempo
+\begin_inset Formula $q$
+\end_inset
+
+ tal que, si un proceso consume un
+\emph on
+quantum
+\emph default
+, pasa al final de la cola de procesos listos para dar la CPU al siguiente
+ proceso.
+ De esta forma, si hay
+\begin_inset Formula $n$
+\end_inset
+
+ procesos, ninguno tiene tiempo de espera mayor a
+\begin_inset Formula $(n-1)q$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $q$
+\end_inset
+
+ es pequeño se desperdicia tiempo de CPU en cambios de proceso, pero si
+ es grande, los últimos procesos tardan mucho en ser atendidos, resultando
+ en tiempos de respuesta muy pobres en procesos interactivos.
+\end_layout
+
+\begin_layout Standard
+Otras formas de planificación pueden hacerse apropiativas o no apropiativas:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Planificación por prioridad
+\series default
+.
+ Cada proceso tiene una prioridad, normalmente un número que es mayor a
+ mayor prioridad (en UNIX es al revés), de modo que la CPU se da al primer
+ proceso de la cola con la mayor prioridad.
+ La asignación de prioridad puede ser
+\series bold
+estática
+\series default
+, si no cambia durante la ejecución del proceso, o
+\series bold
+dinámica
+\series default
+ si depende de parámetros.
+ Un ejemplo de asignación dinámica para favorecer a los procesos limitados
+ por E/S, y que puedan ejecutarse pronto para enviar su siguiente solicitud
+ de E/S, es hacer que la prioridad sea inversamente proporcional a la fracción
+ del último
+\emph on
+quantum
+\emph default
+ usado por el proceso.
+ Este
+\emph on
+quantum
+\emph default
+ puede ser una referencia para medir el tiempo consumido o funcionar como
+ en la planificación
+\emph on
+round-robin
+\emph default
+.
+\begin_inset Newline newline
+\end_inset
+
+El
+\series bold
+bloqueo indefinido
+\series default
+ o
+\series bold
+inanición
+\series default
+ ocurre cuando los procesos de baja prioridad nunca llegan a ejecutarse.
+ Para evitarlo se puede disminuir cada cierto tiempo la prioridad del proceso
+ en ejecución, lo que tiene sentido si la planificación es apropiativa.
+ Esto sigue teniendo el problema de que pueden llegar continuamente procesos
+ de mayor cantidad que los que llevan tiempo esperando, por lo que una alternati
+va es aumentar cada cierto tiempo la prioridad de los procesos listos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Planificación de múltiples colas con realimentación
+\series default
+.
+ Es la más general, pero también la más compleja.
+ Existen varias colas de procesos listos y un proceso va a una u otra según
+ si es interactivo o por lotes, de sistema o de usuario, su prioridad, la
+ cola que usó la última vez, el consumo de CPU, etc.
+ Debe haber una planificación dentro de cada cola, y una planificación entre
+ colas, que suele ser apropiativa por prioridad pero puede ser cualquiera,
+ como el reparto equitativo y que cada cola se administre de una forma.
+ Para evitar que el esquema sea inflexible, debe haber un criterio para
+ que los procesos cambien de cola (realimentación).
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+ filename pegado5.png
+ width 80text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Planificación de múltiples colas.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Si no se dispone de suficiente memoria es necesario que algunos procesos
+ se mantengan en disco.
+ Para ello, los procesos en memoria los gestiona un
+\series bold
+planificador a corto plazo
+\series default
+ (PCP) mientras que un
+\series bold
+planificador a medio plazo
+\series default
+ (PMP) es llamado periódicamente y se encarga de la suspensión y reanudación
+ de procesos, teniendo en cuenta criterios como el tiempo desde el último
+ intercambio, el tiempo de CPU que ha consumido el proceso recientemente,
+ el tamaño del proceso (los pequeños no causan problemas) y la prioridad
+ de este.
+ También es posible añadir un
+\series bold
+planificador a largo plazo
+\series default
+ (PLP) que decida, de entre los procesos por lotes preparados, cuál ejecutar
+ después, eligiendo si este pasa directamente a memoria o a disco.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+ filename pegado6.png
+ width 80text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Planificación a corto, medio y largo plazo.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/n3.lyx b/iso/n3.lyx
new file mode 100644
index 0000000..fdc2fbb
--- /dev/null
+++ b/iso/n3.lyx
@@ -0,0 +1,943 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Requisitos para la seguridad y amenazas asociadas:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Confidencialidad
+\series default
+: La información, incluyendo la existencia de esta, solo debe poder ser
+ leída por usuarios autorizados.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+Interceptación
+\series default
+: Leer un elemento sin autorización.
+ Incluye copias y lecturas no autorizadas, análisis estadístico para revelar
+ datos ocultos y observación del tráfico de mensajes.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Integridad
+\series default
+: Los elementos del sistema solo deben poder ser modificados, incluyendo
+ borrado y creación, por usuarios autorizados.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+Modificación
+\series default
+: Falsificar un elemento o modificarlo sin autorización, incluyendo alteración
+ de un programa en funcionamiento.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Invención
+\series default
+: Insertar objetos falsos en el sistema, incluyendo ficheros y mensajes.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Disponibilidad
+\series default
+: Los elementos de un sistema deben estar disponibles para usuarios autorizados.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+Interrupción
+\series default
+: Destruir un elemento o hacerlo inaccesible o inútil, incluyendo robo de
+ equipos, consumo excesivo de recursos, eliminación de ficheros o mensajes
+ y corte de las líneas de comunicaciones.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Para probar la seguridad de un sistema se suele contratar a un grupo de
+ expertos (equipo tigre o de penetración) para ver si puede penetrar en
+ él.
+ Ataques más comunes:
+\end_layout
+
+\begin_layout Itemize
+Reservar espacio de memoria o disco y leerlo, pues muchos sistemas no borran
+ el espacio antes de asignarlo.
+\end_layout
+
+\begin_layout Itemize
+Intentar llamadas inválidas, o con parámetros inválidos o no razonables.
+\end_layout
+
+\begin_layout Itemize
+Conectarse un sistema y pulsar
+\family typewriter
+C-c
+\family default
+ o similares, terminando en ciertos sistemas el programa de verificación
+ de contraseñas y permitiendo el acceso.
+\end_layout
+
+\begin_layout Itemize
+Escribir un programa que aparente ser para iniciar sesión pero realmente
+ filtren la contraseña.
+\end_layout
+
+\begin_layout Itemize
+Buscar acciones que se conoce que no se deben llevar a cabo y hacerlas con
+ todas sus variaciones.
+\end_layout
+
+\begin_layout Itemize
+Convencer al administrador para que modifique el sistema de alguna forma
+ que evite verificaciones de seguridad.
+\end_layout
+
+\begin_layout Itemize
+Engañar o sobornar al personal de administración del centro de cálculo.
+\end_layout
+
+\begin_layout Standard
+Ataques específicos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Bombas lógicas
+\series default
+:
+\begin_inset Quotes fld
+\end_inset
+
+Estallan
+\begin_inset Quotes frd
+\end_inset
+
+ en un instante de tiempo determinado, y muchas veces son creadas por el
+ desarrollador del programa donde se encuentran como forma de protección.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Puertas traseras
+\series default
+ (
+\emph on
+backdoors
+\emph default
+): Programas normales pero que además permiten el acceso al sistema desde
+ el exterior o como administrador.
+ Por ejemplo un programa de autenticación que con cierta combinación de
+ usuario y contraseña proporciona acceso completo.
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Ver <
+\begin_inset Flex URL
+status open
+
+\begin_layout Plain Layout
+
+http://scienceblogs.com/goodmath/2007/04/15/strange-loops-dennis-ritchie-a/
+\end_layout
+
+\end_inset
+
+>.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Desbordamiento de
+\emph on
+buffer
+\series default
+\emph default
+: Aprovechar fallos de programación para causar que un programa escriba
+ (o lea) más información de la que cabe en el
+\emph on
+buffer
+\emph default
+ que ha reservado, pudiendo llegar a ejecutar código malicioso, normalmente
+ sobrescribiendo la dirección de retorno en la pila para que apunte a este.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Caballos de Troya
+\series default
+: Sustituyen una orden por otra con el mismo nombre.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Virus
+\series default
+: Se encuentran dentro de un programa y se replican en otros programas o
+ ficheros, extendiéndose dentro del ordenador y copiándose a otros mediante
+ sistemas de almacenamiento y redes.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Gusanos
+\series default
+: Como los virus, pero en vez de copiarse en otros ficheros se transmiten
+ por red.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\emph on
+Spyware
+\series default
+\emph default
+: Código que, sin que el usuario sea consciente de ello ni lo autorice,
+ se ejecuta en segundo plano y recopila información del sistema y la actividad
+ del usuario para enviarla a computadores externos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\emph on
+Rootkits
+\series default
+\emph default
+: Permiten acceso privilegiado continuo a un computador, normalmente mediante
+ una puerta trasera, a la vez que ocultan activamente su presencia.
+\end_layout
+
+\begin_layout Standard
+En 1975, Saltzer y Schroeder identificaron varios principios de diseño de
+ cara a la seguridad:
+\end_layout
+
+\begin_layout Enumerate
+El diseño debe ser público (muchos ojos ven más fallos que pocos).
+\end_layout
+
+\begin_layout Enumerate
+El estado predefinido debe ser de
+\begin_inset Quotes fld
+\end_inset
+
+no acceso
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Se debe verificar la autorización en el momento de hacer la operación; no
+ se debe verificar el permiso, determinar que está permitido y no hacer
+ más comprobaciones.
+\end_layout
+
+\begin_layout Enumerate
+Dar a los procesos el mínimo privilegio que les permita hacer su trabajo.
+\end_layout
+
+\begin_layout Enumerate
+El mecanismo de protección debe ser simple, uniforme e integrado hasta las
+ capas más bajas del sistema (la seguridad no es algo que se pueda añadir
+ por encima).
+\end_layout
+
+\begin_layout Enumerate
+El esquema debe ser psicológicamente aceptable para que los usuarios no
+ pongan la contraseña en un
+\emph on
+post-it
+\emph default
+ o similares.
+\end_layout
+
+\begin_layout Section
+Autenticación
+\end_layout
+
+\begin_layout Standard
+La seguridad de un sistema requiere de:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Protección
+\series default
+.
+ Distinguimos entre la
+\series bold
+política
+\series default
+, que define qué se va a proteger, qué usuarios pueden acceder a qué recursos,
+ etc., y que pueden estar determinadas en el diseño del sistema, formuladas
+ por los administradores o definidas por los usuarios para proteger sus
+ propios ficheros, y el
+\series bold
+mecanismo
+\series default
+, que define cómo implementa esto el sistema, y es en lo que nos centraremos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Entorno externo
+\series default
+.
+ Por ejemplo, no exponer la consola del operador a personal no autorizado,
+ ni permitir extraer el almacenamiento del sistema para transportarlo a
+ otro sin protección.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+autenticación de usuarios
+\series default
+ es el problema de identificar a los usuarios cuando están conectados al
+ sistema.
+ El método más común es pedir un nombre o identificador (ID) y una contraseña
+ para autenticar el ID.
+ Este identificador determina los privilegios del usuario, es decir, lo
+ que este puede o no puede hacer en el sistema.
+ En general existe un usuario o grupo reducido con estado de
+\series bold
+supervisor
+\series default
+ o
+\series bold
+superusuario
+\series default
+, que les permite llevar a cabo funciones protegidas especialmente.
+ Algunos sistemas también disponen de cuentas anónimas cuyos usuarios tienen
+ privilegios más restringidos.
+ En muchos solo se permite acceder al sistema a los usuarios con un ID ya
+ registrado.
+\end_layout
+
+\begin_layout Subsection
+Contraseñas en UNIX
+\end_layout
+
+\begin_layout Standard
+La contraseña, junto con un
+\series bold
+valor base
+\series default
+ (
+\emph on
+salt
+\emph default
+) y el algoritmo de cifrado (función
+\emph on
+hash
+\emph default
+) a utilizar se pasan como parámetros a una función llamada
+\family typewriter
+crypt
+\family default
+, que devuelve la contraseña cifrada.
+ Esta se guarda en el fichero de contraseñas (antes
+\family typewriter
+/etc/passwd
+\family default
+ y actualmente
+\family typewriter
+/etc/shadow
+\family default
+), con formato
+\family typewriter
+$
+\emph on
+tipo
+\emph default
+$
+\emph on
+base
+\emph default
+$
+\emph on
+contraseñaCifrada
+\family default
+\emph default
+, donde
+\family typewriter
+\emph on
+tipo
+\family default
+\emph default
+ es 1 para MD5 (obsoleto), 5 para SHA-256 y 6 para SHA-512 y
+\family typewriter
+\emph on
+base
+\family default
+\emph default
+ es la base sin cifrar.
+ El valor de la base está relacionado con el momento en que se asigna la
+ contraseña a un usuario y sirve para impedir que contraseñas iguales se
+ cifren igual.
+\end_layout
+
+\begin_layout Subsection
+Elección de contraseña
+\end_layout
+
+\begin_layout Standard
+Las funciones
+\emph on
+hash
+\emph default
+ usadas están diseñadas para evitar ataques por adivinación, incluso usando
+ supercomputadores, pero algunos usuarios al elegir su contraseña eligen
+ una fácilmente adivinable.
+ Si se rechazan las contraseñas por longitud mínima, los usuarios pueden
+ elegir contraseñas igualmente adivinables como su propio nombre, el de
+ su calle, una palabra común del diccionario, etc., pero si se asignan contraseña
+s aleatorias, la mayoría de los usuarios no la recordarán o acabarán apuntándola
+ en un lugar visible.
+ Soluciones (no incompatibles):
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Instrucción del usuario
+\series default
+: Explicar a los usuarios la importancia de elegir contraseñas seguras y
+ cómo elegirlas, así como buenos hábitos como cambiarlas a menudo, no anotarlas
+ en lugares visibles ni comunicarlas, etc.
+ Una buena contraseña suele tener letras mayúsculas, minúsculas, números
+ y signos de puntuación u otros caracteres alfanuméricos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Inspección proactiva de contraseña
+\series default
+: El sistema usa algoritmos y heurísticas para determinar la seguridad de
+ una contraseña y rechazarla si es fácilmente adivinable.
+ Incluso el administrador del sistema puede comprobar la robustez de las
+ contraseñas ejecutando programas de adivinación o
+\emph on
+ cracks
+\emph default
+.
+\end_layout
+
+\begin_layout Section
+Protección
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+derecho
+\series default
+ es el permiso para realizar una determinada acción sobre algún objeto,
+ y un
+\series bold
+dominio
+\series default
+(
+\series bold
+de protección
+\series default
+) es una función que a cada objeto le asigna un conjunto de derechos.
+ Todo proceso se ejecuta en un dominio, y muchos sistemas proveen mecanismos
+ que permiten que los procesos cambien de dominio.
+ Algunas formas de representar los dominios son:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Matriz de protección
+\series default
+ o
+\series bold
+de acceso
+\series default
+: Con una fila por dominio, una columna por proceso y un conjunto de derechos
+ en cada celda.
+ Si los procesos pueden cambiar de dominio, los dominios se pueden identificar
+ con objetos y añadir en estos el derecho de
+\begin_inset Quotes fld
+\end_inset
+
+entrar
+\begin_inset Quotes frd
+\end_inset
+
+.
+ Incluso la propia matriz se puede entender como un objeto que se puede
+ modificar mediante una serie de operaciones.
+ En la práctica esta matriz no se almacena.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Listas de control de acceso
+\series default
+ o
+\series bold
+ACLs
+\series default
+ (
+\emph on
+Access Control Lists
+\emph default
+): A cada objeto se le asocia una lista con todos los dominios que pueden
+ tener acceso a él y con qué derechos.
+ Normalmente los dominios se asocian a usuarios y, si estos se pueden agrupar,
+ las ACLs también se pueden aplicar a los grupos.
+ Si una ACL contiene tanto una entrada para un usuario como entradas para
+ grupos a los que este pertenece se debe establecer un criterio sobre qué
+ derechos prevalecen.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Listas de posibilidades
+\series default
+ o
+\series bold
+de capacidades
+\series default
+: A cada dominio se le asocia una lista de entradas, llamadas
+\series bold
+posibilidades
+\series default
+ o
+\series bold
+capacidades
+\series default
+, que representan un objeto (normalmente con su tipo y una referencia a
+ este) y los derechos que se tienen sobre este (si un objeto no aparece,
+ no se tiene ningún derecho).
+ Normalmente los dominios se asocian a procesos, los cuales para acceder
+ a un objeto indican la posición de la capacidad correspondiente.
+ Como estas listas deben ser protegidas del manejo indebido, se suelen guardar
+ dentro del sistema operativo permitiendo que los procesos las referencien
+ por su número.
+ En general las posibilidades tienen operaciones genéricas para copiarlas,
+ eliminarlas, trasferirlas o generar una versión más restrictiva.
+\end_layout
+
+\begin_layout Standard
+Las ACLs se corresponden directamente con las necesidades del usuario, que
+ puede especificar los dominios que pueden acceder a un objeto cuando lo
+ crea, pero al haber que comprobar cada acceso al objeto, son ineficientes.
+ Las listas de posibilidades, por su parte, son mucho más eficientes, pero
+ son más complejas al no corresponderse directamente con las necesidades
+ de los usuarios.
+\end_layout
+
+\begin_layout Subsection
+Cancelación
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+cancelación
+\series default
+ o
+\series bold
+revocación
+\series default
+ de derechos de acceso puede ser
+\series bold
+inmediata
+\series default
+ o
+\series bold
+demorada
+\series default
+,
+\series bold
+selectiva
+\series default
+ o
+\series bold
+general
+\series default
+,
+\series bold
+parcial
+\series default
+ o
+\series bold
+total
+\series default
+, y
+\series bold
+temporal
+\series default
+ o
+\series bold
+permanente
+\series default
+.
+ Con las ACLs la cancelación es sencilla, pues basta eliminar de esta los
+ derechos que serán cancelados.
+\end_layout
+
+\begin_layout Standard
+Con las posibilidades haría falta determinar todas las existentes para un
+ objeto y modificarlas, pero esto es ineficiente.
+ Para cada objeto se podría llevar un registro de todas las posibilidades
+ asociadas, pero este podría consumir mucha memoria y en algunos sistemas
+ no es posible porque los procesos pueden pasarse posibilidades sin conocimiento
+ del sistema.
+\end_layout
+
+\begin_layout Standard
+Una técnica es hacer que cada posibilidad apunte hacia un objeto indirecto
+ en vez de al objeto en sí, de forma que basta romper esta conexión para
+ invalidar todas las posibilidades.
+ Otra es asignar a cada objeto un gran número aleatorio, también presente
+ en la posibilidad, y permitir la operación si ambos coinciden, de forma
+ que basta cambiar el número del objeto para invalidar todas las posibilidades.
+ Ninguna de estas dos técnicas permite la revocación selectiva.
+\end_layout
+
+\begin_layout Subsection
+Protección en UNIX
+\end_layout
+
+\begin_layout Standard
+Unix combina ACLs restringidas con listas de posibilidades.
+ Cada usuario lleva asociado un número, el
+\series bold
+identificador de usuario
+\series default
+ o
+\series bold
+UID
+\series default
+ (
+\emph on
+User IDentifier
+\emph default
+), que se asocia al nombre de usuario o
+\emph on
+login
+\emph default
+ mediante el fichero
+\family typewriter
+/etc/passwd
+\family default
+.
+ Destaca el usuario con UID 0, normalmente llamado
+\family typewriter
+root
+\family default
+, que tiene todos los privilegios.
+ Es pues importante elegir una buena contraseña para esta cuenta y protegerla.
+ Algunas distribuciones Linux no permiten iniciar sesión como
+\family typewriter
+root
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+También hay grupos de usuarios, con un
+\series bold
+identificador de grupo
+\series default
+ o
+\series bold
+GID
+\series default
+ (
+\emph on
+Group IDentifier
+\emph default
+) asociado al nombre del grupo y la lista de usuarios pertenecientes a él
+ a través del fichero
+\family typewriter
+/etc/group
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Pueden definirse varios usuarios o grupos con el mismo UID o GID, pero para
+ el sistema operativo se trata del mismo usuario o grupo.
+ Un dominio en UNIX se corresponde aproximadamente con un par
+\begin_inset Formula $(\text{UID},\text{GID})$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Las ACLs restringidas se limitan a 3 conjuntos de usuarios: el propietario
+ de un fichero, el grupo de usuarios al que pertenece y el resto de usuarios.
+ Para cada uno existen 3 permisos: lectura (
+\family typewriter
+r
+\family default
+), escritura (
+\family typewriter
+w
+\family default
+) y ejecución (
+\family typewriter
+x
+\family default
+).
+ En directorios, el permiso
+\family typewriter
+r
+\family default
+ indica que se puede listar su contenido,
+\family typewriter
+w
+\family default
+ que se puede modificar (creando, borrando y renombrando ficheros y subdirectori
+os) y
+\family typewriter
+x
+\family default
+ que se puede hacer que este sea nuestro directorio actual y que es posible
+ atravesarlo.
+\end_layout
+
+\begin_layout Standard
+Para determinar lo que un proceso puede hacer sobre un fichero, si el usuario
+ tiene UID 0, se considera que tiene los tres permisos; de lo contrario,
+ si el UID del proceso coincide con el del fichero, se queda con los permisos
+ de propietario; si esto no se cumple pero el GID del proceso coincide con
+ el del fichero, se queda con los permisos de grupo, y en caso contrario
+ usa los del resto de usuarios.
+\end_layout
+
+\begin_layout Standard
+Estos permisos suelen mostrarse mediante una cadena de 9 letras con formato
+
+\family typewriter
+rwxrwxrwx
+\family default
+ para representar los permisos de los 3 conjuntos en orden, donde la letra
+ correspondiente se sustituye por
+\family typewriter
+-
+\family default
+ si el conjunto de usuarios correspondiente no tiene el permiso.
+ Esta cadena se almacena internamente mediante 9 bits, establecidos como
+ 1 si el permiso se da o como 0 en caso contrario.
+\end_layout
+
+\begin_layout Standard
+Algunos sistemas UNIX, como Linux, implementan también ACLs completas para
+ los sistemas de ficheros que lo admiten.
+\end_layout
+
+\begin_layout Standard
+Para cambiar de dominio, los ejecutable pueden poseer los bits SETUID y
+ SETGID.
+ Si SETUID está activo, al ejecutar el fichero, el proceso en que se ejecuta
+ tendrá como UID efectivo (EUID) el del propietario del ejecutable, y lo
+ mismo ocurre con SETGID para el grupo efectivo (EGID).
+ Un programa puede conocer su usuario y grupo reales mediante las funciones
+
+\family typewriter
+getuid
+\family default
+ y
+\family typewriter
+getgid
+\family default
+, así como su usuario y grupo efectivos mediante
+\family typewriter
+geteuid
+\family default
+ y
+\family typewriter
+getegid
+\family default
+.
+ Cuando un ejecutable posee el bit SETUID, la primera
+\family typewriter
+x
+\family default
+ en la cadena que representa los permisos cambia por una
+\family typewriter
+s
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Por ejemplo, el comando
+\family typewriter
+passwd
+\family default
+ permite cambiar la contraseña a un usuario, pero para ello necesita acceder
+ y modificar
+\family typewriter
+/etc/shadow
+\family default
+, que en general no puede ser leído ni escrito por nadie salvo
+\family typewriter
+root
+\family default
+.
+ Por tanto
+\family typewriter
+passwd
+\family default
+ tiene como propietario
+\family typewriter
+root
+\family default
+ y tiene activo el SETUID, y determina el usuario que lo ha invocado con
+
+\family typewriter
+getuid
+\family default
+.
+ Si el UID es 0, permite cambiar la contraseña de cualquier usuario; de
+ lo contrario solo permite cambiar la del usuario que ejecutó que lo ejecutó.
+\end_layout
+
+\begin_layout Standard
+Las ACLs sólo se comprueban al abrir el fichero.
+ Si se tiene acceso a este, se crea una entrada en la
+\series bold
+tabla de ficheros abiertos
+\series default
+, una lista de capacidades mantenida por el sistema operativo, y se devuelve
+ un índice a esta llamado
+\series bold
+descriptor de fichero
+\series default
+.
+ Esto significa que si el ACL de un fichero cambia tras haber sido abierto,
+ el proceso puede seguir accediendo a él aunque la nueva ACL no lo permitiera,
+ incumpliendo el principio de diseño que dice que la autorización debe comprobar
+se en el momento de realizar la operación, pero a cambio permite un mejor
+ rendimiento.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/n4.lyx b/iso/n4.lyx
new file mode 100644
index 0000000..4944c11
--- /dev/null
+++ b/iso/n4.lyx
@@ -0,0 +1,895 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Los sistemas de computación actuales necesitan un
+\series bold
+almacenamiento secundario
+\series default
+ que complemente al primario, para almacenar grandes cantidades de información
+ que no caben en el primario; preservarla para que no desaparezca cuando
+ termine el proceso o el sistema se apague, y permitir que la información
+ sea fácilmente compartida y accedida.
+ Para ello se usan discos y otros dispositivos que almacenan la información
+ en un conjunto de bloques, o que se manejan como si fuera así, y sobre
+ los cuales el sistema operativo crea una abstracción para facilitar su
+ uso a usuarios y programadores.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+sistema de ficheros
+\series default
+ es una parte del sistema operativo que organiza un sistema de almacenamiento
+ secundario como una serie de ficheros o unidades de información que se
+ agrupan en directorios, y también es el formato que adquiere el disco para
+ ello.
+ Desde el punto de vista del usuario es importante la forma de nombrar los
+ ficheros, las operaciones permitidas, el tipo de protección que podemos
+ aplicar, etc., mientras que desde el punto de vista del sistema operativo
+ es importante la implementación.
+\end_layout
+
+\begin_layout Section
+Ficheros
+\end_layout
+
+\begin_layout Standard
+En los sistemas modernos, un fichero es una secuencia de bytes con significado
+ definido por el programa que accede al mismo.
+ Cada fichero tiene un nombre que lo identifica, y que dependiendo del diseño
+ del sistema de ficheros y del sistema operativo, distingue o no entre mayúscula
+s y minúsculas, tiene un cierto tamaño máximo, tiene o no una estructura
+ (como
+\begin_inset Quotes fld
+\end_inset
+
+
+\family typewriter
+\emph on
+nombre
+\emph default
+.
+\emph on
+extensión
+\family default
+\emph default
+
+\begin_inset Quotes frd
+\end_inset
+
+), etc.
+\end_layout
+
+\begin_layout Standard
+Los ficheros suelen tener atributos, como por ejemplo:
+\end_layout
+
+\begin_layout Itemize
+ACLs, contraseña, creador, propietario.
+\end_layout
+
+\begin_layout Itemize
+Sólo lectura, ocultación, fichero de sistema, biblioteca, texto o binario,
+ acceso aleatorio, temporal, bloqueo.
+\end_layout
+
+\begin_layout Itemize
+Tiempos de creación, último acceso y última modificación.
+\end_layout
+
+\begin_layout Itemize
+Tamaño actual y tamaño máximo.
+\end_layout
+
+\begin_layout Standard
+En general hay operaciones para crear un fichero vacío, eliminar un fichero,
+ abirlo, cerrar un fichero abierto, leer una cantidad de bytes, escribir
+ una cantidad de bytes al final (añadir) o (si es posible) en otra posición,
+ cambiar de posición dentro del fichero, obtener y establecer los atributos,
+ cambiar de nombre o mover el fichero a otro directorio, y truncar el fichero
+ a partir de una posición.
+\end_layout
+
+\begin_layout Subsection
+Ficheros regulares
+\end_layout
+
+\begin_layout Standard
+Contienen información del usuario.
+ Distinguimos entre ficheros
+\series bold
+de texto
+\series default
+, codificados en UTF-8 o algún otro sistema y con líneas que terminan en
+ CR, LF o LF/CR y que se pueden ver tal cual de forma legible, y los
+\series bold
+binarios
+\series default
+, que tienen cierta estructura pero no son de texto.
+\end_layout
+
+\begin_layout Standard
+Así, los ejecutables, binarios generalmente manejados por el sistema operativo,
+ contienen una cabecera con un
+\series bold
+número mágico
+\series default
+ (número que identifica el formato de archivo), el tamaño de las secciones
+ de código y datos, el punto de entrada (dirección donde debe empezar la
+ ejecución) y otra información, seguida de las propias secciones.
+ Por su parte, los archivos de biblioteca son ficheros binarios que almacenan
+ código máquina de funciones (e información asociada).
+\end_layout
+
+\begin_layout Standard
+Muchas veces el nombre del fichero contiene una
+\series bold
+extensión
+\series default
+ que identifica el tipo, que en los sistemas operativos modernos como Linux
+ no es significativa pero sí lo es para algunos programas, como exploradores
+ de ficheros para saber con qué programa abrirlo, y ayudan al usuario a
+ identificar el tipo rápidamente.
+
+\end_layout
+
+\begin_layout Standard
+Ejemplos de extensiones son
+\family typewriter
+.bak
+\family default
+ para copias de seguridad;
+\family typewriter
+.hlp
+\family default
+ para ficheros de ayuda;
+\family typewriter
+.gif
+\family default
+ o
+\family typewriter
+.jpg
+\family default
+ para imágenes GIF o JPEG;
+\family typewriter
+.c
+\family default
+ para código fuente en C;
+\family typewriter
+.html
+\family default
+o
+\family typewriter
+.tex
+\family default
+ o
+\family typewriter
+.txt
+\family default
+ para documentos HTML, \SpecialChar TeX
+ o de texto plano;
+\family typewriter
+.mp3
+\family default
+ para sonido MP3;
+\family typewriter
+.mpg
+\family default
+ para vídeo MPEG;
+\family typewriter
+.o
+\family default
+ para ficheros objeto;
+\family typewriter
+.pdf
+\family default
+ o
+\family typewriter
+.ps
+\family default
+ para documentos PDF;
+\family typewriter
+.zip
+\family default
+ para archivos comprimidos ZIP; etc.
+\end_layout
+
+\begin_layout Subsection
+Ficheros especiales
+\end_layout
+
+\begin_layout Standard
+No se corresponden con un fichero en el propio sistema de almacenamiento,
+ sino con una forma de tratar otro tipo de datos como si fuera un fichero
+ (en el almacenamiento lo que se guarda es algún tipo de referencia).
+ En UNIX existen dos tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De caracteres
+\series default
+: Representan dispositivos de E/S como terminales, impresoras y conexiones
+ de red.
+ No es posible cambiar de posición, escribir en una posición distinta del
+ final o truncarlos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De bloques
+\series default
+: Representan dispositivos que permiten acceso aleatorio, en general almacenamie
+nto secundario.
+\end_layout
+
+\begin_layout Subsection
+Directorios
+\end_layout
+
+\begin_layout Standard
+Son ficheros gestionados por el sistema operativo para registrar los ficheros
+ y organizarlos en una
+\series bold
+jerarquía de directorios
+\series default
+, de la que existen varios tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Directorio único
+\series default
+, con los ficheros de todos los usuarios.
+ Se usaban en los primeros microcomputadores.
+ Puede haber problemas si distintos usuarios utilizan los mismos nombres
+ de fichero.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Directorio por usuario
+\series default
+, aunque no es deseable si uno tiene muchos ficheros.
+ Se debe decidir si un usuario puede o no acceder a los directorios de otros
+ y cómo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Árbol de directorios
+\series default
+.
+ Un directorio puede contener a otros.
+ Es lo que se usa hoy en día.
+ Normalmente los directorios tienen una entrada especial
+\family typewriter
+.
+
+\family default
+ para referirse al propio directorio y
+\family typewriter
+..
+
+\family default
+ para referirse al directorio padre.
+ Se accede a los ficheros (y directorios) mediante una
+\series bold
+ruta de acceso
+\series default
+, que indica el nombre de los directorios por los que hay que pasar hasta
+ llevar al fichero deseado (incluyendo el nombre del fichero), separados
+ por un cierto caracter, que es
+\family typewriter
+/
+\family default
+ en UNIX y
+\family typewriter
+
+\backslash
+
+\family default
+ en Windows.
+ Dos tipos:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+Absoluta
+\series default
+: Parte desde la raíz y comienza por el caracter separador.
+ Es única para un mismo fichero siempre que no se usen
+\family typewriter
+.
+
+\family default
+ y
+\family typewriter
+..
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Relativa
+\series default
+: Parte de un
+\series bold
+directorio actual
+\series default
+ o
+\series bold
+de trabajo
+\series default
+, y no comienza por el caracter separador.
+ Existe una cantidad numerable de rutas relativas para un mismo fichero
+ desde un mismo directorio actual.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+No podemos leer y escribir en ellos como con los otros tipos de ficheros,
+ sino que en su lugar la apertura de un directorio sirve para recorrido
+ y hay operaciones para obtener la siguiente entrada; ligar o enlazar un
+ fichero al directorio, permitiendo que un mismo fichero aparezca en varios
+ directorios, y desligar una entrada del directorio, lo que equivale a borrarla
+ si esta es la única entrada del sistema de fichero en la que aparece.
+\end_layout
+
+\begin_layout Section
+Representación
+\end_layout
+
+\begin_layout Standard
+La representación en disco debe ser tal que consiga una buena velocidad
+ y aprovechamiento del espacio pero a la vez reduzca la fragmentación interna
+ (partes de un bloque sin aprovechar) y externa (bloques libres que no se
+ pueden ocupar).
+\end_layout
+
+\begin_layout Subsection
+Bloques lógicos
+\end_layout
+
+\begin_layout Standard
+Por lo general los discos proporcionan una interfaz basada en una lista
+ de
+\series bold
+bloques físicos
+\series default
+ o
+\series bold
+sectores
+\series default
+, la unidad mínima de lectura y escritura, cuyo tamaño es constante y suele
+ ser una potencia de 2 desde
+\begin_inset Formula $\unit[512]{B}$
+\end_inset
+
+ hasta
+\begin_inset Formula $\unit[4]{kB}$
+\end_inset
+
+.
+ Es común que el sistema de ficheros agrupe o incluso divida los sectores
+ para formar
+\series bold
+bloques lógicos
+\series default
+ o unidades de asignación más grandes o pequeñas.
+\end_layout
+
+\begin_layout Standard
+Si el bloque lógico es grande, un fichero tendrá menos bloques y el rendimiento
+ en discos duros será mayor pero habrá más fragmentación interna, mientras
+ que si el bloque es pequeño habrá poca fragmentación interna pero las listas
+ de bloques ocuparán mucho.
+\end_layout
+
+\begin_layout Subsection
+Asignación de espacio
+\end_layout
+
+\begin_layout Standard
+Todo fichero tiene asociado un conjunto de bloques donde guarda sus datos.
+ La asignación de estos puede ser de varias formas:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Adyacente
+\series default
+ o
+\series bold
+contigua
+\series default
+.
+ De fácil especificación, pues solo hay que recordar un número para localizar
+ los bloques, y ofrece un excelente rendimiento en discos duros al suponer
+ muy pocos movimientos del brazo del disco o ninguno.
+ En general no es realizable, pues si no se sabe el tamaño máximo de un
+ fichero no se sabe cuánto espacio reservarle; si este es muy pequeño, cuando
+ el fichero crezca hay que moverlo a un hueco mayor, algo costoso y no siempre
+ posible.
+ Sin embargo es útil en medios como CD-ROMs y DVD-ROMs, donde se sabe el
+ tamaño de los ficheros de antemano.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Mediante lista ligada
+\series default
+.
+ En cada bloque se guarda la dirección del siguiente.
+ No hay fragmentación externa y la entrada de directorio correspondiente
+ solo tiene que guardar la dirección del primer bloque, pero el acceso aleatorio
+ es muy lento y los programas que esperan que los bloques tengan un tamaño
+ potencia de 2 también se ralentizan.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Mediante lista ligada e índice
+\series default
+.
+ Similar, pero la dirección del siguiente bloque no se guarda en el bloque
+ sino en una tabla con una entrada por bloque que indica la dirección del
+ siguiente en el fichero.
+ Esto solo es eficiente si toda la tabla está en memoria, lo que es un problema
+ si la tabla es grande.
+ Se puede reducir el tamaño de la tabla usando bloques lógicos grandes,
+ pero entonces se desperdicia espacio por fragmentación.
+ Además, si la tabla se modifica y la modificación no se escribe en disco,
+ una caída del sistema puede hacer que los ficheros desaparezcan o queden
+ incompletos.
+\begin_inset Newline newline
+\end_inset
+
+Se puede usar un número de bloque inválido (como el 0) para indicar que
+ un bloque está libre.
+ El sistema FAT, usado por MS-DOS y uno de los implementados en Windows,
+ usa este sistema.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Mediante nodos-i
+\series default
+.
+ A cada fichero se le asigna un nodo-i (nodo índice) que contiene las direccione
+s en disco de los bloques del fichero, en orden.
+ Normalmente se usan nodos-i pequeños capaces de almacenar unas pocas direccione
+s y se guardan varios nodos-i en un mismo bloque, de modo que una zona contigua
+ del disco (o varias, por eficiencia), llamada
+\series bold
+ tabla de nodos-i
+\series default
+, se destinan a nodos-i.
+\begin_inset Newline newline
+\end_inset
+
+Para ficheros grandes se usa un
+\series bold
+bloque simplemente indirecto
+\series default
+ (BSI), que contiene direcciones de bloques de datos adicionales; un
+\series bold
+bloque doblemente indirecto
+\series default
+ (BDI), que contiene direcciones de más BSIs, y un
+\series bold
+bloque triplemente indirecto
+\series default
+ (BTI), que contiene direcciones de más BDIs, de forma que 3 de las direcciones
+ del nodo-i se usan para estos bloques.
+\begin_inset Newline newline
+\end_inset
+
+Este es el esquema usado en la mayoría de sistemas de ficheros en sistemas
+ UNIX, y permite acceder a cualquier bloque de un fichero abierto accediendo,
+ como mucho, a 4 bloques del disco si el nodo-i está en memoria.
+\end_layout
+
+\begin_layout Standard
+Además, debe haber una forma de saber que bloques de datos (así como qué
+ números de nodos-i) están libres.
+ Principalmente hay dos métodos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Lista ligada de bloques
+\series default
+: Una lista con tantos números de bloques libres como pueda más un puntero
+ al siguiente bloque.
+ Los bloques de la lista son libres, por lo que podrán ser usados si es
+ necesario.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Mapa de bits
+\series default
+: Contiene un bit para cada bloque, que indica si el bloque es libre u ocupado.
+ Los bloques del mapa no son libres, pero los sistemas de ficheros actuales
+ como Ext2, Ext3, Ext4 o NTFS lo usan porque permite buscar de forma sencilla
+ grupos de bloques libres consecutivos.
+\end_layout
+
+\begin_layout Subsection
+Ficheros compartidos
+\end_layout
+
+\begin_layout Standard
+Un fichero es compartido si puede aparecer en varios directorios con el
+ mismo o distinto nombre, o en un mismo directorio con nombres distintos.
+ La conexión entre un directorio y un fichero se llama
+\series bold
+enlace
+\series default
+, y si existe, el sistema de ficheros pasa de ser un árbol a ser simplemente
+ un grafo acíclico dirigido.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Enlace físico
+\series default
+ o
+\emph on
+hard link
+\emph default
+: Los datos relativos a un fichero se guardan en una estructura de datos
+ y las entradas de directorio correspondientes apuntan a esta.
+ Es necesario que entre los datos del fichero exista un contador de enlaces,
+ pues el nodo solo debe liberarse cuando se borra un fichero y no quedan
+ más enlaces.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Enlace simbólico
+\series default
+ o
+\emph on
+soft link
+\emph default
+: Se usa un tipo de fichero especial que contiene una ruta de acceso al
+ fichero al que se enlaza.
+ Cuando el fichero original se borra, el enlace simbólico queda invalidado
+ salvo que se cree un fichero con la misma ruta.
+\end_layout
+
+\begin_layout Standard
+UNIX implementa ambos.
+ Los enlaces simbólicos tienen más coste, pero presentan menos problemas,
+ con lo que UNIX permite enlaces simbólicos de directorios e incluso a otros
+ sistemas de ficheros pero no permite hacer lo mismo con enlaces físicos.
+ Un programa de copias de seguridad puede duplicar datos al copiar un fichero
+ compartido si no usa alguna forma de detectar los enlaces para evitar esta
+ duplicación.
+\end_layout
+
+\begin_layout Subsection
+Directorios
+\end_layout
+
+\begin_layout Standard
+En MS-DOS, los directorios son ficheros salvo el directorio raíz que ocupa
+ unos bloques fijos en disco, por lo que tiene un tamaño máximo preestablecido.
+ Estos almacenan una lista desordenada de entradas o registros de 32 bytes,
+ una por fichero, con los siguientes campos, en orden:
+\end_layout
+
+\begin_layout Enumerate
+8 bytes para el nombre del fichero y 3 para la extensión.
+\end_layout
+
+\begin_layout Enumerate
+Un byte para atributos donde los bits se usan como banderas.
+ Uno de ellos distingue a un directorio de un fichero normal.
+\end_layout
+
+\begin_layout Enumerate
+Un campo de 10 bytes reservado para futuros usos.
+\end_layout
+
+\begin_layout Enumerate
+2 bytes para la hora de última modificación: 5 bits para la hora (0–23),
+ 6 para el minuto (0–59) y 5 para el segundo, que debe ser par (0–58).
+\end_layout
+
+\begin_layout Enumerate
+2 bytes para la fecha de última modificación: 7 bits para el año (correspondiend
+o el valor 0 al 1980), 4 para el mes (1–12) y 5 para el día del mes (1–31).
+\end_layout
+
+\begin_layout Enumerate
+2 bytes para la dirección del primer bloque.
+\end_layout
+
+\begin_layout Enumerate
+4 bytes para el tamaño del fichero, en bytes.
+\end_layout
+
+\begin_layout Standard
+En la mayoría de sistemas de ficheros en sistemas UNIX, los atributos se
+ almacenan en los nodos-i y el directorio raíz no tiene tratamiento especial.
+ En el de los primeros UNIX, las entradas de un directorio eran de 16 bytes,
+ siendo 2 bytes para el número de nodo-i del fichero y otros 14 bytes para
+ el nombre, que tenía pues un máximo de 14 caracteres.
+ Posteriormente se crearon sistemas de ficheros para sistemas UNIX que soportaba
+n nombres de hasta 255 caracteres, con entradas con los siguientes campos,
+ en orden:
+\end_layout
+
+\begin_layout Enumerate
+4 bytes para el número de nodo-i.
+\end_layout
+
+\begin_layout Enumerate
+2 bytes para la longitud del registro.
+\end_layout
+
+\begin_layout Enumerate
+1 byte para la longitud del nombre.
+\end_layout
+
+\begin_layout Enumerate
+1 byte para el tipo de fichero (regular, de caracteres, de bloques o directorio).
+\end_layout
+
+\begin_layout Enumerate
+Hasta 255 bytes para el nombre.
+\end_layout
+
+\begin_layout Standard
+Una entrada no puede estar entre dos bloques, y el total de registros de
+ un bloque debe cubrirlo enteramente; de ahí que se permita que la longitud
+ de un registro sea mayor a la estrictamente necesaria.
+ Siempre que se crea un directorio se añaden dos entradas,
+\family typewriter
+.
+
+\family default
+ y
+\family typewriter
+..
+\family default
+.
+ Para añadir una nueva entrada, se elige una existente, se disminuye su
+ tamaño y se añade la nueva en el hueco, o se añade un nuevo bloque al directori
+o si esto no es posible.
+ Para eliminarla se añade su espacio al de la entrada anterior, o si esto
+ no es posible se marca el registro como libre utilizando un número de nodo-i
+ inválido.
+\end_layout
+
+\begin_layout Subsection
+Estructura general
+\end_layout
+
+\begin_layout Standard
+En general el bloque 0 del almacenamiento es el
+\series bold
+bloque de arranque
+\series default
+ y puede contener código de arranque del sistema operativo que se encuentra
+ en la partición.
+ El bloque 1 suele ser el
+\series bold
+superbloque
+\series default
+, que contiene información crítica del sistema de ficheros como el total
+ de bloques lógicos, tamaño de los mapas de bits, etc., por lo que algunos
+ sistemas de ficheros tienen varias copias de este en otras zonas del disco.
+ En otros, el superbloque es parte del bloque de arranque.
+\end_layout
+
+\begin_layout Standard
+A partir de entonces hay mucha variación, pero en los primeros sistemas
+ de ficheros en UNIX encontramos el mapa de bits de bloques, el de nodos-i,
+ la tabla de nodos-i y, finalmente, el resto de bloques, para ficheros y
+ bloques indirectos.
+\end_layout
+
+\begin_layout Section
+Cachés
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+caché de disco
+\series default
+,
+\series bold
+bloques
+\series default
+ o
+\series bold
+\emph on
+buffers
+\series default
+\emph default
+ es una colección de bloques del almacenamiento secundario que se mantienen
+ temporalmente en memoria principal por rendimiento.
+ La política de sustitución podría ser LRU mediante colas, pero el LRU puro
+ no es recomendable si se quiere mantener la consistencia del sistema de
+ ficheros ante posibles fallos del sistema, pues por ejemplo un bloque que
+ contiene nodos-i se usará mucho y si se modifica en caché y no se vuelve
+ a escribir en disco el sistema de ficheros quedará inconsistente ante un
+ fallo del sistema.
+\end_layout
+
+\begin_layout Standard
+Por ello se suele usar un LRU modificado, en el que los bloques que por
+ su tipo probablemente no se vuelvan a utilizar pronto pasan directamente
+ al frente de la cola y los bloques esenciales para la consistencia se escriben
+ directamente en disco sin esperar a ser expulsados.
+ Tampoco es recomendable mantener mucho tiempo los bloques de datos modificados
+ en caché por riesgo de perder los cambios.
+ Así, en muchos UNIX los bloques de datos se escriben en disco como tarde
+ a los 30 segundos de ser modificados, mientras que los de metadatos se
+ escriben como tarde a los 5 segundos.
+ También existe la orden
+\family typewriter
+sync
+\family default
+, que al ejecutarse fuerza la escritura de todos los bloques modificados.
+\end_layout
+
+\begin_layout Standard
+Por su parte, como las resoluciones de ruta (localizar un fichero a través
+ de una ruta) son algo muy frecuente y una misma ruta puede resolverse muchas
+ veces en poco tiempo, el sistema operativo suele mantener en memoria informació
+n sobre las últimas resoluciones en otra caché, que en Linux se llama
+\emph on
+dentry cache
+\emph default
+ o
+\series bold
+caché de entradas de directorio
+\series default
+.
+\end_layout
+
+\begin_layout Section
+Particiones
+\end_layout
+
+\begin_layout Standard
+Son porciones de bloques consecutivos de un disco, manejadas por el sistema
+ operativo y tratadas de por sí como listas de bloques sobre las que se
+ puede implementar un sistema de ficheros.
+ Tradicionalmente la información de las particiones, como sus bloques de
+ inicio y fin, se guarda en la
+\series bold
+tabla de particiones
+\series default
+ del bloque
+\series bold
+MBR
+\series default
+ (
+\emph on
+Master Boot Record
+\emph default
+, registro de arranque maestro), el primer bloque del disco, que además
+ contiene una pequeña porción de código de arranque que la BIOS carga en
+ memoria y ejecuta para, tras una serie de pasos, arrancar un sistema operativo.
+ En general lo que hace este código es buscar una partición activa y cargar
+ el código de arranque en esta.
+\end_layout
+
+\begin_layout Standard
+Las particiones permiten tener distintos sistemas de ficheros en un mismo
+ disco, o incluso sistemas operativos distintos.
+ Por ejemplo, en Linux conviene tener al menos una partición para datos
+ con Ext4 y una
+\series bold
+partición de intercambio
+\series default
+ usada para la memoria virtual.
+ También permite dar a cada partición un uso distinto, de modo que si hay
+ un error grave en el sistema de ficheros de una partición el resto siguen
+ siendo usables.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/n5.lyx b/iso/n5.lyx
new file mode 100644
index 0000000..50cbe03
--- /dev/null
+++ b/iso/n5.lyx
@@ -0,0 +1,879 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+El
+\series bold
+administrador de memoria
+\series default
+ del sistema operativo se encarga de abstraer y administrar la jerarquía
+ de memoria.
+\end_layout
+
+\begin_layout Section
+Sin memoria virtual
+\end_layout
+
+\begin_layout Standard
+En la
+\series bold
+multiprogramación con particiones fijas
+\series default
+, se asigna una zona de tamaño fijo al sistema operativo y el resto se dividen
+ en
+\series bold
+particiones
+\series default
+ de igual o distinto tamaño.
+ Podemos tener una cola por partición y colocar cada trabajo en la cola
+ de la partición más pequeña en que quepa, pero si hay pocas particiones
+ pequeñas sus colas serán largas porque la mayoría de procesos son pequeños
+ y si hay muchas puede no quedar espacio para trabajos grandes.
+ También se puede tener una cola para todas las particiones y, cuando queda
+ una partición libre, darla a la primera tarea de la cola que quepa, lo
+ que hace que las tareas pequeñas desperdicien espacio, o darla a la tarea
+ más grande que quepa, lo que discrimina a las tareas pequeñas.
+ Soluciones a este último problema son tener una partición pequeña o establecer
+ un máximo de veces que se puede excluir una tarea.
+\end_layout
+
+\begin_layout Standard
+Esto limita el
+\series bold
+grado de multiprogramación
+\series default
+, el total de procesos que puede haber a la vez en memoria compartiendo
+ CPU, además de producir fragmentación interna sobre todo en procesos pequeños
+ y fragmentación externa si hay particiones libres con tamaño total suficiente
+ para un proceso pero ninguna es lo bastante grande.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+multiprogramación con particiones variables
+\series default
+ soluciona el problema asignando a cada proceso una partición del tamaño
+ exacto que necesita, con lo que las particiones se crean, desaparecen o
+ intercambian según se necesita.
+
+\series bold
+Políticas de asignación de huecos
+\series default
+:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Primero en ajustarse
+\series default
+: Se busca el primer hueco lo suficientemente grande desde el principio
+ de la memoria, dividiendo el hueco en una parte para el proceso y un hueco
+ libre (salvo si hay ajuste perfecto), y es rápido.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Siguiente en ajustarse
+\series default
+: Igual pero se empieza a buscar por donde se quedó la anterior búsqueda.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Mejor en ajustarse
+\series default
+: Busca el hueco más pequeño en el que quepa el proceso, es lenta y desperdicia
+ más memoria por fragmentación externa.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Peor en ajustarse
+\series default
+: Toma el hueco libre más grande, y es lenta pero aprovecha bien la memoria.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+compactación
+\series default
+ consiste en mover procesos en memoria para juntar los huecos y reducir
+ la fragmentación externa.
+ No se suele usar porque consume mucho tiempo, proporcional a la cantidad
+ de información a mover, si bien ordenadores como el CDC CYBERS tenían hardware
+ especial para esto.
+ Para la
+\series bold
+administración de memoria libre
+\series default
+:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Mapas de bits
+\series default
+: Se divide la memoria en unidades de asignación del mismo tamaño, y a cada
+ una le corresponde un bit que indica si está libre o no.
+ Si la unidad de asignación es pequeña, el mapa de bits será grande y las
+ búsquedas lentas, pero si es grande habrá fragmentación interna.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Listas ligadas
+\series default
+: Lista de segmentos de memoria, que pueden ser procesos o huecos.
+ Cuando un proceso termina, debe fusionar el hueco con los adyacentes, lo
+ que es sencillo si la lista está ordenada por direcciones.
+ Si hay una lista para procesos y otra para huecos, las operaciones serán
+ más rápidas por no tener que ordenar la lista de procesos.
+ Si la de huecos se ordena por tamaño decreciente, la política de peor ajuste
+ es
+\begin_inset Formula $O(1)$
+\end_inset
+
+, pero la fusión de huecos es cara.
+ En general se accede a la información de memoria asignada a un proceso
+ desde su bloque de control.
+\end_layout
+
+\begin_layout Standard
+La asignación de hueco en la zona de intercambio del disco puede hacerse
+ cuando el proceso deba intercambiarse o cuando se cree.
+ Los algoritmos de asignación y registro de estos huecos son los mismos
+ que en memoria principal, salvo que el tamaño de un hueco en disco es múltiplo
+ del tamaño de bloque.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+reubicación
+\series default
+ o
+\series bold
+relocalización
+\series default
+ consiste en que, cuando un programa se ejecuta, puede ir a cualquier partición,
+ por lo que el programa debe usar
+\series bold
+código relocalizable
+\series default
+, que pueda ejecutarse correctamente independientemente de dónde se sitúe.
+\end_layout
+
+\begin_layout Standard
+Para la protección de memoria puede haber un
+\series bold
+registro base
+\series default
+ con la dirección de memoria donde comienza la partición de un proceso y
+ un
+\series bold
+registro límite
+\series default
+ con su tamaño, de modo que el proceso puede generar cualquier
+\series bold
+dirección lógica
+\series default
+ en un
+\series bold
+espacio de direcciones lógicas
+\series default
+ de 0 a su tamaño menos 1 que se traducen a
+\series bold
+direcciones físicas
+\series default
+, y si genera una dirección mayor se produce una excepción.
+\end_layout
+
+\begin_layout Section
+Paginación
+\end_layout
+
+\begin_layout Standard
+El esquema de
+\series bold
+memoria virtual
+\series default
+ permite ejecutar procesos con tamaño total mayor al de la memoria física,
+ para lo que guarda en esta sólo las partes del proceso que se están usando
+ y el resto lo guarda en disco.
+ Cada proceso posee un espacio de direcciones virtuales, de tamaño normalmente
+ limitado por CPU, que van a la
+\series bold
+unidad de administración de memoria
+\series default
+ (
+\series bold
+MMU
+\series default
+) normalmente integrada en el chip de la CPU para que las traduzca a direcciones
+ físicas.
+\end_layout
+
+\begin_layout Standard
+El espacio de direcciones virtuales se divide en
+\series bold
+páginas
+\series default
+ y el de memoria física en
+\series bold
+marcos de página
+\series default
+, del mismo tamaño, normalmente potencias de 2 entre
+\begin_inset Formula $\unit[512]{B}$
+\end_inset
+
+ y
+\begin_inset Formula $\unit[8]{KiB}$
+\end_inset
+
+, aunque pueden ser bastante más grandes, y las transferencias entre memoria
+ y disco son siempre en unidades de página.
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+tabla de páginas
+\series default
+ tiene tantas entradas como páginas y en cada una indica el marco en que
+ se almacena junto a algunos bits:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Bit presente/ausente
+\series default
+: Indica si la página está asociada o no.
+ Si se accede a una página no asociada, la MMU genera una excepción llamada
+
+\series bold
+fallo de página
+\series default
+ a tratar por el sistema operativo.
+ Este selecciona un marco, escribe su contenido en disco (si estaba ocupado
+ y se había escrito algo), lo marca como ausente en su tabla de páginas
+ y asigna el marco a la página que provocó el fallo, que lee del disco si
+ es necesario.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Bits de protección
+\series default
+: Tipo de acceso permitido (lectura, escritura, ejecución...).
+ Las páginas con código suelen tener permisos de lectura y ejecución pero
+ no de escritura, mientras que las de datos suelen tener de lectura y escritura.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Modificado
+\series default
+: Indica si se ha modificado o no el contenido del marco.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Referenciado
+\series default
+: Se establece al hacer referencia a una página, y se usa en algoritmos
+ de reemplazo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Caché
+\series default
+: En las máquinas con E/S mapeada a memoria, evita que el contenido de la
+ página se almacene en caché.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Visible en modo núcleo
+\series default
+: Evita que se pueda acceder a la página en modo usuario.
+\end_layout
+
+\begin_layout Standard
+Las direcciones virtuales se dividen en un
+\series bold
+número de página
+\series default
+, usado como índice en la tabla de páginas, y un
+\series bold
+ajuste
+\series default
+ o
+\series bold
+desplazamiento
+\series default
+ dentro de ella.
+\end_layout
+
+\begin_layout Standard
+La traducción de páginas debe ser rápida, por lo que se usa un
+\series bold
+TLB
+\series default
+ (
+\emph on
+Translation Look-aside Buffer
+\emph default
+), una caché totalmente asociativa generalmente en la MMU que contiene entradas
+ de la tabla de páginas.
+ El hardware verifica si el número de página está en el TLB comparando todas
+ las entradas en paralelo (por lo que número de entradas suele ser muy pequeño).
+ Si coincide alguna, se toma la entrada del TLB (incluyendo bits de protección,
+ etc.).
+ Si no está, se lee la entrada de memoria principal y, bien se elimina una
+ entrada del TLB escribiendo sus bits de modificado y uso en la principal
+ y se reemplaza por la nueva, o se produce un fallo de página.
+\end_layout
+
+\begin_layout Standard
+Al cambiar de proceso se puede invalidar el contenido del TLB, borrando
+ todos los bits de validez mediante una instrucción especial, o añadir un
+ nuevo campo a cada entrada del TLB con el identificador del proceso y un
+ registro con el del proceso activo, requiriendo hardware adicional pero
+ ahorrando tiempo en los cambios de proceso y dando lugar a encontrar entradas
+ en el TLB del propio proceso tras volver a tomar la CPU.
+\end_layout
+
+\begin_layout Standard
+Como una tabla de páginas global puede ser muy grande, en la práctica se
+ divide el número de página en varias partes y se usan tablas de páginas
+ de varios niveles, de modo que la de primer nivel se indexa según la primera
+ parte del número de página e indica la dirección de las tablas de segundo
+ nivel, etc., y las tablas que no son necesarias no se tienen.
+ Los Intel Pentium Pro tienen 3 niveles, los procesadores de Intel y AMD
+ de 64 bits tienen 4, y Linux soporta hasta 5 desde la versión 4.14, permitiendo
+ gestionar hasta
+\begin_inset Formula $\unit[128]{PiB}$
+\end_inset
+
+ de memoria virtual y hasta
+\begin_inset Formula $\unit[4]{PiB}$
+\end_inset
+
+ de RAM.
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+tabla de páginas invertida
+\series default
+ contiene una entrada por cada marco de página con el número de la página
+ que almacena, el PID, una serie de bits como en una entrada de tabla de
+ páginas normal y un puntero para encadenamiento en una tabla de dispersión
+ abierta usada para acelerar las traducciones, que usa como clave el PID
+ y el número de página y devuelve el número de una entrada de la tabla.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+mapa de memoria
+\series default
+ de un proceso es la estructura de su espacio de direcciones lógicas, en
+ zonas contiguas de memoria virtual llamadas
+\series bold
+regiones
+\series default
+ como las de código, datos con valor inicial, datos sin valor inicial y
+ pila de cada hilo, con características como:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Soporte
+\series default
+: De dónde se obtienen los datos que contiene la región; normalmente un
+ fichero o parte de este, como un ejecutable en el caso del código.
+ También hay regiones sin soporte como la pila, cuyas páginas, si se modifican
+ y son expulsadas, se guardan en la zona de intercambio del disco.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Tipo de compartición
+\series default
+: Si las modificaciones que haga un proceso son visibles por otros o no.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Protección
+\series default
+: Permisos de lectura, escritura y ejecución.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Tamaño fijo
+\series default
+ o
+\series bold
+variable
+\series default
+: Si es variable, se indica si crece hacia direcciones mayores, como la
+ memoria montón o
+\emph on
+heap
+\emph default
+ usada para la memoria dinámica, o menores, como la pila.
+ En UNIX, la memoria montón no tiene soporte, está inicialmente a 0 y crece
+ conforme el proceso necesita memoria mediante las llamadas
+\family typewriter
+brk
+\family default
+ y
+\family typewriter
+sbrk
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+El sistema operativo suele estar mapeado en todos los procesos, con el bit
+ de visible en modo núcleo activado, por eficiencia en las transferencias
+ de datos entre usuario y núcleo
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+En procesadores como Intel, esto ya no se hace debido a Meltdown.
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+En Linux, al hacer la llamada al sistema
+\family typewriter
+fork
+\family default
+, se usa
+\series bold
+copia en escritura
+\series default
+ (
+\emph on
+copy on write
+\emph default
+, COW), consistente en desactivar el permiso de escritura de las páginas
+ y dar al proceso hijo una copia de la tabla de páginas del padre, de modo
+ que si uno de los dos intenta escribir en una región en la que tendría
+ permiso, el sistema operativo hace una copia de la página que provocó la
+ violación, la asigna a la tabla de páginas del proceso que hace la escritura
+ y activa el permiso de escritura en ambas páginas
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Linux usa conteo de referencias para que, si hay varios
+\family typewriter
+fork
+\family default
+, no se active la escritura en la página original hasta que el resto de
+ procesos tenga una copia de la página.
+ Ver
+\begin_inset Flex URL
+status open
+
+\begin_layout Plain Layout
+
+https://stackoverflow.com/questions/13813636/how-does-copy-on-write-in-fork-handl
+e-multiple-fork
+\end_layout
+
+\end_inset
+
+ para más detalles.
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Algoritmos de reemplazo de páginas:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Algoritmo óptimo
+\series default
+: Se elimina la página para la que pasará más tiempo antes de ser utilizada.
+ Modelo teórico imposible de implementar.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+NRU
+\series default
+ (no usada recientemente): Se limpia el bit de referenciado periódicamente
+ en todas las páginas, y al reemplazar se prefieren páginas con este bit
+ desactivado y, dentro de esto, con el de modificado desactivado.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+FIFO
+\series default
+ (primera en enterar, primera en salir): Se elimina la primera página de
+ una lista y se añade la nueva al final.
+ El algoritmo es de bajo coste, pero no tiene en cuenta ningún dato adicional
+ y produce demasiados fallos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Algoritmo de la segunda oportunidad
+\series default
+: Como el FIFO pero, si el bit de referenciado de la primera página está
+ activo, el bit se limpia, la página pasa al final y se comprueba la siguiente.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Algoritmo del reloj
+\series default
+: Equivalente al anterior pero con una lista circular donde una
+\begin_inset Quotes fld
+\end_inset
+
+manecilla
+\begin_inset Quotes frd
+\end_inset
+
+ (un puntero) apunta a la página más antigua.
+ Si el bit de referenciado está inactivo, se expulsa y se reemplaza en la
+ lista la página apuntada y se avanza la manecilla a la siguiente, y de
+ lo contrario se inactiva el bit, se pasa a la siguiente página y se repite
+ el proceso.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+LRU
+\series default
+ (usada menos recientemente): Se elimina la página no usada desde hace más
+ tiempo.
+ Se podría usar una lista ligada de todas las páginas de memoria, pero tendría
+ que actualizarse en cada acceso a memoria.
+ También se podría tener un contador hardware que se incrementa en cada
+ referencia a memoria y un campo en las entradas de la tabla de páginas
+ y la TLB donde copiarlo.
+ Otra forma es usar una matriz
+\begin_inset Formula $n\times n$
+\end_inset
+
+, siendo
+\begin_inset Formula $n$
+\end_inset
+
+ el total de páginas, inicializada a 0, con lo que al referencial el marco
+
+\begin_inset Formula $k$
+\end_inset
+
+, el hardware activa todos los bits de la fila
+\begin_inset Formula $k$
+\end_inset
+
+ y después desactiva todos los de la columna, con lo que la fila cuyo valor
+ en binario sea mínimo es la del marco que se usó hace más tiempo, pero
+ esto es inviable por el tamaño de la matriz.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Algoritmo de maduración
+\series default
+: Aproximación software de LRU.
+ En cada interrupción de reloj, se desplaza un contador en cada entrada
+ de la tabla de páginas un bit a la derecha y se añade a la izquierda el
+ bit de referenciado.
+\end_layout
+
+\begin_layout Standard
+Se debe decidir también si la página a reemplazar se busca sólo en las del
+ proceso (
+\series bold
+reemplazo local
+\series default
+) o en todas las de memoria (
+\series bold
+reemplazo global
+\series default
+), y si el número de marcos asignados a un proceso varía (
+\series bold
+asignación dinámica
+\series default
+) o no (
+\series bold
+asignación fija
+\series default
+ o
+\series bold
+estática
+\series default
+).
+ No es posible el reemplazo global con asignación fija, pero el reemplazo
+ local con asignación dinámica puede evitar que un proceso que empieza a
+ producir fallos de página le quite páginas a otros siendo a la vez más
+ flexible que una asignación fija.
+ Llamamos
+\series bold
+algoritmo de frecuencia de fallos de página
+\series default
+ al consistente en asignar más marcos a los procesos que producen muchos
+ fallos de página y quitarlos a los que producen pocos.
+ Otros aspectos son el número mínimo de marcos por proceso, que depende
+ entre otros del máximo de páginas que puede usar una sola instrucción
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Si, por ejemplo, una instrucción debe acceder a 5 páginas incluyendo la
+ de la propia instrucción pero sólo hay 4 marcos, uno de los accesos provocará
+ necesariamente un fallo de página que reemplazará otra de las 4 páginas
+ necesarias y reiniciará la instrucción, que nunca llegará a terminar.
+\end_layout
+
+\end_inset
+
+, y el reparto de marcos entre distintos procesos (equitativo, proporcional
+ al tamaño, etc.).
+\end_layout
+
+\begin_layout Standard
+Páginas pequeñas producen menos fragmentación interna, pero páginas grandes
+ aceleran el reemplazo porque las transferencias entre memoria y disco son
+ normalmente de una página y hay poca diferencia entre el tiempo de transferenci
+a de una página pequeña y el de una grande.
+ Los tamaños más frecuentes son de 4 y
+\begin_inset Formula $\unit[8]{KiB}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+hiperpaginación
+\series default
+ ocurre cuando un proceso emplea más tiempo paginando (esperando a que se
+ resuelvan sus fallos de página) que ejecutando código porque necesita muchos
+ más marcos de los que tiene.
+ En tal caso, aparte de añadir más memoria principal, podemos suspender
+ temporalmente algunos procesos para liberar memoria y reanudarlos cuando
+ la tasa de fallos de página decaiga.
+\end_layout
+
+\begin_layout Standard
+Políticas de lectura y escritura de páginas:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Paginación por demanda
+\series default
+: Solo se lee la página que produce el fallo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Prepaginación
+\series default
+ o
+\series bold
+paginación anticipada
+\series default
+: Se leen varias páginas más, normalmente las que se encuentran después
+ en el espacio de direcciones virtuales.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Escritura por demanda
+\series default
+: Una página se escribe en disco cuando se expulsa, aumentando el tiempo
+ de resolución de fallos de página.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Escritura anticipada
+\series default
+: Un hilo del núcleo, el
+\series bold
+demonio de paginación
+\series default
+, cada cierto tiempo escribe en disco las páginas modificadas, aumentando
+ el rendimiento en discos duros al escribir varias páginas a la vez y acelerando
+ la resolución de fallos de página.
+ Muchas escrituras pueden ser inútiles si la páginas se modifican poco después,
+ por lo que el demonio puede buscar páginas que, según el algoritmo de reemplazo
+, podrían expulsarse próximamente y escribirlas en disco si han sido modificadas.
+ También puede liberar más páginas para tener páginas libres (
+\series bold
+caché de páginas
+\series default
+) y resolver rápidamente cualquier futuro fallo de página, de forma que
+ si una página liberada se necesita poco después su contenido siga en memoria.
+\end_layout
+
+\begin_layout Section
+Segmentación
+\end_layout
+
+\begin_layout Standard
+El espacio de direcciones lógicas de un proceso se compone de
+\series bold
+segmentos
+\series default
+, zonas contiguas dadas por una
+\series bold
+base
+\series default
+ (dirección de comienzo) y un
+\series bold
+límite
+\series default
+ (tamaño), y las direcciones especifican el número de segmento y el desplazamien
+to dentro de él, de 0 al tamaño menos 1.
+ Esto facilita la protección y compartición de información, y se puede acelerar
+ la traducción con un TLB, pero sufre fragmentación externa, los segmentos
+ no pueden superar el tamaño de la memoria física y los intercambios con
+ el disco se hacen siempre moviendo segmentos enteros.
+\end_layout
+
+\begin_layout Standard
+En la
+\series bold
+segmentación paginada
+\series default
+ estos segmentos se paginan, por lo que no hay fragmentación externa ni
+ hay que buscar un hueco adecuado para cada segmento.
+ El TLB es direccionable por el número de segmento a usar y el número de
+ la página dentro del segmento.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/n6.lyx b/iso/n6.lyx
new file mode 100644
index 0000000..594ec44
--- /dev/null
+++ b/iso/n6.lyx
@@ -0,0 +1,826 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Distinguimos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Dispositivos de bloques
+\series default
+: Dispositivos de almacenamiento en general.
+ Almacenan información en bloques de tamaño fijo que podemos leer y escribir
+ de forma independiente de los demás.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Dispositivos de caracteres
+\series default
+: Terminales, impresoras, interfaces de red, ratones, etc.
+ Envían o reciben un flujo de caracteres.
+\end_layout
+
+\begin_layout Itemize
+Otros, como los relojes, que sólo producen interrupciones periódicas, o
+ las tarjetas gráficas mapeadas a memoria en las que la memoria de vídeo
+ es parte del espacio de direcciones.
+\end_layout
+
+\begin_layout Section
+El software de E/S
+\end_layout
+
+\begin_layout Standard
+Objetivos:
+\end_layout
+
+\begin_layout Itemize
+Crear conceptos generales que no dependan de las características específicas
+ de cada dispositivo.
+ Por ejemplo, podemos acceder a un dispositivo de bloques sin importar si
+ es un CD-ROM en el que el lector tiene un motor que se debe arrancar y
+ parar o un disco duro que está girando continuamente.
+\end_layout
+
+\begin_layout Itemize
+Dar a los dispositivos nombres uniformes sin importar sus características.
+ En UNIX esto se hace mediante ficheros especiales.
+\end_layout
+
+\begin_layout Itemize
+Manejar los errores lo más cerca posible del hardware.
+ Si el controlador descubre un error, debe intentar corregirlo.
+ Si no puede, debe notificarlo para que lo intente el manejador de dispositivo.
+ Si tampoco puede, debe notificarlo al software independiente de E/S.
+\end_layout
+
+\begin_layout Itemize
+Convertir las transferencias asíncronas, en que la CPU inicia una transferencia
+ y hace otras cosas hasta recibir una interrupción indicando que esta ha
+ terminado, en síncronas, más fáciles de programar, en que el programa se
+ bloquea hasta que los datos están disponibles
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Muchos programas usan hilos para volverlas a convertir en asíncronas.
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+Permitir la compartición de recursos para lo que esto es posible (como discos)
+ y asignar los de uso exclusivo (como impresoras).
+\end_layout
+
+\begin_layout Subsection
+Manejadores de interrupciones
+\end_layout
+
+\begin_layout Standard
+Cuando un proceso inicia una operación de E/S, se bloquea hasta que esta
+ termine mediante una llamada al sistema específica o, en el caso de UNIX,
+ de forma automática, cediendo la CPU a otro proceso.
+ Cuando la operación termina, el controlador envía una interrupción que
+ atiende el manejador de interrupciones del sistema operativo, el cual identific
+a la interrupción y avisa al manejador de dispositivo correspondiente para
+ que elimine el bloqueo del proceso.
+ En UNIX, el proceso continuará en su parte de núcleo para terminar la operación.
+\end_layout
+
+\begin_layout Subsection
+Manejadores de dispositivo o
+\emph on
+drivers
+\end_layout
+
+\begin_layout Standard
+Contienen el código que depende del funcionamiento concreto de los dispositivos,
+ con lo que cada uno controla solo un tipo de dispositivo o varios similares.
+ En los sistemas monolíticos, para acceder a los registros de las controladoras,
+ necesitan ejecutarse en modo núcleo, por lo que se les considera parte
+ del núcleo.
+\end_layout
+
+\begin_layout Standard
+Un manejador recibe solicitudes abstractas que le hace el software independiente
+ de dis
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+po
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+si
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ti
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+vo y verifica la ejecución de estas solicitudes.
+ Tras enviar la orden (u órdenes) al dispositivo, el controlador puede tener
+ que bloquearse hasta que ocurra una interrupción, o puede que no sea necesario
+ porque la operación no conlleve retraso.
+ Tras terminar la operación, el manejador debe verificar los errores corrigiendo
+ los que pueda e informar al software independiente de dispositivo, y selecciona
+r e iniciar alguna solicitud pendiente si tiene o, según el sistema operativo,
+ bloquearse en espera de una solicitud.
+\end_layout
+
+\begin_layout Standard
+El sistema operativo define una interfaz, una serie de funciones genéricas,
+ a la que se deben adaptar todos los manejadores.
+ Implementar un manejador supone conocer el funcionamiento del sistema operativo
+ y el del dispositivo.
+ Además muchos manejadores deben ser
+\series bold
+reentrantes
+\series default
+: capaces de ser interrumpidos a mitad de atender una petición de un proceso
+ y recibir otra petición sin haber terminado de atender la primera.
+\end_layout
+
+\begin_layout Subsection
+Software de E/S independiente de dispositivo
+\end_layout
+
+\begin_layout Standard
+Sus funciones suelen ser:
+\end_layout
+
+\begin_layout Itemize
+Proporcionar una interfaz uniforme al usuario, seleccionando el manejador
+ adecuado en cada caso.
+\end_layout
+
+\begin_layout Itemize
+Dar nombre a los dispositivos.
+ En Linux cada uno tiene un
+\series bold
+número mayor
+\series default
+, que identifica al manejador, y un
+\series bold
+número menor
+\series default
+, que usa el manejador para identificar el dispositivo concreto.
+\end_layout
+
+\begin_layout Itemize
+Evitar accesos no autorizados.
+\end_layout
+
+\begin_layout Itemize
+Proporcionar un tamaño de bloque independiente del dispositivo, agrupando
+ o dividiendo sectores, si bien esto también lo puede hacer el manejador
+ de dispositivo.
+\end_layout
+
+\begin_layout Itemize
+Proporcionar
+\emph on
+buffers
+\emph default
+ para:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Dispositivos de entrada como el teclado que no son capaces de almacenar
+ información o la envían antes de que ningún proceso la solicite, en cuyo
+ caso el sistema operativo debe guardar la información enviada (en este
+ caso, códigos de teclas).
+\end_layout
+
+\begin_layout Itemize
+Dispositivos de salida como impresoras que no son capaces de procesar informació
+n a la velocidad a la que un proceso puede enviarla, por lo que se debe
+ ir enviando poco a poco.
+\end_layout
+
+\begin_layout Itemize
+Dispositivos de bloques, en los que conviene guardar temporalmente en memoria
+ ciertos bloques para acelerar su funcionamiento y permitir a los procesos
+ leer o escribir una cantidad arbitraria de bytes.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Asignar y liberar dispositivos de uso exclusivo, aceptando o rechazando
+ solicitudes según disponibilidad.
+\end_layout
+
+\begin_layout Itemize
+Informar de los errores cuando el manejador de dispositivo no los puede
+ solucionar.
+\end_layout
+
+\begin_layout Standard
+Los sistemas de fichero son independientes de dispositivo y trabajan sobre
+ dispositivos de bloques abstractos.
+ También hay software de E/S independiente de dispositivo en el espacio
+ de usuario:
+\end_layout
+
+\begin_layout Itemize
+Bibliotecas de E/S, que llevan a cabo las llamadas al sistema.
+\end_layout
+
+\begin_layout Itemize
+Sistema de
+\emph on
+spooling
+\emph default
+ para dispositivos de uso exclusivo.
+ Por ejemplo, el
+\series bold
+demonio
+\series default
+ de impresión comprueba periódicamente si hay ficheros en el
+\series bold
+directorio de
+\emph on
+spooling
+\series default
+\emph default
+ y, si es así, los imprime, de modo que el resto de procesos pueden imprimir
+ un fichero situándolo (en el formato apropiado) en el directorio de
+\emph on
+spooling
+\emph default
+.
+ Esto impide que un proceso mantenga abierto un dispositivo de uso exclusivo
+ sin hacer nada con él mientras el resto de procesos esperan, y permite
+ eliminar un trabajo antes de que sea procesado, cambiar el orden en que
+ se deben tratar los trabajos, etc.
+\end_layout
+
+\begin_layout Section
+Discos
+\end_layout
+
+\begin_layout Standard
+Los discos duros están formados por una serie de discos o platos magnéticos
+ conectados a un eje común que gira a gran velocidad (por ejemplo,
+\begin_inset Formula $\unit[5400]{RPM}$
+\end_inset
+
+) y una serie de cabezas de lectura/escritura, una por cada superficie de
+ disco, que pueden leer o escribir sobre la porción de la superficie de
+ los platos que está justo debajo o encima de estas, y que están todas conectada
+s mediante brazos a un mismo soporte que puede girar en un cierto arco haciendo
+ que las cabezas se muevan hacia dentro o fuera sobre la superficie de los
+ discos.
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\series bold
+cilindro
+\series default
+ al conjunto de posiciones del disco accesibles en una cierta posición de
+ las cabezas,
+\series bold
+pista
+\series default
+ (
+\series bold
+circular
+\series default
+) al subconjunto de estas posiciones sobre una misma superficie de disco
+ y
+\series bold
+sector
+\series default
+ a la unidad mínima de lectura y escritura soportada por la controladora,
+ con tamaños típicos de entre
+\begin_inset Formula $\unit[512]{B}$
+\end_inset
+
+ y
+\begin_inset Formula $\unit[4]{KiB}$
+\end_inset
+
+ (siempre potencias de 2), y que corresponde a una porción de pista.
+\end_layout
+
+\begin_layout Standard
+Cada sector se identifica por la terna de los números de cilindro, cabeza
+ y sector dentro de la pista, numerados desde 0, donde los cilindros más
+ externos (más alejados del eje) tienen menor número.
+ El
+\series bold
+tiempo de servicio
+\series default
+ o
+\series bold
+de acceso
+\series default
+ a un sector es la suma de:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Tiempo de búsqueda
+\series default
+, para colocar las cabezas en el cilindro adecuado.
+ El más largo.
+\end_layout
+
+\begin_layout Enumerate
+Tiempo para activar la cabeza adecuada, despreciable.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Tiempo de latencia
+\series default
+, hasta que los sectores a leer o escribir pasen junto a la cabeza.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Tiempo de transmisión
+\series default
+, de leer o escribir los sectores en sí según van pasando por la cabeza.
+\end_layout
+
+\begin_layout Standard
+Hoy en día las pistas exteriores de los discos son más largas que las interiores
+ y por tanto contienen más sectores, dividiéndose el disco en zonas (anillos
+ circulares) en las que cada pista contiene el mismo número de sectores.
+ Para que el manejador de disco no tenga que conocer su estructura interna,
+ la controladora de disco expone una interfaz a modo de lista contigua de
+ bloques.
+\end_layout
+
+\begin_layout Standard
+Debemos planificar el orden en que se atienden las solicitudes de la cola
+ de solicitudes a disco pendientes para reducir el movimiento de las cabezas.
+ Como el manejador no conoce la geometría del disco, en vez de la distancia
+ entre cilindros se tiene en cuenta la distancia entre direcciones de bloque.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+FCFS
+\series default
+ (
+\emph on
+First Come, First Served
+\emph default
+): Por orden de llegada, da tiempos de servicio grandes.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+SSF
+\series default
+ (
+\emph on
+Shortest Seek First
+\emph default
+): Atiende la solicitud del bloque más cercano al actual.
+ No es equitativo, pues atiende enseguida solicitudes de cilindros próximos
+ al actual y no otras solicitudes que llegaron antes, y tampoco es óptimo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+SCAN
+\series default
+ o
+\series bold
+algoritmo del ascensor
+\series default
+: En un sentido, atiende la solicitud del bloque con el mayor número que
+ sea menor al del actual.
+ En el otro, la del menor número que sea mayor al del actual.
+ Cuando no quedan peticiones en un sentido, cambia al otro.
+ Dada cualquier colección de solicitudes, el máximo de movimientos es el
+ doble del número de cilindros, evitando la localidad.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+C-SCAN
+\series default
+ o
+\series bold
+SCAN circular
+\series default
+: En SCAN, cuando las cabezas llegan a un extremo e inviertan el sentido,
+ habrá pocas solicitudes en la zona próxima, mientras que en la otra habrá
+ muchas y llevarán más tiempo.
+ El C-SCAN modifica este algoritmo de modo que, si el sentido es de mayor
+ a menor bloque y no hay ninguna solicitud de bloque de número menor, se
+ toma el bloque de mayor número y se sigue en el mismo sentido, y lo mismo
+ ocurre al revés si el sentido es el otro.
+\end_layout
+
+\begin_layout Standard
+Si la tecnología cambia, pueden ser necesarios nuevos algoritmos.
+ Los discos duros actuales suelen tener una pequeña caché en la controladora
+ para leer por adelantado pistas enteras o partes de ellas, por lo que se
+ prefiere atender una solicitud que acaba de llegar pero está próxima a
+ la última servida antes de otra que lleva más esperando, aunque si lleva
+ mucho tiempo esperando se atiende de inmediato.
+\end_layout
+
+\begin_layout Standard
+La implementación del sistema de ficheros puede tener gran influencia sobre
+ las solicitudes, pues no es lo mismo si estos están en un área contigua
+ en disco (requiriendo pocos movimientos de las cabezas) o dispersos (muchos
+ movimientos), en cuyo caso se podría defragmentar el disco colocando los
+ bloques de cada fichero contiguos o próximos.
+ También podemos colocar los bloques de datos de directorios próximos a
+ los bloques de nodos-i de sus ficheros, como hacen ext2/3/4, XFS o JFS.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+disco RAM
+\series default
+ es un dispositivo de bloques en que los bloques se almacenan en memoria
+ principal, permitiendo acceso instantáneo, con lo que cuando el manejador
+ recibe un mensaje para lectura o escritura de un bloque, basta que calcule
+ el lugar de la memoria del disco RAM donde se encuentra.
+\end_layout
+
+\begin_layout Section
+Relojes
+\end_layout
+
+\begin_layout Standard
+Los relojes más sencillos están sujetos a la línea de corriente alterna
+ y provocan una in
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+te
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rrup
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ción por cada ciclo de voltaje (a 50 o
+\begin_inset Formula $\unit[60]{Hz}$
+\end_inset
+
+).
+ Los
+\series bold
+relojes programables
+\series default
+ constan de un oscilador de cristal de cuarzo que genera una señal periódica
+ de 5 a
+\begin_inset Formula $\unit[100]{MHz}$
+\end_inset
+
+ o más de muy alta precisión; un contador que a partir de esta señal cuenta
+ de forma decreciente hasta 0 y, cuando llega, provoca una interrupción,
+ y un registro de carga para actualizar el contador.
+\end_layout
+
+\begin_layout Standard
+En
+\series bold
+modo de disparo único
+\series default
+, el reloj copia al iniciarse el valor del registro de carga en el contador
+ y, cuando este llega a 0, se detiene hasta ser iniciado de nuevo por el
+ software, mientras que en
+\series bold
+modo de onda cuadrada
+\series default
+, cuando llega a 0, el registro de carga se copia automáticamente al contador,
+ generando interrupciones periódicas llamadas
+\series bold
+marcas
+\series default
+ o
+\series bold
+tics de reloj
+\series default
+.
+ Los chips suelen contener 2 o 3 relojes programables independientes, así
+ como otras opciones como contar en forma ascendente o desactivar las interrupci
+ones.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+manejador del reloj
+\series default
+ se encarga de:
+\end_layout
+
+\begin_layout Itemize
+Controlar la hora del día, incrementando un contador en cada marca del reloj
+ registrando el tiempo transcurrido desde, por ejemplo, el inicio del año
+ 1970 como se hace en UNIX, momento conocido como
+\emph on
+The Epoch
+\emph default
+ (La Época
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+¿A que al traducirlo pierde toda la gracia?
+\end_layout
+
+\end_inset
+
+).
+ El contador se puede implementar, por ejemplo, como:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Contador de marcas.
+ Si es de
+\begin_inset Formula $\unit[64]{bits}$
+\end_inset
+
+ a
+\begin_inset Formula $\unit[60]{Hz}$
+\end_inset
+
+, puede registrar más de
+\begin_inset Formula $\unit[9800]{m.a.}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+Contador de segundos y otro de marcas hasta llegar al segundo.
+ Si son de
+\begin_inset Formula $\unit[32]{bits}$
+\end_inset
+
+ desde
+\emph on
+The Epoch
+\emph default
+, el desbordamiento ocurre en 2106 si se guarda como entero sin signo o
+ 2038 si se guarda con signo.
+\end_layout
+
+\begin_layout Itemize
+Instante de arranque en segundos y contador de marcas desde el arranque.
+ Si el contador es de
+\begin_inset Formula $\unit[32]{bits}$
+\end_inset
+
+ a
+\begin_inset Formula $\unit[60]{Hz}$
+\end_inset
+
+, habrá que reiniciar tras algo más de 2 años y 3 meses.
+\end_layout
+
+\begin_layout Standard
+Para obtener la fecha al arrancar, el sistema operativo puede pedirla al
+ usuario o tomarla del
+\series bold
+reloj de tiempo real
+\series default
+ de la placa base, un pequeño circuito integrado con una pequeña batería
+ que mantiene la hora incluso con la máquina apagada.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Controlar el tiempo de ejecución de los procesos, con un contador con el
+ valor del
+\emph on
+quantum
+\emph default
+ del proceso en marcas del reloj para llamar al planificador cuando el contador
+ llegue a 0.
+\end_layout
+
+\begin_layout Itemize
+Contabilizar el uso de CPU.
+ Una forma es iniciar un segundo reloj cada vez que se asigne la CPU a un
+ proceso y leer el valor del contador cuando el proceso deje la CPU para
+ añadir el tiempo a un campo en la entrada de la tabla de procesos.
+ El reloj debe parar cuando la CPU atienda una interrupción.
+ Otra forma más sencilla es incrementar un campo en la tabla de procesos
+ por cada marca de reloj, pero esta es menos exacta porque, por ejemplo,
+ un proceso puede pasar a usar la CPU justo tras producirse una marca y
+ dejarla justo antes de la siguiente y esto no contaría.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Alarmas
+\series default
+.
+ Un proceso en UNIX puede ejecutar la llamada
+\family typewriter
+alarm
+\family default
+ para pedir al sistema operativo que le avise tras un cierto tiempo enviándole
+ una señal
+\family typewriter
+SIGALRM
+\family default
+.
+ Si el manejador de reloj tiene relojes físicos suficientes, se puede usar
+ uno para cada solicitud, pero como esto es improbable se simular relojes
+ virtuales.
+\begin_inset Newline newline
+\end_inset
+
+Una forma es tener una tabla con el tiempo de señalización de cada alarma
+ y una variable que indica el tiempo en marcas hasta la próxima señal, de
+ modo que al actualizar la hora del día se decrementa esta variable y, si
+ llega a 0, se envía la señal al proceso, se busca la siguiente alarma y
+ se actualiza la variable.
+ Otra forma es tener una lista ligada de alarmas según tiempo de ocurrencias
+ en que cada elemento indica el número de marcas de reloj a esperar tras
+ la siguiente señal.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Cronómetros guardianes
+\series default
+.
+ Son alarmas establecidas por el propio sistema operativo.
+ Por ejemplo, para acceder a un DVD hay que activar el motor del lector
+ y esperar a la velocidad adecuada, por lo que es buena idea dejar el motor
+ encendido por un tiempo por si hay más operaciones de E/S y detenerlo si
+ pasa un tiempo sin que haya.
+ Funcionan como alarmas pero, en vez de provocar una señal, llaman a un
+ procedimiento proporcionado por quien hizo la llamada dado que en el núcleo
+ no hay señales.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/na.lyx b/iso/na.lyx
new file mode 100644
index 0000000..bbe948a
--- /dev/null
+++ b/iso/na.lyx
@@ -0,0 +1,7090 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+En UNIX/Linux existen tres grandes familias de intérpretes de órdenes o
+
+\emph on
+shells
+\emph default
+:
+\family typewriter
+sh
+\family default
+,
+\family typewriter
+csh
+\family default
+ y
+\family typewriter
+ksh
+\family default
+.
+ Nos centraremos en
+\family typewriter
+bash
+\family default
+, el Bourne-Again Shell, un
+\emph on
+shell
+\emph default
+ libre de la familia de
+\family typewriter
+sh
+\family default
+.
+ Podemos acceder a este:
+\end_layout
+
+\begin_layout Itemize
+Directamente, si el sistema arranca en modo texto.
+\end_layout
+
+\begin_layout Itemize
+El sistema suele tener 12 terminales virtuales.
+ El modo gráfico suele usar las dos primeras, por lo que podemos acceder
+ a modo texto pulsando
+\family typewriter
+C-M-F
+\emph on
+
+\begin_inset Formula $i$
+\end_inset
+
+
+\family default
+\emph default
+ con
+\begin_inset Formula $i=3,\dots,12$
+\end_inset
+
+ y volver al modo gráfico con
+\family typewriter
+C-M-F1
+\family default
+ o
+\family typewriter
+C-M-F2
+\family default
+ dependiendo del sistema.
+\end_layout
+
+\begin_layout Itemize
+También, desde el modo gráfico, podemos usar un programa de simulación del
+ terminal, que permite ejecutar órdenes desde el entorno de ventanas.
+ Destacan
+\family typewriter
+konsole
+\family default
+ de KDE y
+\family typewriter
+gnome-terminal
+\family default
+ de GNOME.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+bash
+\family default
+ es programable a partir de ficheros de texto con listas de órdenes, llamados
+
+\series bold
+guiones
+\emph on
+shell
+\series default
+\emph default
+ (
+\emph on
+shell scripts
+\emph default
+) o
+\series bold
+\emph on
+scripts
+\series default
+\emph default
+.
+\end_layout
+
+\begin_layout Standard
+En general, las órdenes que aceptan varias opciones a la vez de una sola
+ letra permiten escribir, por ejemplo,
+\family typewriter
+-abcd
+\family default
+ en vez de
+\family typewriter
+-a -b -c -d
+\family default
+, y esto también vale si la última orden requiere un argumento.
+ Todos los procesos, cuando finalizan, devuelven un
+\series bold
+código de salida
+\series default
+ (
+\emph on
+exit code
+\emph default
+) o
+\series bold
+estado de salida
+\series default
+ (
+\emph on
+exit status
+\emph default
+) al proceso padre, que generalmente es 0 cuando la ejecución es correcta
+ y un valor entre 1 y 255 cuando hay un error.
+
+\end_layout
+
+\begin_layout Standard
+Ejecutar
+\family typewriter
+\emph on
+comando
+\emph default
+ --help
+\family default
+ en general muestra una breve ayuda sobre una orden externa.
+ Otras fuentes son la ayuda de
+\family typewriter
+bash
+\family default
+, la de
+\family typewriter
+man
+\family default
+, la documentación de las distribuciones, sitios como FAQs, foros, etc.,
+ y proyectos de documentación libre como TLDP.
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+De aquí en adelante buscad en todos estos sitios antes de preguntarme a
+ mí.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Las órdenes se ejecutan siempre desde el
+\series bold
+directorio actual
+\series default
+ en el que nos encontremos.
+ Cada usuario tiene un
+\series bold
+directorio personal
+\series default
+, que suele ser
+\family typewriter
+/home/
+\emph on
+usuario
+\family default
+\emph default
+, siendo
+\family typewriter
+\emph on
+usuario
+\family default
+\emph default
+ el nombre del usuario.
+\end_layout
+
+\begin_layout Standard
+Los ficheros y directorios tienen una serie de permisos para el propietario
+ (o usuario), el grupo y el resto de usuarios.
+ Para cada uno de estos se definen los siguientes permisos:
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="20text%">
+<column alignment="center" valignment="top" width="30text%">
+<column alignment="center" valignment="top" width="40text%">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Permiso
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Fichero
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Directorio
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Lectura (
+\family typewriter
+r
+\family default
+)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Leer el contenido.
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Obtener la lista de entradas.
+ No es necesario para acceder a ellas si conocemos su nombre.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Escritura (
+\family typewriter
+w
+\family default
+)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Modificar el contenido.
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Crear, borrar o modificar entradas.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Ejecución (
+\family typewriter
+x
+\family default
+)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Ejecutar el fichero.
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Acceder al nodo-i de las entradas para acceder a subdirectorios o ficheros
+ u obtener los metadatos de estos.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Además de los permisos especiales:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+t
+\family default
+ (
+\emph on
+sticky bit
+\emph default
+): En un directorio, un usuario con permiso de lectura puede crear ficheros,
+ pero sólo puede borrar los que le pertenecen.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+u+s
+\family default
+ (suid): En un ejecutable, el UID cambia al del propietario al ejecutarlo.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+g+s
+\family default
+ (sgid): En un ejecutable, el GID cambia al del grupo del fichero al ejecutarlo.
+ En un directorio, los ficheros creados dentro pertenecen al grupo del directori
+o, y no (ne
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ce
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+sa
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ria
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+men
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+te) al grupo activo de quien lo crea.
+\end_layout
+
+\begin_layout Standard
+Los permisos se representan en notación estándar como la cadena
+\family typewriter
+rwxrwxrwx
+\family default
+, con 3 grupos para usuario, grupo y otros, respectivamente, donde se sustituyen
+ los caracteres de los permisos que no están por
+\family typewriter
+-
+\family default
+.
+ La
+\family typewriter
+x
+\family default
+ de usuario o grupo, respectivamente, cambia a una
+\family typewriter
+s
+\family default
+ si está activo el suid o el sgid.
+ La
+\family typewriter
+x
+\family default
+ de otros cambia a una
+\family typewriter
+t
+\family default
+ si está activo el
+\emph on
+sticky bit
+\emph default
+.
+ También se puede representar en octal, considerando en esta cadena que
+ un permiso que se da es un 1 y uno que no es un 0, y convirtiendo el número
+ binario resultante a octal.
+\end_layout
+
+\begin_layout Standard
+A continuación vemos versiones reducidas y traducidas de las páginas
+\family typewriter
+man
+\family default
+ (del manual) de los principales comandos, que definen un subconjunto de
+ la funcionalidad de estos en la implementación de GNU.
+\end_layout
+
+\begin_layout Section
+
+\family typewriter
+bash
+\end_layout
+
+\begin_layout Standard
+Si bien veremos que el
+\emph on
+shell
+\emph default
+ permite crear variables, estas son variables locales, que son heredadas
+ por los hijos del
+\emph on
+shell
+\emph default
+ (si bien al modificarlas estos no se actualizan en el proceso padre ni
+ al revés) pero desaparecen en cuanto estos llaman a
+\family typewriter
+exec
+\family default
+.
+ No obstante, cada proceso en UNIX incluye un
+\series bold
+entorno
+\series default
+ con una serie de
+\series bold
+variables de entorno
+\series default
+, que se heredan de padres a hijos en
+\family typewriter
+fork
+\family default
+, no se borran al usar
+\family typewriter
+exec
+\family default
+ y los procesos pueden crear, modificar o borrar.
+ Por ejemplo,
+\family typewriter
+LOGNAME
+\family default
+ contiene el nombre del usuario que ha iniciado sesión.
+\end_layout
+
+\begin_layout Standard
+Los procesos disponen por defecto de tres descriptores de fichero:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Entrada estándar
+\series default
+ (0): Para recibir datos de entrada.
+ Normalmente es el teclado.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Salida estándar
+\series default
+ (1): Para mostrar resultados.
+ Normalmente la pantalla.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Salida estándar de error
+\series default
+ (2): Para mostrar mensajes de error.
+ Normalmente la pantalla.
+\end_layout
+
+\begin_layout Standard
+Estos se pueden redireccionar para almacenar datos de salida o recibir datos
+ de entrada de un fichero, o comunicar unos procesos con otros
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+bash
+\family default
+ —
+\emph on
+GNU Bourne-Again SHell
+\end_layout
+
+\begin_layout Subsubsection*
+SINOPSIS
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+bash
+\series default
+ [opciones] [comando | archivo]
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES
+\end_layout
+
+\begin_layout Standard
+Todas las opciones de un caracter documentadas en la descripción del comando
+ interno
+\family typewriter
+\series bold
+set
+\family default
+\series default
+ pueden usarse como opciones al invocar el
+\emph on
+shell
+\emph default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+ARGUMENTOS
+\end_layout
+
+\begin_layout Standard
+Si quedan argumentos tras las
+\family typewriter
+\emph on
+opciones
+\family default
+\emph default
+, el primero de estos se entiende como el nombre de un fichero con comandos
+
+\emph on
+shell
+\emph default
+, que guarda en el parámetro
+\family typewriter
+\series bold
+$0
+\family default
+\series default
+, y el resto de argumentos los guarda en los parámetros posicionales, en
+ orden creciente.
+ Entonces
+\family typewriter
+\series bold
+bash
+\family default
+\series default
+ lee y ejecuta los comandos de este archivo y termina su ejecución.
+ El estado de salida de
+\family typewriter
+\series bold
+bash
+\family default
+\series default
+ es el del último comando ejecutado en el
+\emph on
+script
+\emph default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+INVOCACIÓN
+\end_layout
+
+\begin_layout Standard
+Cuando
+\family typewriter
+\series bold
+bash
+\family default
+\series default
+ se invoca como
+\emph on
+shell
+\emph default
+ de inicio de sesión interactivo, ejecuta los comandos de
+\family typewriter
+~/.bash_profile
+\family default
+, si existe.
+ Cuando un
+\emph on
+shell
+\emph default
+ de inicio de sesión interactivo termina, ejecuta los comandos de
+\family typewriter
+~/.bash_logout
+\family default
+.
+ Cuando se inicia un
+\emph on
+shell
+\emph default
+ interactivo que no es de inicio de sesión,
+\family typewriter
+\series bold
+bash
+\family default
+\series default
+ ejecuta los comandos de
+\family typewriter
+~/.bashrc
+\family default
+, si existe.
+\end_layout
+
+\begin_layout Subsubsection*
+DEFINICIONES
+\end_layout
+
+\begin_layout Description
+Blanco Espacio o tabulador.
+\end_layout
+
+\begin_layout Description
+Palabra Secuencia de caracteres interpretada como una unidad por el
+\emph on
+shell
+\emph default
+.
+\end_layout
+
+\begin_layout Description
+Nombre Palabra con solo caracteres alfanuméricos y barras bajas que no comienza
+ por un número.
+\end_layout
+
+\begin_layout Description
+Metacaracter Caracter que, si no está entre comillas, separa palabras.
+ Uno de
+\family typewriter
+|
+\family default
+,
+\family typewriter
+&
+\family default
+,
+\family typewriter
+;
+\family default
+,
+\family typewriter
+(
+\family default
+,
+\family typewriter
+)
+\family default
+,
+\family typewriter
+<
+\family default
+,
+\family typewriter
+>
+\family default
+, espacio, tabulador y salto de línea.
+\end_layout
+
+\begin_layout Description
+Operador
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+control Palabra que realiza una función de control.
+ Una de
+\family typewriter
+||
+\family default
+,
+\family typewriter
+&
+\family default
+,
+\family typewriter
+&&
+\family default
+,
+\family typewriter
+;
+\family default
+,
+\family typewriter
+;;
+\family default
+,
+\family typewriter
+;&
+\family default
+,
+\family typewriter
+;;&
+\family default
+,
+\family typewriter
+(
+\family default
+,
+\family typewriter
+)
+\family default
+,
+\family typewriter
+|
+\family default
+,
+\family typewriter
+|&
+\family default
+ y salto de línea.
+\end_layout
+
+\begin_layout Subsubsection*
+GRAMÁTICA DEL SHELL
+\end_layout
+
+\begin_layout Paragraph*
+Comandos simples
+\end_layout
+
+\begin_layout Standard
+Secuencia opcional de asignaciones de variables seguida de una lista de
+ palabras separadas por blancos, seguida de redirecciones, y terminada por
+ un operador de control.
+ La primera palabra indica el comando a ejecutar, pasado como argumento
+ 0, y el resto son los argumentos a dicho comando.
+\end_layout
+
+\begin_layout Paragraph*
+Tuberías,
+\emph on
+pipelines
+\emph default
+ o
+\emph on
+pipes
+\end_layout
+
+\begin_layout Standard
+Formadas por uno o varios comandos simples separados por
+\family typewriter
+\series bold
+|
+\family default
+\series default
+, para conectar la salida estándar del de la izquierda con la entrada estándar
+ de la siguiente, o por
+\family typewriter
+|&
+\family default
+, abreviación para
+\family typewriter
+2>&1|
+\family default
+, y que se ejecutan en paralelo en sus respectivos procesos.
+\end_layout
+
+\begin_layout Paragraph*
+Listas
+\end_layout
+
+\begin_layout Standard
+Formadas por una o más tuberías separadas por
+\family typewriter
+;
+\family default
+,
+\family typewriter
+&
+\family default
+,
+\family typewriter
+&&
+\family default
+ o
+\family typewriter
+||
+\family default
+, y terminadas opcionalmente por
+\family typewriter
+;
+\family default
+,
+\family typewriter
+&
+\family default
+ o un salto de línea.
+
+\family typewriter
+\series bold
+&&
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+||
+\family default
+\series default
+ tienen igual precedencia, seguidos por
+\family typewriter
+\series bold
+;
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+&
+\family default
+\series default
+, de igual precedencia.
+ Una secuencia de uno o más saltos de línea puede aparecer en una lista
+ en lugar de un
+\family typewriter
+;
+\family default
+ para delimitar comandos.
+\end_layout
+
+\begin_layout Standard
+Si un comando termina con
+\family typewriter
+\series bold
+&
+\family default
+\series default
+, se ejecuta en segundo plano en una
+\emph on
+subshell
+\emph default
+.
+ Comandos separados por
+\family typewriter
+\series bold
+;
+\family default
+\series default
+ se ejecutan secuencialmente.
+\end_layout
+
+\begin_layout Standard
+Las listas Y (AND) y O (OR) son secuencias de una o más tuberías separadas
+ por
+\family typewriter
+\series bold
+&&
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+||
+\family default
+\series default
+, respectivamente.
+ Una lista AND tiene forma
+\family typewriter
+\emph on
+comando1
+\emph default
+
+\series bold
+&&
+\series default
+
+\emph on
+comando2
+\family default
+\emph default
+, y en esta
+\family typewriter
+\emph on
+comando2
+\family default
+\emph default
+ se ejecuta si y sólo si
+\family typewriter
+\emph on
+comando1
+\family default
+\emph default
+ devuelve 0.
+ Una lista OR tiene forma
+\family typewriter
+\emph on
+comando1
+\emph default
+
+\series bold
+||
+\series default
+
+\emph on
+comando2
+\family default
+\emph default
+, y en esta
+\family typewriter
+\emph on
+comando2
+\family default
+\emph default
+ se ejecuta si y sólo si
+\family typewriter
+\emph on
+comando1
+\family default
+\emph default
+ devuelve un valor distinto de 0.
+ El estado de salida de las listas Y y O es el del último comando ejecutado
+ en la lista.
+\end_layout
+
+\begin_layout Subsubsection*
+Comandos compuestos
+\end_layout
+
+\begin_layout Standard
+En la mayoría de los siguientes casos los
+\family typewriter
+;
+\family default
+ pueden sustituirse por uno o más saltos de línea.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+(
+\emph on
+lista
+\emph default
+)
+\family default
+ La
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ se ejecuta en un
+\emph on
+subshell
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+{
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+}
+\family default
+ La
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ se ejecuta en el
+\emph on
+shell
+\emph default
+ actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+if
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+then
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+[
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+elif
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+then
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+]
+\begin_inset space ~
+\end_inset
+
+...
+\begin_inset space ~
+\end_inset
+
+[
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+else
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+]
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+fi
+\family default
+\series default
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+ Ejecuta la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ en
+\family typewriter
+\series bold
+if
+\family default
+\series default
+ y, si devuelve cero, ejecuta la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ en
+\family typewriter
+\series bold
+then
+\family default
+\series default
+.
+ De lo contrario evalúa la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ de cada
+\family typewriter
+\series bold
+elif
+\family default
+\series default
+ y, si devuelve cero, ejecuta la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ en el
+\family typewriter
+\series bold
+then
+\family default
+\series default
+ correspondiente y termina el comando, y si esto no ocurre, se ejecuta la
+
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ en
+\family typewriter
+\series bold
+else
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+case
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+palabra
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+in
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+patrón
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+[
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+|
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+patrón
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+]
+\begin_inset space ~
+\end_inset
+
+...
+\begin_inset space ~
+\end_inset
+
+)
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+;;
+\begin_inset space ~
+\end_inset
+
+]
+\begin_inset space ~
+\end_inset
+
+...
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+esac
+\family default
+\series default
+ Busca el primer
+\family typewriter
+\emph on
+patrón
+\family default
+\emph default
+ que coincida (según
+\begin_inset Quotes fld
+\end_inset
+
+Expansión de nombres de archivo
+\begin_inset Quotes frd
+\end_inset
+
+ pero sin considerar
+\family typewriter
+/
+\family default
+ de manera especial) con el valor de la
+\family typewriter
+\emph on
+palabra
+\family default
+\emph default
+ una vez expandida y ejecuta la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ correspondiente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+while
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista1
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+do
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista2
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+done
+\family default
+\series default
+ Ejecuta
+\family typewriter
+\emph on
+lista1
+\family default
+\emph default
+ y, si devuelve 0, ejecuta
+\family typewriter
+\emph on
+lista2
+\family default
+\emph default
+ y repite esta acción.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+for
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+in
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+palabra
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+...
+\begin_inset space ~
+\end_inset
+
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+do
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+done
+\family default
+\series default
+ Una vez expandida la lista de
+\family typewriter
+\emph on
+palabra
+\family default
+\emph default
+s, para cada una, ejecuta
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ con la variable
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ establecida a dicha palabra, en orden.
+\end_layout
+
+\begin_layout Paragraph*
+Definiciones de funciones
+\end_layout
+
+\begin_layout Standard
+Una función
+\emph on
+shell
+\emph default
+ es un objeto que se llama como un comando simple y ejecuta un comando compuesto
+ con un nuevo conjunto de parámetros posicionales.
+ Se declaran como:
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+function
+\series default
+
+\emph on
+nombre
+\emph default
+
+\emph on
+comando_compuesto
+\end_layout
+
+\begin_layout Subsubsection*
+PARÁMETROS
+\end_layout
+
+\begin_layout Standard
+Un parámetro es una entidad que almacena valores, y puede ser un nombre,
+ un número o uno de los caracteres en
+\begin_inset Quotes fld
+\end_inset
+
+Parámetros especiales
+\begin_inset Quotes frd
+\end_inset
+
+.
+ Si es un nombre se le llama
+\series bold
+variable
+\series default
+, y puede ser asignado mediante la sentencia
+\family typewriter
+nombre=[
+\emph on
+valor
+\emph default
+]
+\family default
+.
+ No puede haber espacios entre el
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+, el signo
+\family typewriter
+=
+\family default
+ y el
+\family typewriter
+\emph on
+valor
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Parámetros posicionales
+\end_layout
+
+\begin_layout Standard
+Se denotan por un número positivo distinto de 0 en decimal.
+\end_layout
+
+\begin_layout Paragraph*
+Parámetros especiales
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+@
+\family default
+\series default
+ Todos los parámetros posicionales, en orden creciente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+#
+\family default
+\series default
+ Número de parámetros posicionales, en decimal.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+?
+\family default
+\series default
+ Estado de salida de la tubería ejecutada más recientemente en primer plano.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+$
+\family default
+\series default
+ PID del
+\emph on
+shell
+\emph default
+ actual.
+ Si se ejecuta en un
+\emph on
+subshell
+\emph default
+ con
+\family typewriter
+()
+\family default
+, no devuelve el PID del
+\emph on
+subshell
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+!
+\family default
+\series default
+ PID del último trabajo puesto a ejecutar en segundo plano.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+0
+\family default
+\series default
+ Nombre con el que se ha invocado al
+\emph on
+script
+\emph default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Variables de shell
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+PWD
+\family default
+ El directorio actual, variable establecida por el
+\emph on
+shell
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+HOME
+\family default
+\series default
+ Directorio personal del usuario actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+PATH
+\family default
+\series default
+ Lista de directorios separados por
+\family typewriter
+:
+\family default
+ en los que el
+\emph on
+shell
+\emph default
+ busca comandos.
+\end_layout
+
+\begin_layout Subsubsection*
+EXPANSIÓN
+\end_layout
+
+\begin_layout Standard
+Una barra invertida (
+\family typewriter
+
+\backslash
+
+\family default
+) anula el significado especial del caracter siguiente.
+ Encerrar ca
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rac
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+te
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+res entre comillas simples (
+\family typewriter
+'
+\family default
+) preserva el valor literal de todos, incluso de
+\family typewriter
+
+\backslash
+
+\family default
+, anulando la expansión y la separación de palabras.
+ Encerrarlos entre comillas dobles (
+\family typewriter
+"
+\family default
+) anula toda expansión salvo la expansión de parámetros, la sustitución
+ de comandos y el significado de
+\family typewriter
+
+\backslash
+
+\family default
+ cuando el siguiente caracter es
+\family typewriter
+$
+\family default
+,
+\family typewriter
+`
+\family default
+,
+\family typewriter
+"
+\family default
+ o un salto de línea.
+\end_layout
+
+\begin_layout Paragraph*
+Expansión de llaves
+\end_layout
+
+\begin_layout Standard
+Una palabra que contenga
+\family typewriter
+{
+\emph on
+arg1
+\emph default
+,
+\emph on
+arg2
+\emph default
+,
+\family default
+...
+\family typewriter
+}
+\family default
+ es sustituida (recursivamente) por varias palabras resultado de sustituir
+ dicha expresión por cada una de las palabras entre llaves.
+\end_layout
+
+\begin_layout Paragraph*
+Expansión de tilde
+\end_layout
+
+\begin_layout Standard
+En una palabra no entrecomillada, si empieza por
+\family typewriter
+\series bold
+~
+\family default
+\series default
+ seguido de
+\family typewriter
+\series bold
+/
+\family default
+\series default
+, o si este es el único caracter de la palabra, este es sustituido por el
+ valor del parámetro
+\family typewriter
+\series bold
+HOME
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Expansión de parámetros
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+${
+\emph on
+parámetro
+\emph default
+}
+\family default
+ es sustituido por el valor del
+\family typewriter
+\emph on
+parámetro
+\family default
+\emph default
+.
+ Las llaves son opcionales y sirven para delimitar el parámetro (de lo contrario
+ se considera que es el nombre más largo formado por caracteres consecutivos
+ después del
+\family typewriter
+$
+\family default
+ o, si no hay ninguno, por el primer caracter).
+ Si el primer caracter del
+\family typewriter
+\emph on
+parámetro
+\family default
+\emph default
+ es
+\family typewriter
+\series bold
+!
+\family default
+\series default
+, el valor de la variable formada por el resto del
+\family typewriter
+\emph on
+parámetro
+\family default
+\emph default
+ se usa como nombre del parámetro y es expandido en lugar del propio parámetro.
+\end_layout
+
+\begin_layout Paragraph*
+Sustitución de comandos
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+$(
+\emph on
+comando
+\emph default
+)
+\family default
+ o
+\family typewriter
+`
+\emph on
+comando
+\emph default
+`
+\family default
+ ejecuta el
+\family typewriter
+\emph on
+comando
+\family default
+\emph default
+ en una
+\emph on
+subshell
+\emph default
+ y es sustituido por la salida del comando.
+ Sin comillas, el intérprete entiende los saltos de línea dentro de la salida
+ como separadores de palabras.
+\end_layout
+
+\begin_layout Subsubsection*
+Expansión aritmética
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+$((
+\emph on
+expresión
+\emph default
+))
+\family default
+ se sustituye por el resultado de evaluar la
+\family typewriter
+\emph on
+expresión
+\family default
+\emph default
+ aritmética (ver
+\begin_inset Quotes fld
+\end_inset
+
+Evaluación aritmética
+\begin_inset Quotes frd
+\end_inset
+
+).
+
+\end_layout
+
+\begin_layout Paragraph*
+División de palabras
+\end_layout
+
+\begin_layout Standard
+Se preservan los argumentos nulos
+\family typewriter
+""
+\family default
+ y
+\family typewriter
+''
+\family default
+, pero no los que resultan de una expansión de un parámetro sin valor.
+\end_layout
+
+\begin_layout Paragraph*
+Expansión de rutas de archivo
+\end_layout
+
+\begin_layout Standard
+Cuando una palabra contiene
+\family typewriter
+*
+\family default
+,
+\family typewriter
+?
+\family default
+ o
+\family typewriter
+[
+\family default
+, el intérprete lo sustituye por una lista de nombres de archivo que cumplan
+ el patrón indicado.
+ El caracter
+\family typewriter
+.
+
+\family default
+ al principio de un nombre o inmediatamente detrás de una
+\family typewriter
+/
+\family default
+ debe reconocerse explícitamente en el patrón.
+ En este, la mayoria de caracteres se reconocen a sí mismo,
+\family typewriter
+*
+\family default
+ reconoce cero o más caracteres cualesquiera,
+\family typewriter
+?
+\family default
+ un caracter cualquiera, y
+\family typewriter
+[
+\family default
+...
+\family typewriter
+]
+\family default
+ indica cualquiera de los caracteres entre corchetes, salvo porque si el
+ primer caracter es
+\family typewriter
+!
+\family default
+, el significado pasa a ser cualquier caracter no indicado tras el
+\family typewriter
+!
+\family default
+, pudiendo en ambos casos indicar rangos como
+\family typewriter
+\emph on
+a
+\emph default
+-
+\emph on
+z
+\family default
+\emph default
+,
+\end_layout
+
+\begin_layout Paragraph
+Eliminación de comillas
+\end_layout
+
+\begin_layout Standard
+Una vez realizadas todas las expansiones se eliminan todas las ocurrencias
+ no entrecomilladas de los caracteres
+\family typewriter
+
+\backslash
+
+\family default
+,
+\family typewriter
+'
+\family default
+ y
+\family typewriter
+"
+\family default
+ que no fueran generadas por dichas expansiones.
+\end_layout
+
+\begin_layout Subsubsection*
+REDIRECCIÓN
+\end_layout
+
+\begin_layout Standard
+Estos operadores pueden aparecer detrás de un comando para redirigir su
+ entrada y salida.
+\end_layout
+
+\begin_layout Paragraph*
+Redirección de entrada
+\end_layout
+
+\begin_layout Standard
+Con
+\family typewriter
+[
+\emph on
+n
+\emph default
+]<
+\emph on
+fichero
+\family default
+\emph default
+ para redirigir la entrada del descriptor
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ (o 0) desde
+\family typewriter
+\emph on
+fichero
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Redirección de salida
+\end_layout
+
+\begin_layout Standard
+Con
+\family typewriter
+[
+\emph on
+n
+\emph default
+]>
+\emph on
+fichero
+\family default
+\emph default
+ para redirigir la salida del descriptor
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ (o 1) al
+\family typewriter
+\emph on
+fichero
+\family default
+\emph default
+, truncándolo si ya existía.
+\end_layout
+
+\begin_layout Paragraph*
+Anexado de salida redirigida
+\end_layout
+
+\begin_layout Standard
+Con
+\family typewriter
+[
+\emph on
+n
+\emph default
+]>>
+\emph on
+fichero
+\family default
+\emph default
+, similar a lo anterior pero si el
+\family typewriter
+\emph on
+fichero
+\family default
+\emph default
+ existe añade los nuevos datos al final.
+\end_layout
+
+\begin_layout Paragraph*
+Duplicado de descriptores de archivo
+\end_layout
+
+\begin_layout Standard
+Con
+\family typewriter
+[
+\emph on
+n
+\emph default
+]>&
+\emph on
+m
+\family default
+\emph default
+ para duplicar la salida del descriptor
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ (o 1) al descriptor
+\family typewriter
+\emph on
+m
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+ALIAS
+\end_layout
+
+\begin_layout Standard
+Permiten que una cadena sea sustituida por una palabra cuando se usa como
+ la primera de un comando simple.
+ Si esta primera palabra no está entre comillas, se comprueba para ver si
+ es un alias, en cuyo caso se reemplaza por el texto del alias.
+\end_layout
+
+\begin_layout Subsubsection*
+EVALUACIÓN ARITMÉTICA
+\end_layout
+
+\begin_layout Standard
+Las expresiones entre paréntesis (que no tienen que ir precedidos por
+\family typewriter
+
+\backslash
+
+\family default
+) se evalúan primero.
+ De mayor a menor prioridad:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+-
+\begin_inset space ~
+\end_inset
+
++
+\family default
+ Menos y más unarios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+**
+\family default
+ Exponencial.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+*
+\begin_inset space ~
+\end_inset
+
+/
+\begin_inset space ~
+\end_inset
+
+%
+\family default
+ Multiplicación, división y resto.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
++
+\begin_inset space ~
+\end_inset
+
+-
+\family default
+ Suma y resta.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+=
+\family default
+ Asignación (a la izquierda está el nombre de una variable).
+\end_layout
+
+\begin_layout Standard
+La expansión de parámetros se realiza antes de evaluar la expresión, y los
+ valores de parámetros se fuerzan a un entero.
+ Las constantes que empiezan por
+\family typewriter
+0
+\family default
+ se interpretan en octal, mientras que las que empiezan por
+\family typewriter
+0x
+\family default
+ o
+\family typewriter
+0X
+\family default
+ se interpretan como hexadecimal.
+ No debe haber espacio entre operandos y operadores.
+\end_layout
+
+\begin_layout Subsubsection*
+EJECUCIÓN DE COMANDOS
+\end_layout
+
+\begin_layout Standard
+Si el nombre del comando no contiene
+\family typewriter
+/
+\family default
+, si es el nombre de una función la ejecuta, o si es el nombre de un comando
+ interno, y de lo contrario busca en los directorios en
+\family typewriter
+\series bold
+PATH
+\family default
+\series default
+ uno que contenga un ejecutable con el nombre del comando.
+ Si contiene
+\family typewriter
+/
+\family default
+, lo interpreta como una ruta a un ejecutable.
+ La ejecución de un fichero ejecutable se realiza mediante un
+\family typewriter
+fork
+\family default
+ tras el cual el proceso hijo hace un
+\family typewriter
+exec
+\family default
+ y el padre, salvo que el proceso se deba ejecutar en segundo plano, espera
+ a que termine el hijo con
+\family typewriter
+wait
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+PROMPTS
+\end_layout
+
+\begin_layout Standard
+El intérprete suele mostrar un prompt como
+\family typewriter
+[
+\emph on
+usuario
+\emph default
+@
+\emph on
+nombremáquina
+\emph default
+
+\emph on
+directorio
+\emph default
+] $
+\family default
+, donde
+\family typewriter
+\emph on
+usuario
+\family default
+\emph default
+ es el nombre del usuario conectado al sistema,
+\family typewriter
+\emph on
+nombremáquina
+\family default
+\emph default
+ es el nombre de la máquina y
+\family typewriter
+\emph on
+directorio
+\family default
+\emph default
+ es el nombre del directorio actual, o
+\family typewriter
+~
+\family default
+ para el directorio personal del usuario.
+\end_layout
+
+\begin_layout Subsubsection*
+COMANDOS INTERNOS DEL SHELL
+\end_layout
+
+\begin_layout Standard
+Muchos de estos también son externos pero han sido incorporados al código
+ de
+\family typewriter
+bash
+\family default
+ para acelerar su ejecución.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+alias
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre
+\emph default
+=
+\emph on
+valor
+\family default
+\emph default
+ Establece un alias con el
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+valor
+\family default
+\emph default
+ dados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+break
+\family default
+\series default
+ Sale de un bucle
+\family typewriter
+\series bold
+for
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+while
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+cd
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+dir
+\emph default
+]
+\series bold
+
+\family default
+\series default
+Cambia el directorio actual al último en que habíamos estado si
+\family typewriter
+\emph on
+dir
+\family default
+\emph default
+ es
+\family typewriter
+-
+\family default
+, al directorio
+\family typewriter
+\emph on
+dir
+\family default
+\emph default
+ en caso contrario, o al directorio personal si
+\family typewriter
+\emph on
+dir
+\family default
+\emph default
+ no se especifica.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+continue
+\family default
+\series default
+ Continúa un bucle
+\family typewriter
+\series bold
+for
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+while
+\family default
+\series default
+ por la siguiente iteración.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+echo
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+opción
+\emph default
+]...
+ [
+\emph on
+arg
+\emph default
+]...
+
+\family default
+ Imprime los
+\family typewriter
+\emph on
+arg
+\family default
+\emph default
+umentos por la salida estándar, separados por espacio y seguidos de un salto
+ de línea.
+ Con
+\family typewriter
+\series bold
+-n
+\family default
+\series default
+, no se imprime el salto de línea al final.
+ Con
+\family typewriter
+\series bold
+-e
+\family default
+\series default
+, interpreta las secuencias:
+\end_layout
+
+\begin_deeper
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+
+\backslash
+b
+\family default
+\series default
+ Retrocede una posición.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+
+\backslash
+f
+\family default
+\series default
+ Alimentación de página.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+
+\backslash
+n
+\family default
+\series default
+ Salto de línea.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+
+\backslash
+t
+\family default
+\series default
+ Tabulador horizontal.
+\end_layout
+
+\end_deeper
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+exit
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\family default
+\emph default
+ Provoca que el
+\emph on
+shell
+\emph default
+ termine su ejecución con un estado de salida de
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+export
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+nombre
+\emph default
+[=
+\emph on
+palabra
+\emph default
+]]
+\family default
+ El
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ dado se convierte en variable de entorno.
+ Si se proporciona una
+\family typewriter
+\emph on
+palabra
+\family default
+\emph default
+, se asigna como valor a la variable.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+help
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+comando
+\family default
+\emph default
+ Muestra ayuda detallada de un
+\family typewriter
+\emph on
+comando
+\family default
+\emph default
+ interno.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+let
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\emph default
+...
+
+\family default
+ Evalúa una lista de
+\family typewriter
+\emph on
+expr
+\family default
+\emph default
+esiones aritméticas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+printf
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+formato
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+arg
+\emph default
+]...
+
+\family default
+ Imprime los
+\family typewriter
+\emph on
+arg
+\family default
+\emph default
+umentos por la salida estándar según un
+\family typewriter
+\emph on
+formato
+\family default
+\emph default
+, al estilo de C.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+pwd
+\family default
+\series default
+ Imprime la ruta absoluta del directorio actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+read
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+nombre
+\emph default
+]
+\family default
+ Lee una línea de la entrada estándar y la asigna como valor de
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+set
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+opción
+\emph default
+]...
+
+\family default
+ Sin opciones, imprime el nombre y el valor de todas las variables del
+\emph on
+shell
+\emph default
+ (incluyendo las de entorno).
+ Opciones:
+\end_layout
+
+\begin_deeper
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-u
+\family default
+\series default
+ Trata las variables no asignadas como errores en la expansión, mostrando
+ un mensaje de error.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Muestra las líneas de entrada de órdenes conforme se leen.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-x
+\family default
+\series default
+ Tras expandir cada comando simple,
+\family typewriter
+\series bold
+for
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+case
+\family default
+\series default
+, muestra el comando y sus argumentos expandidos.
+\end_layout
+
+\end_deeper
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+shift
+\family default
+\series default
+ Los parámetros posicionales desde el 2 cambian su número a uno menos, y
+ el re
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pre
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+sen
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ta
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+do por el número
+\family typewriter
+$#
+\family default
+ se desestablece.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+test
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\family default
+\emph default
+ Funciona como la orden externa
+\family typewriter
+test
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+[
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+]
+\family default
+\series default
+ Ídem.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+env
+\end_layout
+
+\begin_layout Standard
+Imprime el nombre y el valor de las variables de entorno.
+\end_layout
+
+\begin_layout Section
+Ficheros y directorios
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+ls [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Lista información sobre los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s (por defecto, el directorio actual).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Lista en formato largo.
+ Cada línea se corresponde con una entrada.
+ El primer ca
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rac
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ter es
+\family typewriter
+d
+\family default
+ para un directorio,
+\family typewriter
+-
+\family default
+ para un fichero regular,
+\family typewriter
+l
+\family default
+ para un enlace simbólico,
+\family typewriter
+b
+\family default
+ para un fichero especial de bloques, etc.
+ A continuación, los permisos en notación estándar, el número de enlaces
+ físicos que tiene la entrada, el usuario y el grupo al que pertenece, el
+ tamaño del fichero en bytes, su fecha y hora de última modificación y finalment
+e su nombre.
+ Si no se especifica se usa el formato corto, que solo muestra el nombre.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-R
+\family default
+\series default
+ Lista también los subdirectorios de forma recursiva.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ No omite los ficheros y directorios
+\begin_inset Quotes fld
+\end_inset
+
+ocultos
+\begin_inset Quotes frd
+\end_inset
+
+ (los que empiezan por
+\family typewriter
+.
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-S
+\family default
+\series default
+ Ordena por tamaño, empezando por el fichero más grande.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\family default
+\series default
+ Ordena por tiempo de modificación, empezando por la entrada modificada
+ más recientemente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Invierte el orden del listado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\family default
+\series default
+ Lista los directorios que se pasan como parámetros y no su contenido.
+\end_layout
+
+\begin_layout Standard
+Si hay dos opciones contradictorias, predomina la última.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+touch [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Cambia el tiempo de modificación de cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ al actual.
+ Un
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ que no existe es creado vacío.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+cp
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+cp
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+-T
+\emph default
+]
+\emph on
+ORIGEN DESTINO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+cp
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+ORIGEN
+\emph default
+...
+
+\emph on
+DIRECTORIO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+cp
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+-t DIRECTORIO ORIGEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Copia
+\family typewriter
+\emph on
+ORIGEN
+\family default
+\emph default
+ a
+\family typewriter
+\emph on
+DESTINO
+\family default
+\emph default
+, o múltiples
+\family typewriter
+\emph on
+ORÍGEN
+\family default
+\emph default
+es a un
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+ existente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Copia directorios recursivamente.
+ Usado para copiar directorios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Pide confirmación antes de sobrescribir.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ Equivale a
+\family typewriter
+-dR --preserve=all
+\family default
+, que conserva todos los atributos posibles de los
+\family typewriter
+\emph on
+ORÍGEN
+\family default
+\emph default
+es.
+ Sin esto, los elementos copiados tienen como usuario y grupo a quien hace
+ la copia, como tiempos asociados los de cuando la copia termina, los permisos
+ dependen de la configuración del sistema y usuario, etc.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mv
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mv
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+-T
+\emph default
+]
+\emph on
+ORIGEN DESTINO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mv
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+ORIGEN
+\emph default
+...
+
+\emph on
+DIRECTORIO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mv
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+-t DIRECTORIO ORIGEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Cambia el nombre de
+\family typewriter
+\emph on
+ORIGEN
+\family default
+\emph default
+ a
+\family typewriter
+\emph on
+DESTINO
+\family default
+\emph default
+, o mueve
+\family typewriter
+\emph on
+ORÍGEN
+\family default
+\emph default
+es a
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Pide confirmación antes de sobrescribir.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+rm [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Borra (desenlaza) los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Pide confirmación antes de borrar cada entrada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Elimina directorios y sus contenidos recursivamente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\family default
+\series default
+ Nunca pide confirmación.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mkdir [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DIRECTORIO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Crea los
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+s, si no existen ya.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+rmdir [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DIRECTORIO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Elimina los
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+s, si están vacíos.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+cat [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Concatena
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s a la salida estándar.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+less [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra el contenido de los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s (o de la entrada estándar) página a página, pudiendo avanzar y retroceder.
+\end_layout
+
+\begin_layout Subsubsection*
+COMANDOS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+/
+\emph on
+patrón
+\family default
+\emph default
+ Busca hacia delante una línea que contenga el
+\family typewriter
+\emph on
+patrón
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+chown [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+PROPIETARIO
+\emph default
+][
+\emph on
+:
+\emph default
+[
+\emph on
+GRUPO
+\emph default
+]]
+\emph on
+FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Cambia el usuario y/o grupo de cada fichero dado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-R
+\family default
+\series default
+ Opera en ficheros y directorios recursivamente.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+chgrp [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+GRUPO FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Cambia el grupo de cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ a
+\family typewriter
+\emph on
+GRUPO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+chmod [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+MODO FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Establece los permisos de los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s a los indicados en
+\family typewriter
+\emph on
+MODO
+\family default
+\emph default
+, que puede ser una representación simbólica de los cambios o un número
+ en octal.
+\end_layout
+
+\begin_layout Standard
+La representación simbólica tiene formato
+\family typewriter
+[
+\series bold
+ugo
+\series default
+...][[
+\series bold
+-+
+\series default
+][
+\emph on
+perms
+\emph default
+...]...]
+\family default
+, donde
+\family typewriter
+\emph on
+perms
+\family default
+\emph default
+ es 0 o más letras de
+\family typewriter
+\series bold
+rwxXst
+\family default
+\series default
+ o una sola letra del conjunto
+\family typewriter
+\series bold
+ugo
+\family default
+\series default
+.
+ La combinación de las letras
+\family typewriter
+\series bold
+ugo
+\family default
+\series default
+ controla qué permisos cambian: los de usuario (
+\family typewriter
+\series bold
+u
+\family default
+\series default
+), grupo (
+\family typewriter
+\series bold
+g
+\family default
+\series default
+) u otros (
+\family typewriter
+\series bold
+o
+\family default
+\series default
+).
+ El operador
+\family typewriter
+\series bold
++
+\family default
+\series default
+ causa que los bits seleccionados se añadan a los existentes, y
+\family typewriter
+\series bold
+-
+\family default
+\series default
+ causa que se eliminen.
+ Las letras
+\family typewriter
+\series bold
+rwxXst
+\family default
+\series default
+ seleccionan los bits de modo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+find [
+\emph on
+punto-de-inicio
+\emph default
+]...
+ [expresión]
+\end_layout
+
+\begin_layout Standard
+Busca en los árboles de directorios a partir de cada
+\family typewriter
+punto-de-inicio
+\family default
+ dado (por defecto
+\family typewriter
+.
+\family default
+) evaluando la
+\family typewriter
+expresión
+\family default
+, de izquierda a derecha, de acuerdo a las reglas de precedencia, hasta
+ que se conoce el resultado.
+\end_layout
+
+\begin_layout Subsubsection*
+EXPRESIÓN
+\end_layout
+
+\begin_layout Standard
+Está compuesta por una secuencia de:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Tests Devuelven verdadero o falso normalmente según alguna propiedad del
+ fichero.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Acciones Tienen efectos secundarios y devuelven verdadero o falso normalmente
+ según si tienen éxito o no.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Opciones
+\begin_inset space ~
+\end_inset
+
+globales Afectan a la operación de los tests y acciones en cualquier parte
+ de la línea de comandos.
+ Siempre devuelven verdadero.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Operadores Unen los otros elementos dentro de la expresión.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES GLOBALES
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-depth
+\family default
+\series default
+ Procesa el contenido de cada directorio antes del directorio en sí.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-maxdepth
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+N
+\family default
+\emph default
+ Desciende un máximo de
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ (entero no negativo) niveles.
+ Así, si
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ es 0, solo se procesan los
+\family typewriter
+punto
+\family default
+s
+\family typewriter
+-de-inicio
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+TESTS
+\end_layout
+
+\begin_layout Standard
+Los argumentos numéricos (indicados como
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+) pueden ser especificados como
+\family typewriter
+\emph on
++n
+\family default
+\emph default
+ para mayor que
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+,
+\family typewriter
+\emph on
+-n
+\family default
+\emph default
+ para menor que
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ o
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ para exactamente
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-empty
+\family default
+\series default
+ El fichero o directorio es vacío.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-name
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+patrón
+\emph default
+
+\family default
+El nombre coincide con el patrón, el cual reconoce
+\family typewriter
+*
+\family default
+,
+\family typewriter
+?
+\family default
+ y
+\family typewriter
+[
+\family default
+ igual que
+\family typewriter
+bash
+\family default
+ pero no excluye del reconocimiento un
+\family typewriter
+.
+
+\family default
+ al comienzo del nombre de archivo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-iname
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+patrón
+\family default
+\emph default
+ Como
+\family typewriter
+-name
+\family default
+, pero sin distinguir mayúsculas de minúsculas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-size
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\emph default
+[cwbkMG]
+\family default
+El tamaño del fichero es, redondeando al alza a la unidad especificada,
+
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+.
+ La unidad puede ser:
+\family typewriter
+c
+\family default
+ para bytes,
+\family typewriter
+w
+\family default
+ para palabras de 2 bytes,
+\family typewriter
+b
+\family default
+ para bloques de 512 bytes (por defecto),
+\family typewriter
+k
+\family default
+ para kiBs,
+\family typewriter
+M
+\family default
+ para MiBs y
+\family typewriter
+G
+\family default
+ para GiBs.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-mtime
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\emph default
+
+\family default
+El archivo fue modificado por última vez hace
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ días, redondeando a la baja.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-atime
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\emph default
+
+\family default
+Igual pero para el último acceso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-ctime
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\emph default
+
+\family default
+Igual pero para el último cambio de estado (ubicación y metadatos).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-newer
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+fichero
+\emph default
+
+\family default
+El fichero ha sido modificado más recientemente que el fichero dado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-type
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+c
+\emph default
+
+\family default
+El fichero es de tipo
+\family typewriter
+\emph on
+c
+\family default
+\emph default
+, que es
+\family typewriter
+d
+\family default
+ para directorios,
+\family typewriter
+f
+\family default
+ para ficheros ordinarios,
+\family typewriter
+l
+\family default
+ para enlaces simbólicos, etc.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-perm
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[-|/]
+\emph on
+mode
+\emph default
+
+\family default
+El fichero tiene los permisos indicados (si no hay un prefijo), al menos
+ estos permisos (
+\family typewriter
+-
+\family default
+) y alguno de estos (
+\family typewriter
+/
+\family default
+).
+\end_layout
+
+\begin_layout Subsubsection*
+ACCIONES
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-print
+\family default
+\series default
+ Imprime la ruta de archivo completa seguida de un salto de línea y devuelve
+ verdadero.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-exec
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+comando
+\emph default
+
+\family default
+Ejecuta un comando, formado por todos los argumentos que siguen a
+\family typewriter
+-exec
+\family default
+ hasta encontrar un argumento
+\begin_inset Quotes fld
+\end_inset
+
+
+\family typewriter
+;
+\family default
+
+\begin_inset Quotes frd
+\end_inset
+
+ (exclusive), sustituyendo en este la cadena
+\family typewriter
+{}
+\family default
+ por el nombre del archivo.
+ Devuelve verdadero si y sólo si el comando devuelve 0.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-ok
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+comando
+\emph default
+
+\family default
+Como
+\family typewriter
+-exec
+\family default
+ pero pregunta primero al usuario si desea ejecutar el comando, y si no
+ acepta, devuelve falso.
+ La entrada de dicho comando se redirige desde
+\family typewriter
+/dev/null
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-printf
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+formato
+\family default
+\emph default
+ Imprime
+\family typewriter
+\emph on
+formato
+\family default
+\emph default
+ interpretando secuencias de escape con
+\family typewriter
+
+\backslash
+
+\family default
+ como en C y directivas
+\family typewriter
+%
+\family default
+:
+\family typewriter
+%p
+\family default
+indica el nombre del fichero,
+\family typewriter
+ %s
+\family default
+ su tamaño,
+\family typewriter
+%u
+\family default
+ el nombre de su pro
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pie
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ta
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rio, etc.
+\end_layout
+
+\begin_layout Subsubsection*
+OPERADORES
+\end_layout
+
+\begin_layout Standard
+De mayor a menor prioridad:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+(
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+)
+\family default
+ Fuerza prioridad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+!
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\family default
+\emph default
+ Cierto si
+\family typewriter
+\emph on
+expr
+\family default
+\emph default
+ es falso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+expr1
+\begin_inset space ~
+\end_inset
+
+expr2
+\family default
+\emph default
+ Conjunción.
+
+\family typewriter
+\emph on
+expr2
+\family default
+\emph default
+ no es evaluada si
+\family typewriter
+\emph on
+expr1
+\family default
+\emph default
+ devuelve falso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+expr1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+-a
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr2
+\family default
+\emph default
+ Igual que
+\family typewriter
+\emph on
+expr1 expr2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+expr1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+-o
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr2
+\family default
+\emph default
+ Disyunción.
+
+\family typewriter
+\emph on
+expr2
+\family default
+\emph default
+ no es evaluada si
+\family typewriter
+\emph on
+expr1
+\family default
+\emph default
+ devuelve verdadero.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mktemp
+\end_layout
+
+\begin_layout Standard
+Crea un fichero temporal de forma segura e imprime su nombre.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+dd [
+\emph on
+OPERANDO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Copia un fichero, convirtiendo y formateando según los operandos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+bs=
+\series default
+\emph on
+BYTES
+\family default
+\emph default
+ Lee y escribe hasta
+\family typewriter
+\emph on
+BYTES
+\family default
+\emph default
+ bytes a la vez.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+count
+\series default
+=
+\emph on
+N
+\family default
+\emph default
+ Copia sólo
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ bloques de la entrada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+if=
+\series default
+\emph on
+FICHERO
+\family default
+\emph default
+ Lee del
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+of=
+\series default
+\emph on
+FICHERO
+\family default
+\emph default
+ Escribe al
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\emph on
+BYTES
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ pueden ir seguidos de sufijos multiplicativos:
+\begin_inset Formula $\mathtt{M}=1024\cdot1024$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/dev/zero
+\end_layout
+
+\begin_layout Standard
+Las lecturas desde este fichero especial siempre devuelven bytes que contienen
+ 0.
+\end_layout
+
+\begin_layout Section
+Ayuda
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+apropos [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+palabra-clave
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Busca la
+\family typewriter
+\emph on
+palabra-clave
+\family default
+\emph default
+ en las descripciones de las páginas del manual.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+whatis [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+nombre
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Busca entre los nombres de las páginas del manual aquellos que se asemejen
+ al
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ dado.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+man
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+man
+\series default
+ [
+\series bold
+-a
+\series default
+] [
+\series bold
+-S
+\series default
+
+\emph on
+lista
+\emph default
+] [[
+\emph on
+sección
+\emph default
+]
+\emph on
+página
+\emph default
+...
+ ]...
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+man -k
+\series default
+
+\emph on
+palabra-clave
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+man -f
+\series default
+
+\emph on
+página
+\emph default
+...
+\end_layout
+
+\begin_layout Subsubsection*
+DESCRIPCIÓN
+\end_layout
+
+\begin_layout Standard
+Muestra la
+\family typewriter
+\emph on
+página
+\family default
+\emph default
+ indicada en la
+\family typewriter
+\emph on
+sección
+\family default
+\emph default
+ indicada (si no se especifica, va buscándola en las secciones en un cierto
+ orden) dentro del manual del sistema.
+ Las
+\family typewriter
+\emph on
+página
+\family default
+\emph default
+s están ordenadas en
+\family typewriter
+\emph on
+seccion
+\family default
+\emph default
+es para programación, administración del sistema, funciones de biblioteca
+ de C, ficheros de configuración, etc.
+ El número de
+\family typewriter
+\emph on
+sección
+\family default
+\emph default
+ aparece, junto con el nombre de la
+\family typewriter
+\emph on
+página
+\family default
+\emph default
+, en la primera línea de esta.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ No termina la búsqueda en la primera página, sino que muestra todas las
+ coincidentes.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-S
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\family default
+\emph default
+
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ es una lista de números de sección separadas por
+\family typewriter
+:
+\family default
+ que sobrescribe el orden en que se buscan las páginas (puede especificarse
+ una sola sección).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-k
+\family default
+\series default
+ Equivale a
+\family typewriter
+apropos
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\family default
+\series default
+ Equivale a
+\family typewriter
+whatis
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+FICHEROS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+/etc/man.db.conf
+\family default
+ Configuración de
+\family typewriter
+man
+\family default
+.
+\end_layout
+
+\begin_layout Section
+Filtros
+\end_layout
+
+\begin_layout Standard
+Son programas que reciben información por la entrada estándar, la procesan
+ y muestran el resultado por su salida estándar.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+grep [
+\emph on
+OPCIÓN
+\emph default
+]...
+ PATRÓN [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Busca un
+\family typewriter
+\emph on
+PATRÓN
+\family default
+\emph default
+ en cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o en la entrada estándar).
+\end_layout
+
+\begin_layout Paragraph*
+Control de reconocimiento
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Ignora diferencias entre mayúsculas y minúsculas
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Invierte el sentido del reconocimiento, seleccionando sólo las líneas que
+ no coinciden.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-w
+\family default
+\series default
+ Selecciona solo las líneas que contienen el patrón como palabra completa,
+ esto es, al principio de la línea o precedido por un caracter no alfabético,
+ y al final de la línea o seguido de un caracter no alfabético.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-x
+\family default
+\series default
+ Selecciona sólo las líneas que coinciden completamente con el patrón.
+\end_layout
+
+\begin_layout Subsubsection*
+Control de salida general
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+ No muestra las líneas coincidentes sino su número.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ No muestras las líneas coincidentes sino los archivos en los que hay alguna.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-o
+\family default
+\series default
+ Muestra solo las partes coincidentes no vacías de cada línea, con cada
+ parte en una línea separada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-q
+\family default
+\series default
+ No imprime nada a la salida estándar.
+\end_layout
+
+\begin_layout Paragraph
+Control de los prefijos de línea en la salida
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-h
+\family default
+\series default
+ Suprime el nombre de archivo como prefijo de cada línea.
+ Esto es por defecto cuando sólo hay un
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o sólo la entrada estándar).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\family default
+\series default
+ Prefija cada línea con su número dentro del fichero, siendo la primera
+ la 1.
+\end_layout
+
+\begin_layout Subsubsection*
+EXPRESIONES REGULARES
+\end_layout
+
+\begin_layout Standard
+Una expresión regular es un patrón que describe un conjunto de cadenas de
+ caracteres.
+ La mayoría de caracteres son expresiones que se reconocen a sí mismas.
+ Un caracter con significado especial debe ser precedido por
+\family typewriter
+
+\backslash
+
+\family default
+ para que tenga este comportamiento.
+ El
+\family typewriter
+.
+
+\family default
+ reconoce un único caracter cualquiera.
+\end_layout
+
+\begin_layout Paragraph*
+Clases de caracteres y expresiones entre corchetes
+\end_layout
+
+\begin_layout Standard
+La sintaxis
+\family typewriter
+[
+\family default
+...
+\family typewriter
+]
+\family default
+ indica un caracter cualquiera entre los corchetes, salvo si el primero
+ es ^, que entonces es un caracter cualquiera que no este entre dicho
+\family typewriter
+^
+\family default
+ y el
+\family typewriter
+]
+\family default
+, exclusive.
+ En ambos casos se pueden usar rangos como
+\family typewriter
+\emph on
+a
+\emph default
+-
+\emph on
+z
+\family default
+\emph default
+, que indican todos los caracteres entre
+\family typewriter
+\emph on
+a
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+z
+\family default
+\emph default
+, inclusive.
+\end_layout
+
+\begin_layout Paragraph*
+Posicionamiento
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+^
+\family default
+ y
+\family typewriter
+$
+\family default
+ se refieren respectivamente a una cadena vacía al principio o al final
+ de una línea.
+\end_layout
+
+\begin_layout Paragraph
+Repetición
+\end_layout
+
+\begin_layout Standard
+Una expresión puede ir seguida por
+\family typewriter
+*
+\family default
+ para indicar que esta se puede repetir cero o más veces, por
+\family typewriter
+
+\backslash
++
+\family default
+ indicando que se puede repetir una o más veces o por
+\family typewriter
+
+\backslash
+{
+\emph on
+n
+\emph default
+,
+\emph on
+m
+\emph default
+}
+\family default
+ para indicar que se puede repetir entre
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+m
+\family default
+\emph default
+ veces, inclusive.
+\end_layout
+
+\begin_layout Subsubsection*
+Concatenación
+\end_layout
+
+\begin_layout Standard
+Dos expresiones regulares se pueden concatenar para formar una expresión
+ que reconoce a cualquier cadena formada por la concatenación de dos subcadenas
+ reconocidas respectivamente por estas subexpresiones.
+\end_layout
+
+\begin_layout Subsubsection*
+ESTADO DE SALIDA
+\end_layout
+
+\begin_layout Standard
+0 si alguna línea coincide, 1 si no coincide, y 2 si hay un error y no se
+ ha especificado
+\family typewriter
+-q
+\family default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+sort [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Concatena los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s (o lee de la entrada estándar) e imprime por la salida estándar el resultado
+ de ordenarlos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\family default
+\series default
+ Ordena numéricamente (por defecto lo hace alfabéticamente), incluyendo
+ números negativos y con decimales, considerando que un número termina cuando
+ aparece el primer caracter no numérico, incluyendo espacios.
+ El separador decimal es
+\family typewriter
+.
+
+\family default
+ en inglés y
+\family typewriter
+,
+\family default
+ en español.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Invierte el resultado de las comparaciones.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-k
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+KEYDEF
+\family default
+\emph default
+ Ordena según una clave dada por
+\family typewriter
+\emph on
+KEYDEF
+\family default
+\emph default
+.
+ Se puede especificar varias veces para indicar una lista de claves de las
+ que cada una se comprueba en caso de empate en la anterior.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+SEP
+\family default
+\emph default
+ Usa el caracter
+\family typewriter
+\emph on
+SEP
+\family default
+\emph default
+ como separador de campos.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\emph on
+KEYDEF
+\family default
+\emph default
+ tiene formato
+\family typewriter
+F[.C][OPTS][,F[.C][OPTS]]
+\family default
+ para las posiciones de inicio y final, donde
+\family typewriter
+F
+\family default
+ es un número de campo y
+\family typewriter
+C
+\family default
+ una posición de caracter en el campo, ambos empezando por 1, y la posición
+ de final por defecto es el final de línea.
+ Si no se ha especificado
+\family typewriter
+-t
+\family default
+, los caracteres de un campo se cuentan desde el principio del espacio en
+ blanco precedente, y
+\family typewriter
+OPTS
+\family default
+ es una o más
+\family typewriter
+\emph on
+OPCION
+\family default
+\emph default
+es de una letra que sobrescriben las opciones de orden global para dicha
+ clave.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+tr [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+CONJUNTO1
+\emph default
+ [
+\emph on
+CONJUNTO2
+\emph default
+]
+\end_layout
+
+\begin_layout Standard
+Sustituye, elimina repeticiones o elimina caracteres de la entrada estándar,
+ escribiendo a la salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+ Usa el complemento de
+\family typewriter
+\emph on
+CONJUNTO1
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\family default
+\series default
+ Elimina caracteres de
+\family typewriter
+\emph on
+CONJUNTO1
+\family default
+\emph default
+, no sustituye.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\family default
+\series default
+ Reemplaza secuencias de caracteres que aparecen en el último
+\family typewriter
+\emph on
+CONJUNTO
+\family default
+\emph default
+ dado por una sola ocurrencia.
+\end_layout
+
+\begin_layout Standard
+Los
+\family typewriter
+\emph on
+CONJUNTO
+\family default
+\emph default
+s se especifican como secuencias de caracteres.
+ La mayoría se representan a sí mismos.
+ Secuencias interpretadas:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+
+\backslash
+n
+\family default
+ Salto de línea.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+
+\backslash
+t
+\family default
+ Tabulador.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+a
+\emph default
+-
+\emph on
+z
+\family default
+\emph default
+ Todos los caracteres desde
+\family typewriter
+\emph on
+a
+\family default
+\emph default
+ hasta
+\family typewriter
+\emph on
+z
+\family default
+\emph default
+ en orden ascendente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+[
+\emph on
+c
+\emph default
+*
+\emph on
+n
+\emph default
+]
+\emph on
+n
+\family default
+\emph default
+ copias de
+\family typewriter
+\emph on
+c
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+[:alnum:]
+\family default
+ Todas las letras y dígitos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+[:blank:]
+\family default
+ Todos los caracteres de espaciado horizontal.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+[:digit:]
+\family default
+ Todos los dígitos.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+cut
+\emph on
+OPCIÓN
+\emph default
+...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Imprime las partes seleccionadas de líneas de cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+, o de la entrada estándar, a la salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\series default
+\emph on
+
+\begin_inset space ~
+\end_inset
+
+LISTA
+\family default
+\emph default
+ Selecciona solo estos caracteres.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+DELIM
+\family default
+\emph default
+ Usa
+\family typewriter
+\emph on
+DELIM
+\family default
+\emph default
+ en vez de el tabulador como delimitador de campos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\series default
+\emph on
+
+\begin_inset space ~
+\end_inset
+
+LISTA
+\family default
+\emph default
+ Selecciona sólo estos campos; imprimiendo también por defecto cualquier
+ línea que no contenga delimitador.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--complement
+\family default
+\series default
+ Imprime el complemento de los caracteres o campos seleccionados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\family default
+\series default
+ No imprime líneas que no contengan delimitadores.
+\end_layout
+
+\begin_layout Standard
+Usar
+\family typewriter
+-c
+\family default
+ o
+\family typewriter
+-f
+\family default
+, pero no ambos.
+ Cada
+\family typewriter
+\emph on
+LISTA
+\family default
+\emph default
+ contiene un rango, o varios separados por comas.
+ Cada rango puede ser:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ Caracter o campo
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+-ésimo, contando desde 1.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+-
+\family typewriter
+\emph on
+m
+\family default
+\emph default
+ Del caracter o campo
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+-ésimo al
+\family typewriter
+\emph on
+m
+\family default
+\emph default
+-ésimo, inclusive.
+\end_layout
+
+\begin_layout Standard
+Nótese que los campos vacíos también cuentan, por lo que a veces es necesario
+ usar
+\family typewriter
+tr
+\family default
+ para eliminar repeticiones de
+\family typewriter
+\emph on
+DELIM
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+uniq [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+ENTRADA
+\emph default
+ [
+\emph on
+SALIDA
+\emph default
+]]
+\end_layout
+
+\begin_layout Standard
+Filtra lineas adyacentes coincidentes de
+\family typewriter
+\emph on
+ENTRADA
+\family default
+\emph default
+ (o la entrada estándar), escribiendo a
+\family typewriter
+\emph on
+SALIDA
+\family default
+\emph default
+ (o la salida estándar).
+ Sin opciones, las líneas coincidentes (iguales) se eliminan a partir de
+ la segunda.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+ Añade antes de cada línea el número de ocurrencias.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\family default
+\series default
+ Sólo imprime líneas duplicadas, una por grupo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-D
+\family default
+\series default
+ Imprime todas las líneas duplicadas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ No distingue mayúsculas de minúsculas al comparar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\begin_inset space ~
+\end_inset
+
+
+\series default
+\emph on
+n
+\family default
+\emph default
+ No compara los
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ primeros caracteres.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-w
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\family default
+\emph default
+ Sólo compara los
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ primeros caracteres.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+head [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Imprime las primeras 10 líneas del
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o la entrada estándar) a la salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-
+\series default
+\emph on
+n
+\family default
+\emph default
+ Imprime las primeras
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ líneas en vez de las primeras 10.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+tail [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Imprime las últimas 10 líneas del
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o la entrada estándar) a la salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\series default
+\emph on
++n
+\family default
+\emph default
+ Imprime empezando por la línea
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+column [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Formatea su entrada en múltiples columnas.
+ Modos:
+\end_layout
+
+\begin_layout Paragraph*
+Tabla
+\end_layout
+
+\begin_layout Standard
+Determina el número de columnas de la entrada y crea una tabla.
+ Este modo se activa con la opción
+\family typewriter
+\series bold
+-t
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+wc [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Imprime el número de saltos de línea, palabras y bytes del
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o la salida estándar).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Imprime el número de saltos de línea.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+tee [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Copia la entrada estándar a cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+, y también a la salida estándar.
+\end_layout
+
+\begin_layout Section
+
+\emph on
+Scripting
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+seq
+\emph on
+PRIMERO INCREMENTO ÚLTIMO
+\end_layout
+
+\begin_layout Standard
+Imprime los números de
+\family typewriter
+\emph on
+PRIMERO
+\family default
+\emph default
+ a
+\family typewriter
+\emph on
+ÚLTIMO
+\family default
+\emph default
+, inclusive, en pasos de
+\family typewriter
+\emph on
+INCREMENTO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+echo [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+CADENA
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra las
+\family typewriter
+\emph on
+CADENA
+\family default
+\emph default
+s de caracteres por la salida estándar.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+test
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+test
+\series default
+
+\emph on
+EXPRESIÓN
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+[
+\series default
+
+\emph on
+EXPRESIÓN
+\emph default
+ ]
+\end_layout
+
+\begin_layout Standard
+Termina con el estado determinado por la
+\family typewriter
+\emph on
+EXPRESIÓN
+\family default
+\emph default
+, devolviendo 0 si esta es verdadera y 1 si es falsa.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+(
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+EXPR
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+)
+\family default
+ Fuerza precedencia.
+ Devuelve lo que devuelva la expresión.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+!
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+EXPR
+\family default
+\emph default
+
+\begin_inset Quotes fld
+\end_inset
+
+No
+\begin_inset Quotes frd
+\end_inset
+
+ lógico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+EXPR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-a
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+EXPR2
+\family default
+\emph default
+
+\begin_inset Quotes fld
+\end_inset
+
+Y
+\begin_inset Quotes frd
+\end_inset
+
+ lógico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+EXPR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-o
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+EXPR2
+\family default
+\emph default
+
+\begin_inset Quotes fld
+\end_inset
+
+O
+\begin_inset Quotes frd
+\end_inset
+
+ lógico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-eq
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+ Los enteros son iguales.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-ne
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+ Los enteros son distintos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-lt
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+INT1
+\family default
+\emph default
+
+\begin_inset Formula $<$
+\end_inset
+
+
+\family typewriter
+\emph on
+INT2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-le
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+INT1
+\family default
+\emph default
+
+\begin_inset Formula $\leq$
+\end_inset
+
+
+\family typewriter
+\emph on
+INT2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-gt
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+INT1
+\family default
+\emph default
+
+\begin_inset Formula $>$
+\end_inset
+
+
+\family typewriter
+\emph on
+INT2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-ge
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+INT1
+\family default
+\emph default
+
+\begin_inset Formula $\geq$
+\end_inset
+
+
+\family typewriter
+\emph on
+INT2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-z
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR
+\family default
+\emph default
+ La cadena es vacía.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR
+\family default
+\emph default
+ La cadena no es vacía.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+STR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+=
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR2
+\family default
+\emph default
+ Las cadenas son iguales.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+STR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+!=
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR2
+\family default
+\emph default
+ Las cadenas son distintas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+STR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+<
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+STR1
+\family default
+\emph default
+
+\begin_inset Formula $<$
+\end_inset
+
+
+\family typewriter
+\emph on
+STR2
+\family default
+\emph default
+, en orden lexicográfico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+STR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+>
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+STR1
+\family default
+\emph default
+
+\begin_inset Formula $>$
+\end_inset
+
+
+\family typewriter
+\emph on
+STR2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-e
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ El
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ existe.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y se tiene permiso de lectura.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-w
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y se tiene permiso de escritura.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-x
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y se tiene permiso de ejecución.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y es regular.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y es un directorio.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y no es vacío.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+true
+\end_layout
+
+\begin_layout Standard
+Devuelve 0.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+false
+\end_layout
+
+\begin_layout Standard
+Devuelve 1.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/nb.lyx b/iso/nb.lyx
new file mode 100644
index 0000000..e73ce7c
--- /dev/null
+++ b/iso/nb.lyx
@@ -0,0 +1,1092 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Section
+Administración de paquetes
+\end_layout
+
+\begin_layout Standard
+Muchos programas Linux se distribuyen como código fuente, que el usuario
+ construye, junto con las páginas de manual, ficheros de configuración,
+ etc., si bien la mayoría del software se distribuye en
+\series bold
+paquetes
+\series default
+ precompilados y listos para instalar.
+\end_layout
+
+\begin_layout Standard
+El sistema de paquetes de Fedora es RPM (
+\emph on
+Red Hat Package Manager
+\emph default
+), en el que los paquetes se llaman como
+\family typewriter
+\emph on
+nombre
+\emph default
+-
+\emph on
+versión
+\emph default
+-
+\emph on
+revisión
+\emph default
+.[
+\emph on
+arquitectura
+\emph default
+|
+\series bold
+src
+\series default
+|
+\series bold
+noarch
+\series default
+].rpm
+\family default
+.
+ La arquitectura es
+\family typewriter
+i386
+\family default
+ para Intel x86 (IA-32) y compatibles,
+\family typewriter
+i586
+\family default
+ para Pentium y posteriores,
+\family typewriter
+i686
+\family default
+ para Pentium II y posteriores,
+\family typewriter
+x86_64
+\family default
+ para IA-64 (Intel/AMD de 64 bits), etc.
+ Los paquetes
+\family typewriter
+src
+\family default
+ son los fuentes, a compilar por
+\family typewriter
+rpmbuild
+\family default
+, y los
+\family typewriter
+noarch
+\family default
+ son independientes de la arquitectura.
+ El sistema gestiona una base de datos de paquetes instalados con información
+ de su estado y ficheros.
+ Podemos referirnos a paquetes instalados simplemente por su
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+.
+ Puede haber dependencias entre paquetes, de modo que para instalar uno
+ sea necesario tener otro, que no se puede desinstalar sin desinstalar el
+ primero (ni causar errores).
+\end_layout
+
+\begin_layout Standard
+Podemos usar
+\family typewriter
+rpm
+\family default
+, que da error al instalar o eliminar si las dependencias no se satisfacen,
+ o
+\family typewriter
+dnf
+\family default
+, que resuelve automáticamente las dependencias y descarga los paquetes
+ de repositorios.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+rpm
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE INSTALACIÓN Y ACTUALIZACIÓN
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+rpm -i
+\series default
+
+\emph on
+FICHERO
+\family default
+\emph default
+ instala un paquete.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+rpm -U
+\series default
+
+\emph on
+FICHERO
+\family default
+\emph default
+ actualiza a una nueva versión (los ficheros de configuración modificados
+ de la versión anterior se guardan como
+\family typewriter
+\emph on
+nombre_fichero
+\emph default
+.rpmsave
+\family default
+, y si el fichero ha cambiado de formato y no puede ser adaptado a partir
+ de las modificaciones del anterior, se deja el fichero antiguo y se crea
+ uno nuevo
+\family typewriter
+\emph on
+nombre_fichero
+\emph default
+.rpmnew
+\family default
+).
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE ELIMINACIÓN
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+rpm -e
+\series default
+
+\emph on
+NOMBRE
+\family default
+\emph default
+ elimina un paquete.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE CONSULTA
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+rpm -q
+\series default
+ {[
+\emph on
+OPCIÓN_SELECCIÓN
+\emph default
+]...|[
+\emph on
+OPCIÓN_CONSULTA
+\emph default
+]...
+
+\emph on
+PAQUETE
+\emph default
+...}
+\end_layout
+
+\begin_layout Paragraph*
+Opciones de selección
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Paquete al que pertenece el
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Opciones de consulta
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Información del paquete.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Listado de ficheros en el paquete.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE VERIFICACIÓN
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+rpm -V
+\series default
+
+\emph on
+PAQUETE
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+dnf [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+COMANDO
+\emph default
+] [
+\emph on
+ARGUMENTO
+\emph default
+]...
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-h
+\family default
+\series default
+ Muestra la ayuda.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dnf
+\begin_inset space ~
+\end_inset
+
+check-update
+\family default
+\series default
+ Comprueba si hay actualizaciones.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dnf
+\begin_inset space ~
+\end_inset
+
+download
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+PAQUETE
+\emph default
+...
+
+\family default
+ Descarga la última versión de los paquetes indicados, sin llegar a instalarlos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dnf
+\begin_inset space ~
+\end_inset
+
+erase
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+PAQUETE
+\emph default
+...
+
+\family default
+ Alias obsoleto para
+\family typewriter
+\series bold
+remove
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dnf
+\begin_inset space ~
+\end_inset
+
+install
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+PAQUETE
+\emph default
+...
+
+\family default
+ Se asegura de que los paquetes dados y sus dependencias están ins
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ta
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+la
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+dos.
+ (Para instalar el repositorio
+\family typewriter
+rpmfusion
+\family default
+, parte libre pero con más paquetes que la instalación por defecto, usar
+
+\family typewriter
+dnf install http://download1.rpmfusion.
+\begin_inset Newline newline
+\end_inset
+
+org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
+\family default
+.
+
+\begin_inset Newline newline
+\end_inset
+
+También se pueden instalar paquetes de los repositorios y paquetes previamente
+ descargados.)
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dnf
+\begin_inset space ~
+\end_inset
+
+remove
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+PAQUETE
+\emph default
+...
+
+\family default
+ Elimina los paquetes indicados junto con cualquiera que dependa de estos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dnf
+\begin_inset space ~
+\end_inset
+
+update
+\family default
+\series default
+ Alias obsoleto para
+\family typewriter
+\series bold
+upgrade
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dnf
+\begin_inset space ~
+\end_inset
+
+upgrade
+\family default
+\series default
+ Actualiza cada paquete a la última versión disponible y resoluble.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dnf
+\begin_inset space ~
+\end_inset
+
+upgrade
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+PAQUETE
+\emph default
+...
+
+\family default
+ Actualiza cada paquete indicado a la última versión.
+ Actualiza dependencias según sea necesario.
+\end_layout
+
+\begin_layout Subsubsection*
+FICHEROS
+\end_layout
+
+\begin_layout Paragraph*
+Configuración principal
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+/etc/dnf/dnf.conf
+\end_layout
+
+\begin_layout Paragraph*
+Repositorio
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+/etc/yum.repos.d/
+\family default
+ (Contiene ficheros
+\family typewriter
+.repo
+\family default
+, que se dividen en tres secciones: una para paquetes normales, otra para
+ paquetes de depuración y otra para paquetes fuentes, y que informa a
+\family typewriter
+dnf
+\family default
+ de dónde encontrar la lista de espejos para cada sección, de donde descargar
+ los paquetes.
+
+\family typewriter
+fedora.repo
+\family default
+ contiene información para la instalación base, y
+\begin_inset Newline newline
+\end_inset
+
+
+\family typewriter
+fedora-updates.repo
+\family default
+ contiene la información para localizar los paquetes a actualizar.)
+\end_layout
+
+\begin_layout Section
+Módulos del núcleo
+\end_layout
+
+\begin_layout Standard
+Aunque Linux tiene una arquitectura monolítica, su diseño es modular, y
+ hay porciones (
+\series bold
+módulos
+\series default
+) que se pueden cargar o descargar en caliente, que proporcionan soporte
+ para distintos sistemas de ficheros, periféricos y protocolos de red, y
+ que se suelen guardar con extensión
+\family typewriter
+.ko.xz
+\family default
+ en
+\family typewriter
+/lib/modules/
+\emph on
+versión
+\family default
+\emph default
+, según la
+\family typewriter
+\emph on
+versión
+\family default
+\emph default
+ de Linux, con los siguientes subdirectorios entre otros:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+drivers
+\family default
+\series default
+ Gestión de dispositivos hardware.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+fs
+\family default
+\series default
+ Sistemas de ficheros.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+net
+\family default
+\series default
+ Protocolos de red.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+sound
+\family default
+\series default
+ Tarjetas de sonido.
+\end_layout
+
+\begin_layout Standard
+Para que un módulo se pueda usar, el núcleo debe tener exportadas todas
+ las funciones que este usa.
+ Algunas están en otros módulos, por lo que existen dependencias entre módulos
+ descritas en
+\family typewriter
+/lib/modules/
+\emph on
+versión
+\emph default
+/modules.dep
+\family default
+.
+ Los módulos se pueden cargar en cualquier momento, aunque suelen cargarlos
+ el
+\emph on
+script
+\emph default
+
+\family typewriter
+init
+\family default
+ del disco RAM (para acceder al sistema de ficheros raíz), los servicios
+ de
+\family typewriter
+systemd
+\family default
+ al iniciarse o
+\family typewriter
+udev
+\family default
+ al detectar un nuevo dispositivo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lsmod
+\end_layout
+
+\begin_layout Standard
+Formatea el contenido de
+\family typewriter
+/proc/modules
+\family default
+, mostrando los módulos del núcleo cargados (nombre, tamaño, contador de
+ usos y módulos que lo usan).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+modinfo
+\emph on
+NOMBRE_MÓDULO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Extrae información sobre los módulos dados (fichero, autor, descripción,
+ licencia, dependencias, parámetros, etc.)
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+insmod
+\emph on
+FICHERO_MÓDULO
+\end_layout
+
+\begin_layout Standard
+Inserta un módulo en el núcleo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+rmmod
+\emph on
+NOMBRE_MÓDULO
+\end_layout
+
+\begin_layout Standard
+Elimina un módulo del núcleo (si no se está usando).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+modprobe
+\emph on
+NOMBRE_MÓDULO
+\end_layout
+
+\begin_layout Standard
+Añade o elimina un módulo del núcleo (junto a los módulos de los que depende).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Elimina en vez de insertar.
+ Si los módulos de los que este depende tampoco se están usando,
+\family typewriter
+\series bold
+modprobe
+\family default
+\series default
+ intentará eliminarlos también.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--show-depends
+\family default
+\series default
+ Lista las dependencias de un módulo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/modprobe.d/
+\end_layout
+
+\begin_layout Standard
+Configuración para
+\family typewriter
+modprobe
+\family default
+.
+ Los ficheros bajo el directorio con extensión
+\family typewriter
+.conf
+\family default
+ especifican opciones.
+\end_layout
+
+\begin_layout Subsubsection*
+COMANDOS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+alias
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+alias
+\begin_inset space ~
+\end_inset
+
+nombre_módulo
+\family default
+\emph default
+ Da un nombre alternativo a un módulo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+blacklist
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre-módulo
+\family default
+\emph default
+ Los módulos pueden contener sus propios alias.
+
+\family typewriter
+\series bold
+blacklist
+\family default
+\series default
+ indica que todos los alias internos del módulo deben ser ignorados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+install
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre_módulo
+\begin_inset space ~
+\end_inset
+
+comando
+\emph default
+...
+
+\family default
+ Ejecuta un comando en vez de insertar el módulo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+options
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre_módulo
+\begin_inset space ~
+\end_inset
+
+opción
+\emph default
+...
+
+\family default
+ Añade opciones al módulo cada vez que se inserta en el núcleo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+remove
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre_módulo
+\begin_inset space ~
+\end_inset
+
+comando
+\emph default
+...
+
+\family default
+ Como
+\family typewriter
+\series bold
+install
+\family default
+\series default
+ pero se invoca al ejecutar
+\family typewriter
+modprobe -r
+\family default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+depmod
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Crea una lista de dependencias entre módulos bajo
+\family typewriter
+/lib/modules/
+\emph on
+versión
+\family default
+\emph default
+ (la versión del núcleo actual).
+ Esta lista es escrita a
+\family typewriter
+modules.dep
+\family default
+.
+ Finalmente, genera un fichero
+\family typewriter
+modules.
+\emph on
+dispositivo
+\family default
+\emph default
+ si los módulos proporcionan nombres de dispositivo que deben añadirse a
+
+\family typewriter
+/dev
+\family default
+ en el arranque (
+\family typewriter
+modules.usbmap
+\family default
+,
+\family typewriter
+modules.pcimap
+\family default
+, etc., que sirven para indicar los módulos a cargar cuando se conecta un
+ dispositivo, pero que no se usan actualmente).
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/nc.lyx b/iso/nc.lyx
new file mode 100644
index 0000000..24c6cfc
--- /dev/null
+++ b/iso/nc.lyx
@@ -0,0 +1,1408 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Internamente los usuarios se identifican por un número, el UID, que es 0
+ para el su
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+per
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+u
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+sua
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rio, y que en general está en el rango 1–999 para las cuentas del sistema
+ y es mayor o igual a 1000 para usuarios normales.
+ Una cuenta del sistema ejecuta programas o posee ficheros para ciertos
+ servicios, pero no está asociada a una persona.
+ Por ejemplo, la cuenta
+\family typewriter
+apache
+\family default
+ ejecuta servicios para un servidor Web, el demonio
+\family typewriter
+httpd
+\family default
+ de Apache.
+\end_layout
+
+\begin_layout Standard
+Los usuarios también tienen un nombre de usuario, contraseña, un directorio
+ personal y una
+\emph on
+shell
+\emph default
+, programa que se ejecuta al iniciar sesión.
+ Se puede indicar que esta sea un ejecutable específico, no necesariamente
+ una
+\emph on
+shell
+\emph default
+, convirtiendo la cuenta en una
+\series bold
+cuenta restringida
+\series default
+, pues el usuario solo puede ejecutar este fichero y al finalizar su ejecución
+ sale del sistema.
+\end_layout
+
+\begin_layout Standard
+Cuando un usuario crea un fichero, su grupo propietario es el grupo activo
+ del usuario (generalmente su grupo primario), pero al determinar los permisos
+ que tiene un usuario sobre un fichero, se usan todos los grupos a los que
+ pertenece.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/passwd
+\end_layout
+
+\begin_layout Standard
+Fichero de texto que describe las cuentas de usuario del sistema.
+ Debe ser legible por todos los usuarios pero escribible sólo para el superusuar
+io.
+
+\end_layout
+
+\begin_layout Standard
+Tradicionalmente no había problema con este permiso general de lectura.
+ Hoy en día se usa el caracter
+\family typewriter
+x
+\family default
+ en la celda de contraseña para indicar que las contraseñas están en
+\family typewriter
+/etc/shadow
+\family default
+, que sólo puede ser leída por el superusuario.
+
+\end_layout
+
+\begin_layout Standard
+Cada línea del fichero describe un sólo usuario, y contiene los siguientes
+ campos:
+\end_layout
+
+\begin_layout Quotation
+
+\family typewriter
+nombre:contraseña:UID:GID:GECOS:directorio:shell
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ Nombre de usuario.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+contraseña
+\family default
+\emph default
+ Contraseña encriptada del usuario,
+\family typewriter
+*
+\family default
+ o
+\family typewriter
+x
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+UID
+\family default
+\emph default
+ El UID.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+GID
+\family default
+\emph default
+ ID numérico del grupo primario del usuario.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+GECOS
+\family default
+\emph default
+ Opcional, con propósito informativo.
+ Normalmente contiene el nombre completo del usuario.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+directorio
+\family default
+\emph default
+ Directorio personal del usuario, donde se le posiciona tras iniciar sesión.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+shell
+\family default
+\emph default
+ Programa a ejecutar al iniciar sesión.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/shells
+\end_layout
+
+\begin_layout Standard
+Fichero de texto que contiene las rutas absolutas de los
+\emph on
+shells
+\emph default
+ de inicio de sesión válidos.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/shadow
+\end_layout
+
+\begin_layout Standard
+Fichero que contiene la información de las contraseñas de los usuarios e
+ información opcional de caducidad.
+ Debe no ser legible para usuarios normales por seguridad.
+ Hay una entrada por línea, con formato:
+\end_layout
+
+\begin_layout Quotation
+
+\family typewriter
+nombre:contraseña:último_cambio:vida_mínima:vida_máxima:periodo_alerta:
+\begin_inset Newline newline
+\end_inset
+
+periodo_inactividad:fecha_expiración:reservado
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ Nombre de usuario.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+contraseña
+\family default
+\emph default
+ Contraseña encriptada.
+ Si contiene algo que no es una contraseña encriptada válida, como
+\family typewriter
+!!
+\family default
+ o
+\family typewriter
+*
+\family default
+, el usuario no podrá usar una contraseña Unix para iniciar sesión.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+último_cambio
+\family default
+\emph default
+ Fecha del último cambio de contraseña.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+vida_mínima
+\family default
+\emph default
+ Número de días que el usuario debe esperar antes de poder cambiar nuevamente
+ su contraseña.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+vida_máxima
+\family default
+\emph default
+ Número de días tras el cual el usuario deberá cambiar su contraseña.
+ Tras esto la contraseña podría seguir siendo válida, pero se pedirá al
+ usuario una nueva contraseña la próxima vez que inicie sesión.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+periodo_alerta
+\family default
+\emph default
+ Número de días antes de que la contraseña expire durante los cuales se
+ avisará al usuario.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+periodo_inactividad
+\family default
+\emph default
+ Número de días después de que la contraseña expire durante los que esta
+ seguirá siendo válida.
+ Tras este tiempo el usuario no podrá iniciar sesión.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+fecha_expiración
+\family default
+\emph default
+ Fecha en la que la cuenta expira, tras la cual el usuario no podrá iniciar
+ sesión.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/group
+\end_layout
+
+\begin_layout Standard
+Fichero de texto que define los grupos del sistema.
+ Hay una entrada por línea, con formato:
+\end_layout
+
+\begin_layout Quotation
+
+\family typewriter
+nombre:contraseña:GID:lista_de_usuarios
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/gshadow
+\end_layout
+
+\begin_layout Standard
+Información de seguridad de los grupos.
+ Debe no ser legible por usuarios normales por seguridad.
+ Hay una entrada por línea, con formato:
+\end_layout
+
+\begin_layout Quotation
+
+\family typewriter
+nombre:contraseña:administradores:miembros
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/issue
+\end_layout
+
+\begin_layout Standard
+Fichero de texto con un mensaje a imprimir antes de pedir el nombre de usuario
+ en un inicio de sesión por terminal.
+ Puede contener secuencias
+\family typewriter
+\series bold
+@
+\series default
+\emph on
+caracter
+\family default
+\emph default
+ o
+\family typewriter
+\series bold
+
+\backslash
+
+\series default
+\emph on
+caracter
+\family default
+\emph default
+ si la terminal lo soporta (por ejemplo,
+\family typewriter
+
+\backslash
+l
+\family default
+ se sustituye po el nombre de la terminal:
+\family typewriter
+tty1
+\family default
+,
+\family typewriter
+tty2
+\family default
+, etc.).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/motd
+\end_layout
+
+\begin_layout Standard
+Fichero de texto a mostrar tras un inicio de sesión por terminal exitoso
+ y antes de ejecutar el
+\emph on
+shell
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+nologin
+\end_layout
+
+\begin_layout Standard
+Muestra un mensaje de que una cuenta no está disponible y termina.
+ Usado como campo
+\family typewriter
+\emph on
+shell
+\family default
+\emph default
+ en
+\family typewriter
+/etc/passwd
+\family default
+ para denegar el inicio de sesión a una cuenta.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+id
+\emph on
+USUARIO
+\end_layout
+
+\begin_layout Standard
+Muestra la información de usuario y grupos para el
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+ indicado.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+groups
+\emph on
+USUARIO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Muestra los grupos a los que pertenece cada
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+newgrp
+\emph on
+GRUPO
+\end_layout
+
+\begin_layout Standard
+Inicia sesión en un nuevo grupo.
+ Si el usuario no es
+\family typewriter
+root
+\family default
+, se le pedirá una contraseña si este no tiene o no es miembro del grupo
+ y el grupo tiene contraseña.
+ Al usuario se le denegará el acceso si la contraseña de grupo es vacía
+ y el usuario no es miembro.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+who
+\end_layout
+
+\begin_layout Standard
+Muestra información sobre los usuarios con sesiones abiertas.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+su [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+USUARIO
+\emph default
+]
+\end_layout
+
+\begin_layout Standard
+Ejecuta un nuevo
+\emph on
+shell
+\emph default
+ con los ID de usuario y grupo indicados (por defecto
+\family typewriter
+root
+\family default
+).
+ Cambia las variables de entorno
+\family typewriter
+\series bold
+HOME
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+SHELL
+\family default
+\series default
+ (más
+\family typewriter
+\series bold
+USER
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+LOGNAME
+\family default
+\series default
+ si el
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+ no es
+\family typewriter
+root
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-
+\family default
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Inicia el
+\emph on
+shell
+\emph default
+ como uno de inicio de sesión con un entorno similar a un inicio de sesión
+ real.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+whoami
+\end_layout
+
+\begin_layout Standard
+Imprime el nombre de usuario asociado con el ID efectivo de usuario (EUID)
+ actual.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+useradd [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+USUARIO
+\end_layout
+
+\begin_layout Standard
+Crea una nueva cuenta de usuario usando los valores especificados más los
+ valores por defecto del sistema.
+ Por defecto la contraseña de este está desactivada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+DIRECTORIO
+\family default
+\emph default
+ Indica el
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+ personal del usuario.
+ Por defecto, aunque depende de la configuración, se crea un directorio
+ con ruta
+\family typewriter
+/home/
+\emph on
+USUARIO
+\family default
+\emph default
+ y se copia dentro de este el contenido de
+\family typewriter
+/etc/skel
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-g
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+GRUPO
+\family default
+\emph default
+ El nombre o número del grupo primario del usuario, que debe existir.
+ Si no se especifica, dependiendo de la configuración, se creará un nuevo
+ grupo con el mismo nombre que el usuario o se le asignará un grupo por
+ defecto.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-G
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+GRUPO1
+\emph default
+[
+\emph on
+,GRUPO2,...
+\emph default
+[
+\emph on
+,GRUPON
+\emph default
+]]]
+\family default
+ Lista de grupos adicionales de los que el usuario también es miembro.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-m
+\family default
+\series default
+ Crea el directorio personal del usuario si no existe ya.
+ Por defecto, la creación de este depende de la configuración.
+\end_layout
+
+\begin_layout Subsubsection*
+FICHEROS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+/etc/default/useradd
+\family default
+ Valores por defecto para la nueva cuenta.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+/etc/login.defs
+\family default
+ Configuración adicional.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+usermod [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+USUARIO
+\end_layout
+
+\begin_layout Standard
+Modifica los ficheros de la cuenta del
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+ para reflejar los cambios especificados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+COMENTARIO
+\family default
+\emph default
+ El nuevo valor del campo de comentario del fichero de contraseña para el
+ usuario.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-g
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+GRUPO
+\family default
+\emph default
+ Nombre o número del nuevo grupo primario del usuario, que debe existir.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-G
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+GRUPO1
+\emph default
+[
+\emph on
+,GRUPO2,...
+\emph default
+[
+\emph on
+,GRUPON
+\emph default
+]]]
+\family default
+ Lista de grupos adicionales del que el usuario también es miembro.
+ Si el usuario es miembro del algún grupo que no está en la lista, será
+ eliminado del grupo, salvo si se añade la opción
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ que añade al usuario esta lista en vez de sustituir.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+SHELL
+\family default
+\emph default
+ El nombre de la nueva
+\emph on
+shell
+\emph default
+ inicial del usuario.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+userdel
+\emph on
+USUARIO
+\end_layout
+
+\begin_layout Standard
+Borra del sistema todas las entradas de usuario que hacen referencia al
+
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+ dado, que debe existir.
+ Por defecto no borra el directorio personal.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+groupadd
+\emph on
+GRUPO
+\end_layout
+
+\begin_layout Standard
+Crea un nuevo grupo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+groupdel
+\emph on
+GRUPO
+\end_layout
+
+\begin_layout Standard
+Borra del sistema todas las entradas de grupo que hacen referencia al
+\family typewriter
+\emph on
+GRUPO
+\family default
+\emph default
+ dado, que debe existir.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+gpasswd [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+GRUPO
+\end_layout
+
+\begin_layout Standard
+Administra
+\family typewriter
+/etc/group
+\family default
+ y
+\family typewriter
+/etc/gshadow
+\family default
+.
+ Cada grupo puede tener administradores, miembros y una contraseña.
+\end_layout
+
+\begin_layout Standard
+Salvo por las opciones
+\family typewriter
+\series bold
+-A
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+-M
+\family default
+\series default
+, las opciones no pueden combinarse.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+USUARIO
+\family default
+\emph default
+ Añade el
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+ al
+\family typewriter
+\emph on
+GRUPO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+USUARIO
+\family default
+\emph default
+ Elimina al
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+ del
+\family typewriter
+\emph on
+GRUPO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-A
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+USUARIO
+\emph default
+,...
+
+\family default
+ Establece la lista de administradores.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-M
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+USUARIO
+\emph default
+,...
+
+\family default
+ Establece la lista de miembros.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+passwd [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+USUARIO
+\emph default
+]
+\end_layout
+
+\begin_layout Standard
+Actualiza la información de autenticación del
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+.
+ Por defecto cambia su contraseña.
+ Sólo
+\family typewriter
+root
+\family default
+ puede especificar el
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+; si no se especifica, se cambia la contraseña propia.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Bloquea la contraseña del usuario.
+ Sólo para
+\family typewriter
+root
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--stdin
+\family default
+\series default
+ La contraseña se lee de la entrada estándar, que puede ser una tubería.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-u
+\family default
+\series default
+ Desbloquea la contraseña del usuario.
+ Sólo para
+\family typewriter
+root
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-e
+\family default
+\series default
+ El usuario será forzado a cambiar la contraseñá en el siguiente intento
+ de inicio de sesión.
+ Sólo para
+\family typewriter
+root
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Este comando fuerza algunos requisitos de seguridad en la nueva contraseña
+ (longitud mínima, etc.).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+chage [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+USUARIO
+\end_layout
+
+\begin_layout Standard
+Cambia el número de días entre cambios de contraseña y la fecha de último
+ cambio para el
+\family typewriter
+\emph on
+USUARIO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-E
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FECHA
+\family default
+\emph default
+ Establece la fecha de expiración de la cuenta, con formato
+\family typewriter
+YYYY-MM-DD
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-I
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+DÍAS
+\family default
+\emph default
+ Establece el número de días de inactividad tras la expiración de una contraseña
+ durante los cuales el usuario todavía puede iniciar sesión.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-M
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+DÍAS
+\family default
+\emph default
+ Establece el máximo de días durante los que una contraseña es válida.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-W
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+DÍAS
+\family default
+\emph default
+ Establece el número de días antes de la expiración de una contraseña en
+ los que el usuario es avisado de ello.
+\end_layout
+
+\begin_layout Subsubsection*
+NOTA
+\end_layout
+
+\begin_layout Standard
+Este programa requiere de un fichero
+\family typewriter
+/etc/shadow
+\family default
+, y sólo puede usarlo
+\family typewriter
+root
+\family default
+s.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/nd.lyx b/iso/nd.lyx
new file mode 100644
index 0000000..e9870bb
--- /dev/null
+++ b/iso/nd.lyx
@@ -0,0 +1,4024 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Section
+Particionamiento estándar
+\end_layout
+
+\begin_layout Standard
+Existen dos formatos principales para el particionamiento de discos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Particionamiento DOS
+\series default
+ o
+\series bold
+MBR
+\series default
+: El formato original de MS-DOS.
+ Permite hasta 4
+\series bold
+particiones principales
+\series default
+ definidas en el primer sector del disco, el MBR (
+\emph on
+Master Boot Record
+\emph default
+), junto con el código de arranque.
+ Una de estas puede ser una
+\series bold
+partición extendida
+\series default
+, dentro de la cual podemos crear
+\series bold
+particiones lógicas
+\series default
+ o
+\series bold
+secundarias
+\series default
+.
+ En Linux, las particiones primarias tienen números del 1 al 4 y las lógicas
+ comienzan por el 5.
+\begin_inset Newline newline
+\end_inset
+
+Los números de los sectores en el disco, llamados
+\series bold
+LBA
+\series default
+ (
+\emph on
+Logical Block Address
+\emph default
+), se almacenan en 32 bytes, por lo que si los sectores son de
+\begin_inset Formula $\unit[512]{B}$
+\end_inset
+
+ (lo normal), el tamaño máximo particionable es de
+\begin_inset Formula $\unit[2]{TiB}$
+\end_inset
+
+.
+\begin_inset Newline newline
+\end_inset
+
+Las particiones tienen un tipo que indica qué va a contener o para qué se
+ va a usar, con propósito únicamente informativo.
+ Algunos tipos son
+\family typewriter
+0x82
+\family default
+ (Linux swap),
+\family typewriter
+0x83
+\family default
+ (Linux) o
+\family typewriter
+0x8e
+\family default
+ (Linux LVM).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Particionamiento GPT
+\series default
+ (
+\emph on
+GUID Partition Table
+\emph default
+): Usa LBAs de 64 bits, luego el tamaño máximo con bloques de
+\begin_inset Formula $\unit[512]{B}$
+\end_inset
+
+ es de
+\begin_inset Formula $\unit[8]{ZiB}$
+\end_inset
+
+.
+ Permite un número prácticamente ilimitado de particiones, aunque los sistemas
+ operativos suelen limitarlo a 128 para mantener la tabla de particiones
+ de un tamaño razonable (
+\begin_inset Formula $\unit[16]{KiB}$
+\end_inset
+
+).
+ Esta tabla abarca el sector 1 del disco y sucesivos y tiene una suma de
+ verificación CRC32 para verificar su integridad y una copia de respaldo
+ en los últimos sectores del disco.
+ Por compatibilidad, el sector 0 almacena una tabla de particiones DOS con
+ una única partición de tipo
+\family typewriter
+0xEE
+\family default
+ (GPT) llamada
+\series bold
+ partición MBR de protección
+\series default
+, tan grande como sea posible para intentar cubrir todo el disco.
+\begin_inset Newline newline
+\end_inset
+
+Cada partición disco y cada partición tiene un
+\series bold
+GUID
+\series default
+ (
+\emph on
+Globally Unique Identifier
+\emph default
+), un número de 128 bits con formato
+\family typewriter
+XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
+\family default
+ (cada
+\family typewriter
+X
+\family default
+ es una cifra hexadecimal) que lo identifica unívocamente.
+ Desaparece la distinción entre particiones primarias, lógicas y extendidas.
+\end_layout
+
+\begin_layout Standard
+Normalmente la primera partición comienza en el sector 2048, usando el hueco
+ que queda para el gestor de arranque.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+fdisk
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+fdisk
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DISPOSITIVO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+fdisk -l
+\series default
+ [
+\emph on
+DISPOSITIVO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Programa interactivo para la creación y manipulación de tablas de particiones
+ que entiende, entre otros, los formatos MBR y GPT.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Lista las tablas de particiones para los
+\family typewriter
+\emph on
+DISPOSITIVO
+\family default
+\emph default
+s especificados y termina.
+\end_layout
+
+\begin_layout Subsubsection*
+ÓRDENES
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+p
+\family default
+\series default
+ Muestra la tabla de particiones.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+n
+\family default
+\series default
+ Crea una nueva partición.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+d
+\family default
+\series default
+ Elimina una partición.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+w
+\family default
+\series default
+ Guarda en disco la tabla de particiones resultante.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+q
+\family default
+\series default
+ Sale sin guardar los cambios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+m
+\family default
+\series default
+ Muestra una ayuda con todas las órdenes.
+\end_layout
+
+\begin_layout Subsubsection*
+TAMAÑOS
+\end_layout
+
+\begin_layout Standard
+El diálogo de último sector acepta un tamaño de partición según el número
+ de sectores o la notación
+\family typewriter
++<TAMAÑO>{K,B,M,G,...}
+\family default
+.
+ Si el tamaño lleva delante
+\family typewriter
++
+\family default
+ se interpreta como relativo al primer sector de la partición.
+ En este caso el tamaño se espera en bytes y puede ir seguido de sufijos
+ multiplicativos
+\begin_inset Formula $\mathtt{K}=1024$
+\end_inset
+
+,
+\begin_inset Formula $\mathtt{M}=1024^{2}$
+\end_inset
+
+, etc.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lsblk [
+\emph on
+OPCIÓN
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra información de todos los dispositivos de bloques disponibles en
+ forma de árbol por defecto.
+ La salida está sujeta a cambios, pero actualmente muestra las columnas
+
+\family typewriter
+NAME
+\family default
+ (nombre),
+\family typewriter
+SIZE
+\family default
+ (tamaño) y
+\family typewriter
+TYPE
+\family default
+ (tipo: disco, partición o volumen lógico), entre otras.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\family default
+\series default
+ Muestra información sobre los sistemas de ficheros: columnas
+\family typewriter
+NAME
+\family default
+,
+\family typewriter
+FSTYPE
+\family default
+ (tipo de sistema de ficheros),
+\family typewriter
+LABEL
+\family default
+ (etiqueta),
+\family typewriter
+UUID
+\family default
+ (identificador) y
+\family typewriter
+MOUNTPOINT
+\family default
+ (punto de montaje).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-p
+\family default
+\series default
+ Muestra rutas de fichero (absolutas) completas.
+\end_layout
+
+\begin_layout Section
+LVM
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+gestor de volúmenes lógicos
+\series default
+ (LVM,
+\emph on
+Logical Volume Manager
+\emph default
+) es un sistema que
+\begin_inset Quotes fld
+\end_inset
+
+virtualiza
+\begin_inset Quotes frd
+\end_inset
+
+ el almacenamiento para crear discos lógicos y proporcionar métodos de asignació
+n de espacio más flexibles que las particiones.
+\end_layout
+
+\begin_layout Standard
+Nos centraremos en el LVM de Linux, llamado LVM.
+ Este parte de
+\series bold
+volúmenes físicos
+\series default
+ (PVs,
+\emph on
+physical volumes
+\emph default
+), que pueden ser cualquier dispositivo de bloques y se dividen en
+\series bold
+extensiones físicas
+\series default
+ (PEs,
+\emph on
+physical extents
+\emph default
+) de un tamaño fijo, que en Linux por omisión es de
+\begin_inset Formula $\unit[4]{MiB}$
+\end_inset
+
+.
+ Estos se agrupan en
+\series bold
+grupos de volúmenes
+\series default
+ (VGs,
+\emph on
+volume groups
+\emph default
+), que agrupan las extensiones físicas para crear encima
+\series bold
+volúmenes lógicos
+\series default
+ (LVs,
+\emph on
+logical volumes
+\emph default
+), que se dividen en
+\series bold
+extensiones lógicas
+\series default
+ (LEs,
+\emph on
+logical extents
+\emph default
+) del mismo tamaño que las extensiones físicas y actúan como cualquier otro
+ dispositivo de bloques.
+ Algunos tipos de volúmenes lógicos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Lineales
+\series default
+: A cada extensión lógica le corresponde una única extensión física, en
+ orden lineal.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Repartidos
+\series default
+: El volumen se divide en porciones fijas con un
+\series bold
+tamaño de porción
+\series default
+ (
+\emph on
+stripe size
+\emph default
+) generalmente menor que una extensión lógica (por defecto
+\begin_inset Formula $\unit[64]{KiB}$
+\end_inset
+
+), con lo que porciones consecutivas se almacenan en volúmenes físicos de
+ discos diferentes de forma cíclica.
+ Esto hace que el rendimiento de E/S sea mayor que el de un único disco
+ al poder operar en paralelo pero disminuyendo su fiabilidad, pues la probabilid
+ad de que falle un volumen repartido es mayor que la de que falle un disco
+ individual.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Reflejados
+\series default
+: A cada extensión lógica le corresponde una extensión física en cada uno
+ de dos o más volúmenes físicos determinados, consiguiendo tolerancia a
+ fallos en caso de que un volumen físico falle.
+ En general, las escrituras tardan lo mismo que en un disco físico individual
+ pero se mejora el rendimiento de lectura.
+ Esto se implementa mediante volúmenes lógicos internos lineales.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+RAID 5
+\series default
+: Funcionan como un volumen lógico repartido al que se le añade un volumen
+ físico adicional, de modo que si tomamos una porción de un volumen físico
+ y la co
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rres
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pon
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+dien
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+te del resto, una de ellas lo que contiene es el resultado de aplicar una
+ función de paridad sobre el resto.
+ Esto permite que no se pierdan datos si un volumen físico deja de funcionar,
+ y al mismo tiempo proporciona un mejor rendimiento.
+\end_layout
+
+\begin_layout Standard
+Los volúmenes lógicos pueden aumentar de tamaño aun con sistemas de ficheros
+ montados, en cuyo caso, si el sistema de ficheros lo permite, se puede
+ aumentar el tamaño de este.
+ También pueden reducir su tamaño (salvo los reflejados o RAID 5 en la implement
+ación actual), pero en este caso los sistemas de ficheros no pueden reducirse
+ estando montados.
+\end_layout
+
+\begin_layout Standard
+También se pueden añadir volúmenes físicos a un grupo de volúmenes, o eliminarlo
+s si no se están usando, en vivo, así como mover extensiones físicas de
+ un volumen a otro, de modo que si el hardware permite cambiar discos en
+ caliente, podemos actualizar o reemplazar dispositivos de almacenamiento
+ sin parar el sistema.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+pvcreate
+\emph on
+VOLUMEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Inicializa un volumen físico para su uso por LVM.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+pvdisplay [
+\emph on
+VOLUMEN
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra las propiedades de los volúmenes físicos indicados, o de todos si
+ no se indica ninguno.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+vgcreate
+\emph on
+NOMBRE_GRUPO VOLUMEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Crea un nuevo grupo de volúmenes sobre dispositivos de bloques.
+ Si los dispositivos no habían sido inicializados por
+\family typewriter
+\series bold
+pvcreate
+\family default
+\series default
+,
+\family typewriter
+vgcreate
+\family default
+ los inicializa.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+vgdisplay
+\emph on
+NOMBRE_GRUPO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Muestra las propiedades de los grupos de volúmenes indicados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--verbose
+\family default
+\series default
+ Incrementa la cantidad de salida por cada aparición.
+ Con una ya muestra los volúmenes físicos que forman parte de cada grupo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lvcreate [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+GRUPO
+\end_layout
+
+\begin_layout Standard
+Crea un nuevo volumen lógico en un grupo de volúmenes.
+ Por defecto crea un LV lineal (
+\family typewriter
+linear
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--type
+\begin_inset space ~
+\end_inset
+
+raid5
+\family default
+\series default
+ Crea un volumen RAID 5.
+ Se debe indicar también la opción
+\family typewriter
+-i
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+N
+\family default
+\emph default
+ Crea un volumen, por defecto repartido (
+\family typewriter
+striped
+\family default
+), entre
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ volúmenes físicos.
+ Si se crea un volumen RAID 5, este número no incluye el volumen extra requerido
+ para la paridad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-m
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--mirrors
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+N
+\family default
+\emph default
+ Crea un volumen físico reflejado (
+\family typewriter
+raid1
+\family default
+|
+\family typewriter
+mirror
+\family default
+) entre
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ volúmenes físicos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-L
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+tamaño
+\emph default
+[
+\emph on
+UNIDAD
+\emph default
+]
+\family default
+ Obligatorio; tamaño de la nueva unidad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-I
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+tamaño
+\emph default
+[
+\emph on
+UNIDAD
+\emph default
+]
+\family default
+ Tamaño de porción en un volumen lógico repartido o RAID 5.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+Nombre
+\family default
+\emph default
+ Nombre del nuevo volumen.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lvdisplay [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+VOLUMEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Muestra las propiedades de los volúmenes lógicos indicados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-m
+\family default
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\family typewriter
+\series bold
+--maps
+\family default
+\series default
+ Muestra la correspondencia de extensiones lógicas a volúmenes y extensiones
+ físicas.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lvextend [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+VOLUMEN
+\end_layout
+
+\begin_layout Standard
+Extiende un volumen lógico al tamaño especificado.
+ Debe indicarse una, y sólo una, de entre
+\family typewriter
+-l
+\family default
+ y
+\family typewriter
+-L
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\series bold
++
+\series default
+]
+\emph on
+Número
+\emph default
+[
+\emph on
+PORCENTAJE
+\emph default
+]
+\family default
+ Nuevo tamaño del volumen en extensiones lógicas.
+ El total de extensiones lógicas será mayor cuando se necesiten datos redundante
+s.
+ El tamaño también se puede indicar como porcentaje.
+ El sufijo
+\family typewriter
+\series bold
+%VG
+\family default
+\series default
+ denota el tamaño total del grupo de volúmenes, y
+\family typewriter
+\series bold
+%FREE
+\family default
+\series default
+ el espacio libre en este.
+ Si se usa el prefijo
+\family typewriter
+\series bold
++
+\family default
+\series default
+, el valor no es absoluto sino relativo, y se añade al tamaño actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-L
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\series bold
++
+\series default
+]
+\emph on
+Tamaño
+\emph default
+[
+\emph on
+UNIDAD
+\emph default
+]
+\family default
+ Nuevo tamaño del volumen.
+ Si se usa el prefijo
+\family typewriter
+\series bold
++
+\family default
+\series default
+, el valor no es absoluto sino relativo, y se añade al tamaño actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--resizefs
+\family default
+\series default
+ Cambia el tamaño del sistema de ficheros subyacente junto al del volumen.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lvreduce [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+VOLUMEN
+\end_layout
+
+\begin_layout Standard
+Reduce el tamaño de un volumen lógico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-L
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\series bold
+-
+\series default
+]
+\emph on
+Tamaño
+\emph default
+[
+\emph on
+UNIDAD
+\emph default
+]
+\family default
+ Nuevo tamaño del volumen.
+ Si se usa el prefijo
+\family typewriter
+\series bold
+-
+\family default
+\series default
+, el valor no es absoluto sino relativo, y se reduce del tamaño actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--resizefs
+\family default
+\series default
+ Cambia el tamaño del sistema de ficheros subyacente junto al del volumen.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+vgextend
+\end_layout
+
+\begin_layout Standard
+Añade uno o más volúmenes físicos a un grupo de volúmenes.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+vgreduce
+\end_layout
+
+\begin_layout Standard
+Elimina uno o más volúmenes físicos sin usar de un grupo de volúmenes.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+pvmove
+\end_layout
+
+\begin_layout Standard
+Mueve extensiones físicas de un volumen físico fuente a uno o más volúmenes
+ físicos destino.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lvremove
+\emph on
+VOLUMEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Elimina uno o más volúmenes lógicos.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+vgremove
+\emph on
+GRUPO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Elimina uno o más grupos de volúmenes.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+pvremove
+\emph on
+VOLUMEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Borra la etiqueta de un dispositivo para que LVM deje de reconocerlo como
+ volumen físico.
+\end_layout
+
+\begin_layout Section
+Dispositivos de bucle
+\end_layout
+
+\begin_layout Standard
+En Linux solo podemos montar dispositivos de bloques, pero existen dispositivos
+ de bloques llamados
+\series bold
+\emph on
+loop
+\series default
+\emph default
+, normalmente llamados
+\family typewriter
+/dev/loop0
+\family default
+–
+\family typewriter
+7
+\family default
+ que representan ficheros regulares, que a su vez suelen crearse como un
+ fichero grande inicialmente lleno de ceros.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+losetup
+\end_layout
+
+\begin_layout Paragraph*
+Obtener información
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+losetup
+\series default
+ [
+\emph on
+DISPOSITIVO
+\emph default
+]
+\end_layout
+
+\begin_layout Paragraph*
+Desasociar un dispositivo
+\emph on
+loop
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+losetup -d
+\series default
+
+\emph on
+DISPOSITIVO
+\emph default
+...
+\end_layout
+
+\begin_layout Paragraph*
+Desasociar todos los dispositivos
+\emph on
+loop
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+losetup -D
+\end_layout
+
+\begin_layout Paragraph*
+Asociar un dispositivo
+\emph on
+loop
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+losetup
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\series bold
+-f
+\series default
+|
+\emph on
+DISPOSITIVO FICHERO
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ Muestra el estado de todos los dispositivos
+\emph on
+loop
+\emph default
+.
+ No toda la información está disponible si no se es superusuario.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\family default
+\series default
+ Encuentra el primer dispositivo
+\emph on
+loop
+\emph default
+ sin usar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-P
+\family default
+\series default
+ Fuerza al núcleo a escanear la tabla de particiones del dispositivo
+\emph on
+loop
+\emph default
+ recién creado.
+\end_layout
+
+\begin_layout Section
+Sistemas de ficheros
+\end_layout
+
+\begin_layout Standard
+El sistema de ficheros ext2 fue el principal en Linux hasta que apareció
+ ext3 que, al contrario que ext2, es
+\series bold
+transaccional
+\series default
+: añade un registro o
+\emph on
+journal
+\emph default
+ que permite recuperar rápidamente la consistencia tras una caída del sistema,
+ algo que en ext2 llevaba mucho tiempo al tener que analizar el sistema
+ de ficheros por completo.
+ Actualmente se usa ext4, muy similar a ext3 pero con mejoras que permiten
+ un menor uso de CPU y mayor rapidez de lectura y escritura.
+\end_layout
+
+\begin_layout Standard
+FAT es una familia de sistemas de ficheros introducida a finales de los
+ 70 por Microsoft.
+ La versión inicial era muy básica y dio paso a FAT12, ideada para su uso
+ en disquetes y reemplazada posteriormente por FAT16 para soportar discos
+ duros de mayor tamaño.
+ Con Windows 95 surge VFAT, una extensión opcional que permite almacenar
+ nombres de fichero de hasta 255 caracteres en vez de los 8 para nombre
+ y 3 de extensión que se permiten desde FAT12.
+ Una revisión de Windows 95 introduce FAT32, con mayor soporte para discos
+ duros más grandes, por lo que actualmente este sistema es una de las formas
+ más sencillas (y limitadas) de compartir ficheros entre Linux y Windows.
+ El manejador de FAT para Linux más adecuado (en general) es
+\family typewriter
+vfat
+\family default
+, que soporta FAT32 con VFAT.
+ Los ficheros en FAT no tienen propietario, grupo ni permisos asociados.
+\end_layout
+
+\begin_layout Standard
+XFS fue creado por Silicon Graphics para IRIX, su implementación de UNIX,
+ liberado en el año 2000 bajo licencia GPL y posteriormente soportado por
+ Linux.
+ NTFS apareció en Windows NT y es el sistema de ficheros por defecto de
+ esta familia de sistemas operativos.
+\end_layout
+
+\begin_layout Standard
+En Linux hay una única jerarquía de directorios, y cada sistema de ficheros
+ se
+\series bold
+monta
+\series default
+ en un directorio llamado
+\series bold
+punto de montaje
+\series default
+, de forma que, hasta que este se
+\series bold
+desmonte
+\series default
+, podemos acceder a los ficheros que contiene a partir de este directorio.
+ El sistema de ficheros raíz es el que se monta en
+\family typewriter
+\series bold
+/
+\family default
+\series default
+, el primero en montarse durante el arranque, y no se puede desmontar.
+ Normalmente solo el superusuario puede montar un sistema de ficheros.
+
+\end_layout
+
+\begin_layout Standard
+En ocasiones también puede montarlo un usuario normal, pero sin indicar
+ opciones extra.
+ Tras montar un sistema de ficheros, el punto de montaje toma los permisos,
+ propietario y grupo del directorio raíz del sistema de ficheros que se
+ monta.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/fstab
+\end_layout
+
+\begin_layout Standard
+Contiene información sobre sistemas de ficheros a montar.
+ Cada sistema de ficheros se des
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+cri
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+be en una línea separada.
+ Los campos en cada línea se separan con tabulaciones o espacios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+dispositivo
+\family default
+\emph default
+ Dispositivo de bloques a montar.
+ Se puede usar
+\family typewriter
+LABEL=<label>
+\family default
+ o
+\family typewriter
+UUID=<uuid>
+\family default
+ en vez de un nombre de fichero.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+punto_de_montaje
+\family default
+\emph default
+ Punto de montaje para el sistema de ficheros.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+tipo
+\family default
+\emph default
+ Tipo de sistema de ficheros.
+ Linux soporta muchos tipos:
+\family typewriter
+ext3
+\family default
+,
+\family typewriter
+ext4
+\family default
+,
+\family typewriter
+vfat
+\family default
+,
+\family typewriter
+iso9660
+\family default
+,
+\family typewriter
+swap
+\family default
+ y muchos más.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+opciones
+\family default
+\emph default
+ Opciones de montaje asociadas al sistema de ficheros.
+ Lista separada por comas.
+ Contiene al menos el tipo de montaje (
+\family typewriter
+\series bold
+ro
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+rw
+\family default
+\series default
+, que puede estar dentro de
+\family typewriter
+\series bold
+defaults
+\family default
+\series default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+frecuencia_copia
+\family default
+\emph default
+ Usada por
+\family typewriter
+\series bold
+dump
+\family default
+\series default
+ para determinar los sistemas de ficheros a los que hacer copia de seguridad.
+ Por defecto es 0 (no hacer copia).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+comprobación
+\family default
+\emph default
+ Usada por
+\family typewriter
+\series bold
+fsck
+\family default
+\series default
+ para determinar el orden de comprobación de los sistemas de ficheros al
+ arrancar (se comprueban primero los que tengan valor 1, después 2, etc.).
+ El sistema raíz debería indicarse con un valor de 1.
+ Otros sistemas deberían tener un valor de 2.
+ Por defecto es 0 (no comprobar).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mkfs [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DISPOSITIVO
+\end_layout
+
+\begin_layout Standard
+Crea un sistema de ficheros Linux en un dispositivo, normalmente una partición
+ de disco duro.
+ Actualmente
+\family typewriter
+\series bold
+mkfs
+\family default
+\series default
+ es sólo una fachada sobre los creadores de sistemas de ficheros (
+\family typewriter
+\series bold
+mkfs.
+\series default
+\emph on
+tipo
+\family default
+\emph default
+) disponibles en Linux.
+ El creador específico al sistema de ficheros se busca solo mediante la
+ variable de entorno
+\family typewriter
+PATH
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+tipo
+\family default
+\emph default
+ Especifica el
+\family typewriter
+\emph on
+tipo
+\family default
+\emph default
+ del sistema de ficheros a crear.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mke2fs [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DISPOSITIVO
+\end_layout
+
+\begin_layout Standard
+Crea un sistema de ficheros ext2, ext3 o ext4.
+ Si se ejecuta como
+\family typewriter
+\series bold
+mkfs.XXX
+\family default
+\series default
+, se entiende que el tipo concreto es
+\family typewriter
+\emph on
+XXX
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+e2label
+\emph on
+DISPOSITIVO
+\emph default
+ [
+\emph on
+ETIQUETA
+\emph default
+]
+\end_layout
+
+\begin_layout Standard
+Cambia la etiqueta de un sistema de ficheros ext2, ext3 o ext4.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+fatlabel
+\end_layout
+
+\begin_layout Standard
+Establece u obtiene la etiqueta de un sistema de ficheros MS-DOS.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+blkid
+\end_layout
+
+\begin_layout Standard
+Determina el tipo de contenido de un dispositivo de bloques, así como los
+ atributos a partir de los metadatos de contenido (como celdas
+\family typewriter
+LABEL
+\family default
+ o
+\family typewriter
+UUID
+\family default
+).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mount
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mount
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DISPOSITIVO
+\emph default
+|
+\emph on
+DIRECTORIO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mount
+\series default
+ [
+\series bold
+-t
+\series default
+
+\emph on
+tipo
+\emph default
+] [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DISPOSITIVO DIRECTORIO
+\end_layout
+
+\begin_layout Standard
+Monta un sistema de ficheros.
+ Si solo se indica el directorio o el dispositivo,
+\family typewriter
+\series bold
+mount
+\family default
+\series default
+ busca un punto de montaje (y si no lo encuentra, un dispositivo) en el
+ fichero
+\family typewriter
+/etc/fstab
+\family default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Listado de montajes
+\end_layout
+
+\begin_layout Standard
+El siguiente comando lista todos los sistemas de ficheros montados (o de
+ tipo
+\family typewriter
+\emph on
+tipo
+\family default
+\emph default
+):
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mount
+\series default
+ [
+\series bold
+-l
+\series default
+] [
+\series bold
+-t
+\series default
+
+\emph on
+tipo
+\emph default
+]
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE LÍNEA DE COMANDOS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-o
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+opciones
+\family default
+\emph default
+ Opciones de montaje, lista separada por comas.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Sinónimo de
+\family typewriter
+\series bold
+-o ro
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+tipo
+\family default
+\emph default
+ Tipo del sistema de ficheros.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE MONTAJE INDEPENDIENTES DEL SISTEMA DE FICHEROS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+auto
+\family default
+\series default
+ Puede ser montado con la opción
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+noauto
+\family default
+\series default
+ Sólo puede ser montado de forma explícita.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+defaults
+\family default
+\series default
+ Usa las opciones por defecto:
+\family typewriter
+\series bold
+rw
+\family default
+\series default
+,
+\family typewriter
+\series bold
+suid
+\family default
+\series default
+,
+\family typewriter
+\series bold
+dev
+\family default
+\series default
+,
+\family typewriter
+\series bold
+exec
+\family default
+\series default
+,
+\family typewriter
+\series bold
+auto
+\family default
+\series default
+,
+\family typewriter
+\series bold
+nouser
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+async
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+nodev
+\family default
+\series default
+ No interpreta los dispositivos especiales de caracteres y bloques en el
+ sistema de ficheros.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+exec
+\family default
+\series default
+ Permite la ejecución de ficheros.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+noexec
+\family default
+\series default
+ No la permite.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+remount
+\family default
+\series default
+ Intenta volver a montar un sistema de ficheros ya montado.
+ Se usa normalmente para cambiar las opciones de montaje.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+ro
+\family default
+\series default
+ Monta el sistema de ficheros para solo lectura.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+rw
+\family default
+\series default
+ Monta el sistema de ficheros para lectura y escritura.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+users
+\family default
+\series default
+ Permite a cualquier usuario montar y desmontar el sistema de ficheros.
+ Implica
+\family typewriter
+\series bold
+noexec
+\family default
+\series default
+,
+\family typewriter
+\series bold
+nosuid
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+nodev
+\family default
+\series default
+ (salvo que lo sobrescriban opciones posteriores).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+suid
+\family default
+\series default
+ Permitir el efecto de los bits SUID o SGID.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+nosuid
+\family default
+\series default
+ No permitirlo.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE MONTAJE ESPECÍFICAS AL SISTEMA DE FICHEROS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+grpquota
+\series default
+|
+\series bold
+usrquota
+\family default
+\series default
+ Aceptadas pero ignoradas.
+ (Las utilidades de cuotas podrían reaccionar a estas cadenas en
+\family typewriter
+\emph on
+/etc/fstab
+\family default
+\emph default
+.
+ Concretamente, activan las cuotas de grupo y usuario, respectivamente,
+ si el sistema de ficheros soporta un mecanismo de cuotas.)
+\end_layout
+
+\begin_layout Paragraph*
+Opciones de montaje para FAT
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+uid=
+\series default
+\emph on
+valor
+\family default
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+y
+\begin_inset space ~
+\end_inset
+
+
+\family typewriter
+\series bold
+gid=
+\series default
+\emph on
+valor
+\family default
+\emph default
+ Establecen el propietario y grupo de todos los ficheros.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+umask=
+\series default
+\emph on
+valor
+\family default
+\emph default
+ Establece la máscara-u (máscara de permisos que
+\series bold
+no
+\series default
+ están presentes).
+ El valor se da en octal.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+dmask=
+\series default
+\emph on
+valor
+\family default
+\emph default
+ Establece una máscara-u solo en directorios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+fmask=
+\series default
+\emph on
+valor
+\family default
+\emph default
+ Establece una máscara-u solo en ficheros.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+umount {
+\emph on
+DIRECTORIO
+\emph default
+|
+\emph on
+DISPOSITIVO
+\emph default
+}
+\end_layout
+
+\begin_layout Standard
+Desmonta un sistema de ficheros.
+ No se puede desmontar cuando está
+\begin_inset Quotes fld
+\end_inset
+
+ocupado
+\begin_inset Quotes frd
+\end_inset
+
+ (
+\emph on
+busy
+\emph default
+).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+findmnt [
+\emph on
+PUNTO_MONTAJE
+\emph default
+]
+\end_layout
+
+\begin_layout Standard
+Lista todos los sistemas de ficheros o busca uno.
+ Por defecto imprime todos los sistemas de ficheros en formato similar a
+ un árbol.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+fuser [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+NOMBRE
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Muestra los PIDs de procesos que usan los ficheros o sistemas de ficheros
+ especificados.
+ En el modo por defecto, a cada nombre de fichero le sigue una letra indicando
+ cada tipo de acceso:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+c
+\family default
+\series default
+ Directorio actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+e
+\family default
+\series default
+ Ejecutable siendo ejecutado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+f
+\family default
+\series default
+ Fichero abierto.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Separator plain
+\end_inset
+
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-m
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+NOMBRE
+\family default
+\emph default
+
+\family typewriter
+\emph on
+NOMBRE
+\family default
+\emph default
+ especifica un fichero montado en un sistema de ficheros o dispositivo de
+ bloques montado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Muestra una salida detallada.
+ Los campos
+\family typewriter
+PID
+\family default
+,
+\family typewriter
+USER
+\family default
+ y
+\family typewriter
+COMMAND
+\family default
+ son similares a los de
+\family typewriter
+\series bold
+ps
+\family default
+\series default
+.
+
+\family typewriter
+ACCESS
+\family default
+ muestra cómo el proceso accede al fichero.
+ También se muestra cuándo un fichero particular es accedido como punto
+ de montaje.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+df [
+\emph on
+OPCIÓN
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra el espacio disponible en todos los sistemas de ficheros actualmente
+ montados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-h
+\family default
+\series default
+ Muestra los tamaños en potencias de 1024 (p.
+ ej.,
+\family typewriter
+1023M
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Muestra información de uso sobre los nodos-i en vez de sobre los bloques.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-T
+\family default
+\series default
+ Imprime el tipo del sistema de ficheros.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+du [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra un resumen de uso de disco en los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s, recursivamente en caso de directorios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ Muestra el uso de espacio para todos los ficheros, no solo directorios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-h
+\family default
+\series default
+ Mostrar los tamaños en formato legible para humanos (p.
+ ej.,
+\family typewriter
+1K
+\family default
+,
+\family typewriter
+234M
+\family default
+,
+\family typewriter
+2G
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\family default
+\series default
+ Mostrar sólo el total para cada argumento.
+\end_layout
+
+\begin_layout Standard
+Los valores mostrados están en unidades de 1024 bytes (o 512 si se establece
+
+\family typewriter
+POSIXLY_CORRECT
+\family default
+).
+\end_layout
+
+\begin_layout Section
+Cuotas de disco
+\end_layout
+
+\begin_layout Standard
+Algunos sistemas de ficheros soportan
+\series bold
+cuotas
+\series default
+, permitiendo establecer límites sobre la cantidad de espacio que puede
+ usar cada usuario.
+ En el caso de ext2, ext3 y ext4, cada usuario tiene límites en el número
+ de bloques y el de nodos-i, de dos tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Límite duro
+\series default
+ (
+\emph on
+hard limit
+\emph default
+): No se puede sobrepasar.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Límite blando
+\series default
+ (
+\emph on
+soft limit
+\emph default
+): Inferior al duro, se puede sobrepasar durante cierto
+\series bold
+periodo de gracia
+\series default
+, en el que se informa al usuario.
+\end_layout
+
+\begin_layout Standard
+En Linux, las cuotas se deben activar explícitamente.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+quotacheck -nm
+\emph on
+SISTEMA_DE_FICHEROS
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Examina cada sistema de ficheros (indicado por el punto de montaje), crea
+ una tabla con el uso de disco actual y la compara con la contenida en el
+ fichero de cuotas de disco del sistema de ficheros.
+ Si se encuentran inconsistencias, tanto el fichero como la copia en el
+ sistema de las cuotas incorrectas se actualizan.
+
+\family typewriter
+\series bold
+quotacheck
+\family default
+\series default
+ espera que cada sistema de ficheros a comprobar tenga ficheros de cuota
+ llamados
+\family typewriter
+[a]quota.user
+\family default
+ y
+\family typewriter
+[a]quota.group
+\family default
+ en la raíz.
+ Si un fichero no está presente,
+\family typewriter
+\series bold
+quotacheck
+\family default
+\series default
+ lo crea.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+quotaon
+\emph on
+SISTEMA_FICHEROS
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Anuncia al sistema que las cuotas de disco deben ser activadas en uno o
+ más sistemas de ficheros (indicados por el punto de montaje).
+ Los ficheros de cuota deben estar presentes en el directorio raíz del sistema
+ de ficheros.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+setquota
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+setquota
+\series default
+
+\series bold
+-u
+\series default
+
+\emph on
+NOMBRE LÍMITE_BLANDO_BLOQUES LÍMITE_DURO_BLOQUES LÍMITE_BLANDO_NODOS_I LÍMITE_DU
+RO_NODOS_I SISTEMA_DE_FICHEROS
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+setquota -t
+\series default
+
+\emph on
+PERIODO_GRACIA_BLOQUES PERIODO_GRACIA_NODOS_I SISTEMA_DE_FICHEROS
+\end_layout
+
+\begin_layout Standard
+Editor de cuotas.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-u
+\family default
+\series default
+ Establece cuotas para el usuario nombrado.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+repquota
+\emph on
+SISTEMA_DE_FICHEROS
+\end_layout
+
+\begin_layout Standard
+Imprime un resumen de los usos de disco y las cuotas para los sistemas de
+ ficheros indicados.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+quota
+\end_layout
+
+\begin_layout Standard
+Imprime el uso de disco y los límites del usuario.
+\end_layout
+
+\begin_layout Section
+Copias de seguridad
+\end_layout
+
+\begin_layout Standard
+Es responsabilidad del administrador que las copias de seguridad de los
+ sistemas de ficheros se hagan en el momento oportuno y estén en un lugar
+ seguro, para evitar la posible pérdida de datos.
+ Tipos de copia:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Completa
+\series default
+: Tardan mucho en realizarse y la recuperación de un único fichero puede
+ no ser inmediata, por lo que sólo están justificadas si los ficheros cambian
+ mucho y son vitales para el trabajo de mucha gente o ante grandes cambios
+ como nuevo software, sistema operativo, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Diferencial
+\series default
+: Sólo se copian los ficheros creados o modificados después de la última
+ copia completa.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Incremental
+\series default
+: Sólo se copian los ficheros creados o modificados desde la última copia
+ de seguridad, por lo que ocupan menos que las diferenciales.
+ Muchas veces se hace una copia completa con poca frecuencia seguida de
+ copias incrementales con mucha frecuencia, incluso a diario.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+tar
+\emph on
+OPCIÓN
+\emph default
+...
+ [
+\emph on
+ARGUMENTO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Almacena múltiples ficheros en uno solo (un
+\series bold
+archivo
+\series default
+), y manipula dichos archivos.
+\end_layout
+
+\begin_layout Standard
+En
+\series bold
+estilo tradicional
+\series default
+, el primer argumento es un clúster de opciones y el resto son argumentos
+ a aquellas opciones que lo requieran.
+ En
+\series bold
+estilo UNIX
+\series default
+, a cada opción le precede un guión.
+ Si una opción toma un argumento, este lo sigue, bien como palabra separada
+ en la línea del comando o inmediatamente detrás de la opción.
+ Cualquier número de parámetros que no tome argumentos puede juntarse tras
+ un solo guión.
+ En
+\series bold
+estilo GNU
+\series default
+, cada opción comienza con dos guiones y tiene un nombre descriptivo.
+ Los tres estilos pueden mezclarse.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES
+\end_layout
+
+\begin_layout Paragraph*
+Modo de operación
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+ Crea un nuevo archivo.
+ Los argumentos indican los nombres de los ficheros a archivar.
+ Los directorios se archivan recursivamente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Añade fichero al final de un archivo.
+ Los argumentos tienen el mismo significado que para
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\family default
+\series default
+ Lista el contenido de un archivo.
+ Los argumentos son opcionales.
+ Cuando aparecen, son los nombres de los miembros a listar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-x
+\family default
+\series default
+ Extrae ficheros de un archivo.
+ Los argumentos son opcionales.
+ Cuando aparecen, son los nombres de los miembros del archivo a extraer.
+\end_layout
+
+\begin_layout Paragraph*
+Tratamiento de atributos de fichero
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-p
+\family default
+\series default
+ Extrae información sobre permisos de fichero.
+\end_layout
+
+\begin_layout Paragraph*
+Selección y cambio de dispositivo
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+ARCHIVO
+\family default
+\emph default
+ Usa el fichero o dispositivo de archivo indicado.
+\end_layout
+
+\begin_layout Subsubsection*
+Opciones de compresión
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-z
+\family default
+\series default
+ Filtra el archivo a través de
+\family typewriter
+\series bold
+gzip
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Selección de ficheros local
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-h
+\family default
+\series default
+ Sigue enlaces simbólicos; archiva los ficheros a los que apuntan.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-N
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--after-date
+\series default
+=
+\emph on
+FECHA
+\family default
+\emph default
+ Sólo almacena ficheros posteriores a
+\family typewriter
+\emph on
+FECHA
+\family default
+\emph default
+.
+ Si
+\family typewriter
+\emph on
+FECHA
+\family default
+\emph default
+ empieza por
+\family typewriter
+\series bold
+/
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+.
+
+\family default
+\series default
+ se toma como un nombre de fichero; la fecha de creación de este fichero
+ se usa como fecha.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-P
+\family default
+\series default
+ No elimina las barras al principio de nombres de fichero al crear archivos
+ (los guarda con ruta absoluta).
+\end_layout
+
+\begin_layout Paragraph*
+Salida informativa
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Lista los ficheros procesados.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+cpio
+\end_layout
+
+\begin_layout Standard
+En modo copia hacia fuera, lee una lista de nombres de fichero, uno por
+ línea, de la entrada estándar, y escribe el archivo en la salida estándar.
+ En modo copia hacia dentro, lee un archivo de la entrada estándar.
+\end_layout
+
+\begin_layout Paragraph*
+Modo principal de operación
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Extrae ficheros de un archivo (copia hacia dentro).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-o
+\family default
+\series default
+ Crea un archivo (copia hacia fuera).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\family default
+\series default
+ Imprime una tabla de contenidos de la entrada.
+\end_layout
+
+\begin_layout Subsubsection*
+Modificadores de operación para ambos modos
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Lista los ficheros procesados, o con
+\family typewriter
+\series bold
+-t
+\family default
+\series default
+, proporciona un listado estilo
+\family typewriter
+\series bold
+ls -l
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-F
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+ARCHIVO
+\family default
+\emph default
+ Usa este
+\family typewriter
+\emph on
+ARCHIVO
+\family default
+\emph default
+ en vez de la entrada o salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--no-absolute-filenames
+\family default
+\series default
+ Crea todos los ficheros relativos al directorio actual.
+\end_layout
+
+\begin_layout Paragraph*
+Modificadores de operación para copia hacia fuera
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ Resetea los tiempos de acceso de los ficheros tras leerlos.
+\end_layout
+
+\begin_layout Paragraph*
+Modificadores de operación para copia hacia dentro
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\family default
+\series default
+ Crea directorios cuando se necesite.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-m
+\family default
+\series default
+ Presenta las fechas de modificación previas al crear ficheros.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+rsync [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+FUENTE
+\emph default
+
+\emph on
+DESTINO
+\end_layout
+
+\begin_layout Standard
+Puede copiar localmente o hacia/desde otro ordenador sobre una
+\emph on
+shell
+\emph default
+ remota (demonio
+\family typewriter
+sshd
+\family default
+).
+ Usa un algoritmo que reduce la cantidad de datos enviados por red enviando
+ solo la diferencia entre los archivos fuente y los existentes en el destino.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Un solo
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ te dará información sobre qué ficheros están siendo transferidos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ Recursión y preservar casi todo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--backup
+\family default
+\series default
+ Los ficheros de destino preexistentes cambian de nombre.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--backup-dir=
+\series default
+\emph on
+DIR
+\family default
+\emph default
+ Combinado con
+\family typewriter
+\series bold
+--backup
+\family default
+\series default
+, guarda las copias de seguridad en el directorio especificado del destino.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\family default
+\series default
+ Ejecución de prueba que no realiza ningún cambio (y produce en general
+ la misma salida que una ejecución real).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--delete
+\family default
+\series default
+ Borrar ficheros del lado receptor que no están en la fuente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-z
+\family default
+\series default
+ Comprime los datos de los ficheros conforme se envían al destino, reduciendo
+ la cantidad de datos transmitidos.
+\end_layout
+
+\begin_layout Section
+
+\family typewriter
+proc
+\family default
+ y
+\family typewriter
+sysfs
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+proc
+\family default
+ (montado en
+\family typewriter
+/proc
+\family default
+) y
+\family typewriter
+sysfs
+\family default
+ (montado en
+\family typewriter
+/sys
+\family default
+)
+\family typewriter
+
+\family default
+son sistemas de ficheros virtuales (no se almacenan en ningún disco) que
+ nos permiten acceder a la información del núcleo sobre dispositivos hardware
+ disponibles, buses, módulos, etc.
+ En
+\family typewriter
+/proc
+\family default
+, tenemos:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+devices
+\family default
+ Dispositivos de bloques y caracteres actualmente configurados (cuyos módulos
+ están cargados).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+interrupts
+\family default
+ Interrupciones tratadas y dispositivos asociados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+iomem
+\family default
+ Rangos de memoria para E/S mapeada a memoria.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+ioports
+\family default
+ Puertos registrados para E/S no mapeada a memoria.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+modules
+\family default
+ Lista de módulos del núcleo cargados.
+\end_layout
+
+\begin_layout Standard
+La información más completa se encuentra en
+\family typewriter
+/sys
+\family default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lshw
+\end_layout
+
+\begin_layout Standard
+Extrae información detallada sobre la configuración hardware.
+ Configuración de memoria, versión de CPU, configuración de caché, buses,
+ etc.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lsusb
+\end_layout
+
+\begin_layout Standard
+Muestra información sobre los buses USB y dispositivos conectados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Muestra información detallada sobre los dispositivos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FABRICANTE
+\emph default
+:
+\emph on
+PRODUCTO
+\family default
+\emph default
+ Sólo muestra el dispositivo con el ID de fabricante y de producto indicados
+ en hexadecimal.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+lspci
+\end_layout
+
+\begin_layout Standard
+Muestra información sobre los buses PCI y dispositivos conectados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Muestra información detallada.
+\end_layout
+
+\begin_layout Section
+Planificación de E/S en discos
+\end_layout
+
+\begin_layout Standard
+La escritura a disco pasa por una
+\series bold
+caché de disco
+\series default
+ en RAM, y los bloques modificados son realmente escritos por demonios del
+ núcleo.
+ Para bloques que no están en la caché, existen 3 planificadores:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+CFQ
+\series default
+ (
+\emph on
+Completely Fair Queuing
+\emph default
+): Va asignando el disco a cada proceso durante cierto tiempo, en el cual
+ solo se sirven peticiones de este proceso, siguiendo básicamente un algoritmo
+ SCAN.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\emph on
+Deadline
+\series default
+\emph default
+: Asigna plazos de tiempo a cada petición, de forma que si hay peticiones
+ con plazos incumplidos, estas son atendidas mediante FCFS y, de lo contrario,
+ aplica un algoritmo SCAN.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+NOOP
+\series default
+ (
+\emph on
+no-operation
+\emph default
+): FCFS.
+\end_layout
+
+\begin_layout Standard
+Para discos duros, CFQ proporciona mejor rendimiento en general, por lo
+ que es el
+\series bold
+planificador por omisión
+\series default
+;
+\emph on
+deadline
+\emph default
+ funciona mejor para bases de datos, y NOOP es el peor.
+ Para SSDs y ciertos dispositivos inteligentes como sistemas RAID por hardware,
+ el mejor es NOOP, pues el resto introducen pequeños retrasos que sólo tienen
+ sentido para discos duros.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Podemos obtener el planificador para un disco leyendo de
+\family typewriter
+/sys/block/
+\emph on
+nombre_disco
+\emph default
+/queue/scheduler
+\family default
+ (siendo
+\family typewriter
+\emph on
+nombre_disco
+\family default
+\emph default
+, por ejemplo,
+\family typewriter
+sda
+\family default
+), que nos muestra todos los planificadores con el actual entre corchetes,
+ y podemos cambiarlo
+\begin_inset Quotes fld
+\end_inset
+
+sobreescribiéndolo
+\begin_inset Quotes frd
+\end_inset
+
+ con el nombre del planificador que queremos (
+\family typewriter
+noop
+\family default
+,
+\family typewriter
+deadline
+\family default
+ o
+\family typewriter
+cfq
+\family default
+).
+ El parámetro del núcleo
+\family typewriter
+elevator=
+\emph on
+planificador
+\family default
+\emph default
+ establece el planificador por omisión.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+En CFQ, los procesos tienen prioridades de E/S.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+ionice [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [-p
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+PID
+\emph default
+|
+\emph on
+COMANDO
+\emph default
+...]
+\end_layout
+
+\begin_layout Standard
+Establece u obtiene la clase de E/S y prioridad para un proceso.
+ Sin parámetros o sólo con
+\family typewriter
+\series bold
+-p
+\family default
+\series default
+, obtiene la clase de planificación y prioridad de E/S para el proceso.
+ Si se da un
+\family typewriter
+\emph on
+COMANDO
+\family default
+\emph default
+, ejecuta el comando con los parámetros dados.
+ Si no se especifica una
+\family typewriter
+\emph on
+clase
+\family default
+\emph default
+, se ejecuta con clase de prioridad
+\begin_inset Quotes fld
+\end_inset
+
+mejor esfuerzo
+\begin_inset Quotes frd
+\end_inset
+
+.
+ El nivel de prioridad por defecto es 4.
+\end_layout
+
+\begin_layout Standard
+Un proceso puede estar en tres clases de planificación E/S:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\series bold
+Desocupado
+\series default
+
+\begin_inset space ~
+\end_inset
+
+(
+\emph on
+idle
+\emph default
+) Sólo obtiene el disco cuando ningún otro programa lo ha pedido durante
+ un cierto periodo de gracia.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\series bold
+Mejor
+\begin_inset space ~
+\end_inset
+
+esfuerzo
+\series default
+
+\begin_inset space ~
+\end_inset
+
+(
+\emph on
+best-effort
+\emph default
+) Toma un argumento de prioridad de 0–7, con menor número para mayor prioridad.
+ Los procesos con igual prioridad se sirven en
+\emph on
+round-robin
+\emph default
+.
+ Un proceso que no ha pedido una prioridad de E/S hereda su clase de planificaci
+ón de CPU.
+ Su prioridad se deriva del nivel
+\emph on
+nice
+\emph default
+ de CPU (
+\begin_inset Formula $\left\lfloor \frac{\text{valor nice}+20}{5}\right\rfloor $
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\series bold
+Tiempo
+\begin_inset space ~
+\end_inset
+
+real
+\series default
+
+\begin_inset space ~
+\end_inset
+
+(
+\emph on
+realtime
+\emph default
+) Se le da primer acceso al disco, independientemente del resto del sistema.
+ Se definen 8 niveles de prioridad (0–7) según lo grande que es la porción
+ de tiempo que recibirá un proceso.
+ No permitida para usuarios no
+\family typewriter
+root
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Separator plain
+\end_inset
+
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--class
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+CLASE
+\family default
+\emph default
+ Número de la clase;
+\family typewriter
+\series bold
+0
+\family default
+\series default
+ para ninguna,
+\family typewriter
+\series bold
+1
+\family default
+\series default
+ para tiempo real,
+\family typewriter
+\series bold
+2
+\family default
+\series default
+ para mejor esfuerzo,
+\family typewriter
+\series bold
+3
+\family default
+\series default
+ para desocupado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--classdata
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+NIVEL
+\family default
+\emph default
+ Para tiempo real y mejor esfuerzo, nivel de prioridad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-p
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--pid
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+PID
+\family default
+\emph default
+ ID del proceso del que obtener o establecer los parámetros.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+iotop
+\end_layout
+
+\begin_layout Standard
+Muestra una tabla de uso de E/S actual de los procesos o hilos.
+ (Las columnas son: identificador de hilo
+\family typewriter
+TID
+\family default
+, clase/nivel de prioridad
+\family typewriter
+PRIO
+\family default
+, propietario
+\family typewriter
+USER
+\family default
+, tasa de transferencia de lectura
+\family typewriter
+DISK READ
+\family default
+, de escritura
+\family typewriter
+DISK WRITE
+\family default
+, porcentaje de tiempo de espera en fallos de página
+\family typewriter
+SWAPIN
+\family default
+, porcentaje de tiempo de espera a peticiones de E/S a disco
+\family typewriter
+IO
+\family default
+ y línea de órdenes
+\family typewriter
+COMMAND
+\family default
+.)
+\end_layout
+
+\begin_layout Standard
+Use las flechas izquierda y derecha para cambiar la ordenación,
+\family typewriter
+r
+\family default
+ para invertir el orden (se indica
+\family typewriter
+<
+\family default
+ o
+\family typewriter
+>
+\family default
+ en la columna en la que se ordena para orden ascendente o descendente,
+ respectivamente).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-P
+\family default
+\series default
+ Solo muestra procesos.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+sync
+\end_layout
+
+\begin_layout Standard
+Sincroniza las escrituras a caché a almacenamiento permanente.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/ne.lyx b/iso/ne.lyx
new file mode 100644
index 0000000..7cfa928
--- /dev/null
+++ b/iso/ne.lyx
@@ -0,0 +1,1997 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Section
+Gestión de procesos
+\end_layout
+
+\begin_layout Standard
+Linux realiza planificación por prioridades dinámicas, con una
+\series bold
+prioridad base
+\series default
+ o valor
+\emph on
+nice
+\emph default
+ que va de
+\begin_inset Formula $-20$
+\end_inset
+
+ (máxima) a 20 (mínima), donde 19 o 20 indica que al proceso solo se le
+ da la CPU cuando nadie más la quiera.
+ Por defecto cada proceso hereda la prioridad base de su padre, y sólo
+\family typewriter
+root
+\family default
+ puede aumentar la prioridad e un proceso.
+ La prioridad dinámica se calcula según la prioridad base dependiendo del
+ consumo de CPU realizado, ejecución de código en el núcleo, etc.
+\end_layout
+
+\begin_layout Standard
+Un proceso pueden recibir señales como STOP (19) que lo detiene, CONT (18)
+ que lo reanuda, KILL (9) que lo elimina (salvo si es zombie o bloqueado
+ por E/S) o TERM (15) que le notifica de que debe terminar.
+ Los procesos pueden
+\series bold
+capturar
+\series default
+ algunas señales, como TERM pero no KILL, cambiando su comportamiento por
+ defecto al recibirlas.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+ps
+\end_layout
+
+\begin_layout Standard
+Muestra información sobre procesos activos.
+ Acepta varios tipos de opciones:
+\end_layout
+
+\begin_layout Enumerate
+Opciones UNIX, que pueden ser agrupadas y deben ser precedidas por un guion.
+\end_layout
+
+\begin_layout Enumerate
+Opciones BSD, que pueden ser agrupadas y no deben ser usadas con guion.
+\end_layout
+
+\begin_layout Enumerate
+Opciones largas GNU, precedidas por dos guiones.
+\end_layout
+
+\begin_layout Standard
+Pueden mezclarse opciones de distintos tipos, pero puede haber conflictos.
+ Por defecto,
+\family typewriter
+\series bold
+ps
+\family default
+\series default
+ selecciona los procesos con igual EUID que el usuario actual y asociados
+ a terminal.
+\end_layout
+
+\begin_layout Subsubsection*
+SELECCIÓN SIMPLE DE PROCESOS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+a
+\family default
+\series default
+ Quita la restricción
+\begin_inset Quotes fld
+\end_inset
+
+sólo tus procesos
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+x
+\family default
+\series default
+ Quita la restricción
+\begin_inset Quotes fld
+\end_inset
+
+debe tener una terminal
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsubsection*
+CONTROL DE FORMATO DE SALIDA
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+l
+\family default
+\series default
+ Formato largo de BSD (con campos como
+\family typewriter
+ppid
+\family default
+,
+\family typewriter
+uid
+\family default
+,
+\family typewriter
+pri
+\family default
+,
+\family typewriter
+ni
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+o
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+formato
+\family default
+\emph default
+ Idéntico a
+\family typewriter
+\series bold
+-o
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-o
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+formato
+\family default
+\emph default
+ Formato definido por el usuario en forma de lista separada por comas, una
+ forma de especificar columnas de salida (ver
+\family typewriter
+\series bold
+ESPECIFICADORES DE FORMATO ESTÁNDARES
+\family default
+\series default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+u
+\family default
+\series default
+ Formato orientado a usuario (
+\family typewriter
+user,pid,%cpu,%mem,vsz,rss,stat,tty
+\family default
+).
+\end_layout
+
+\begin_layout Subsubsection*
+CÓDIGOS DE ESTADO DE PROCESOS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+D
+\family default
+ Bloqueo ininterrumpible (normalmente E/S).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+R
+\family default
+ En cola de ejecución.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+S
+\family default
+ Bloqueo interrumpible (esperando un evento).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+T
+\family default
+ Parado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+Z
+\family default
+ Zombie, terminado pero no recogido por su padre.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+<
+\family default
+ Alta prioridad (
+\emph on
+not nice
+\emph default
+,
+\begin_inset Formula $<0$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+N
+\family default
+ Baja prioridad (
+\emph on
+nice
+\emph default
+,
+\begin_inset Formula $>0$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+s
+\family default
+ Líder de sesión.
+ (Una sesión está asociada a un grupo de procesos y el primero de ellos
+ es el líder.
+ Por ejemplo, si se crean desde una terminal, el líder es el de la terminal
+ en sí misma.)
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
++
+\family default
+ En primer plano.
+\end_layout
+
+\begin_layout Subsubsection*
+ESPECIFICADORES DE FORMATO ESTÁNDARES
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+%cpu
+\family default
+\series default
+ Tiempo de CPU usado entre tiempo de ejecución del proceso como porcentaje.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+%mem
+\family default
+\series default
+ Tamaño del conjunto residente del proceso entre memoria física, como porcentaje.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+euid
+\family default
+\series default
+ ID efectivo de usuario (alias
+\family typewriter
+\series bold
+uid
+\family default
+\series default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+euser
+\family default
+\series default
+ Nombre de usuario efectivo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+ni
+\family default
+\series default
+ Valor
+\emph on
+nice
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+pid
+\family default
+\series default
+ ID del proceso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+ppid
+\family default
+\series default
+ ID del proceso padre.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+pri
+\family default
+\series default
+ Prioridad del proceso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+rss
+\family default
+\series default
+ Tamaño del conjunto residente, la memoria física usada (en KiB).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+stat
+\family default
+\series default
+ Estado del proceso.
+ Ver
+\family typewriter
+\series bold
+CÓDIGOS DE ESTADO DE PROCESOS
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+time
+\family default
+\series default
+ Tiempo acumulativo de CPU en segundos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+tty
+\family default
+\series default
+ Terminal.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+uid
+\family default
+\series default
+ Ver
+\family typewriter
+\series bold
+euid
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+user
+\family default
+\series default
+ Ver
+\family typewriter
+\series bold
+euser
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+vsz
+\family default
+\series default
+ Tamaño de memoria virtual en kiB.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+pstree
+\end_layout
+
+\begin_layout Standard
+Muestra los procesos en ejecución como un árbol.
+ La raíz del árbol es
+\family typewriter
+\series bold
+init
+\family default
+\series default
+.
+
+\family typewriter
+\series bold
+pstree
+\family default
+\series default
+ une ramas idénticas poniéndolas entre corchetes y añadiendo un prefijo
+ con el número de repeticiones.
+ Los hilos hijos de un proceso se encuentran bajo el proceso padre con el
+ nombre del proceso entre llaves.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+top
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Debido a la complejidad de la página
+\family typewriter
+man
+\family default
+, se ha optado por no basarse en ella.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Muestra la actividad del procesador y procesos con una interfaz interactiva
+ que se actualiza cada cierto tiempo (normalmente cada 3 segundos).
+ Las 5 primeras líneas contienen:
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+top -
+\emph on
+hh
+\emph default
+:
+\emph on
+mm
+\emph default
+:
+\emph on
+ss
+\emph default
+ up
+\emph on
+DD
+\emph default
+ days,
+\emph on
+HH
+\emph default
+:
+\emph on
+MM
+\emph default
+,
+\emph on
+N
+\emph default
+ users, load average:
+\emph on
+l1 l5 l15
+\family default
+\emph default
+
+\begin_inset Newline newline
+\end_inset
+
+Hora actual, tiempo en marcha del sistema, número de terminales de usuario
+ abiertas y carga en los 1, 5 y 15 últimos minutos en tanto por 1, con máximo
+ igual al número de núcleos de CPU.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+Tasks:
+\emph on
+K
+\emph default
+ total,
+\emph on
+R
+\emph default
+ running,
+\emph on
+S
+\emph default
+ sleeping,
+\emph on
+P
+\emph default
+ stopped,
+\emph on
+Z
+\emph default
+ zombie
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Número de procesos total, en ejecución, durmiendo, parados y zombis.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+%Cpu(s):
+\emph on
+U
+\emph default
+ us,
+\emph on
+S
+\emph default
+ sy,
+\emph on
+C
+\emph default
+ ni,
+\emph on
+I
+\emph default
+ id,
+\emph on
+W
+\emph default
+ wa,
+\emph on
+H
+\emph default
+ hi,
+\emph on
+E
+\emph default
+ si,
+\emph on
+T
+\emph default
+ st
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Porcentaje de CPU para modo usuario, modo núcleo (no incluye tratamiento
+ de interrupciones), usuario
+\emph on
+not nice
+\emph default
+ (prioridad
+\begin_inset Formula $>0$
+\end_inset
+
+), ociosa (
+\emph on
+idle
+\emph default
+), ociosa esperando E/S, tratando interrupciones hardware, tratando interrupcion
+es software y espera involuntaria (
+\emph on
+stolen
+\emph default
+; en una máquina virtual, el tiempo usado por la máquina real u otras virtuales
+ que no dependen de esta; en una máquina real debería ser 0).
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+KiB Mem :
+\emph on
+t
+\emph default
+ total,
+\emph on
+f
+\emph default
+ free,
+\emph on
+u
+\emph default
+ used,
+\emph on
+b
+\emph default
+ buff/cache
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Memoria total disponible, usada, totalmente libre y usada en
+\emph on
+buffers
+\emph default
+/cachés.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+KiB Swap:
+\emph on
+T
+\emph default
+ total,
+\emph on
+F
+\emph default
+ free,
+\emph on
+U
+\emph default
+ used.
+
+\emph on
+A
+\emph default
+ avail Mem
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Memoria de intercambio total disponible, usada, libre y estimación de la
+ que se podría usar (incluyendo la libre, que no se usa en absoluto).
+\end_layout
+
+\begin_layout Standard
+A continuación una lista de procesos, con las siguientes columnas:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+PID
+\family default
+ ID del proceso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+USER
+\family default
+ Usuario.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+PR
+\family default
+ Prioridad dinámica.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+NI
+\family default
+ Prioridad base (
+\emph on
+nice
+\emph default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+VIRT
+\family default
+
+\family typewriter
+VSZ
+\family default
+ de
+\family typewriter
+ps
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+RES
+\family default
+
+\family typewriter
+RSS
+\family default
+ de
+\family typewriter
+ps
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+SHR
+\family default
+ Memoria que podría ser compartida con otros procesos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+S
+\family default
+ Estado del proceso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+%CPU
+\family default
+ Porcentaje de CPU usado en el intervalo de actualización.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+%MEM
+\family default
+ Porcentaje de RAM usado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+TIME+
+\family default
+
+\family typewriter
+TIME
+\family default
+ de
+\family typewriter
+ps
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Comandos interactivos:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+k
+\family default
+ Envía una señal a un proceso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+n
+\family default
+ Cambia el número de procesos mostrados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+q
+\family default
+ Sale.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+r
+\family default
+ Cambia la prioridad de un proceso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+M
+\family default
+ Ordena según
+\family typewriter
+%MEM
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+N
+\family default
+ Según
+\family typewriter
+PID
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+P
+\family default
+ Según
+\family typewriter
+%CPU
+\family default
+ (por defecto).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+T
+\family default
+ Según tiempo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+nice [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+COMANDO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Ejecuta el
+\family typewriter
+\emph on
+COMANDO
+\family default
+\emph default
+ con el valor
+\emph on
+nice
+\emph default
+ ajustado.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+N
+\family default
+\emph default
+ Añade
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ al valor
+\emph on
+nice
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+renice
+\emph on
+PRIORIDAD PID
+\end_layout
+
+\begin_layout Standard
+Altera la prioridad de un proceso.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+kill [-
+\emph on
+SEÑAL
+\emph default
+]
+\emph on
+PID
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Envía la
+\family typewriter
+\emph on
+SEÑAL
+\family default
+\emph default
+ indicada a los procesos.
+ Si no se especifica la señal, se envía TERM.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+killall [-
+\emph on
+SEÑAL
+\emph default
+]
+\emph on
+NOMBRE
+\end_layout
+
+\begin_layout Standard
+Envía una señal a todos los procesos ejecutando el comando especificado.
+ Si no se especifica la señal, se envía TERM.
+\end_layout
+
+\begin_layout Section
+Programación de tareas
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+at [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+TIEMPO
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+at
+\family default
+\series default
+ ejecuta comandos en una fecha especificada (de esto se encarga
+\family typewriter
+atd.service
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+atq
+\family default
+\series default
+ lista los trabajos pendientes.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+atrm
+\family default
+\series default
+ elimina trabajos.
+\end_layout
+
+\begin_layout Standard
+Acepta tiempos de la forma
+\family typewriter
+\series bold
+HH:MM
+\family default
+\series default
+ para ejecutar un trabajo a un tiempo específico del día.
+ Los comandos se leen de la entrada estándar o del fichero especificado.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+cron
+\end_layout
+
+\begin_layout Standard
+Demonio para ejecutar comandos programados (
+\family typewriter
+crond.service
+\family default
+).
+\end_layout
+
+\begin_layout Subsubsection*
+FICHEROS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+/etc/cron.d/
+\family default
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Directorio con ficheros
+\family typewriter
+cronjob
+\family default
+ para distintos usuarios.
+ (El fichero
+\family typewriter
+crontab
+\family default
+
+\family typewriter
+/etc/cron.d/0hourly
+\family default
+ está preparado para ejecutar cada hora las tareas en
+\family typewriter
+/etc/cron.hourly/
+\family default
+, de las que ejecuta
+\family typewriter
+anacron
+\family default
+.)
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+crontab(5)
+\end_layout
+
+\begin_layout Standard
+Un fichero
+\family typewriter
+crontab
+\family default
+ contiene instrucciones para el demonio
+\family typewriter
+\series bold
+cron
+\family default
+\series default
+.
+ Cada línea tiene cinco celdas de fecha y hora seguidas de un comando.
+ Los comandos se ejecutan cuando las celdas
+\begin_inset Quotes fld
+\end_inset
+
+minuto
+\begin_inset Quotes frd
+\end_inset
+
+,
+\begin_inset Quotes fld
+\end_inset
+
+hora
+\begin_inset Quotes frd
+\end_inset
+
+ y
+\begin_inset Quotes fld
+\end_inset
+
+mes
+\begin_inset Quotes frd
+\end_inset
+
+ coinciden con la fecha actual
+\series bold
+y
+\series default
+ al menos
+\begin_inset Quotes fld
+\end_inset
+
+día del mes
+\begin_inset Quotes frd
+\end_inset
+
+ o
+\begin_inset Quotes fld
+\end_inset
+
+día de la semana
+\begin_inset Quotes frd
+\end_inset
+
+ coinciden con la fecha actual.
+ Las celdas son:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Minuto
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0–59
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Hora
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0–23
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Día del mes
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1–31
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Mes
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1–12 (o nombres)
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Día de la semana
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0–7 (0 o 7 es domingo, o nombres)
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Una celda puede contener un asterisco (
+\family typewriter
+*
+\family default
+), que siempre significa
+\family typewriter
+\emph on
+primero
+\emph default
+-
+\emph on
+último
+\family default
+\emph default
+.
+ Se permiten rangos de números.
+ Los rangos son dos números separados por un guion.
+ El rango es inclusive.
+\end_layout
+
+\begin_layout Standard
+Se permiten conjuntos de números (o rangos) separados por comas.
+ Añadir
+\begin_inset Quotes fld
+\end_inset
+
+
+\family typewriter
+/
+\emph on
+número
+\family default
+\emph default
+
+\begin_inset Quotes frd
+\end_inset
+
+ detrás de un rango especifica saltos del valor del número.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+crontab [
+\emph on
+OPCIÓN
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Mantiene ficheros
+\family typewriter
+crontab
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Muestra el
+\family typewriter
+crontab
+\family default
+ actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Elimina el
+\family typewriter
+crontab
+\family default
+ actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-e
+\family default
+\series default
+ Edita el
+\family typewriter
+crontab
+\family default
+ actual usando el editor.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+anacron
+\end_layout
+
+\begin_layout Standard
+Ejecuta comandos periódicamente.
+ No asume que la máquina se ejecute continuamente.
+ (Por defecto está configurado para ejecutar, diaria, semanal y mensualmente,
+ respectivamente, los trabajos en
+\family typewriter
+/etc/cron.daily/
+\family default
+,
+\family typewriter
+/etc/cron.weekly/
+\family default
+ y
+\family typewriter
+/etc/cron.monthly/
+\family default
+.) Si un trabajo no se ha ejecutado en
+\family typewriter
+\series bold
+n
+\family default
+\series default
+ días (el periodo) o más,
+\family typewriter
+\series bold
+anacron
+\family default
+\series default
+ ejecuta el trabajo.
+\end_layout
+
+\begin_layout Section
+Memoria virtual
+\end_layout
+
+\begin_layout Standard
+Linux puede usar un
+\series bold
+fichero de paginación
+\series default
+ o una
+\series bold
+partición de intercambio
+\series default
+ (
+\emph on
+swap
+\emph default
+) para la memoria virtual, que funciona por paginación, si bien se prefiere
+ una partición porque no sufre fragmentación y se puede situar en la parte
+ más rápida de un disco duro (los cilindros exteriores).
+ El tamaño de la partición depende de factores como la memoria requerida
+ por los trabajos, tamaño de los programas, número de trabajos simultáneos,
+ demanda del sistema, etc.
+ Además, para hibernar se necesita tanto espacio de intercambio como total
+ de memoria usada.
+ Al montar un espacio de intercambio, la opción
+\family typewriter
+pri=
+\emph on
+valor
+\family default
+\emph default
+, que podemos poner en
+\family typewriter
+/etc/fstab
+\family default
+, establece la prioridad, siendo mayor cuanto mayor es el número.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+free
+\end_layout
+
+\begin_layout Standard
+Muestra el total de memoria física y de intercambio libre y usada en el
+ sistema.
+ Las columnas son:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+total
+\family default
+\series default
+ Total de memoria instalada (física y de intercambio).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+used
+\family default
+\series default
+ Memoria usada (física y de intercambio,
+\begin_inset Formula $\mathtt{total}-\mathtt{free}-\mathtt{buff/cache}$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+free
+\family default
+\series default
+ Memoria no usada (física y de intercambio).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+shared
+\family default
+\series default
+ (Física)
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+buff/cache
+\family default
+\series default
+ Suma de
+\family typewriter
+\series bold
+buffers
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+cache
+\family default
+\series default
+ (física).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+available
+\family default
+\series default
+ Estimación de memoria disponible para nuevos procesos (física).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+vmstat [
+\emph on
+PERIODO
+\emph default
+ [
+\emph on
+NÚMERO
+\emph default
+]]
+\end_layout
+
+\begin_layout Standard
+Muestra estadísticas de memoria virtual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+PERIODO
+\family default
+\emph default
+ El periodo entre actualizaciones en segundos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+NÚMERO
+\family default
+\emph default
+ Número de actualizaciones.
+\end_layout
+
+\begin_layout Subsubsection*
+DESCRIPCIÓN DE LAS CELDAS
+\end_layout
+
+\begin_layout Paragraph*
+Memoria (en KiBs)
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+swpd
+\family default
+ Memoria virtual usada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+free
+\family default
+ Memoria sin usar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+buff
+\family default
+ Memoria usada como
+\emph on
+buffers
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+cache
+\family default
+ Memoria usada como caché.
+\end_layout
+
+\begin_layout Paragraph*
+Espacio de intercambio (
+\emph on
+swap
+\emph default
+)
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+si
+\family default
+ Memoria traída del disco (/s).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+so
+\family default
+ Memoria llevada al disco (/s).
+\end_layout
+
+\begin_layout Paragraph*
+E/S
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+bi
+\family default
+ Bloques recibidos de un dispositivo de bloques (bloques/s).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+bo
+\family default
+ Bloques enviados a un dispositivo de bloques (bloques/s).
+\end_layout
+
+\begin_layout Paragraph*
+Sistema
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+in
+\family default
+ Interrupciones por segundo, incluyendo el reloj.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+cs
+\family default
+ Cambios de contexto por segundo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mkswap
+\emph on
+FICHERO
+\end_layout
+
+\begin_layout Standard
+Crea un área de intercambio Linux en un dispositivo o fichero.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+swapon
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+swapon
+\series default
+
+\emph on
+FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+swapoff
+\series default
+
+\emph on
+FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+swapon
+\family default
+\series default
+ especifica un dispositivo (o fichero) para intercambio.
+
+\family typewriter
+\series bold
+swapoff
+\family default
+\series default
+ desactiva el uso como área de intercambio.
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/nf.lyx b/iso/nf.lyx
new file mode 100644
index 0000000..995eae4
--- /dev/null
+++ b/iso/nf.lyx
@@ -0,0 +1,2949 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Section
+El
+\emph on
+firmware
+\end_layout
+
+\begin_layout Standard
+Cuando se pulsa el botón de encendido, se generan señales eléctricas que
+ hacen que en los registros del procesador y de otros componentes se carguen
+ valores predeterminados.
+ En el procesador, el contador de programa se carga con la dirección del
+
+\series bold
+\emph on
+firmware
+\series default
+\emph default
+, un trozo de código almacenado normalmente en memoria no volátil de lectura
+ y escritura (EEPROM, flash, etc.) que se encarga, entre otras cosas, de
+ preparar el hardware.
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+También suelen ocurrir más cosas, como un
+\emph on
+Baseboard Management Controller
+\emph default
+ (BMC) o un
+\emph on
+Intel Management Engine
+\emph default
+ (IME).
+ Este último componente se encarga (v.
+ CVE-2017-5689 y otros) de que la NSA (que lo tiene desactivado por petición
+ especial) y otros puedan espiarte.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Los principales tipos de
+\emph on
+firmware
+\emph default
+ son BIOS, que suele aparecer en ordenadores anteriores a 2010, y UEFI,
+ que aparece en los más recientes
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Y lo jode todo.
+\end_layout
+
+\end_inset
+
+.
+ Este busca en los dispositivos de almacenamiento un
+\series bold
+cargador
+\series default
+ o
+\series bold
+gestor de arranque
+\series default
+.
+ Si no lo encuentra, muestra un error.
+ Si lo encuentra, lo copia en memoria y lo ejecuta, y este pasa a leer de
+ disco el sistema operativo y, posiblemente, otros componentes necesarios
+ para que este arranque, para finalmente pasarle el control.
+\end_layout
+
+\begin_layout Standard
+En los sistemas BIOS, el
+\emph on
+firmware
+\emph default
+ detecta los dispositivos de almacenamiento y toma el primero según una
+ secuencia de arranque dada, copia su sector 0 (el MBR) a disco y pasa el
+ control a lo que acaba de leer.
+ Si este no tiene código de arranque, toma elfich
+\end_layout
+
+\begin_layout Standard
+En los UEFI se usa particionamiento GPT, y la
+\series bold
+partición del sistema de UEFI
+\series default
+, que en Linux suele montarse en
+\family typewriter
+/boot/efi
+\family default
+ y que contiene un sistema de ficheros FAT y GUID
+\family typewriter
+C12A7328-F81F-11D2-BA4B-00A0C93EC93B
+\family default
+, contiene directorios por cada sistema operativo con todo lo necesario
+ para la puesta en marcha: Windows usa
+\family typewriter
+/EFI/Microsoft
+\family default
+ y Fedora usa
+\family typewriter
+/EFI/fedora
+\family default
+.
+ También suele haber un
+\series bold
+módulo de soporte de compatibilidad
+\series default
+ (
+\emph on
+Compatibility Support Module
+\emph default
+, CSM), que simula un entorno BIOS para poder arrancar sistemas operativos
+ sin soporte UEFI.
+ El
+\emph on
+firmware
+\emph default
+ almacena una entrada apuntando a cada fichero de arranque.
+ El
+\emph on
+firmware
+\emph default
+ busca en cada sistema de almacenamiento disponible con partición del sistema
+ UEFI, en orden configurable, un gestor de arranque funcional, de entre
+ los dados por una lista ordenada.
+\end_layout
+
+\begin_layout Standard
+En 2011, con la versión 2.3.1 de la especificación UEFI aparece
+\emph on
+Secure Boot
+\emph default
+, que sólo permite arrancar a software firmado con una clave reconocida
+ por el
+\emph on
+firmware
+\emph default
+.
+ En los equipos certificados para Windows 8, las claves son proporcionadas
+ por Microsoft y no son públicas.
+ Dos opciones son desactivar
+\emph on
+Secure Boot
+\emph default
+ en la configuración o usar un cargador firmado con una clave de Microsoft.
+\end_layout
+
+\begin_layout Section
+GRUB 2
+\end_layout
+
+\begin_layout Standard
+El
+\emph on
+GRand Unified Bootloader
+\emph default
+ versión 2 es un gestor de arranque que normalmente se usa para cargar el
+ núcleo de Linux, si bien puede cargar otros sistemas operativos.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+En BIOS, consta de 3 fases dadas por
+\series bold
+imágenes
+\series default
+, que en Fedora se almacenan en
+\family typewriter
+/usr/lib/grub/i386-pc
+\family default
+ y en
+\family typewriter
+/boot/grub2/i386-pc
+\family default
+.
+ Algunas son:
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+boot.img
+\family default
+\series default
+ Se escribe en el MBR, ocupa
+\begin_inset Formula $\unit[512]{B}$
+\end_inset
+
+ y se encarga de cargar y ejecutar la segunda fase.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+diskboot.img
+\family default
+\series default
+ Segunda fase y primer sector de la imagen
+\emph on
+core
+\emph default
+, se encarga de cargar y ejecutar el resto de la imagen
+\emph on
+core
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+cdboot.img
+\family default
+\series default
+ Como
+\family typewriter
+diskboot.img
+\family default
+ pero para CD/DVD.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+kernel.img
+\family default
+\series default
+ Contiene utilidades en tiempo de ejecución básicas de GRUB 2, y en general
+ se integra en la imagen
+\emph on
+core
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+core.img
+\family default
+\series default
+ Imagen principal, construida dinámicamente a partir de
+\family typewriter
+diskboot.img
+\family default
+/
+\family typewriter
+cdboot.img
+\family default
+,
+\family typewriter
+kernel.img
+\family default
+ y una lista de módulos.
+ Normalmente contiene módulos suficientes para acceder a la configuración
+ y el resto de módulos (ficheros
+\family typewriter
+.mod
+\family default
+) en el sistema de ficheros.
+\end_layout
+
+\begin_layout Standard
+Las imágenes
+\family typewriter
+*boot.img
+\family default
+ no entienden ningún sistema de ficheros, por lo que las dos últimas fases
+ se copian a la zona del disco detrás del MBR y antes de la primera partición,
+ y se almacena el sector de comienzo de cada imagen y su tamaño.
+\end_layout
+
+\begin_layout Standard
+En UEFI, el código de GRUB 2 se encuentra en
+\family typewriter
+grubx64.efi
+\family default
+, con formato Windows PE, y generalmente contiene todo lo necesario, si
+ bien sigue siendo posible cargar módulos dinámicamente.
+ Fedora usa el fichero
+\family typewriter
+sham.efi
+\family default
+, firmado por Microsoft, que se encarga de instalar una clave propia y ejecutar
+ GRUB 2, que, al igual que el núcleo de Linux, estará firmado por esta clave.
+\end_layout
+
+\begin_layout Standard
+GRUB 2 tiene 3 interfaces:
+\end_layout
+
+\begin_layout Itemize
+Menú: Permite elegir el sistema operativo entre varias opciones.
+\end_layout
+
+\begin_layout Itemize
+Editor: Permite editar una entrada de menú, y se accede seleccionando la
+ entrada y pulsando
+\family typewriter
+e
+\family default
+.
+ Podemos usar
+\family typewriter
+F10
+\family default
+ para arrancar con los cambios o
+\family typewriter
+Esc
+\family default
+ para descartarlos y volver al menú.
+\end_layout
+
+\begin_layout Itemize
+Línea de órdenes: Permite ejecutar órdenes de GRUB 2, y se accede pulsando
+
+\family typewriter
+c
+\family default
+ desde el menú o
+\family typewriter
+F2
+\family default
+ desde el editor.
+\end_layout
+
+\begin_layout Standard
+Los dispositivos se identifican como
+\end_layout
+
+\begin_layout Quotation
+{
+\family typewriter
+\emph on
+tipo de dispositivo
+\family default
+\emph default
+}{
+\family typewriter
+\emph on
+número de dispositivo BIOS
+\family default
+}
+\family typewriter
+\emph default
+,
+\family default
+[
+\family typewriter
+\emph on
+particionamiento
+\family default
+\emph default
+]
+\begin_inset Newline newline
+\end_inset
+
+{
+\family typewriter
+\emph on
+número de partición
+\family default
+\emph default
+}
+\end_layout
+
+\begin_layout Standard
+Los números de dispositivo empiezan por 0 y los de partición por 1, y los
+ discos duros se denotan
+\family typewriter
+hd
+\family default
+.
+ Por ejemplo,
+\family typewriter
+hd0,1
+\family default
+ es la primera partición del primer disco duro, y escribimos
+\family typewriter
+hd0,msdos1
+\family default
+ si queremos indicar además que el tipo de particiones es MS-DOS.
+ También podemos especificar un fichero como
+\family typewriter
+\emph on
+dispositivo
+\emph default
+/
+\emph on
+ruta
+\family default
+\emph default
+, donde la
+\family typewriter
+\emph on
+ruta
+\family default
+\emph default
+ parte de la raíz del
+\family typewriter
+\emph on
+dispositivo
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Standard
+Fedora almacena la configuración de GRUB 2 en
+\family typewriter
+/boot/grub2/grub.cfg
+\family default
+.
+ Esta se genera a partir de ficheros en
+\family typewriter
+/etc/grub.d
+\family default
+, que se ejecutan en orden alfabético si tienen permisos de ejecución, y
+ en Fedora son:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+00_header
+\family default
+\series default
+ Configura el modo gráfico, la entrada por defecto, la pausa antes de arrancar
+ esta, etc., configuración que normalmente procede de
+\family typewriter
+/etc/default/grub
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+10_linux
+\family default
+\series default
+ Identifica los núcleos de Linux instalados en el dispositivo de arranque
+ (normalmente montado en
+\family typewriter
+/boot
+\family default
+) y les crea entradas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+30_os-prober
+\family default
+\series default
+ Usa
+\family typewriter
+os-probler
+\family default
+ para buscar e instalar otras distribuciones de Linux y otros sistemas operativo
+s, y se puede deshabilitar en
+\family typewriter
+/etc/default/grub
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+40_custom
+\family default
+\series default
+ Se usa para añadir entradas personalizadas, pues su segunda línea es
+\family typewriter
+exec tail -n +3 $0
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Los ejecutables, normalmente guiones
+\emph on
+shell
+\emph default
+, imprimen su trozo de configuración en la salida estándar, y
+\family typewriter
+grub2-mkconfig
+\family default
+ añade
+\family typewriter
+### BEGIN
+\emph on
+ruta
+\emph default
+ ###
+\family default
+ antes de la salida del guión con la
+\family typewriter
+\emph on
+ruta
+\family default
+\emph default
+ dada y
+\family typewriter
+### END
+\emph on
+ruta
+\emph default
+ ###
+\family default
+ al final.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+/etc/default/grub
+\family default
+ especifica opciones, en formato
+\family typewriter
+\emph on
+CLAVE
+\emph default
+=
+\emph on
+valor
+\family default
+\emph default
+, que establecen cómo estos guiones generan las entradas de menú:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+GRUB_DEFAULT
+\family default
+\series default
+ Fija la entrada por defecto: un número (empezando por 0), el nombre de
+ la entrada entre comillas o
+\family typewriter
+saved
+\family default
+, que permite que
+\family typewriter
+grub2-set-default
+\family default
+ y
+\family typewriter
+grub2-reboot
+\family default
+ establezcan la entrada por defecto.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+GRUB_SAVEDEFAULT
+\family default
+\series default
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Si está definida y vale
+\family typewriter
+true
+\family default
+, cada vez que se seleccione una entrada del menú, se convierte en la entrada
+ por defecto.
+ Para que funcione debe ser
+\family typewriter
+GRUB_DEFAULT=saved
+\family default
+.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+GRUB_TIMEOUT
+\family default
+\series default
+ Plazo en segundos para seleccionar una entrada de menú antes de arrancar
+ la entrada por defecto.
+ Si vale
+\family typewriter
+-1
+\family default
+, el plazo nunca expira.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+GRUB_CMDLINE_LINUX
+\family default
+\series default
+ El contenido de esta opción se añade al final de los parámetros del núcleo
+ de Linux.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+GRUB_DISABLE_RECOVERY
+\family default
+\series default
+ Si vale
+\family typewriter
+true
+\family default
+, evita que, para cada núcleo de Linux instalado, aparezca una segunda entrada
+ en la que al núcleo se le pasan parámetros para una posible recuperación
+ del sistema.
+\end_layout
+
+\begin_layout Standard
+En
+\family typewriter
+grub.cfg
+\family default
+, las entradas tienen la forma
+\family typewriter
+menuentry '
+\emph on
+Nombre
+\emph default
+' [
+\emph on
+OPCIÓN
+\emph default
+]...
+ {
+\emph on
+COMANDO
+\emph default
+...
+ }
+\family default
+, donde algunas opciones son:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--class
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+clase
+\family default
+\emph default
+ Permite agrupar las entradas en clases.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--unrestricted
+\family default
+\series default
+ Cuando la seguridad está activada, esta opción se puede arrancar sin restriccio
+nes.
+\end_layout
+
+\begin_layout Standard
+Los comandos se separan por saltos de línea:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+insmod
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+módulo
+\family default
+\emph default
+ Carga un módulo de GRUB 2, para ampliar su seguridad.
+ Algunos son
+\family typewriter
+gzio
+\family default
+ (para descomprimir
+\family typewriter
+gzip
+\family default
+),
+\family typewriter
+part_msdos
+\family default
+ (para acceder a particiones MS-DOS),
+\family typewriter
+ext2
+\family default
+ (para leer sistemas de ficheros ext2/3/4),
+\family typewriter
+chain
+\family default
+ (para cargar otros gestores de arranque,
+\emph on
+Chain-loading
+\emph default
+),
+\family typewriter
+ntfs
+\family default
+ y otros para entender XFS, FAT, etc.
+ Si GRUB 2 puede acceder al fichero de configuración, muy probablemente
+ ya tenga cargados
+\family typewriter
+part_msdos
+\family default
+ y
+\family typewriter
+ext2
+\family default
+, necesarios para acceder al fichero.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+set
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre
+\emph default
+='
+\emph on
+valor
+\emph default
+'
+\family default
+ Establece una opción.
+ La opción
+\family typewriter
+root
+\family default
+ indica la partición con los ficheros de arranque: el núcleo de Linux (
+\family typewriter
+vmlinuz
+\family default
+) y su disco RAM (
+\family typewriter
+initramfs
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+search
+\begin_inset space ~
+\end_inset
+
+--no-floppy
+\begin_inset space ~
+\end_inset
+
+--fs-uuid
+\begin_inset space ~
+\end_inset
+
+--set=root
+\series default
+
+\begin_inset space ~
+\end_inset
+
+...
+
+\family default
+ Busca en todos los discos, salvo disquetes, una partición con un sistema
+ de ficheros con cierto UUID, y si la encuentra la establece como de arranque.
+ Se usa ante posible fallo de la anterior, pues la partición de arranque
+ puede cambiar de nombre, por ejemplo, si se inserta un nuevo disco.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+linux
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+linux16
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+linuxefi
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+RUTA
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\family default
+ Indica la ruta del núcleo de Linux en la partición
+\family typewriter
+root
+\family default
+ y las opciones que se le pasarán para el arranque.
+ Por ejemplo,
+\family typewriter
+mem=
+\emph on
+N
+\family default
+\emph default
+ indica al núcleo que sólo ha de usar cierta cantidad de RAM, donde
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ puede tener prefijos como
+\family typewriter
+G
+\family default
+ para GiB.
+ Otros parámetros son para el proceso de inicio (el primero en ejecutarse),
+ que los recibe a través del núcleo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+initrd
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+initrd16
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+initrdefi
+\family default
+\series default
+ Indica la ruta del disco RAM de Linux en la partición
+\family typewriter
+root
+\family default
+, un disco que se carga en RAM y que Linux monta tras inicializarse a sí
+ mismo, y es de donde obtiene lo necesario para montar el sistema de ficheros
+ raíz.
+ Una vez este se monta, el disco RAM no es necesario y se elimina.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+chainloader
+\begin_inset space ~
+\end_inset
+
++1
+\family default
+\series default
+ Carga y ejecuta el primer sector de una partición; usado normalmente para
+ cargar Windows, el cual no reconoce otros sistemas operativos instalados
+ y al ins
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ta
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+lar
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+se en sistemas BIOS, modificará el MBR con su propio gestor de arranque
+ que no da opción a arrancar Linux.
+\end_layout
+
+\begin_layout Standard
+La seguridad de GRUB 2 se activa con
+\family typewriter
+grub2-setpassword
+\family default
+, que pide una contraseña y hace que, a partir del siguiente arranque, para
+ modificar una entrada sea necesario introducir el nombre de usuario
+\family typewriter
+root
+\family default
+ y la contraseña dada.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+grub2-install
+\emph on
+DISPOSITIVO
+\end_layout
+
+\begin_layout Standard
+Instala GRUB en un dispositivo.
+ Esto incluye copiar las imágenes de GRUB en el directorio destino (en Fedora,
+
+\family typewriter
+/boot/grub2
+\family default
+) e instalar GRUB en un sector de arranque.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+grub2-mkconfig
+\end_layout
+
+\begin_layout Standard
+Genera un fichero de configuración de GRUB.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-o
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Escribe la salida generada al
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+grub2-set-default
+\emph on
+ENTRADA
+\end_layout
+
+\begin_layout Standard
+Establece la entrada por defecto del menú de GRUB.
+ Sólo funciona para ficheros de con
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+fi
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+gu
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ra
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ción de GRUB creados con
+\family typewriter
+GRUB_DEFAULT=saved
+\family default
+ en
+\family typewriter
+/etc/default/grub
+\family default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+grub2-reboot
+\emph on
+ENTRADA
+\end_layout
+
+\begin_layout Standard
+Como
+\family typewriter
+grub2-set-default
+\family default
+, pero sólo para el siguiente arranque.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+grub2-setpassword
+\end_layout
+
+\begin_layout Standard
+Genera el fichero con la contraseña cifrada de GRUB.
+\end_layout
+
+\begin_layout Section
+Parámetros del núcleo de Linux
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+kernel-command-line
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+root=
+\family default
+\series default
+ Sistema de ficheros raíz.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+dracut.cmdline
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+init=
+\family default
+\series default
+ Ruta del programa de inicio a ejecutar tras terminar con el disco RAM.
+\end_layout
+
+\begin_layout Section
+Arranque de Linux
+\end_layout
+
+\begin_layout Standard
+En Fedora y otras muchas distribuciones, el arranque y parada lo realiza
+
+\family typewriter
+systemd
+\family default
+, el primer proceso en modo usuario tras terminar con el disco RAM, y que
+ tiene PID 1.
+\end_layout
+
+\begin_layout Standard
+Reemplaza al demonio
+\family typewriter
+init
+\family default
+ de los sistemas UNIX System V, que se basaba en guiones
+\emph on
+shell
+\emph default
+, y aprovecha muchas características de Linux como
+\emph on
+cgroups
+\emph default
+,
+\emph on
+namespaces
+\emph default
+, etc.
+ Fedora 15 fue una de las primeras distribuciones en usar
+\family typewriter
+systemd
+\family default
+, que por entonces convivía con un gran número de guiones de System V.
+ Ventajas de
+\family typewriter
+systemd
+\family default
+:
+\end_layout
+
+\begin_layout Itemize
+El arranque y parada pasa a ser en paralelo, aprovechando los sistemas multinúcl
+eo.
+\end_layout
+
+\begin_layout Itemize
+La mayoría de dependencias pasan a establecerse automáticamente.
+\end_layout
+
+\begin_layout Itemize
+Los
+\emph on
+cgroups
+\emph default
+ (
+\emph on
+control groups
+\emph default
+, grupos de control) permiten limitar, contabilizar y aislar el uso de recursos
+ por parte de un grupo de procesos.
+ Como un proceso hijo pertenece obligatoriamente al mismo
+\emph on
+cgroup
+\emph default
+ que su proceso padre (salvo procesos privilegiados), es posible usar esto
+ para asegurarse de que los servicios realmente terminan.
+\end_layout
+
+\begin_layout Itemize
+Permite ejecutar servicios bajo demanda (cuando se necesiten), si bien algunos
+ servicios están activos siempre para dar una respuesta rápida.
+\end_layout
+
+\begin_layout Itemize
+Permite montar sistemas de ficheros solo cuando se necesitan, comprobar
+ su consistencia y activar sus cuotas de disco.
+ Para ello usa
+\family typewriter
+autofs
+\family default
+, que permite montar sistemas de ficheros bajo demanda (por ejemplo, al
+ acceder a un CD, DVD,
+\emph on
+pendrive
+\emph default
+ o sistema de ficheros remoto) y desmontarlo si lleva un tiempo sin usarse.
+ Se debe añadir
+\family typewriter
+x-systemd.automount
+\family default
+ en las opciones de
+\family typewriter
+/etc/fstab
+\family default
+ (y generalmente también
+\family typewriter
+noauto
+\family default
+) para activar esta opción.
+\end_layout
+
+\begin_layout Standard
+Para más información, ver
+\begin_inset Flex URL
+status open
+
+\begin_layout Plain Layout
+
+http:// 0pointer.de/blog/projects/systemd.html
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+systemd
+\end_layout
+
+\begin_layout Standard
+Proporciona un sistema de dependencias entre
+\series bold
+unidades
+\series default
+ de 11 tipos:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Unidades de servicio
+\series default
+ (
+\emph on
+service
+\emph default
+), que comienzan y controlan los demonios y procesos de los que consisten.
+
+\family typewriter
+cups.service
+\family default
+ controla el demonio de impresión, y
+\family typewriter
+avahi.service
+\family default
+ permite el acceso a ciertos servicios de red.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Unidades de objetivo
+\series default
+ o
+\series bold
+destino
+\series default
+ (
+\emph on
+target
+\emph default
+): Para agrupar unidades, o proveer puntos de sincronización durante el
+ arranque y parada, incluyendo el estado final.
+ Cuando se llega a
+\family typewriter
+graphical.target
+\family default
+, el objetivo por defecto en Fedora, el sistema queda en modo multiusuario
+ con entorno gráfico.
+\end_layout
+
+\begin_layout Standard
+La mayoría de dependencias las crea y mantiene
+\family typewriter
+systemd
+\family default
+ automáticamente.
+\end_layout
+
+\begin_layout Subsubsection*
+LÍNEA DE COMANDO DEL NÚCLEO
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+systemd.unit=
+\series default
+\emph on
+UNIDAD
+\family default
+\emph default
+ Para arrancar a una unidad distinta.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+systemd.unit
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+/etc/systemd/system/*
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+/lib/systemd/system/*
+\end_layout
+
+\begin_layout Standard
+Esta página lista las opciones de configuración comunes a todos los tipos
+ de unidades.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE SECCIÓN
+\family typewriter
+[UNIT]
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+Requires=
+\family default
+\series default
+ Si esta unidad se activa, las unidades listadas aquí se activarán también.
+ Si una de las otras falla, y hay una dependencia de orden
+\family typewriter
+After=
+\family default
+ en la unidad fallida, esta unidad no se iniciará.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+Wants=
+\family default
+\series default
+ Las unidades listadas en esta opción se iniciarán si se inicia esta.
+ Su inverso es
+\family typewriter
+\series bold
+WantedBy=
+\family default
+\series default
+.
+ Si una unidad
+\family typewriter
+foo
+\family default
+ contiene una opción
+\family typewriter
+WantedBy=bar
+\family default
+, activar
+\family typewriter
+foo
+\family default
+ creará un enlace simbólico en el directorio
+\family typewriter
+bar.wants
+\family default
+ para expresar esta dependencia.
+ Si contiene
+\family typewriter
+Wants=bar
+\family default
+, el enlace se crea en
+\family typewriter
+foo.wants
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+Conflicts=
+\family default
+\series default
+ Configura dependencias negativas.
+ Si una unidad tiene
+\family typewriter
+Conflicts=
+\family default
+ sobre otra, empezar la primera detendrá la segunda y viceversa.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+Before=
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+After=
+\family default
+\series default
+ Si una unidad
+\family typewriter
+foo
+\family default
+ contiene una opción
+\family typewriter
+Before=bar
+\family default
+ y ambas se inician, el inicio de
+\family typewriter
+bar
+\family default
+ esperará a que
+\family typewriter
+foo
+\family default
+ haya terminado de iniciarse.
+
+\family typewriter
+After=
+\family default
+ es el inverso de
+\family typewriter
+Before=
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES DE SECCIÓN
+\family typewriter
+[INSTALL]
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+WantedBy=
+\family default
+\series default
+ Se crea un enlace simbólico en el directorio
+\family typewriter
+.wants/
+\family default
+ de cada unidad listada.
+ Esto crea una dependencia de tipo
+\family typewriter
+Wants=
+\family default
+ de la unidad listada a la actual.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+systemd.service
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Unidad de servicio.
+ Las siguientes dependencias se añaden salvo que se establezca
+\family typewriter
+\series bold
+DefaultDependencies=no
+\family default
+\series default
+:
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+Dependencia de tipo
+\family typewriter
+After=
+\family default
+ con
+\family typewriter
+basic.target
+\family default
+, así como de tipo
+\family typewriter
+Conflicts=
+\family default
+ y
+\family typewriter
+Before=
+\family default
+ con
+\family typewriter
+shutdown.target
+\family default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+systemd.special
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+default.target
+\family default
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+El que se inicia en el arranque.
+ Normalmente un enlace simbólico a
+\family typewriter
+multi-user.target
+\family default
+ o
+\family typewriter
+graphical.target
+\family default
+.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+emergency.target
+\family default
+ Inicia una
+\emph on
+shell
+\emph default
+ de emergencia.
+ No toma ningún servicio o punto de montaje (
+\family typewriter
+/
+\family default
+ está en sólo lectura).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+graphical.target
+\family default
+ Inicio de sesión gráfico.
+ Toma
+\family typewriter
+multi-user.target
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+multi-user.target
+\family default
+ Establece un sistema multiusuario (no gráfico).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+poweroff.target
+\family default
+ Apaga el sistema.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+reboot.target
+\family default
+ Reinicia el sistema.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+rescue.target
+\family default
+ Toma el sistema base (incluyendo puntos de montaje) y lanza una
+\emph on
+shell
+\emph default
+ de rescate.
+ Para administrar el sistema en modo de un usuario sin servicios en ejecución,
+ salvo los más básicos (tampoco la conexión de red).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+systemd-analyze
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+systemd-analyze critical-chain
+\family default
+\series default
+ imprime un árbol de la cadena de unidades con tiempo crítico.
+ El tiempo tras el cual la unidad está activa se imprime tras el caracter
+
+\begin_inset Quotes fld
+\end_inset
+
+
+\family typewriter
+@
+\family default
+
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+systemd-analyze plot
+\family default
+\series default
+ imprime un gráfico SVG con detalles de qué servicios se han i
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ni
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+cia
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+do en qué tiempo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+systemctl [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+COMANDO
+\emph default
+] [
+\emph on
+UNIDAD
+\emph default
+]...
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\series default
+,
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+--type=
+\series default
+\emph on
+TIPO
+\family default
+\emph default
+ Al listar las unidades, limitarse a ciertos tipos de unidad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-p
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+Propiedad
+\family default
+\emph default
+ Al mostrar las propiedades de una unidad con
+\family typewriter
+\series bold
+show
+\family default
+\series default
+, limitarse a la indicada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--kill-who=
+\series default
+\emph on
+PROCESO
+\family default
+\emph default
+ Al usarse con
+\family typewriter
+\series bold
+kill
+\family default
+\series default
+, elige a qué procesos enviar una señal.
+
+\family typewriter
+\series bold
+main
+\family default
+\series default
+ la envía sólo al proceso principal.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\family default
+\series default
+ Al usarse con
+\family typewriter
+\series bold
+kill
+\family default
+\series default
+, elige la señal a enviar a los procesos.
+ Por defecto es
+\family typewriter
+\series bold
+SIGTERM
+\family default
+\series default
+, que avisa a los procesos de que deben terminar.
+
+\family typewriter
+\series bold
+SIGKILL
+\family default
+\series default
+ fuerza la terminación.
+
+\family typewriter
+\series bold
+SIGHUP
+\family default
+\series default
+ (o
+\family typewriter
+\series bold
+HUP
+\family default
+\series default
+), al enviarse a
+\family typewriter
+crond.service
+\family default
+, le indica que debe releer su configuración.
+\end_layout
+
+\begin_layout Subsubsection*
+COMANDOS
+\end_layout
+
+\begin_layout Paragraph*
+Comandos de unidad
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+list-units
+\family default
+\series default
+ Lista las unidades que tiene
+\family typewriter
+systemd
+\family default
+ en memoria.
+ Comando por defecto.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+start
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Inicia una unidad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+stop
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Detiene una unidad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+isolate
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Inicia la unidad especificada y sus dependencias y detiene todas las demás.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+kill
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Envía una señal a procesos de una unidad (por defecto a todos).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+status
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+UNIDAD
+\emph default
+]
+\family default
+ Muestra información de estado resumida sobre una unidad, o sobre el sistema
+ si no especifica la unidad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+show
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Muestra las propiedades de una unidad.
+\end_layout
+
+\begin_layout Paragraph*
+Comandos de ficheros de unidad
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+enable
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Habilita una unidad.
+ La añade en varios sitios sugeridos (por ejemplo, para que se inicie al
+ arrancar).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+disable
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Deshabilita una unidad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+is-enabled
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Comprueba si una unidad está habilitada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+mask
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Enmascara una unidad, haciendo imposible iniciarla.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+unmask
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\family default
+\emph default
+ Desenmascara una unidad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+get-default
+\family default
+\series default
+ Devuelve el objetivo de arranque por defecto.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+set-default
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+OBJETIVO
+\family default
+\emph default
+ Establece el objetivo de arranque por defecto.
+\end_layout
+
+\begin_layout Paragraph*
+Comandos de sistema
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+rescue
+\family default
+\series default
+ Entra en modo rescate.
+ Equivale a
+\family typewriter
+\series bold
+systemctl isolate rescue.target
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+halt
+\family default
+\series default
+ Para el sistema.
+ Es casi equivalente a
+\family typewriter
+\series bold
+systemctl start halt.target
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+poweroff
+\family default
+\series default
+ Apaga el sistema.
+ Es casi equivalente a
+\family typewriter
+\series bold
+systemctl start poweroff.target
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+reboot
+\family default
+\series default
+ Reinicia el sistema.
+ Es casi equivalente a
+\family typewriter
+\series bold
+systemctl start reboot.target
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/etc/nologin
+\end_layout
+
+\begin_layout Standard
+Si existe y es legible,
+\family typewriter
+\series bold
+login
+\family default
+\series default
+ solo permitirá el acceso a
+\family typewriter
+root
+\family default
+.
+ Se borra automáticamente al reiniciar el sistema.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+journalctl [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+PATRÓN
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra el contenido del registro de
+\family typewriter
+\series bold
+systemd
+\family default
+\series default
+.
+ Sin parámetros, muestra todo el registro, empezando por la entrada más
+ antigua (cuando se arrancó por primera vez, si bien la cantidad de mensajes
+ que se pueden guardar está limitada para no ocupar mucho espacio).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+N
+\family default
+\emph default
+ Muestra los eventos más recientes y limita el número de eventos mostrados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-b
+\begin_inset space ~
+\end_inset
+
+[
+\series default
+\emph on
+ID
+\emph default
+]
+\series bold
+[
+\series default
+\emph on
+±desplazamiento
+\emph default
+]
+\family default
+ Muestra los mensajes de un arranque específico.
+ Si se omite el ID, un
+\family typewriter
+\emph on
+desplazamiento
+\family default
+\emph default
+ menor o igual a 0 mostrará los arranques desde el final del registro.
+ Si se indica el
+\family typewriter
+\emph on
+ID
+\family default
+\emph default
+, puede ser seguido opcionalmente por el
+\family typewriter
+\emph on
+desplazamiento
+\family default
+\emph default
+.
+ Valores negativos significan arranques anteriores y positivos significan
+ posteriores.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--list-boots
+\family default
+\series default
+ Muestra una lista de todos los arranques (relativo al actual), sus IDs
+ y las fechas del primer y último mensaje del arranque.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-k
+\family default
+\series default
+ Muestra sólo mensajes del núcleo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-u
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+UNIDAD
+\emph default
+|
+\emph on
+PATRÓN
+\family default
+\emph default
+ Muestra los mensajes para la
+\family typewriter
+\emph on
+UNIDAD
+\family default
+\emph default
+ dado, o para cada unidad que coincide con el
+\family typewriter
+\emph on
+PATRÓN
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Section
+Dependencias automáticas
+\end_layout
+
+\begin_layout Standard
+Hay varias formas de establecer dependencias entre unidades aparte de las
+ descritas:
+\end_layout
+
+\begin_layout Itemize
+Un
+\emph on
+socket
+\emph default
+ tipo UNIX es un canal de comunicación entre dos procesos en el que un proceso
+ envía información por un extremo y el otro la extrae por el otro.
+ Al igual que una tubería, tiene una capacidad máxima, con lo que si un
+ proceso intenta leer de un
+\emph on
+socket
+\emph default
+ vacío o escribe en uno lleno, se bloquea.
+ Si dos servicios se comunican por un
+\emph on
+socket
+\emph default
+,
+\family typewriter
+systemd
+\family default
+ crea el
+\emph on
+socket
+\emph default
+ y luego lanza los dos servicios en paralelo, pasándoles como parámetro
+ el
+\emph on
+socket
+\emph default
+ creado a través del cual se sincronizarán.
+\end_layout
+
+\begin_layout Itemize
+La sincronización por mensajes de D-Bus funciona de forma similar, pero
+ el servicio que depende de otro espera a que en el bus aparezca el proveedor
+ que necesita, que será ofrecido por el otro servicio, y D-Bus proporciona
+ la funcionalidad necesaria para esto.
+\end_layout
+
+\begin_layout Section
+
+\family typewriter
+udev
+\end_layout
+
+\begin_layout Standard
+El
+\emph on
+userspace device manager
+\emph default
+ es un servicio (demonio
+\family typewriter
+systemd-udevd
+\family default
+) que, cuando se conecta o desconecta un dispositivo, recibe un evento del
+ núcleo, usa información de
+\family typewriter
+/sys
+\family default
+ para ver si el
+\emph on
+driver
+\emph default
+ proporciona un fichero
+\family typewriter
+dev
+\family default
+ con los números mayor y menor del fichero especial a crear y usa
+\series bold
+ficheros de reglas
+\series default
+ (
+\emph on
+rules
+\emph default
+) en
+\family typewriter
+/lib/udev/rules.d/
+\family default
+ y
+\family typewriter
+/etc/udev/rules.d/
+\family default
+ para:
+\end_layout
+
+\begin_layout Itemize
+Crear el fichero especial de dispositivo en
+\family typewriter
+/dev
+\family default
+ y los enlaces simbólicos al mismo.
+\end_layout
+
+\begin_layout Itemize
+Establecer los permisos y propietarios de este fichero.
+\end_layout
+
+\begin_layout Itemize
+Si es necesario, cargar los módulos y
+\emph on
+firmware
+\emph default
+ para poder usarlo.
+\end_layout
+
+\begin_layout Itemize
+Si alguna regla lo indica, ejecutar los programas especificados para inicializar
+ el dispositivo.
+\end_layout
+
+\begin_layout Section
+Parada de Linux
+\end_layout
+
+\begin_layout Standard
+Se notifica a los usuarios, se envía la señal
+\family typewriter
+SIGTERM
+\family default
+ a los procesos, se paran los demonios, se echa del sistema a los usuarios
+ que quedan conectados, se envía la señal
+\family typewriter
+KILL
+\family default
+ a los procesos que queden en ejecución, se sincronizan los discos, se desmontan
+ los sistemas de ficheros y, según el tipo de parada, se apaga o se reinicia
+ el sistema.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+halt
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+halt
+\family default
+\series default
+,
+\family typewriter
+\series bold
+poweroff
+\family default
+\series default
+,
+\family typewriter
+\series bold
+reboot
+\family default
+\series default
+ pueden usarse para detener, apagar o reiniciar la máquina (respectivamente).
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+shutdown [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+TIEMPO
+\emph default
+] [
+\emph on
+MENSAJE
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Detiene, apaga o reinicia la máquina.
+\end_layout
+
+\begin_layout Standard
+El tiempo puede estar en formato
+\family typewriter
+\emph on
+hh
+\emph default
+:
+\emph on
+mm
+\family default
+\emph default
+ indicando el tiempo en el que ejecutar el apagado, en formato de 24 horas.
+ La sintaxis
+\family typewriter
++
+\emph on
+m
+\family default
+\emph default
+ se refiere al número indicado de minutos desde ahora.
+
+\family typewriter
+now
+\family default
+ es un alias para
+\family typewriter
++0
+\family default
+.
+ Si no especifica el tiempo, se usa
+\family typewriter
++1
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-H
+\family default
+\series default
+ Detiene la máquina.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-P
+\family default
+\series default
+ Apaga (por defecto).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Reinicia.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-h
+\family default
+\series default
+ Equivale a
+\family typewriter
+\series bold
+-P
+\family default
+\series default
+ salvo que se indique
+\family typewriter
+\series bold
+-h
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-k
+\family default
+\series default
+ Sólo escribe el
+\family typewriter
+\emph on
+MENSAJE
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+ Cancela un apagado en curso (sólo si no ha empezado).
+\end_layout
+
+\end_body
+\end_document
diff --git a/iso/pegado1.png b/iso/pegado1.png
new file mode 100644
index 0000000..9777ab4
--- /dev/null
+++ b/iso/pegado1.png
Binary files differ
diff --git a/iso/pegado2.png b/iso/pegado2.png
new file mode 100644
index 0000000..102d7ff
--- /dev/null
+++ b/iso/pegado2.png
Binary files differ
diff --git a/iso/pegado3.png b/iso/pegado3.png
new file mode 100644
index 0000000..7a56db9
--- /dev/null
+++ b/iso/pegado3.png
Binary files differ
diff --git a/iso/pegado4.png b/iso/pegado4.png
new file mode 100644
index 0000000..def351a
--- /dev/null
+++ b/iso/pegado4.png
Binary files differ
diff --git a/iso/pegado5.png b/iso/pegado5.png
new file mode 100644
index 0000000..90b02cf
--- /dev/null
+++ b/iso/pegado5.png
Binary files differ
diff --git a/iso/pegado6.png b/iso/pegado6.png
new file mode 100644
index 0000000..080769f
--- /dev/null
+++ b/iso/pegado6.png
Binary files differ