aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--fvv1/n.lyx205
-rw-r--r--fvv1/n1.lyx1914
-rw-r--r--fvv1/n2.lyx1010
-rw-r--r--fvv1/n3.lyx1046
-rw-r--r--fvv1/n4.lyx592
-rw-r--r--fvv2/n.lyx218
-rw-r--r--fvv2/n1.lyx3333
-rw-r--r--fvv2/n3.lyx3763
-rw-r--r--fvv2/n4.lyx688
-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
-rw-r--r--license.lyx24
-rw-r--r--poo/n.lyx266
-rw-r--r--poo/n1.lyx235
-rw-r--r--poo/n2.lyx1168
-rw-r--r--poo/n3.lyx959
-rw-r--r--poo/n4.lyx3827
-rw-r--r--poo/n5.lyx926
-rw-r--r--poo/n6.lyx771
-rw-r--r--poo/na.lyx1500
-rw-r--r--poo/nb.lyx743
39 files changed, 47860 insertions, 0 deletions
diff --git a/README.md b/README.md
index 5325bb1..bdc2b82 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,8 @@ son las siguientes:
* `gae`: Geometría Afín y Euclídea.
* `tem`: Topología de Espacios Métricos.
* `aalg`: Ampliación de Álgebra y Geometría.
+* `fvv1`: Funciones de Varias Variables I.
+* `fvv2`: Funciones de Varias Variables II. Falta el capítulo 2.
Las asignaturas de ingeniería informática que se incluyen son las siguientes:
@@ -26,6 +28,8 @@ Las asignaturas de ingeniería informática que se incluyen son las siguientes:
* `ffi`: Fundamentos Físicos de la Informática.
* `tp`: Tecnología de la Programación.
* `aed1`: Algoritmos y Estructuras de Datos I.
+* `iso`: Introducción a los Sistemas Operativos.
+* `poo`: Programación Orientada a Objetos.
Los apuntes están escritos con [LyX](https://www.lyx.org/). En cada directorio,
el fichero `n.lyx` es el fichero principal con los apuntes de la asignatura.
diff --git a/fvv1/n.lyx b/fvv1/n.lyx
new file mode 100644
index 0000000..0e1cf08
--- /dev/null
+++ b/fvv1/n.lyx
@@ -0,0 +1,205 @@
+#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
+\begin_preamble
+\input{../defs}
+\end_preamble
+\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
+Funciones de varias variables I
+\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
+Antonio Avilés.
+\end_layout
+
+\begin_layout Itemize
+FVV1, Luis Oncina (2016–17).
+\end_layout
+
+\begin_layout Chapter
+Normas y convergencia
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Derivadas y diferenciales
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n2.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Dobles diferenciales
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n3.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Regiones de
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n4.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/fvv1/n1.lyx b/fvv1/n1.lyx
new file mode 100644
index 0000000..41aa455
--- /dev/null
+++ b/fvv1/n1.lyx
@@ -0,0 +1,1914 @@
+#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
+Sea
+\begin_inset Formula $E$
+\end_inset
+
+ un
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+-espacio vectorial, una
+\series bold
+norma
+\series default
+ es una aplicación
+\begin_inset Formula $\Vert\cdot\Vert:E\rightarrow\mathbb{R}$
+\end_inset
+
+ tal que
+\begin_inset Formula $\forall x,y\in E,\lambda\in\mathbb{R}$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\Vert x\Vert\geq0\land(\Vert x\Vert=0\iff x=0)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\Vert x+y\Vert\leq\Vert x\Vert+\Vert y\Vert$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\Vert\lambda x\Vert=|\lambda|\Vert x\Vert$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+El par
+\begin_inset Formula $(E,\Vert\cdot\Vert)$
+\end_inset
+
+ es un
+\series bold
+espacio normado
+\series default
+.
+ Llamamos
+\series bold
+distancia asociada a la norma
+\series default
+ a
+\begin_inset Formula $d(x,y):=\Vert x-y\Vert$
+\end_inset
+
+.
+ Dos normas son equivalentes si sus distancias lo son.
+\end_layout
+
+\begin_layout Standard
+Ejemplos de normas en
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+ son las dadas por
+\begin_inset Formula $\Vert(x_{1},\dots,x_{n})\Vert_{p}:=\sqrt[p]{\sum_{i=1}^{n}|x_{i}|^{p}}$
+\end_inset
+
+ y
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Formula $\Vert(x_{1},\dots,x_{n})\Vert_{\infty}:=\max\{|x_{i}|\}_{i=1}^{n}$
+\end_inset
+
+.
+ Además,
+\begin_inset Formula $V:={\cal C}[a,b]:=\{f:[a,b]\rightarrow\mathbb{R}\text{ continua}\}$
+\end_inset
+
+ con
+\begin_inset Formula $\Vert f\Vert_{\infty}:=\sup\{|f(x)|\}_{x\in[a,b]}$
+\end_inset
+
+ es un espacio normado.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Comment
+status open
+
+\begin_layout Enumerate
+Dado
+\begin_inset Formula $f\in V$
+\end_inset
+
+, existe al menos un
+\begin_inset Formula $x\in[a,b]$
+\end_inset
+
+ y entonces
+\begin_inset Formula $\Vert f\Vert_{\infty}\geq|f(x)|\geq0$
+\end_inset
+
+, y
+\begin_inset Formula $\Vert f\Vert_{\infty}=0\iff\forall x\in[a,b],f(x)=0\iff f=0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\Vert f+g\Vert_{\infty}=\sup\{|f(x)+g(x)|\}_{x\in[a,b]}\leq\sup\{|f(x)|+|g(x)|\}_{x\in[a,b]}\leq\sup\{|f(x)|\}_{x\in[a,b]}+\sup\{|g(x)|\}_{x\in[a,b]}=\Vert f\Vert_{\infty}+\Vert g\Vert_{\infty}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Dado
+\begin_inset Formula $\lambda\in\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $\Vert\lambda f\Vert_{\infty}=\sup\{|\lambda f(x)|\}_{x\in[a,b]}=|\lambda|\sup\{|f(x)|\}_{x\in[a,b]}=|\lambda|\Vert f\Vert_{\infty}$
+\end_inset
+
+.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{TEM}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $f:(X,d)\rightarrow(Y,d')$
+\end_inset
+
+ es continua en
+\begin_inset Formula $p$
+\end_inset
+
+ [...] si y sólo si
+\begin_inset Formula $\forall\varepsilon>0,\exists\delta>0:\forall x\in X,(d(x,p)<\delta\implies d'(f(x),f(p))<\varepsilon)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Definimos la norma de una aplicación
+\begin_inset Formula $L:(E,\Vert\cdot\Vert)\rightarrow(F,\Vert\cdot\Vert')$
+\end_inset
+
+ como
+\begin_inset Formula $\Vert L\Vert:=\Vert L\Vert_{\Vert\cdot\Vert}^{\Vert\cdot\Vert'}:=\sup\{\Vert L(x)\Vert'\}_{x\in E,\Vert x\Vert\leq1}$
+\end_inset
+
+, y tenemos como
+\series bold
+teorema
+\series default
+ que
+\begin_inset Formula $L$
+\end_inset
+
+ es continua si y sólo si
+\begin_inset Formula $\Vert L\Vert<+\infty$
+\end_inset
+
+, y entonces es uniformemente continua.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Sea
+\begin_inset Formula $L$
+\end_inset
+
+ continua en 0, es decir,
+\begin_inset Formula $\forall\varepsilon>0,\exists\delta>0:\forall y\in E,(\Vert y\Vert<\delta\implies\Vert L(y)\Vert'<\varepsilon)$
+\end_inset
+
+.
+ Fijado
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+, sea
+\begin_inset Formula $\Vert z\Vert\leq1$
+\end_inset
+
+, entonces
+\begin_inset Formula $\Vert\frac{\delta}{2}z\Vert<\delta$
+\end_inset
+
+ y
+\begin_inset Formula $\Vert L(\frac{\delta}{2}z)\Vert'<\varepsilon$
+\end_inset
+
+, luego
+\begin_inset Formula $\Vert L(z)\Vert'<\frac{2\varepsilon}{\delta}$
+\end_inset
+
+ y
+\begin_inset Formula $\Vert L\Vert<\frac{2\varepsilon}{\delta}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Veamos primero que
+\begin_inset Formula $\Vert L\Vert<+\infty\implies\forall x\in E,\Vert L(x)\Vert'\leq\Vert L\Vert\Vert x\Vert$
+\end_inset
+
+.
+ En efecto, para
+\begin_inset Formula $\Vert x\Vert=1$
+\end_inset
+
+,
+\begin_inset Formula $\Vert L(x)\Vert'\leq\sup\{\Vert L(y)\Vert\}_{\Vert y\Vert\leq1}=\Vert L\Vert=\Vert L\Vert\Vert x\Vert$
+\end_inset
+
+, y para cualquier otra
+\begin_inset Formula $x$
+\end_inset
+
+ basta dividir entre la norma.
+ Ahora bien, dado
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, tomando
+\begin_inset Formula $\delta:=\frac{\varepsilon}{\Vert L\Vert+1}$
+\end_inset
+
+ entonces
+\begin_inset Formula $\Vert y-x\Vert<\delta\implies\Vert L(y)-L(x)\Vert'=\Vert L(y-x)\Vert'\leq\Vert L\Vert\Vert y-x\Vert<\Vert L\Vert\delta=\frac{\Vert L\Vert\varepsilon}{\Vert L\Vert+1}<\varepsilon$
+\end_inset
+
+.
+ Pero como
+\begin_inset Formula $\delta$
+\end_inset
+
+ no depende de
+\begin_inset Formula $x$
+\end_inset
+
+,
+\begin_inset Formula $L$
+\end_inset
+
+ es uniformemente continua.
+\end_layout
+
+\begin_layout Section
+Equivalencia de normas
+\end_layout
+
+\begin_layout Standard
+Dos normas
+\begin_inset Formula $\Vert\cdot\Vert$
+\end_inset
+
+ y
+\begin_inset Formula $\Vert\cdot\Vert'$
+\end_inset
+
+ son equivalentes si y sólo si
+\begin_inset Formula $\exists\alpha,\beta>0:\forall x\in E,\alpha\Vert x\Vert\leq\Vert x\Vert'\leq\beta\Vert x\Vert$
+\end_inset
+
+.
+
+\series bold
+Demostración:
+\series default
+ Sean
+\begin_inset Formula $L:=id_{E}:(E,\Vert\cdot\Vert)\rightarrow(E,\Vert\cdot\Vert')$
+\end_inset
+
+ y
+\begin_inset Formula $L':=L^{-1}$
+\end_inset
+
+, entonces
+\begin_inset Formula ${\cal T}_{\Vert\cdot\Vert}={\cal T}_{\Vert\cdot\Vert'}$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $L$
+\end_inset
+
+ y
+\begin_inset Formula $L'$
+\end_inset
+
+ son continuas, pues
+\begin_inset Formula $L\text{ es continua}\iff\forall A\in{\cal T}_{\Vert\cdot\Vert'},A\in{\cal T}_{\Vert\cdot\Vert}\iff{\cal T}_{\Vert\cdot\Vert'}\subseteq{\cal T}_{\Vert\cdot\Vert}$
+\end_inset
+
+, y el otro contenido es análogo.
+ Entonces:
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Si
+\begin_inset Formula $L$
+\end_inset
+
+ es continua
+\begin_inset Formula $\Vert L\Vert<+\infty$
+\end_inset
+
+, luego
+\begin_inset Formula $\Vert x\Vert'=\Vert L(x)\Vert'\leq\Vert L\Vert\Vert x\Vert\overset{\beta:=\Vert L\Vert}{=}\beta\Vert x\Vert$
+\end_inset
+
+.
+ La otra cota se hace de forma análoga.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Si existe
+\begin_inset Formula $\beta$
+\end_inset
+
+ tal que
+\begin_inset Formula $\forall x\in E,\Vert x\Vert'\leq\beta\Vert x\Vert$
+\end_inset
+
+, en particular se cumple para
+\begin_inset Formula $\Vert x\Vert\leq1$
+\end_inset
+
+, y entonces
+\begin_inset Formula $\Vert L(x)\Vert=\Vert x\Vert'\leq\beta\Vert x\Vert$
+\end_inset
+
+, luego
+\begin_inset Formula $\Vert L\Vert=\sup\{\Vert x\Vert'\}_{\Vert x\Vert\leq1}\leq\beta<+\infty$
+\end_inset
+
+ y
+\begin_inset Formula $L$
+\end_inset
+
+ es continua.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{TEM}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Las métricas
+\begin_inset Formula $d_{E}$
+\end_inset
+
+,
+\begin_inset Formula $d_{T}$
+\end_inset
+
+ y
+\begin_inset Formula $d_{\infty}$
+\end_inset
+
+ [...] son equivalentes, [...].
+
+\series bold
+Demostración:
+\series default
+ Se deduce de que
+\begin_inset Formula $\frac{1}{n}d_{T}(x,y)\leq d_{\infty}(x,y)\leq d_{T}(x,y)$
+\end_inset
+
+ y
+\begin_inset Formula $\frac{1}{\sqrt{n}}d_{E}(x,y)\leq d_{\infty}(x,y)\leq d_{E}(x,y)$
+\end_inset
+
+.
+ [...]
+\end_layout
+
+\begin_layout Standard
+Todo cerrado
+\begin_inset Formula $C$
+\end_inset
+
+ de un compacto
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ es compacto.
+ [...] En [...]
+\begin_inset Formula $(\mathbb{R},{\cal T}_{u})$
+\end_inset
+
+ [...] todo subespacio cerrado y acotado es compacto.
+ [...] Todo subespacio compacto
+\begin_inset Formula $K$
+\end_inset
+
+ de un espacio métrico
+\begin_inset Formula $(X,d)$
+\end_inset
+
+ es [cerrado y] acotado.
+ [...]Si
+\begin_inset Formula $f:(X,{\cal T})\rightarrow(Y,{\cal T}')$
+\end_inset
+
+ es continua y
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ es compacto entonces
+\begin_inset Formula $f(X)$
+\end_inset
+
+ es compacto.
+ [...]
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ es
+\series bold
+compacto
+\series default
+[...] si toda sucesión admite una subsucesión convergente.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Toda norma
+\begin_inset Formula $\Vert\cdot\Vert:(E,\Vert\cdot\Vert)\rightarrow\mathbb{R}$
+\end_inset
+
+ es uniformemente continua.
+
+\series bold
+Demostración:
+\series default
+ Fijado
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+ y tomando
+\begin_inset Formula $\delta:=\varepsilon$
+\end_inset
+
+, si
+\begin_inset Formula $\Vert x-y\Vert<\delta$
+\end_inset
+
+ entonces usando que
+\begin_inset Formula $|\Vert x\Vert-\Vert y\Vert|\leq\Vert x-y\Vert$
+\end_inset
+
+, lo que se deduce de
+\begin_inset Formula $\Vert x\Vert\leq\Vert x-y\Vert+\Vert y\Vert$
+\end_inset
+
+ y
+\begin_inset Formula $\Vert y\Vert\leq\Vert y-x\Vert+\Vert x\Vert$
+\end_inset
+
+, obtenemos que
+\begin_inset Formula $|\Vert x\Vert-\Vert y\Vert|<\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, en
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+, todas las normas son equivalentes.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+\begin_inset Formula $\Vert x\Vert\leq C\Vert x\Vert_{1}]$
+\end_inset
+
+
+\begin_inset Formula $\Vert x\Vert=\Vert\sum x_{i}\vec{e}_{i}\Vert\leq\sum|x_{i}|\Vert\vec{e}_{i}\Vert\leq\max\{\Vert\vec{e}_{i}\Vert\}\sum|x_{i}|=\max\{\Vert\vec{e}_{i}\Vert\}\Vert x\Vert_{1}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+\begin_inset Formula $\Vert x\Vert_{1}\leq D\Vert x\Vert]$
+\end_inset
+
+ Tomamos
+\begin_inset Formula $(\mathbb{R}^{n},\Vert\cdot\Vert_{1})\overset{id}{\rightarrow}(\mathbb{R}^{n},\Vert\cdot\Vert)\overset{\Vert\cdot\Vert}{\rightarrow}\mathbb{R}$
+\end_inset
+
+, que es continua por ser composición de dos funciones continuas (la identidad
+ es continua por la otra cota y la demostración del teorema anterior), entonces
+
+\begin_inset Formula $S:=\{x\in\mathbb{R}^{n}:\Vert x\Vert_{1}=1\}$
+\end_inset
+
+ es cerrado dentro del compacto
+\begin_inset Formula $\overline{B}(0,1)$
+\end_inset
+
+, luego es compacto y como la función dada es continua,
+\begin_inset Formula $\Vert\cdot\Vert(S)$
+\end_inset
+
+ es compacto y alcanza su máximo y su mínimo.
+ Sea ahora
+\begin_inset Formula $\mu:=\min\{\Vert x\Vert\}_{x\in S}>0$
+\end_inset
+
+ (pues
+\begin_inset Formula $0\notin S$
+\end_inset
+
+), si
+\begin_inset Formula $\Vert x\Vert_{1}=1$
+\end_inset
+
+ para un cierto
+\begin_inset Formula $x\in\mathbb{R}^{n}$
+\end_inset
+
+, entonces
+\begin_inset Formula $\Vert x\Vert\geq\mu$
+\end_inset
+
+, luego
+\begin_inset Formula $x\neq0$
+\end_inset
+
+ y
+\begin_inset Formula $\left\Vert \frac{x}{\Vert x\Vert_{1}}\right\Vert =1$
+\end_inset
+
+, con lo que
+\begin_inset Formula $\left\Vert \frac{x}{\Vert x\Vert_{1}}\right\Vert \geq\mu$
+\end_inset
+
+ y
+\begin_inset Formula $\Vert x\Vert\geq\mu\Vert x\Vert_{1}$
+\end_inset
+
+, y entonces
+\begin_inset Formula $\Vert x\Vert_{1}\leq\frac{1}{\mu}\Vert x\Vert$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Tenemos pues que toda
+\begin_inset Formula $T:(\mathbb{R}^{m},\Vert\cdot\Vert)\rightarrow(\mathbb{R}^{n},\Vert\cdot\Vert')$
+\end_inset
+
+ lineal es continua
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+, pues equivale a una multiplicación por una matriz en
+\begin_inset Formula $M_{n\times m}(\mathbb{R})$
+\end_inset
+
+, que es continua con la norma euclídea y por tanto en todas las demás
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Convergencia
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $(X,{\cal T})$
+\end_inset
+
+ un espacio topológico e
+\begin_inset Formula $(Y,d)$
+\end_inset
+
+ un espacio métrico, una sucesión de funciones
+\begin_inset Formula $(f_{n}:(X,{\cal T})\rightarrow(Y,d))_{n}$
+\end_inset
+
+
+\series bold
+converge puntualmente
+\series default
+ a
+\begin_inset Formula $f:(X,{\cal T})\rightarrow(Y,d)$
+\end_inset
+
+ si para todo
+\begin_inset Formula $x\in X$
+\end_inset
+
+,
+\begin_inset Formula $f_{n}(x)\rightarrow f(x)$
+\end_inset
+
+, y converge
+\series bold
+uniformemente
+\series default
+ a
+\begin_inset Formula $f$
+\end_inset
+
+ si
+\begin_inset Formula $d_{\infty}(f_{n},f)\rightarrow0$
+\end_inset
+
+.
+ Sea
+\begin_inset Formula $x_{0}\in(X,{\cal T})$
+\end_inset
+
+ y
+\begin_inset Formula $(f_{n}:X\rightarrow\mathbb{R})_{n}$
+\end_inset
+
+ una sucesión de funciones continuas en
+\begin_inset Formula $x_{0}$
+\end_inset
+
+ que converge uniformemente a
+\begin_inset Formula $f$
+\end_inset
+
+, entonces
+\begin_inset Formula $f$
+\end_inset
+
+ es continua en
+\begin_inset Formula $x_{0}$
+\end_inset
+
+.
+
+\series bold
+Demostración:
+\series default
+ Fijado un
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, existe un
+\begin_inset Formula $n_{0}\in\mathbb{N}$
+\end_inset
+
+ tal que para
+\begin_inset Formula $n\geq n_{0}$
+\end_inset
+
+ y
+\begin_inset Formula $x\in X$
+\end_inset
+
+ se tiene
+\begin_inset Formula $|f_{n}(x)-f(x)|<\frac{\varepsilon}{3}$
+\end_inset
+
+.
+ Como
+\begin_inset Formula $f_{n}$
+\end_inset
+
+ es continua, existe
+\begin_inset Formula ${\cal V}\in{\cal E}(x_{0})$
+\end_inset
+
+ tal que si
+\begin_inset Formula $x\in{\cal V}$
+\end_inset
+
+ entonces
+\begin_inset Formula $|f_{n}(x)-f_{n}(x_{0})|<\frac{\varepsilon}{3}$
+\end_inset
+
+, con lo que
+\begin_inset Formula $|f(x)-f(x_{0})|\leq|f(x)-f_{n}(x)|+|f_{n}(x)-f_{n}(x_{0})|+|f_{n}(x_{0})-f(x_{0})|<\frac{\varepsilon}{3}+\frac{\varepsilon}{3}+\frac{\varepsilon}{3}=\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+El límite puntual de funciones continuas no es necesariamente continua,
+ ni siquera en funciones de
+\begin_inset Formula $(a,b)$
+\end_inset
+
+ a
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+, y como contraejemplo tenemos
+\begin_inset Formula $(f_{n}:(-1,1)\rightarrow\mathbb{R})_{n}$
+\end_inset
+
+ dada por
+\begin_inset Formula $f_{n}(x)=\begin{cases}
+0 & \text{si }x\leq0\\
+nx & \text{si }0<x<\frac{1}{n}\\
+1 & \text{si }x\geq\frac{1}{n}
+\end{cases}$
+\end_inset
+
+, que converge a
+\begin_inset Formula $f(x)=\begin{cases}
+0 & \text{si }x\leq0\\
+1 & \text{si }x>0
+\end{cases}$
+\end_inset
+
+.
+ Asimismo, el límite uniforme de funciones derivables no es necesariamente
+ derivable, y como contraejemplo tenemos
+\begin_inset Formula $f_{n}(x)=\sqrt{x^{2}+\frac{1}{n}}$
+\end_inset
+
+, que converge a
+\begin_inset Formula $f(x)=|x|$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Plain Layout
+La función
+\begin_inset Formula $\sum_{n}\frac{\cos(7^{n}\pi x)}{2^{n}}$
+\end_inset
+
+ es continua en todos los puntos (
+\begin_inset Formula $\Vert\frac{\cos(7^{n}\pi x)}{2^{n}}\Vert_{\infty}=\frac{1}{2^{n}}\implies\Vert\sum_{n}\frac{\cos(7^{n}\pi x)}{2^{n}}\Vert<+\infty$
+\end_inset
+
+, con lo que la función es continua por ser la suma de una sucesión convergente
+ de funciones continuas) pero no es derivable en ninguno.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{FUVR1}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $\lim_{n}x_{n}=\pm\infty$
+\end_inset
+
+ entonces
+\begin_inset Formula $\lim_{n}\left(1+\frac{1}{x_{n}}\right)^{x_{n}}=e$
+\end_inset
+
+ y
+\begin_inset Formula $\lim_{n}\left(1-\frac{1}{x_{n}}\right)^{x_{n}}=e^{-1}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Si existe
+\begin_inset Formula $\lim_{n}\frac{z_{n+1}}{z_{n}}=w\in\mathbb{R}$
+\end_inset
+
+ con
+\begin_inset Formula $|w|<1$
+\end_inset
+
+, entonces
+\begin_inset Formula $\lim_{n}z_{n}=0$
+\end_inset
+
+.
+ [...]
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $b>0$
+\end_inset
+
+,
+\begin_inset Formula $c>1$
+\end_inset
+
+ y
+\begin_inset Formula $d>0$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+\log n\ll n^{b}\ll c^{n}\ll n^{dn}
+\]
+
+\end_inset
+
+Si además
+\begin_inset Formula $d\geq1$
+\end_inset
+
+, entonces
+\begin_inset Formula $c^{n}\ll n!\ll n^{dn}$
+\end_inset
+
+.
+ [...]
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $\lim_{n}x_{n}=0$
+\end_inset
+
+ con
+\begin_inset Formula $0<|x_{n}|<1$
+\end_inset
+
+, entonces:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\log(1+x_{n})\sim x_{n}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $e^{x_{n}}-1\sim x_{n}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $\lim_{n}x_{n}=1$
+\end_inset
+
+ con
+\begin_inset Formula $x_{n}\neq1$
+\end_inset
+
+ y
+\begin_inset Formula $\lim_{n}y_{n}=\pm\infty$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+\lim_{n}x_{n}^{y_{n}}=e^{\lim_{n}y_{n}(x_{n}-1)}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $\lim_{n}x_{n}=0$
+\end_inset
+
+ y
+\begin_inset Formula $x_{n}\neq0$
+\end_inset
+
+, entonces
+\begin_inset Formula $\sin x_{n}\sim x_{n}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Criterios de Stolz:
+\series default
+ Si
+\begin_inset Formula $(a_{n})_{n}$
+\end_inset
+
+ y
+\begin_inset Formula $(b_{n})_{n}$
+\end_inset
+
+ son sucesiones de reales tales que
+\begin_inset Formula $(b_{n})_{n}$
+\end_inset
+
+ es estrictamente creciente o decreciente y bien
+\begin_inset Formula $\lim_{n}a_{n}=\lim_{n}b_{n}=0$
+\end_inset
+
+, bien
+\begin_inset Formula $\lim_{n}b_{n}=\infty$
+\end_inset
+
+, si existe
+\begin_inset Formula $\lim_{n}\frac{a_{n+1}-a_{n}}{b_{n+1}-b_{n}}=L\in\overline{\mathbb{R}}$
+\end_inset
+
+, entonces
+\begin_inset Formula $\lim_{n}\frac{a_{n}}{b_{n}}=L$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Como consecuencia:
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $(a_{n})_{n}$
+\end_inset
+
+ converge, entonces
+\begin_inset Formula
+\[
+\lim_{n}\frac{a_{1}+\dots+a_{n}}{n}=\lim_{n}a_{n}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $(a_{n})_{n}$
+\end_inset
+
+ converge y
+\begin_inset Formula $a_{n}>0$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+\lim_{n}\sqrt[n]{a_{1}\cdots a_{n}}=\lim_{n}a_{n}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $a_{n}>0$
+\end_inset
+
+ y existe
+\begin_inset Formula $\lim_{n}\frac{a_{n}}{a_{n-1}}$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+\lim_{n}\sqrt[n]{a_{n}}=\lim_{n}\frac{a_{n}}{a_{n-1}}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{FUVR1}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+condición de Cauchy
+\series default
+ nos dice que
+\begin_inset Formula $\sum_{n}a_{n}$
+\end_inset
+
+ es convergente si y sólo si
+\begin_inset Formula $\forall\varepsilon>0,\exists n_{0}\in\mathbb{N}:\forall p,q\in\mathbb{N},(n_{0}\leq p\leq q\implies|a_{p+1}+\dots+a_{q}|<\varepsilon)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+[...] Si
+\begin_inset Formula $S_{n}$
+\end_inset
+
+ converge, entonces
+\begin_inset Formula $\lim_{n}a_{n}=0$
+\end_inset
+
+.
+ [...] La convergencia de una serie no se altera modificando un número finito
+ de términos de esta.
+ [...]
+\end_layout
+
+\begin_layout Standard
+Dada una serie
+\begin_inset Formula $\sum_{n=1}^{\infty}a_{n}$
+\end_inset
+
+ de términos
+\begin_inset Formula $a_{n}\geq0$
+\end_inset
+
+, esta es convergente si y sólo si la sucesión de sumas parciales es acotada
+ [...].
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Criterios de comparación:
+\end_layout
+
+\begin_layout Enumerate
+Dadas
+\begin_inset Formula $\sum_{n}a_{n}$
+\end_inset
+
+ y
+\begin_inset Formula $\sum_{n}b_{n}$
+\end_inset
+
+ con
+\begin_inset Formula $a_{n},b_{n}\geq0$
+\end_inset
+
+, si existe
+\begin_inset Formula $M>0$
+\end_inset
+
+ tal que
+\begin_inset Formula $a_{n}\leq Mb_{n}\forall n$
+\end_inset
+
+, entonces la convergencia de
+\begin_inset Formula $\sum_{n=1}^{\infty}b_{n}$
+\end_inset
+
+ implica la de
+\begin_inset Formula $\sum_{n=1}^{\infty}a_{n}$
+\end_inset
+
+ [...].
+\end_layout
+
+\begin_layout Enumerate
+Dadas
+\begin_inset Formula $\sum_{n}a_{n}$
+\end_inset
+
+ y
+\begin_inset Formula $\sum_{n}b_{n}$
+\end_inset
+
+ con
+\begin_inset Formula $a_{n},b_{n}>0$
+\end_inset
+
+ y existe
+\begin_inset Formula $l:=\lim_{n}\frac{a_{n}}{b_{n}}\in\mathbb{R}\cup\{+\infty\}$
+\end_inset
+
+:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $0<l<\infty$
+\end_inset
+
+, ambas series tienen el mismo carácter.
+ [...]
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $l=0$
+\end_inset
+
+ entonces la convergencia de
+\begin_inset Formula $\sum_{n}b_{n}$
+\end_inset
+
+ implica la de
+\begin_inset Formula $\sum_{n}a_{n}$
+\end_inset
+
+.
+ [...]
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $l=+\infty$
+\end_inset
+
+ entonces la convergencia de
+\begin_inset Formula $\sum_{n}a_{n}$
+\end_inset
+
+ implica la de
+\begin_inset Formula $\sum_{n}b_{n}$
+\end_inset
+
+.
+ [...]
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+
+\series bold
+Criterio de la raíz:
+\series default
+ Dada
+\begin_inset Formula $\sum_{n}a_{n}$
+\end_inset
+
+ con
+\begin_inset Formula $a_{n}>0$
+\end_inset
+
+ y
+\begin_inset Formula $a:=\lim_{n}\sqrt[n]{a_{n}}\in\mathbb{R}$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $a<1$
+\end_inset
+
+, la serie converge.
+ [...]
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $a>1$
+\end_inset
+
+, la serie diverge.
+ [...]
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $a=1$
+\end_inset
+
+ no se puede afirmar nada.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Criterio del cociente:
+\series default
+ Sea
+\begin_inset Formula $\sum_{n}a_{n}$
+\end_inset
+
+ con
+\begin_inset Formula $a_{n}>0$
+\end_inset
+
+ y
+\begin_inset Formula $a:=\lim_{n}\frac{a_{n+1}}{a_{n}}\in\mathbb{R}$
+\end_inset
+
+.
+ [...]
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $a<1$
+\end_inset
+
+, la serie converge.
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $a>1$
+\end_inset
+
+, la serie diverge.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Criterio de condensación:
+\series default
+ Dada una sucesión
+\begin_inset Formula $(a_{n})_{n}$
+\end_inset
+
+ monótona decreciente con
+\begin_inset Formula $a_{n}>0$
+\end_inset
+
+.
+ Entonces
+\begin_inset Formula
+\[
+\sum_{n=1}^{\infty}a_{n}\in\mathbb{R}\iff\sum_{n=1}^{\infty}2^{n}a_{2^{n}}\in\mathbb{R}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Una serie
+\begin_inset Formula $\sum_{n}a_{n}$
+\end_inset
+
+ con
+\begin_inset Formula $a_{n}\in\mathbb{R}$
+\end_inset
+
+ es
+\series bold
+absolutamente convergente
+\series default
+ si
+\begin_inset Formula $\sum_{n}|a_{n}|$
+\end_inset
+
+ es convergente.
+ Toda serie absolutamente convergente es convergente.
+ [...]
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+serie geométrica
+\series default
+
+\begin_inset Formula $\sum_{n=0}^{\infty}r^{n}$
+\end_inset
+
+ es convergente si
+\begin_inset Formula $|r|<1$
+\end_inset
+
+ con suma
+\begin_inset Formula $\frac{1}{1-r}$
+\end_inset
+
+ y divergente si
+\begin_inset Formula $|r|\geq1$
+\end_inset
+
+.
+ La
+\series bold
+serie armónica
+\series default
+
+\begin_inset Formula $\sum_{n=1}^{\infty}\frac{1}{n^{k}}$
+\end_inset
+
+ es convergente si
+\begin_inset Formula $k>1$
+\end_inset
+
+ y divergente si
+\begin_inset Formula $k\leq1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Completitud
+\end_layout
+
+\begin_layout Standard
+Una sucesión
+\begin_inset Formula $(x_{n})$
+\end_inset
+
+ en un espacio métrico
+\begin_inset Formula $(E,d)$
+\end_inset
+
+ es
+\series bold
+de Cauchy
+\series default
+ si
+\begin_inset Formula $\forall\varepsilon>0,\exists n_{\varepsilon}\in\mathbb{N}:\forall n,m\geq n_{\varepsilon},d(x_{n},x_{m})<\varepsilon$
+\end_inset
+
+.
+ Un espacio métrico es
+\series bold
+completo
+\series default
+ si toda sucesión de Cauchy es convergente.
+ Un
+\series bold
+espacio de Banach
+\series default
+ es un espacio normado completo.
+ Dadas dos normas
+\begin_inset Formula $\Vert\cdot\Vert$
+\end_inset
+
+ y
+\begin_inset Formula $\Vert\cdot\Vert'$
+\end_inset
+
+ equivalentes sobre
+\begin_inset Formula $E$
+\end_inset
+
+,
+\begin_inset Formula $(E,\Vert\cdot\Vert)$
+\end_inset
+
+ es completo si y sólo si lo es
+\begin_inset Formula $(E,\Vert\cdot\Vert')$
+\end_inset
+
+.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\series bold
+Demostración:
+\series default
+ Existen
+\begin_inset Formula $\alpha,\beta>0$
+\end_inset
+
+ tales que
+\begin_inset Formula $\alpha\Vert x\Vert\leq\Vert x\Vert'\leq\beta\Vert x\Vert$
+\end_inset
+
+, luego si
+\begin_inset Formula $(x_{n})$
+\end_inset
+
+ es de Cauchy en
+\begin_inset Formula $(E,\Vert\cdot\Vert)$
+\end_inset
+
+ también lo es en
+\begin_inset Formula $(E,\Vert\cdot\Vert')$
+\end_inset
+
+ sin más que tomar
+\begin_inset Formula $n_{\frac{\varepsilon}{\beta}}$
+\end_inset
+
+, y viceversa, y como
+\begin_inset Formula $(x_{n})$
+\end_inset
+
+ converge a
+\begin_inset Formula $x$
+\end_inset
+
+ en
+\begin_inset Formula $(E,\Vert\cdot\Vert)$
+\end_inset
+
+ si y sólo si converge en
+\begin_inset Formula $(E,\Vert\cdot\Vert')$
+\end_inset
+
+, la completitud de uno implica la del otro.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+,
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+ es un espacio de Banach con cualquier norma.
+
+\series bold
+Demostración:
+\series default
+ Basta probar que
+\begin_inset Formula $(\mathbb{R}^{n},\Vert\cdot\Vert_{\infty})$
+\end_inset
+
+ es completo.
+ Si
+\begin_inset Formula $(x_{m})$
+\end_inset
+
+ es de Cauchy en
+\begin_inset Formula $(\mathbb{R}^{n},\Vert\cdot\Vert_{\infty})$
+\end_inset
+
+, como
+\begin_inset Formula $|x_{mi}-x_{ki}|\leq\Vert x_{m}-x_{k}\Vert_{\infty}$
+\end_inset
+
+ para todo
+\begin_inset Formula $i\in\{1,\dots,n\}$
+\end_inset
+
+, entonces
+\begin_inset Formula $(x_{mi})_{m}$
+\end_inset
+
+ es de Cauchy en
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ y por tanto convergente a un
+\begin_inset Formula $x_{0i}$
+\end_inset
+
+, con lo que
+\begin_inset Formula $(x_{m})_{m}$
+\end_inset
+
+ converge a
+\begin_inset Formula $(x_{01},\dots,x_{0n})$
+\end_inset
+
+, y se tiene que
+\begin_inset Formula $(\mathbb{R}^{n},\Vert\cdot\Vert)$
+\end_inset
+
+ es completo.
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+,
+\begin_inset Formula $({\cal C}[a,b],\Vert\cdot\Vert_{\infty})$
+\end_inset
+
+ es un espacio de Banach.
+
+\series bold
+Demostración:
+\series default
+ Sea
+\begin_inset Formula $(f_{n})_{n}$
+\end_inset
+
+ una sucesión de Cauchy en
+\begin_inset Formula $({\cal C}[a,b],\Vert\cdot\Vert_{\infty})$
+\end_inset
+
+, fijado un
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+ existe un
+\begin_inset Formula $n_{0}$
+\end_inset
+
+ tal que para
+\begin_inset Formula $n,m\geq n_{0}$
+\end_inset
+
+ y
+\begin_inset Formula $x\in[a,b]$
+\end_inset
+
+,
+\begin_inset Formula $|f_{n}(x)-f_{m}(x)|<\frac{\varepsilon}{2}$
+\end_inset
+
+.
+ Por tanto para cada
+\begin_inset Formula $x\in[a,b]$
+\end_inset
+
+,
+\begin_inset Formula $(f_{n}(x))_{n}$
+\end_inset
+
+ es de Cauchy en
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ y converge pues a un valor
+\begin_inset Formula $f(x)$
+\end_inset
+
+.
+ Ahora bien, dado un
+\begin_inset Formula $x\in[a,b]$
+\end_inset
+
+, por la convergencia puntual que acabamos de probar existe
+\begin_inset Formula $n_{x}\in\mathbb{N}$
+\end_inset
+
+ tal que para
+\begin_inset Formula $n\geq n_{x}$
+\end_inset
+
+ se tiene
+\begin_inset Formula $|f_{n}(x)-f(x)|<\frac{\varepsilon}{2}$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $n>n_{0}$
+\end_inset
+
+,
+\begin_inset Formula $|f_{n}(x)-f(x)|\leq|f_{n}(x)-f_{\max\{n_{0},n_{x}\}}(x)|+|f_{\max\{n_{0},n_{x}\}}(x)-f(x)|<\frac{\varepsilon}{2}+\frac{\varepsilon}{2}=\varepsilon$
+\end_inset
+
+, y como
+\begin_inset Formula $n_{0}$
+\end_inset
+
+ no depende de
+\begin_inset Formula $x$
+\end_inset
+
+ (sólo de
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+), queda probada la convergencia uniforme.
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $(x_{n})_{n}$
+\end_inset
+
+ una sucesión en el espacio de Banach
+\begin_inset Formula $(E,\Vert\cdot\Vert)$
+\end_inset
+
+ con
+\begin_inset Formula $\sum_{n}\Vert x_{n}\Vert<+\infty$
+\end_inset
+
+, entonces
+\begin_inset Formula $\sum_{n}x_{n}$
+\end_inset
+
+ converge.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\series bold
+Demostración:
+\series default
+ Tenemos que
+\begin_inset Formula $\sum_{n}\Vert x_{n}\Vert$
+\end_inset
+
+, por ser convergente, es de Cachy, por lo que dado
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+ existe
+\begin_inset Formula $n_{\varepsilon}$
+\end_inset
+
+ tal que si
+\begin_inset Formula $n,m>n_{\varepsilon}$
+\end_inset
+
+ se tiene
+\begin_inset Formula $|\sum_{k=1}^{n}\Vert x_{k}\Vert-\sum_{k=1}^{m}\Vert x_{k}\Vert|<\varepsilon$
+\end_inset
+
+.
+ Pero por la desigualdad triangular
+\begin_inset Formula $\Vert\sum_{k=1}^{n}x_{k}-\sum_{k=1}^{m}x_{k}\Vert\leq|\sum_{k=1}^{n}\Vert x_{k}\Vert-\sum_{k=1}^{m}\Vert x_{k}\Vert|<\varepsilon$
+\end_inset
+
+, luego
+\begin_inset Formula $\sum_{n}x_{n}$
+\end_inset
+
+ también es de Cauchy y por tanto convergente por estar en un espacio completo.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/fvv1/n2.lyx b/fvv1/n2.lyx
new file mode 100644
index 0000000..c190e9d
--- /dev/null
+++ b/fvv1/n2.lyx
@@ -0,0 +1,1010 @@
+#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
+Derivadas
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula $E$
+\end_inset
+
+ y
+\begin_inset Formula $F$
+\end_inset
+
+ normados,
+\begin_inset Formula $\Omega\subseteq E$
+\end_inset
+
+ abierto y
+\begin_inset Formula $f:\Omega\rightarrow F$
+\end_inset
+
+, dados
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+ y
+\begin_inset Formula $u\in E$
+\end_inset
+
+,
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\series bold
+derivable
+\series default
+ en
+\begin_inset Formula $a$
+\end_inset
+
+ según
+\begin_inset Formula $u$
+\end_inset
+
+ si existe la
+\series bold
+derivada direccional
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $x$
+\end_inset
+
+ según
+\begin_inset Formula $u$
+\end_inset
+
+, dada por
+\begin_inset Formula
+\[
+d_{u}f(x_{0}):=\lim_{t\rightarrow0}\frac{f(a+tu)-f(a)}{t}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $u=\vec{e}_{i}$
+\end_inset
+
+ es el vector
+\begin_inset Formula $i$
+\end_inset
+
+-ésimo de la base canónica hablamos de la
+\series bold
+derivada parcial
+\series default
+
+\begin_inset Formula $i$
+\end_inset
+
+-ésima, que denotamos
+\begin_inset Formula
+\[
+\frac{\partial f}{\partial x_{i}}(a):=d_{i}f(a):=d_{\vec{e}_{i}}f(a)
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $\vec{u}=\lambda\vec{v}$
+\end_inset
+
+ con
+\begin_inset Formula $\lambda\in\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $d_{\vec{u}}f(t)$
+\end_inset
+
+ existe si y sólo si existe
+\begin_inset Formula $d_{\vec{v}}f(t)$
+\end_inset
+
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+, pues
+\begin_inset Formula
+\[
+d_{\vec{u}}f(t)=\lim_{t\rightarrow0}\frac{f(a+t\lambda\vec{v})-f(a)}{t}=\lim_{t\rightarrow0}\frac{f(a+t\lambda\vec{v})-f(a)}{t\lambda}\lambda\overset{t\lambda\rightarrow0}{=}\lambda d_{\vec{v}}f(t)
+\]
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $f:(a,b)\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ es derivable en
+\begin_inset Formula $x_{0}$
+\end_inset
+
+ si cada una de sus coordenadas lo es, y entonces
+\begin_inset Formula $f'(x_{0})=(f'_{1}(x_{0}),\dots,f'_{n}(x_{0}))$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Diferenciales
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $\Omega\subseteq E$
+\end_inset
+
+ abierto,
+\begin_inset Formula $f:\Omega\rightarrow F$
+\end_inset
+
+ y
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+,
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\series bold
+diferenciable
+\series default
+ en
+\begin_inset Formula $a$
+\end_inset
+
+ si existe una aplicación lineal
+\begin_inset Formula $L:E\rightarrow F$
+\end_inset
+
+ tal que
+\begin_inset Formula
+\[
+\lim_{h\rightarrow0}\frac{f(a+h)-f(a)-L(h)}{\Vert h\Vert}=0
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Esta aplicación es la
+\series bold
+diferencial
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $a$
+\end_inset
+
+, denotada por
+\begin_inset Formula $df(a)$
+\end_inset
+
+, y si existe es única.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\series bold
+Demostración:
+\series default
+ Sean
+\begin_inset Formula $L,M:E\rightarrow F$
+\end_inset
+
+ dos diferenciales de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $a$
+\end_inset
+
+.
+ Entonces
+\begin_inset Formula $\lim_{h\rightarrow0}\frac{L(h)-M(h)}{\Vert h\Vert}=\lim_{h\rightarrow0}\left(\frac{f(a+h)-f(a)-M(h)}{\Vert h\Vert}-\frac{f(a+h)-f(a)-L(h)}{\Vert h\Vert}\right)=0-0=0$
+\end_inset
+
+, pero entonces, dado
+\begin_inset Formula $v\neq0$
+\end_inset
+
+ arbitrario,
+\begin_inset Formula $0=\lim_{t\rightarrow0^{+}}\frac{L(tv)-M(tv)}{\Vert tv\Vert}=\lim_{t\rightarrow0^{+}}\frac{L(v)-M(v)}{\Vert v\Vert}$
+\end_inset
+
+, con lo que
+\begin_inset Formula $L(v)=M(v)$
+\end_inset
+
+ y
+\begin_inset Formula $L=M$
+\end_inset
+
+.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Escribimos
+\begin_inset Formula $L\equiv M$
+\end_inset
+
+ si
+\begin_inset Formula $M$
+\end_inset
+
+ es la matriz asociada a la aplicación lineal
+\begin_inset Formula $L$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $f:\Omega\subseteq\mathbb{R}^{m}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ es diferenciable en
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+ con diferencial
+\begin_inset Formula $L$
+\end_inset
+
+ si y sólo si cada
+\begin_inset Formula $f_{i}:\mathbb{R}^{m}\rightarrow\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $i\in\{1,\dots,n\}$
+\end_inset
+
+, es diferenciable con diferencial
+\begin_inset Formula $L_{i}$
+\end_inset
+
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+, pues
+\begin_inset Formula $\frac{f(a+h)-f(a)-L(h)}{\Vert h\Vert}\rightarrow0\iff\forall i\in\{1,\dots,n\},\left(\frac{f(a+h)-f(a)-L(h)}{\Vert h\Vert}\right)_{i}\rightarrow0\iff\frac{f_{i}(a+h)-f_{i}(a)-L_{i}(h)}{\Vert h\Vert}\rightarrow0$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $f:\Omega\subseteq E\rightarrow F$
+\end_inset
+
+ es diferenciable en
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+, también es continua en
+\begin_inset Formula $a$
+\end_inset
+
+.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\series bold
+Demostración:
+\series default
+
+\begin_inset Formula $f$
+\end_inset
+
+ es continua en
+\begin_inset Formula $a$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $\lim_{x\rightarrow a}f(x)=f(a)$
+\end_inset
+
+, si y sólo si
+\begin_inset Formula $\lim_{h\rightarrow0}f(a+h)-f(a)=0$
+\end_inset
+
+.
+ Pero si
+\begin_inset Formula $\lim_{h\rightarrow0}\frac{f(a+h)-f(a)-L(h)}{\Vert h\Vert}=0$
+\end_inset
+
+, multiplicando por
+\begin_inset Formula $\Vert h\Vert$
+\end_inset
+
+, que tiende a 0, tenemos
+\begin_inset Formula $\lim_{h\rightarrow0}f(a+h)-f(a)-L(h)=0$
+\end_inset
+
+, y como
+\begin_inset Formula $L(h)$
+\end_inset
+
+ tiende a 0 nos queda la expresión de arriba.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $f:\Omega\subseteq\mathbb{R}^{m}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ es diferenciable en
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+ (
+\begin_inset Formula $\Omega$
+\end_inset
+
+ abierto) si para todo
+\begin_inset Formula $P\in\Omega$
+\end_inset
+
+ existen todas las derivadas parciales
+\begin_inset Formula $\frac{\partial f_{i}}{\partial x_{j}}(P)$
+\end_inset
+
+ y son continuas en
+\begin_inset Formula $a$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Demostración:
+\series default
+ Podemos suponer
+\begin_inset Formula $n=1$
+\end_inset
+
+, pues de lo contrario basta probar que cada
+\begin_inset Formula $f_{i}$
+\end_inset
+
+ es diferenciable en
+\begin_inset Formula $a$
+\end_inset
+
+.
+ Se trata pues de probar que
+\begin_inset Formula $\lim_{h\rightarrow0}\frac{f(a+h)-f(a)-\sum_{i=1}^{m}\frac{\partial f}{\partial x_{i}}(a)h_{i}}{\Vert h\Vert}=0$
+\end_inset
+
+, lo que ocurre si y sólo si
+\begin_inset Formula
+\begin{eqnarray*}
+0 & = & \lim_{h\rightarrow0}\frac{|f(a+h)-f(a)-\sum_{i=1}^{m}\frac{\partial f}{\partial x_{i}}(a)h_{i}|}{\Vert h\Vert}=\lim_{h\rightarrow0}\frac{f(a+\sum_{i=1}^{m}h_{i}\vec{e}_{i})-f(a)-\sum_{i=1}^{m}\frac{\partial f}{\partial x_{i}}(a)h_{i}}{\Vert h\Vert}\\
+ & = & \lim_{h\rightarrow0}\frac{\left|\sum_{i=1}^{m}\left(f(a+h_{1}\vec{e}_{1}+\dots+h_{i}\vec{e}_{i})-f(a+h_{1}\vec{e}_{1}+\dots+h_{i-1}\vec{e}_{i-1})-\frac{\partial f}{\partial x_{i}}(a)h_{i}\right)\right|}{\Vert h\Vert}
+\end{eqnarray*}
+
+\end_inset
+
+El último sumatorio con sus dos primeros elementos forma una
+\series bold
+suma telescópica
+\series default
+: todos los elementos se anulan salvo el primero y el último.
+ Sabemos que cada
+\begin_inset Formula $a+h_{1}\vec{e}_{1}+\dots+h_{i}\vec{e}_{i}$
+\end_inset
+
+ está en el dominio de
+\begin_inset Formula $f$
+\end_inset
+
+ porque
+\begin_inset Formula $\Omega$
+\end_inset
+
+ es abierto y
+\begin_inset Formula $h$
+\end_inset
+
+ se supone lo suficientemente pequeño.
+ Ahora llamamos
+\begin_inset Formula $\varphi_{i}(t):=f(a+h_{1}\vec{e}_{1}+\dots+h_{i-1}\vec{e}_{i-1}+t\vec{e}_{i})$
+\end_inset
+
+, con lo que
+\begin_inset Formula $\varphi'_{i}(t)=\frac{\partial f}{\partial x_{i}}(a+h_{1}\vec{e}_{1}+\dots+h_{i-1}\vec{e}_{i-1}+t\vec{e}_{i})$
+\end_inset
+
+, y
+\begin_inset Formula $\Delta_{i}:=\varphi_{i}(h_{i})-\varphi_{i}(0)=f(a+h_{1}\vec{e}_{1}+\dots+h_{i}\vec{e}_{i})-f(a+h_{1}\vec{e}_{1}+\dots+h_{i-1}\vec{e}_{i-1})=\varphi'_{i}(\xi_{i})h_{i}$
+\end_inset
+
+ para algún
+\begin_inset Formula $\xi_{i}$
+\end_inset
+
+ entre 0 y
+\begin_inset Formula $h_{i}$
+\end_inset
+
+, que tiende a 0.
+ Sustituyendo nos queda que lo anterior es igual a
+\begin_inset Formula
+\[
+\lim_{h\rightarrow0}\frac{\left|\sum_{i=1}^{m}\varphi'_{i}(\xi_{i})h_{i}-\frac{\partial f}{\partial x_{i}}(a)h_{i}\right|}{\Vert h\Vert}
+\]
+
+\end_inset
+
+Entonces,
+\begin_inset Formula
+\begin{eqnarray*}
+0 & \leq & \frac{\left|\sum_{i=1}^{m}\varphi'_{i}(\xi_{i})h_{i}-\frac{\partial f}{\partial x_{i}}(a)h_{i}\right|}{\Vert h\Vert_{\infty}}\\
+ & \leq & \left|\sum_{i=1}^{m}\frac{\partial f}{\partial x_{i}}(a+h_{1}\vec{e}_{1}+\dots+h_{i-1}\vec{e}_{i-1}+\xi_{i}\vec{e}_{i})-\frac{\partial f}{\partial x_{i}}(a)\right|\frac{\left|h_{i}\right|}{\Vert h\Vert_{\infty}}\rightarrow0
+\end{eqnarray*}
+
+\end_inset
+
+Que esta última expresión tienda a 0 se debe a que
+\begin_inset Formula $0\leq\frac{|h_{i}|}{\Vert h\Vert_{\infty}}\leq1$
+\end_inset
+
+ y a que las derivadas parciales de
+\begin_inset Formula $f$
+\end_inset
+
+ sean continuas y por tanto
+\begin_inset Formula $\lim_{h\rightarrow0}\frac{\partial f}{\partial x_{i}}(a+\dots)=\frac{\partial f}{\partial x_{i}}(\lim_{h\rightarrow0}(a+\dots))$
+\end_inset
+
+.
+ Entonces, por la regla del sandwich, el límite inicial tiende a 0.
+ Hemos utilizado la norma
+\begin_inset Formula $\Vert\cdot\Vert_{\infty}$
+\end_inset
+
+, pero como dada una norma
+\begin_inset Formula $\Vert\cdot\Vert$
+\end_inset
+
+
+\begin_inset Formula $\exists\alpha,\beta>0:\forall h,\alpha\leq\frac{\Vert h\Vert_{\infty}}{\Vert h\Vert}\leq\beta$
+\end_inset
+
+, la convergencia a 0 no depende de la norma que tomemos.
+\end_layout
+
+\begin_layout Section
+Regla de la cadena
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+regla de la cadena
+\series default
+ afirma que si
+\begin_inset Formula ${\cal U}\subseteq\mathbb{R}^{m}$
+\end_inset
+
+ y
+\begin_inset Formula ${\cal V}\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ son abiertos,
+\begin_inset Formula $a\in{\cal U}$
+\end_inset
+
+ y
+\begin_inset Formula ${\cal U}\overset{f}{\rightarrow}{\cal V}\overset{g}{\rightarrow}\mathbb{R}^{k}$
+\end_inset
+
+ son diferenciables en
+\begin_inset Formula $a$
+\end_inset
+
+ y en
+\begin_inset Formula $f(a)$
+\end_inset
+
+, respectivamente, entonces
+\begin_inset Formula $g\circ f$
+\end_inset
+
+ es diferenciable en
+\begin_inset Formula $a$
+\end_inset
+
+ y
+\begin_inset Formula $d(g\circ f)(a)=dg(f(a))\circ df(a)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Demostración:
+\series default
+ Sean
+\begin_inset Formula $L:=df(a):\mathbb{R}^{m}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ y
+\begin_inset Formula $S:=dg(f(a)):\mathbb{R}^{n}\rightarrow\mathbb{R}^{k}$
+\end_inset
+
+, tenemos que
+\begin_inset Formula
+\[
+\lim_{h\rightarrow0}\frac{f(a+h)-f(a)-L(h)}{\Vert h\Vert}=\lim_{\eta\rightarrow0}\frac{g(f(a)+\eta)-g(f(a))-S(\eta)}{\Vert\eta\Vert}=0
+\]
+
+\end_inset
+
+y queremos ver que
+\begin_inset Formula
+\[
+\lim_{h\rightarrow0}\frac{g(f(a+h))-g(f(a))-S(L(h))}{\Vert h\Vert}=0
+\]
+
+\end_inset
+
+Si llamamos
+\begin_inset Formula $\eta:=f(a+h)-f(a)$
+\end_inset
+
+, que tiende a 0 por la continuidad de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $a$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\begin{multline*}
+\lim_{h\rightarrow0}\frac{g(f(a+h))-g(f(a))-S(L(h))}{\Vert h\Vert}=\lim_{h\rightarrow0}\frac{g(f(a)+\eta)-g(f(a))-S(\eta)}{\Vert h\Vert}+\frac{S(\eta)-S(L(h))}{\Vert h\Vert}\\
+=\lim_{h\rightarrow0}\frac{g(f(a)+\eta)-g(f(a))-S(\eta)}{\Vert\eta\Vert}\frac{\Vert\eta\Vert}{\Vert h\Vert}-S\left(\frac{f(a+h)-f(a)-L(h)}{\Vert h\Vert}\right)
+\end{multline*}
+
+\end_inset
+
+Como
+\begin_inset Formula $S\left(\frac{f(a+h)-f(a)-L(h)}{\Vert h\Vert}\right)\rightarrow0$
+\end_inset
+
+ usando la linealidad de
+\begin_inset Formula $S$
+\end_inset
+
+ y su continuidad (que se deduce de su linealidad), y como
+\begin_inset Formula $\frac{g(f(a)+\eta)-g(f(a))-S(\eta)}{\Vert\eta\Vert}\rightarrow0$
+\end_inset
+
+, el límite tenderá a 0 si y sólo si
+\begin_inset Formula $\frac{\Vert\eta\Vert}{\Vert h\Vert}$
+\end_inset
+
+ es acotado, pero
+\begin_inset Formula
+\begin{eqnarray*}
+0 & \leq & \frac{\Vert\eta\Vert}{\Vert h\Vert}=\frac{\Vert f(a+h)-f(a)-L(h)+L(h)\Vert}{\Vert h\Vert}\\
+ & \leq & \frac{\Vert f(a+h)-f(a)-L(h)\Vert}{\Vert h\Vert}+\frac{\Vert L(h)\Vert}{\Vert h\Vert}\rightarrow0+\frac{\Vert L(h)\Vert}{\Vert h\Vert}\leq\frac{\Vert L\Vert\Vert h\Vert}{\Vert h\Vert}<+\infty
+\end{eqnarray*}
+
+\end_inset
+
+ por la continuidad de
+\begin_inset Formula $L$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Incremento finito
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+teorema del incremento finito
+\series default
+ afirma que, sean
+\begin_inset Formula $f:\Omega\subseteq\mathbb{R}^{m}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+,
+\begin_inset Formula $a,b\in\Omega$
+\end_inset
+
+ con el segmento
+\begin_inset Formula $[a,b]\subseteq\Omega$
+\end_inset
+
+ y
+\begin_inset Formula $L:\mathbb{R}^{m}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ lineal, si
+\begin_inset Formula $\Vert df(x)\Vert\leq M$
+\end_inset
+
+ para todo
+\begin_inset Formula $x\in[a,b]$
+\end_inset
+
+ se tiene
+\begin_inset Formula $\Vert f(b)-f(a)\Vert\leq M\Vert b-a\Vert$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Demostración:
+\series default
+ Fijado
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, sabemos que para
+\begin_inset Formula $x\in[a,b]$
+\end_inset
+
+,
+\begin_inset Formula $\lim_{h\rightarrow0}\frac{f(x+h)-f(x)-df(x)(h)}{\Vert h\Vert}=0$
+\end_inset
+
+ y por tanto existe
+\begin_inset Formula $\delta_{x}>0$
+\end_inset
+
+ tal que para
+\begin_inset Formula $\Vert h\Vert<\delta_{x}$
+\end_inset
+
+ se tiene
+\begin_inset Formula
+\[
+\Vert f(x+h)-f(x)-df(x)(h)\Vert<\varepsilon\Vert h\Vert
+\]
+
+\end_inset
+
+con lo que
+\begin_inset Formula
+\[
+\Vert f(x+h)-f(x)\Vert-\Vert df(x)(h)\Vert\leq\Vert f(x+h)-f(x)-df(x)(h)\Vert<\varepsilon\Vert h\Vert
+\]
+
+\end_inset
+
+ y por tanto
+\begin_inset Formula
+\[
+\Vert f(x+h)-f(x)\Vert<\varepsilon\Vert h\Vert+\Vert df(x)(h)\Vert\leq\varepsilon\Vert h\Vert+\Vert df(x)\Vert\Vert h\Vert\leq(\varepsilon+M)\Vert h\Vert
+\]
+
+\end_inset
+
+Esta desigualdad depende de
+\begin_inset Formula $\delta_{x}$
+\end_inset
+
+ y por tanto de
+\begin_inset Formula $x$
+\end_inset
+
+.
+ Sea entonces
+\begin_inset Formula $\{B(x,\frac{\delta_{x}}{2})\}_{x\in[a,b]}$
+\end_inset
+
+ un re
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+cu
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+bri
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+mien
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+to por abiertos de
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ y
+\begin_inset Formula $\{B_{i}\}_{i=1}^{k}:=\{B(x_{i},\frac{\delta_{x_{i}}}{2})\}_{i=1}^{k}$
+\end_inset
+
+ un subrecubrimiento finito del que suponemos que no podemos quitar ninguna
+ bola.
+ Ahora llamamos
+\begin_inset Formula $x_{0}:=a$
+\end_inset
+
+ y
+\begin_inset Formula $x_{k+1}:=b$
+\end_inset
+
+ y suponemos
+\begin_inset Formula $a=x_{0}<x_{1}<\dots<x_{k}<x_{k+1}=b$
+\end_inset
+
+.
+ Por la desigualdad anterior, para
+\begin_inset Formula $x,y\in[a,b]$
+\end_inset
+
+ con
+\begin_inset Formula $\Vert y-x\Vert<\delta_{x}$
+\end_inset
+
+ o
+\begin_inset Formula $\Vert x-y\Vert<\delta_{y}$
+\end_inset
+
+,
+\begin_inset Formula $\Vert f(y)-f(x)\Vert\leq(M+\varepsilon)\Vert x-y\Vert$
+\end_inset
+
+.
+ El segmento
+\begin_inset Formula $[x_{i},x_{i+1}]$
+\end_inset
+
+ queda cubierto por
+\begin_inset Formula $B_{i}$
+\end_inset
+
+ y
+\begin_inset Formula $B_{i+1}$
+\end_inset
+
+, pues si hiciera falta además
+\begin_inset Formula $B_{j}$
+\end_inset
+
+ con
+\begin_inset Formula $j\neq i,i+1$
+\end_inset
+
+ para cubrirlo sería
+\begin_inset Formula $x_{j}<x_{i}$
+\end_inset
+
+ y entonces
+\begin_inset Formula $B_{i}\subseteq B_{j}$
+\end_inset
+
+ o
+\begin_inset Formula $x_{j}>x_{i+1}$
+\end_inset
+
+ y entonces
+\begin_inset Formula $B_{i+1}\subseteq B_{j}$
+\end_inset
+
+, pero entonces podríamos quitar una bola del recubrimiento
+\begin_inset Formula $\#$
+\end_inset
+
+.
+ Por tanto
+\begin_inset Formula $\Vert x_{i+1}-x_{i}\Vert<\frac{\delta_{x_{i}}}{2}+\frac{\delta_{x_{i+1}}}{2}\leq\max\{\delta_{x_{i}},\delta_{x_{i+1}}\}$
+\end_inset
+
+.
+ Finalmente tenemos que
+\begin_inset Formula $\Vert f(b)-f(a)\Vert=\Vert f(x_{k+1})-f(x_{k})+\dots+f(x_{1})-f(x_{0})\Vert\leq\sum_{i=0}^{k}\Vert f(x_{i+1})-f(x_{i})\Vert\leq\sum_{i=0}^{k}\Vert x_{i+1}-x_{i}\Vert(M+\varepsilon)$
+\end_inset
+
+ y, como todos los
+\begin_inset Formula $x_{i+1}-x_{i}$
+\end_inset
+
+ tienen la forma
+\begin_inset Formula $\lambda(b-a)$
+\end_inset
+
+ con
+\begin_inset Formula $\lambda>0$
+\end_inset
+
+, entonces
+\begin_inset Formula $\sum_{i=0}^{k}\Vert x_{i+1}-x_{i}\Vert(M+\varepsilon)=\Vert b-a\Vert(M+\varepsilon)$
+\end_inset
+
+.
+ Como esto se da para todo
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, el resultado queda probado.
+\end_layout
+
+\end_body
+\end_document
diff --git a/fvv1/n3.lyx b/fvv1/n3.lyx
new file mode 100644
index 0000000..776351a
--- /dev/null
+++ b/fvv1/n3.lyx
@@ -0,0 +1,1046 @@
+#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
+\begin_inset Formula $f:\Omega\subseteq\mathbb{R}^{m}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ es
+\series bold
+dos veces diferenciable
+\series default
+ o
+\series bold
+de clase
+\series default
+
+\begin_inset Formula ${\cal C}^{2}$
+\end_inset
+
+ en
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+ si
+\begin_inset Formula $f$
+\end_inset
+
+ es diferenciable en
+\begin_inset Formula ${\cal U}\in{\cal E}(a)$
+\end_inset
+
+ y
+\begin_inset Formula $df:{\cal U}\rightarrow{\cal L}(\mathbb{R}^{m},\mathbb{R}^{n})\equiv M_{n\times m}(\mathbb{R})\equiv\mathbb{R}^{nm}$
+\end_inset
+
+ (la aplicación que a cada elemento de
+\begin_inset Formula ${\cal U}$
+\end_inset
+
+ le asigna un vector en
+\begin_inset Formula $\mathbb{R}^{nm}$
+\end_inset
+
+ que contiene, en algún orden, los elementos de la matriz asociada a la
+ diferencial del elemento) es diferenciable en
+\begin_inset Formula $a$
+\end_inset
+
+.
+ Por inducción se define el ser
+\begin_inset Formula $n$
+\end_inset
+
+ veces diferenciable o de clase
+\begin_inset Formula ${\cal C}^{n}$
+\end_inset
+
+, y el ser infinitamente diferenciable o de clase
+\begin_inset Formula ${\cal C}^{\infty}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Denotamos la derivada parcial
+\begin_inset Formula $k$
+\end_inset
+
+-ésima de la derivada parcial
+\begin_inset Formula $j$
+\end_inset
+
+-ésima de la
+\begin_inset Formula $i$
+\end_inset
+
+-ésima coordenada de
+\begin_inset Formula $f$
+\end_inset
+
+, o la
+\begin_inset Formula $i$
+\end_inset
+
+-ésima coordenada de la doble derivada parcial respecto a
+\begin_inset Formula $x_{j}$
+\end_inset
+
+ y
+\begin_inset Formula $x_{k}$
+\end_inset
+
+, como
+\begin_inset Formula $\frac{\partial^{2}f_{i}}{\partial x_{j}\partial x_{k}}$
+\end_inset
+
+, y si
+\begin_inset Formula $j=k$
+\end_inset
+
+, también escribimos
+\begin_inset Formula $\frac{\partial^{2}f_{i}}{\partial x_{j}^{2}}$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $f$
+\end_inset
+
+ tiene derivadas parciales segundas
+\begin_inset Formula $\frac{\partial f_{i}}{\partial x_{k}\partial x_{j}}$
+\end_inset
+
+ todas continuas en
+\begin_inset Formula $a$
+\end_inset
+
+ entonces
+\begin_inset Formula $f$
+\end_inset
+
+ es dos veces diferenciable en
+\begin_inset Formula $a$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Matriz hessiana
+\end_layout
+
+\begin_layout Standard
+Del mismo modo que podemos pensar en la diferencial de una función diferenciable
+ como
+\begin_inset Formula $df(a):\mathbb{R}^{m}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ dada por
+\begin_inset Formula $\vec{u}\mapsto d_{\vec{u}}f(a)$
+\end_inset
+
+, llamamos
+\series bold
+diferencial segunda
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $a$
+\end_inset
+
+ a la aplicación
+\begin_inset Formula $d^{2}f(a):\mathbb{R}^{m}\times\mathbb{R}^{m}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ con
+\begin_inset Formula $(\vec{u},\vec{v})\mapsto d_{\vec{v}}d_{\vec{u}}f(a)$
+\end_inset
+
+, y vemos que esta es una aplicación bilineal.
+\end_layout
+
+\begin_layout Standard
+La matriz de
+\begin_inset Formula $d^{2}f(a):\mathbb{R}^{m}\times\mathbb{R}^{m}\rightarrow\mathbb{R}$
+\end_inset
+
+, dada por
+\begin_inset Formula
+\[
+\left(\frac{\partial^{2}f}{\partial x_{i}\partial x_{j}}\right)_{ij}
+\]
+
+\end_inset
+
+ se denomina
+\series bold
+matriz hessiana
+\series default
+.
+ Así, si
+\begin_inset Formula $M$
+\end_inset
+
+ es la matriz hessiana de
+\begin_inset Formula $f$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+d^{2}f(a)(\vec{u},\vec{v})=\left(\begin{array}{ccc}
+- & \vec{u} & -\end{array}\right)M\left(\begin{array}{c}
+|\\
+\vec{v}\\
+|
+\end{array}\right)
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, sea
+\begin_inset Formula $f:\Omega\subseteq\mathbb{R}^{2}\rightarrow\mathbb{R}$
+\end_inset
+
+ y
+\begin_inset Formula $a=(x_{0},y_{0})\in\Omega$
+\end_inset
+
+, si
+\begin_inset Formula $\frac{\partial^{2}f}{\partial x\partial y}$
+\end_inset
+
+ y
+\begin_inset Formula $\frac{\partial^{2}f}{\partial y\partial x}$
+\end_inset
+
+ están definidas en
+\begin_inset Formula $\Omega$
+\end_inset
+
+ y son continuas en
+\begin_inset Formula $a$
+\end_inset
+
+, entonces su valor en
+\begin_inset Formula $a$
+\end_inset
+
+ coincide.
+ Esto significa que la matriz Hessiana es simétrica.
+
+\series bold
+Demostración:
+\series default
+ Como
+\begin_inset Formula $\Omega$
+\end_inset
+
+ es abierto, existe
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+ tal que
+\begin_inset Formula $B_{\infty}(a,\varepsilon)=(x_{0}-\varepsilon,x_{0}+\varepsilon)\times(y_{0}-\varepsilon,y_{0}+\varepsilon)\subseteq\Omega$
+\end_inset
+
+.
+ Fijamos
+\begin_inset Formula $t\in(x_{0}-\varepsilon,y_{0}+\varepsilon)$
+\end_inset
+
+ y
+\begin_inset Formula $s\in(y_{0}-\varepsilon,y_{0}+\varepsilon)$
+\end_inset
+
+, y consideramos
+\begin_inset Formula $\Delta_{t,s}:=f(t,s)-f(t,y_{0})-f(x_{0},s)+f(x_{0},y_{0})$
+\end_inset
+
+.
+ Si ahora llamamos
+\begin_inset Formula $F_{\overline{s}}(\overline{t}):=f(\overline{t},\overline{s})-f(\overline{t},y_{0})$
+\end_inset
+
+, vemos que
+\begin_inset Formula $F_{\overline{s}}(\overline{t})$
+\end_inset
+
+ es derivable con
+\begin_inset Formula $F'_{\overline{s}}(\overline{t})=\frac{\partial f}{\partial x}(\overline{t},\overline{s})-\frac{\partial f}{\partial x}(\overline{t},y_{0})$
+\end_inset
+
+ y que entonces
+\begin_inset Formula $\Delta_{t,s}=F_{s}(t)-F_{s}(x_{0})=F'_{\overline{s}}(\xi_{t,s})(t-x_{0})=\left(\frac{\partial f}{\partial x}(\xi_{t,s},s)-\frac{\partial f}{\partial x}(\xi_{t,s},y_{0})\right)(t-x_{0})\overset{\Phi(\overline{s}):=\frac{\partial f}{\partial x}(\xi_{t,s},\overline{s})}{=}(\Phi(s)-\Phi(y_{0}))(t-x_{0})\overset{\Phi\text{ derivable por hipótesis}}{=}\Phi'(\eta_{t,s})(s-y_{0})(t-x_{0})=\frac{\partial^{2}f}{\partial x\partial y}(\xi_{t,s},\eta_{t,s})(s-y_{0})(t-x_{0})$
+\end_inset
+
+.
+ Permutando los papeles de las dos coordenadas (definiendo
+\begin_inset Formula $\sigma_{\overline{t}}(\overline{s}):=f(\overline{t},\overline{s})-f(x,\overline{s})$
+\end_inset
+
+) obtenemos que
+\begin_inset Formula $\Delta_{t,s}=\sigma_{\overline{t}}(\overline{s})-\sigma_{\overline{t}}(y_{0})=\frac{\partial^{2}f}{\partial y\partial x}(\hat{\xi}_{t,s},\hat{\eta}_{t,s})(s-y_{0})(t-x_{0})$
+\end_inset
+
+.
+ Haciendo ahora tender
+\begin_inset Formula $(t,s)$
+\end_inset
+
+ a
+\begin_inset Formula $(x_{0},y_{0})$
+\end_inset
+
+, por la regla del sandwich
+\begin_inset Formula $(\xi_{t,s},\eta_{ts})$
+\end_inset
+
+ y
+\begin_inset Formula $(\hat{\xi}_{t,s},\hat{\eta}_{t,s})$
+\end_inset
+
+ también tienden a
+\begin_inset Formula $(x_{0},y_{0})$
+\end_inset
+
+, y aplicando la continuidad de las derivadas parciales dobles en
+\begin_inset Formula $a$
+\end_inset
+
+, nos queda finalmente que
+\begin_inset Formula $\frac{\partial^{2}f}{\partial x\partial y}(x_{0},y_{0})=\frac{\partial^{2}f}{\partial y\partial x}(x_{0},y_{0})$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Desarrollos de Taylor
+\end_layout
+
+\begin_layout Standard
+Despejando de la definición de diferencial, nos queda que
+\begin_inset Formula $f(a+h)=f(a)+df(a)(h)+o(\Vert h\Vert)$
+\end_inset
+
+, lo que podemos interpretar como una aproximación de
+\begin_inset Formula $f(x)$
+\end_inset
+
+ cerca de
+\begin_inset Formula $a$
+\end_inset
+
+ por un polinomio de grado 1.
+ Como
+\series bold
+teorema
+\series default
+, si
+\begin_inset Formula $f:\Omega\subseteq\mathbb{R}^{m}\rightarrow\mathbb{R}$
+\end_inset
+
+ es dos veces diferenciable en
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+ entonces
+\begin_inset Formula $f(a+h)=f(a)+df(a)(h)+\frac{1}{2}d^{2}f(a)(h,h)+o(\Vert h\Vert^{2})$
+\end_inset
+
+.
+
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Demostración:
+\series default
+ Sea
+\begin_inset Formula $R(h):=f(a+h)-f(a)-df(a)(h)-\frac{1}{2}d^{2}f(a)(h,h)$
+\end_inset
+
+, y hemos de ver que
+\begin_inset Formula $\lim_{h\rightarrow0}\frac{R(h)}{\Vert h\Vert^{2}}=0$
+\end_inset
+
+.
+ Como todas las normas en
+\begin_inset Formula $\mathbb{R}^{m}$
+\end_inset
+
+ son equivalentes, elegimos
+\begin_inset Formula $\Vert\cdot\Vert_{\infty}$
+\end_inset
+
+.
+ Usamos el teorema del incremento finito, que afirma que si
+\begin_inset Formula $R$
+\end_inset
+
+ es diferenciable y
+\begin_inset Formula $\Vert dR(\xi)\Vert\leq M\forall\xi\in[0,h]$
+\end_inset
+
+ entonces
+\begin_inset Formula $\Vert R(h)-R(0)\Vert\leq M\cdot\Vert h-0\Vert$
+\end_inset
+
+.
+
+\begin_inset Formula $R$
+\end_inset
+
+ es diferenciable al ser la suma de
+\begin_inset Formula $f(c+h)$
+\end_inset
+
+ y un polinomio de grado máximo 2.
+ Para estimar
+\begin_inset Formula $\Vert dR\Vert$
+\end_inset
+
+ vemos que
+\begin_inset Formula $R(a)=f(a+h)-f(a)-\sum_{i}\frac{\partial f}{\partial x_{i}}(a)h_{i}-\frac{1}{2}\sum_{i,j}\frac{\partial f}{\partial x_{i}\partial x_{j}}(a)h_{i}h_{j}$
+\end_inset
+
+, y usando la
+\begin_inset Formula $\delta$
+\end_inset
+
+ de Kronecker,
+\begin_inset Formula
+\[
+\frac{\partial}{\partial x_{k}}\frac{1}{2}\sum_{i,j}\frac{\partial f}{\partial x_{i}\partial x_{j}}(a)h_{i}h_{j}=\frac{1}{2}\sum_{i,j}\left(\frac{\partial f}{\partial x_{i}x_{j}}(a)\delta_{ik}+\frac{\partial f}{\partial x_{i}\partial x_{j}}(a)\delta_{jk}\right)=\frac{1}{2}\cdot2d\left(\frac{\partial f}{\partial x_{k}}\right)(a)(h)
+\]
+
+\end_inset
+
+ Por tanto
+\begin_inset Formula
+\[
+\frac{\partial R}{\partial x_{k}}=\frac{\partial f}{\partial x_{k}}(a+h)-0-\frac{\partial f}{\partial x_{k}}(a)-d\left(\frac{\partial f}{\partial x_{k}}\right)(a)(h)=:\psi_{k}(h)\Vert h\Vert
+\]
+
+\end_inset
+
+donde
+\begin_inset Formula $\lim_{h\rightarrow0}\psi(h)=0$
+\end_inset
+
+.
+ Como
+\begin_inset Formula $\frac{\partial R}{\partial x_{k}}$
+\end_inset
+
+ es continua, definiendo el compacto
+\begin_inset Formula $[0,h]$
+\end_inset
+
+ como
+\family roman
+\series medium
+\shape up
+\size normal
+\emph off
+\bar no
+\strikeout off
+\xout off
+\uuline off
+\uwave off
+\noun off
+\color none
+
+\begin_inset Formula $\{th\}_{t\in[0,1]}$
+\end_inset
+
+
+\family default
+\series default
+\shape default
+\size default
+\emph default
+\bar default
+\strikeout default
+\xout default
+\uuline default
+\uwave default
+\noun default
+\color inherit
+ existe un punto
+\begin_inset Formula $t_{k,h}h\in[0,h]$
+\end_inset
+
+ tal que
+\begin_inset Formula
+\[
+\frac{\partial R}{\partial x_{k}}(t_{k,h}h)=\max\left\{ \frac{\partial R}{\partial x_{k}}(\xi)\right\} _{\xi\in[0,h]}
+\]
+
+\end_inset
+
+Por esto, y como
+\begin_inset Formula $dR(\xi)\equiv\left(\frac{\partial R}{\partial x_{1}}(\xi),\dots,\frac{\partial R}{\partial x_{m}}(\xi)\right)$
+\end_inset
+
+, existe
+\begin_inset Formula $C$
+\end_inset
+
+ tal que
+\begin_inset Formula
+\[
+\Vert dR(\xi)\Vert\leq C\cdot\Vert dR(a)\Vert_{\infty}=C\cdot\max\left\{ \left|\frac{\partial R}{\partial x_{k}}(a)\right|\right\} _{k=1}^{n}
+\]
+
+\end_inset
+
+para
+\begin_inset Formula $\xi\in[0,h]$
+\end_inset
+
+, y por el teorema del incremento finito, si
+\begin_inset Formula $p$
+\end_inset
+
+ es tal que
+\begin_inset Formula
+\[
+\left|\frac{\partial R}{\partial x_{p}}(a)\right|=\max\left\{ \left|\frac{\partial R}{\partial x_{k}}(a)\right|\right\} _{k=1}^{n}
+\]
+
+\end_inset
+
+tenemos
+\begin_inset Formula
+\[
+\Vert R(h)\Vert=\Vert R(h)-R(0)\Vert\leq C\left|\frac{\partial R}{\partial x_{p}}(t_{p,h})\right|\Vert h\Vert=C\psi_{p}(t_{p,h}h)\Vert h\Vert\Vert h\Vert=C\psi_{p}(t_{p,h}h)\Vert h\Vert^{2}
+\]
+
+\end_inset
+
+ y entonces
+\begin_inset Formula $\frac{|R(h)|}{\Vert h\Vert^{2}}\leq C\psi_{p}(t_{p,h}h)\rightarrow0$
+\end_inset
+
+, lo que prueba el teorema.
+\end_layout
+
+\begin_layout Section
+Extremos relativos
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $V$
+\end_inset
+
+ es un
+\begin_inset Formula $K$
+\end_inset
+
+-espacio vectorial con
+\begin_inset Formula $k:=\dim_{K}(V)<+\infty$
+\end_inset
+
+ y
+\begin_inset Formula $\sigma:V\times V\rightarrow\mathbb{R}$
+\end_inset
+
+ una aplicación bilineal, existe
+\begin_inset Formula $A=(a_{ij})\in{\cal M}_{k}(K)$
+\end_inset
+
+ asociado a
+\begin_inset Formula $\sigma$
+\end_inset
+
+ y podemos definir
+\begin_inset Formula
+\[
+\Delta_{1}=\left|a_{11}\right|,\Delta_{2}=\left|\begin{array}{cc}
+a_{11} & a_{12}\\
+a_{21} & a_{22}
+\end{array}\right|,\dots,\Delta_{k}=\left|\begin{array}{ccc}
+a_{11} & \cdots & a_{1k}\\
+\vdots & \ddots & \vdots\\
+a_{k1} & \cdots & a_{kk}
+\end{array}\right|
+\]
+
+\end_inset
+
+Entonces un
+\series bold
+teorema
+\series default
+ de álgebra nos dice que
+\begin_inset Formula $\sigma$
+\end_inset
+
+ es:
+\end_layout
+
+\begin_layout Enumerate
+Semidefinida positiva si y sólo si
+\begin_inset Formula $\Delta_{i}\geq0\forall i$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Semidefinida negativa si y sólo si
+\begin_inset Formula $\Delta_{i}(-1)^{i}\geq0\forall i$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Definida positiva si y sólo si
+\begin_inset Formula $\Delta_{i}>0\forall i$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Definida negativa si y sólo si
+\begin_inset Formula $\Delta_{i}(-1)^{i}>0\forall i$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, sea
+\begin_inset Formula $\Omega\subseteq\mathbb{R}^{m}$
+\end_inset
+
+ abierto,
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{R}$
+\end_inset
+
+ y
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+,
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ alcanza en
+\begin_inset Formula $a$
+\end_inset
+
+ un extremo relativo entonces
+\begin_inset Formula $df(a)=0$
+\end_inset
+
+.
+\begin_inset Newline newline
+\end_inset
+
+Podemos suponer que alcanza un máximo.
+ Entonces
+\begin_inset Formula $\exists{\cal U}\in{\cal E}(a):f(x)\leq f(a)\forall x\in{\cal U}$
+\end_inset
+
+, luego si para
+\begin_inset Formula $i\in\{1,\dots,m\}$
+\end_inset
+
+ definimos
+\begin_inset Formula $\varphi_{i}(t):=f(a_{1},\dots,a_{i-1},t,a_{i+1},\dots,a_{m})$
+\end_inset
+
+, fijado
+\begin_inset Formula $i$
+\end_inset
+
+,
+\begin_inset Formula $\exists\varepsilon>0:\forall t\in(a-\varepsilon,a+\varepsilon),\varphi_{i}(t)\leq\varphi_{i}(a_{i})$
+\end_inset
+
+ y
+\begin_inset Formula $\frac{\partial f}{\partial x_{i}}(a_{1},\dots,a_{i-1},t,a_{i+1},\dots,a_{m})=\varphi'(t)$
+\end_inset
+
+, luego
+\begin_inset Formula $\frac{\partial f}{\partial x_{i}}(a)=\varphi'(a_{i})=0$
+\end_inset
+
+ y
+\begin_inset Formula
+\[
+df(a)=\left(\begin{array}{ccc}
+\frac{\partial f}{\partial x_{1}}(a) & \cdots & \frac{\partial f}{\partial x_{m}}(a)\end{array}\right)=0
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ es de clase
+\begin_inset Formula ${\cal C}^{2}$
+\end_inset
+
+ y
+\begin_inset Formula $df(a)=0$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\begin{eqnarray*}
+d^{2}f(a)\text{ definida positiva} & \implies & f\text{ tiene un mínimo estricto en }a\implies\\
+\implies f\text{ tiene un mínimo en }a & \implies & d^{2}f(a)\text{ semidefinida positiva}
+\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+\begin_inset Formula $1\implies2]$
+\end_inset
+
+ Consideremos el desarrollo de Taylor de
+\begin_inset Formula $f$
+\end_inset
+
+ de orden 2 en
+\begin_inset Formula $a$
+\end_inset
+
+, que como
+\begin_inset Formula $df(a)=0$
+\end_inset
+
+, queda como
+\begin_inset Formula
+\begin{eqnarray*}
+f(x) & = & f(a)+\frac{1}{2}d^{2}f(a)(x-a,x-a)+o(\Vert x-a\Vert^{2})\\
+ & = & f(a)+\frac{1}{2}\Vert x-a\Vert^{2}d^{2}f(a)\left(\frac{x-a}{\Vert x-a\Vert},\frac{x-a}{\Vert x-a\Vert}\right)+o(\Vert x-a\Vert^{2})\\
+ & = & f(a)+\frac{1}{2}\Vert x-a\Vert^{2}\left(d^{2}f(a)\left(\frac{x-a}{\Vert x-a\Vert},\frac{x-a}{\Vert x-a\Vert}\right)+\frac{2o(\Vert x-a\Vert^{2})}{\Vert x-a\Vert^{2}}\right)
+\end{eqnarray*}
+
+\end_inset
+
+suponiendo
+\begin_inset Formula $x\neq a$
+\end_inset
+
+.
+ Pero
+\begin_inset Formula $\frac{x-a}{\Vert x-a\Vert}\in\{y\in\mathbb{R}^{m}:\Vert y\Vert=1\}=:K$
+\end_inset
+
+, que es compacto por ser cerrado y acotado, y
+\begin_inset Formula $\Phi:\mathbb{R}^{m}\rightarrow\mathbb{R}$
+\end_inset
+
+ dada por
+\begin_inset Formula $\Phi(u):=d^{2}f(a)(u,u)=\sum_{i,j}\frac{\partial f}{\partial x_{i}\partial x_{j}}(a)u_{i}u_{j}$
+\end_inset
+
+ es continua, luego
+\begin_inset Formula $\Phi(K)=\left\{ d^{2}f(a)\left(\frac{x-a}{\Vert x-a\Vert},\frac{x-a}{\Vert x-a\Vert}\right)\right\} _{x\in\mathbb{R}^{m}}$
+\end_inset
+
+ es compacto y, por ser además
+\begin_inset Formula $d^{2}f(a)$
+\end_inset
+
+ definida positiva, existe
+\begin_inset Formula $M>0$
+\end_inset
+
+ tal que
+\begin_inset Formula $\Phi(K)\geq M$
+\end_inset
+
+.
+\begin_inset Newline newline
+\end_inset
+
+Como
+\begin_inset Formula $\frac{2o(\Vert x-a\Vert^{2})}{\Vert x-a\Vert^{2}}\rightarrow0$
+\end_inset
+
+ cuando
+\begin_inset Formula $x\rightarrow a$
+\end_inset
+
+, existe
+\begin_inset Formula ${\cal U}\in{\cal E}(a)$
+\end_inset
+
+ tal que
+\begin_inset Formula $\forall x\in{\cal U},\left|\frac{2o(\Vert x-a\Vert)^{2}}{\Vert x-a\Vert^{2}}\right|<M$
+\end_inset
+
+, luego si
+\begin_inset Formula $x\in{\cal U}\backslash\{a\},d^{2}f(a)\left(\frac{x-a}{\Vert x-a\Vert},\frac{x-a}{\Vert x-a\Vert}\right)+\frac{2o(\Vert x-a\Vert^{2})}{\Vert x-a\Vert^{2}}>M-M=0$
+\end_inset
+
+ y
+\begin_inset Formula $f(x)>f(a)+\frac{1}{2}\Vert x-a\Vert^{2}\cdot0=f(a)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $2\implies3]$
+\end_inset
+
+ Obvio.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $3\implies4]$
+\end_inset
+
+ Fijamos
+\begin_inset Formula $u\in\mathbb{R}^{m}$
+\end_inset
+
+ y definimos
+\begin_inset Formula $\varphi(t):=a+tu$
+\end_inset
+
+ como la función
+\begin_inset Formula $\varphi:\mathbb{R}\rightarrow\mathbb{R}^{m}$
+\end_inset
+
+ que parametriza la recta
+\begin_inset Formula $a+<\vec{u}>$
+\end_inset
+
+.
+ Sea
+\begin_inset Formula ${\cal U}\in{\cal E}(a)$
+\end_inset
+
+ con
+\begin_inset Formula $f(a)\leq f(x)\forall x\in{\cal U}$
+\end_inset
+
+, si restringimos
+\begin_inset Formula $\varphi$
+\end_inset
+
+ a
+\begin_inset Formula $\varphi^{-1}({\cal U})$
+\end_inset
+
+, un entorno de 0 en
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+, entonces
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ alcanza un mínimo en 0, pues
+\begin_inset Formula $(f\circ\varphi)(0)=f(\varphi(0))=f(a)\leq f(\varphi(t))\forall t\in\varphi^{-1}({\cal U})$
+\end_inset
+
+, y tenemos que
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ es de clase
+\begin_inset Formula ${\cal C}^{2}$
+\end_inset
+
+ y semidefinida positiva.
+ Por la regla de la cadena, al ser
+\begin_inset Formula $\varphi$
+\end_inset
+
+ y
+\begin_inset Formula $f$
+\end_inset
+
+ diferenciables,
+\begin_inset Formula
+\begin{multline*}
+d(f\circ\varphi)(t)=df(\varphi(t))\circ d\varphi(t)\equiv\\
+\equiv\left(\begin{array}{ccc}
+\frac{\partial f}{\partial x_{1}}(a+tu) & \cdots & \frac{\partial f}{\partial x_{m}}(a+tu)\end{array}\right)\left(\begin{array}{c}
+u_{1}\\
+\vdots\\
+u_{m}
+\end{array}\right)=\sum_{i}\frac{\partial f}{\partial x_{i}}(a+tu)u_{i}
+\end{multline*}
+
+\end_inset
+
+Entonces
+\begin_inset Formula $d^{2}(f\circ\varphi)(t)\equiv\frac{d}{dt}\sum_{i}\frac{\partial f}{\partial x_{i}}(a+tu)u_{i}=\sum_{i}u_{i}\frac{d}{dt}\left(\frac{\partial f}{\partial x_{i}}(a+tu)\right)$
+\end_inset
+
+.
+ Como
+\begin_inset Formula $\frac{\partial f}{\partial x_{i}}$
+\end_inset
+
+ es diferenciable al ser
+\begin_inset Formula $f$
+\end_inset
+
+ de clase
+\begin_inset Formula ${\cal C}^{2}$
+\end_inset
+
+,
+\begin_inset Formula
+\begin{multline*}
+\frac{d}{dt}\left(\frac{\partial f}{\partial x_{i}}(a+tu)\right)=d\left(\frac{\partial f}{\partial x_{i}}\circ\varphi\right)(t)=d\frac{\partial f}{\partial x_{i}}(\varphi(t))\circ d\varphi(t)\equiv\\
+\equiv\left(\begin{array}{ccc}
+\frac{\partial^{2}f}{\partial_{i}\partial_{1}}(a+tu) & \cdots & \frac{\partial^{2}f}{\partial_{i}\partial_{m}}(a+tu)\end{array}\right)\left(\begin{array}{c}
+u_{1}\\
+\vdots\\
+u_{m}
+\end{array}\right)=\sum_{j}\frac{\partial^{2}f}{\partial x_{i}\partial x_{j}}(a+tu)u_{j}
+\end{multline*}
+
+\end_inset
+
+Sustituyendo,
+\begin_inset Formula $d^{2}(f\circ\varphi)(t)\equiv\sum_{i,j}\frac{\partial^{2}f}{\partial x_{i}\partial x_{j}}(a+tu)u_{i}u_{j}=d^{2}f(a+tu)(u,u)$
+\end_inset
+
+.
+ Pero al ser
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ una función real de una variable real dos veces derivable con su mínimo
+ en 0, sustituyendo
+\begin_inset Formula $0\leq(f\circ\varphi)''(0)=d^{2}f(a)(u,u)$
+\end_inset
+
+, y como esto se cumple para todo
+\begin_inset Formula $u\in\mathbb{R}^{m}$
+\end_inset
+
+, queda probado que
+\begin_inset Formula $d^{2}f(a)$
+\end_inset
+
+ es semidefinida positiva.
+\end_layout
+
+\end_deeper
+\end_body
+\end_document
diff --git a/fvv1/n4.lyx b/fvv1/n4.lyx
new file mode 100644
index 0000000..07fa28a
--- /dev/null
+++ b/fvv1/n4.lyx
@@ -0,0 +1,592 @@
+#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
+Podemos describir una región de
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Enumerate
+De forma
+\series bold
+implícita
+\series default
+, como el conjunto de puntos que cumplen
+\begin_inset Formula $f(x)=0$
+\end_inset
+
+ para cierta función
+\begin_inset Formula $f:{\cal U}\rightarrow\mathbb{R}^{k}$
+\end_inset
+
+, siendo
+\begin_inset Formula ${\cal U}\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ un abierto.
+ La región
+\begin_inset Formula $A=\{(x_{1},\dots,x_{n})\in{\cal U}:f(x_{1},\dots,x_{n})=0\}$
+\end_inset
+
+ está
+\series bold
+descrita implícitamente de forma
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+-regular
+\series default
+ si
+\begin_inset Formula $f$
+\end_inset
+
+ es de clase
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+ y
+\begin_inset Formula $\forall p\in A,\text{rg}(df(p))=k$
+\end_inset
+
+ (el rango de la diferencial es
+\begin_inset Formula $k$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Enumerate
+De forma
+\series bold
+paramétrica
+\series default
+, como la imagen de una función
+\begin_inset Formula $\varphi:{\cal U}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+, siendo
+\begin_inset Formula ${\cal U}\subseteq\mathbb{R}^{m}$
+\end_inset
+
+ un abierto.
+ La
+\series bold
+parametrización
+\series default
+ es
+\series bold
+
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+-regular
+\series default
+ si
+\begin_inset Formula $\varphi$
+\end_inset
+
+ es de clase
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+ y
+\begin_inset Formula $\forall p\in{\cal U},\text{rg}(d\varphi(p))=m$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+teorema de la función implícita
+\series default
+
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Esto corresponde a FVV3, pero lo estudiamos por su utilidad práctica.
+\end_layout
+
+\end_inset
+
+ afirma que, para
+\begin_inset Formula $A\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ y
+\begin_inset Formula $p\in A$
+\end_inset
+
+, existe un
+\begin_inset Formula ${\cal U}\in{\cal E}(p)$
+\end_inset
+
+ tal que
+\begin_inset Formula ${\cal U}\cap A$
+\end_inset
+
+ admite una presentación implícita
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+-regular si y sólo si existe
+\begin_inset Formula ${\cal U}'\in{\cal E}(p)$
+\end_inset
+
+ tal que
+\begin_inset Formula ${\cal U}\cap A$
+\end_inset
+
+ admite una parametrización
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+-regular.
+\end_layout
+
+\begin_layout Standard
+Sean pues
+\begin_inset Formula ${\cal U}\subseteq\mathbb{R}^{m}\overset{\varphi}{\longrightarrow}{\cal V}\subseteq\mathbb{R}^{n}\overset{f}{\longrightarrow}{\cal W}\subseteq\mathbb{R}^{k}$
+\end_inset
+
+ la parametrización y la forma implícita de
+\begin_inset Formula $A$
+\end_inset
+
+ y
+\begin_inset Formula $q\in{\cal U}$
+\end_inset
+
+ tal que
+\begin_inset Formula $\varphi(q)=p\in{\cal V}$
+\end_inset
+
+, se tiene que
+\begin_inset Formula $\text{Im}(d\varphi(q))=\ker(df(p))$
+\end_inset
+
+.
+ En efecto, como
+\begin_inset Formula $f$
+\end_inset
+
+ es constante en
+\begin_inset Formula $A$
+\end_inset
+
+ por ser
+\begin_inset Formula $f(A)=\{0\}$
+\end_inset
+
+,
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ también lo es, luego
+\begin_inset Formula $0=d(f\circ\varphi)(q)=df(p)\circ d\varphi(q)$
+\end_inset
+
+ y entonces
+\begin_inset Formula $\text{Im}(d\varphi(q))\subseteq\ker(df(p))$
+\end_inset
+
+, pero como ambos subespacios tienen la misma dirección
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+(¿por qué?)
+\end_layout
+
+\end_inset
+
+, se tiene la igualdad.
+ Esto significa además que este espacio no depende de
+\begin_inset Formula $\varphi$
+\end_inset
+
+ o
+\begin_inset Formula $f$
+\end_inset
+
+, y en esta situación llamamos
+\series bold
+espacio tangente
+\series default
+ al compacto
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+¿por qué compacto?
+\end_layout
+
+\end_inset
+
+
+\begin_inset Formula $A$
+\end_inset
+
+ en el punto
+\begin_inset Formula $p$
+\end_inset
+
+ al espacio afín que pasa por
+\begin_inset Formula $p$
+\end_inset
+
+ y tiene por dirección
+\begin_inset Formula $\text{Im}(d\varphi(q))=\ker(df(p))$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\series bold
+gradiente
+\series default
+ en
+\begin_inset Formula $a\in{\cal U}$
+\end_inset
+
+ de una función
+\begin_inset Formula $f:D\subseteq\mathbb{R}^{n}\rightarrow\mathbb{R}$
+\end_inset
+
+ diferenciable en
+\begin_inset Formula $a$
+\end_inset
+
+ al vector
+\begin_inset Formula $\nabla f(a):=\left(\frac{\partial f}{\partial x_{1}},\dots,\frac{\partial f}{\partial x_{n}}\right)\in\mathbb{R}^{n}$
+\end_inset
+
+, la matriz de la diferencial de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $a$
+\end_inset
+
+ expresada como vector.
+ Para encontrar los extremos relativos de una función
+\begin_inset Formula $f:D\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ sobre un subconjunto
+\begin_inset Formula $D\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ no abierto:
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $D$
+\end_inset
+
+ está dado en forma paramétrica como
+\begin_inset Formula $\varphi({\cal U})$
+\end_inset
+
+, donde
+\begin_inset Formula ${\cal U}$
+\end_inset
+
+ es un abierto de
+\begin_inset Formula $\mathbb{R}^{m}$
+\end_inset
+
+ y
+\begin_inset Formula $\varphi:{\cal {\cal U}}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ es diferenciable, buscamos los extremos relativos de
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ en
+\begin_inset Formula ${\cal U}$
+\end_inset
+
+, teniendo en cuenta que
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ tiene máximo absoluto en
+\begin_inset Formula $a$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $f$
+\end_inset
+
+ tiene un máximo absoluto en
+\begin_inset Formula $\varphi(a)$
+\end_inset
+
+.
+ Si además
+\begin_inset Formula $\varphi$
+\end_inset
+
+ es continua, un máximo relativo de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $\varphi(a)$
+\end_inset
+
+ implica uno de
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ en
+\begin_inset Formula $a$
+\end_inset
+
+, y si
+\begin_inset Formula $\varphi:({\cal U},{\cal T}_{u}|_{{\cal U}})\rightarrow(\varphi({\cal U}),{\cal T}_{u}|_{\varphi({\cal U})})$
+\end_inset
+
+ es abierta, un máximo relativo de
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ en
+\begin_inset Formula $a$
+\end_inset
+
+ es uno de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $\varphi(a)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $D$
+\end_inset
+
+ está dado en forma implícita como
+\begin_inset Formula $\{x\in{\cal U}:g(x)=0\}$
+\end_inset
+
+, donde
+\begin_inset Formula ${\cal U}$
+\end_inset
+
+ es un abierto de
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+ y
+\begin_inset Formula $g:{\cal U}\rightarrow\mathbb{R}^{k}$
+\end_inset
+
+ es de clase
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+, aplicamos el
+\series bold
+teorema de los multiplicadores de Lagrange
+\series default
+, que afirma que si
+\begin_inset Formula $f:{\cal U}\rightarrow\mathbb{R}$
+\end_inset
+
+ es diferenciable, alcanza en un punto
+\begin_inset Formula $a\in{\cal U}$
+\end_inset
+
+ un extremo relativo y
+\begin_inset Formula $\text{rg}(dg(a))=k$
+\end_inset
+
+, entonces
+\begin_inset Formula $\nabla f(a)\in\text{span}(\nabla g_{1}(a),\dots,\nabla g_{k}(a)):=<\nabla g_{1}(a),\dots,\nabla g_{k}(a)>$
+\end_inset
+
+ (el espacio generado por los vectores).
+
+\series bold
+Demostración:
+\series default
+ Por el teorema de la función implícita, existen
+\begin_inset Formula ${\cal V}\subseteq\mathbb{R}^{n-k}$
+\end_inset
+
+ abierto,
+\begin_inset Formula ${\cal W}\in{\cal E}(a)$
+\end_inset
+
+ y
+\begin_inset Formula $\varphi:{\cal V}\rightarrow{\cal W}$
+\end_inset
+
+ de clase
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+ con
+\begin_inset Formula $\text{rg}(d\varphi(a))=n-k$
+\end_inset
+
+ tales que
+\begin_inset Formula $D\cap{\cal W}=\varphi({\cal V})$
+\end_inset
+
+, y si
+\begin_inset Formula $a$
+\end_inset
+
+ es extremo relativo de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $D$
+\end_inset
+
+, por la continuidad de
+\begin_inset Formula $\varphi$
+\end_inset
+
+, el punto
+\begin_inset Formula $b\in{\cal V}$
+\end_inset
+
+ con
+\begin_inset Formula $\varphi(b)=a$
+\end_inset
+
+ es extremo relativo de
+\begin_inset Formula $f\circ\varphi$
+\end_inset
+
+ en
+\begin_inset Formula ${\cal V}$
+\end_inset
+
+, luego
+\begin_inset Formula $d(f\circ\varphi)(b)=0=df(a)\circ\varphi(b)$
+\end_inset
+
+ y entonces
+\begin_inset Formula $\text{Im}(d\varphi(b))=\ker(dg(a))=\ker(dg_{1}(a),\dots,dg_{k}(a))\subseteq\ker(df(a))$
+\end_inset
+
+ y por tanto
+\begin_inset Formula $\bigcap_{i=1}^{k}\ker(dg_{i}(a))\subseteq\ker(df(a))$
+\end_inset
+
+, que por un misterioso lema de álgebra equivale a que
+\begin_inset Formula $df(a)\in\text{span}(dg_{1}(a),\dots,dg_{k}(a))$
+\end_inset
+
+.
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+¿Ñandé?
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/fvv2/n.lyx b/fvv2/n.lyx
new file mode 100644
index 0000000..be70f72
--- /dev/null
+++ b/fvv2/n.lyx
@@ -0,0 +1,218 @@
+#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
+Funciones de varias variables II
+\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
+Funciones de varias variables II: Integración, Antonio José Pallarés Ruiz,
+ Universidad de Murcia (Curso 2010–11).
+\end_layout
+
+\begin_layout Itemize
+Measure and Integral: An Introduction to Real Analysis, Richard L.
+ Wheeden & Antoni Zygmund.
+\end_layout
+
+\begin_layout Itemize
+Cálculo en variedades, Michael Spivak.
+\end_layout
+
+\begin_layout Itemize
+Medida e Integración: Notas de clase para el curso 1998–1999, Antonio José
+ Pallarés Ruiz, Departamento de Matemáticas, Universidad de Murcia.
+\end_layout
+
+\begin_layout Chapter
+Integración Riemann en varias variables
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Medidas de conjuntos
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+\begin_inset CommandInset include
+LatexCommand input
+filename "n2.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Integración Lebesgue
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n3.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Cambio de variable
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n4.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/fvv2/n1.lyx b/fvv2/n1.lyx
new file mode 100644
index 0000000..0537932
--- /dev/null
+++ b/fvv2/n1.lyx
@@ -0,0 +1,3333 @@
+#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 0
+\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
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{FUVR2}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+partición
+\series default
+ de
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ es una colección de puntos
+\begin_inset Formula $a=t_{0}<t_{1}<\dots<t_{n}=b$
+\end_inset
+
+ [...].
+ [...]
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $f\in{\cal R}[a,b]$
+\end_inset
+
+, llamamos
+\series bold
+integral indefinida
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ a la función
+\begin_inset Formula $F:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ con
+\begin_inset Formula $F(x):=\int_{a}^{x}f$
+\end_inset
+
+.
+ El
+\series bold
+TEOREMA FUNDAMENTAL DEL CÁLCULO
+\series default
+ afirma que, si
+\begin_inset Formula $f\in{\cal R}[a,b]$
+\end_inset
+
+ y
+\begin_inset Formula $F$
+\end_inset
+
+ es su integral indefinida, entonces
+\begin_inset Formula $F$
+\end_inset
+
+ es continua en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ y si
+\begin_inset Formula $f$
+\end_inset
+
+ es continua en
+\begin_inset Formula $c\in(a,b)$
+\end_inset
+
+ entonces
+\begin_inset Formula $F$
+\end_inset
+
+ es derivable en
+\begin_inset Formula $c$
+\end_inset
+
+ y
+\begin_inset Formula $F'(c)=f(c)$
+\end_inset
+
+, y esto también ocurre con los extremos del intervalo y las correspondientes
+ derivadas laterales.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Integral de Riemann para funciones de varias variables
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\series bold
+gráfica
+\series default
+ de una función
+\begin_inset Formula $f:[a_{1},b_{1}]\times\dots\times[a_{n},b_{n}]\rightarrow\mathbb{R}$
+\end_inset
+
+ a
+\begin_inset Formula
+\[
+\text{graf}(f):=\{(x_{1},\dots,x_{n},y)\in\mathbb{R}^{n+1}:(x_{1},\dots,x_{n})\in[a_{1},b_{1}]\times\dots\times[a_{n},b_{n}]\land y=f(x_{1},\dots,x_{n})\}
+\]
+
+\end_inset
+
+y
+\series bold
+subgrafo
+\series default
+ a
+\begin_inset Formula
+\begin{multline*}
+\text{subgraf}(f):=\\
+\{(x_{1},\dots,x_{n},y)\in\mathbb{R}^{n+1}:(x_{1},\dots,x_{n})\in[a_{1},b_{1}]\times\dots\times[a_{n},b_{n}]\land0\leq y\leq f(x_{1},\dots,x_{n})\}
+\end{multline*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+volumen
+\series default
+ del
+\series bold
+rectángulo
+\series default
+
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional
+\begin_inset Formula $R:=[a_{1},b_{1}]\times\dots\times[a_{n},b_{n}]\subset\mathbb{R}^{n}$
+\end_inset
+
+ se define como
+\begin_inset Formula $v(R)=(b_{1}-a_{1})\cdots(b_{n}-a_{n})$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $n=1$
+\end_inset
+
+,
+\begin_inset Formula $R$
+\end_inset
+
+ es un intervalo y
+\begin_inset Formula $v(R)$
+\end_inset
+
+ es su
+\series bold
+longitud
+\series default
+; si
+\begin_inset Formula $n=2$
+\end_inset
+
+,
+\begin_inset Formula $R$
+\end_inset
+
+ es un rectángulo y
+\begin_inset Formula $v(R)$
+\end_inset
+
+ es su
+\series bold
+área
+\series default
+, y si
+\begin_inset Formula $n=3$
+\end_inset
+
+,
+\begin_inset Formula $R$
+\end_inset
+
+ es un paralelepípedo recto y
+\begin_inset Formula $v(R)$
+\end_inset
+
+ es su
+\series bold
+volumen
+\series default
+ tridimensional.
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+partición
+\series default
+ sobre este rectángulo es una lista
+\begin_inset Formula $P:=(P_{1},\dots,P_{n})$
+\end_inset
+
+ en la que cada
+\begin_inset Formula $P_{i}$
+\end_inset
+
+ es una partición de
+\begin_inset Formula $[a_{i},b_{i}]$
+\end_inset
+
+.
+ Si cada
+\begin_inset Formula $P_{i}$
+\end_inset
+
+ divide el intervalo
+\begin_inset Formula $[a_{i},b_{i}]$
+\end_inset
+
+ en
+\begin_inset Formula $k_{i}$
+\end_inset
+
+ subintervalos, los
+\begin_inset Formula $k_{1}\cdots k_{n}$
+\end_inset
+
+ rectángulos en los que
+\begin_inset Formula $P$
+\end_inset
+
+ divide a
+\begin_inset Formula $R$
+\end_inset
+
+ son los
+\series bold
+subrectángulos
+\series default
+ de la partición
+\begin_inset Formula $P$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $f:R\rightarrow\mathbb{R}$
+\end_inset
+
+ es acotada y
+\begin_inset Formula $P:=(P_{i})_{i=1}^{n}$
+\end_inset
+
+ es una partición de
+\begin_inset Formula $R$
+\end_inset
+
+ que lo divide en una cantidad finita de subrectángulos
+\begin_inset Formula $\{S_{i}\}_{i=1}^{N}$
+\end_inset
+
+, si para cada
+\begin_inset Formula $S_{h}$
+\end_inset
+
+ denotamos
+\begin_inset Formula $m_{S_{h}}(f):=\inf\{f(x)\}_{x\in S_{h}}$
+\end_inset
+
+ y
+\begin_inset Formula $M_{S_{h}}(f)=\sup\{f(x)\}_{x\in S_{h}}$
+\end_inset
+
+, y definimos las
+\series bold
+sumas inferior
+\series default
+ y
+\series bold
+superior
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ correspondientes a la partición
+\begin_inset Formula $P$
+\end_inset
+
+, respectivamente, como
+\begin_inset Formula
+\begin{eqnarray*}
+s(f,P):=\sum_{h=1}^{N}m_{S_{h}}(f)v(S_{h}) & \text{y} & S(f,P):=\sum_{h=1}^{N}M_{S_{h}}(f)v(S_{h})
+\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula $P$
+\end_inset
+
+ y
+\begin_inset Formula $P'$
+\end_inset
+
+ dos particiones del rectángulo
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional
+\begin_inset Formula $R$
+\end_inset
+
+ tales que
+\begin_inset Formula $P'\succeq P$
+\end_inset
+
+ (
+\begin_inset Formula $\forall i\in\{1,\dots,n\},P'_{i}\succeq P_{i}$
+\end_inset
+
+ o, equivalentemente, cada subrectángulo de
+\begin_inset Formula $P'$
+\end_inset
+
+ está contenido en uno de
+\begin_inset Formula $P$
+\end_inset
+
+) y
+\begin_inset Formula $f:R\rightarrow\mathbb{R}$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+s(f,P)\leq s(f,P')\leq S(f,P')\leq S(f,P)
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Demostración:
+\series default
+ Obviamente
+\begin_inset Formula $s(f,P')\leq S(f,P')$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $P$
+\end_inset
+
+ se divide en los subrectángulos
+\begin_inset Formula $\{S_{i},\dots,S_{N}\}$
+\end_inset
+
+ y
+\begin_inset Formula $P'$
+\end_inset
+
+ en
+\begin_inset Formula $\{S'_{1},\dots,S'_{M}\}$
+\end_inset
+
+, dado un subrectángulo
+\begin_inset Formula $S_{i}$
+\end_inset
+
+ de
+\begin_inset Formula $P$
+\end_inset
+
+ que se expresa como unión de subrectángulos
+\begin_inset Formula $S_{i1},\dots,S_{ik_{i}}$
+\end_inset
+
+ de
+\begin_inset Formula $P'$
+\end_inset
+
+, es claro que para
+\begin_inset Formula $j\in\{1,\dots,k_{i}\}$
+\end_inset
+
+,
+\begin_inset Formula $m_{S}(f)=\inf\{f(x)\}_{x\in S_{i}}\leq m_{S_{ij}}(f)=\inf\{f(x)\}_{x\in S_{ij}}$
+\end_inset
+
+.
+ Por otro lado,
+\begin_inset Formula $v(S_{i})=\sum_{j=1}^{k_{i}}v(S_{ij})$
+\end_inset
+
+, con lo que
+\begin_inset Formula $m_{S_{i}}(f)v(S_{i})=m_{S_{i}}(f)\sum_{j=1}^{k_{i}}v(S_{ij})=\sum_{j=1}^{k_{i}}m_{S_{i}}(f)v(S_{ij})\leq\sum_{j=1}^{k_{i}}m_{S_{ij}}(f)v(S_{ij})$
+\end_inset
+
+ y entonces
+\begin_inset Formula $s(f,P)=\sum_{i=1}^{N}m_{S_{i}}(f)v(S_{i})\leq\sum_{i=1}^{N}\sum_{j=1}^{k_{i}}m_{S_{ij}}(f)v(S_{ij})=\sum_{i=1}^{M}m_{S'_{i}}(f)v(S'_{i})=s(f,P')$
+\end_inset
+
+.
+ La prueba de que
+\begin_inset Formula $S(f,P')\leq S(f,P)$
+\end_inset
+
+ se hace de forma análoga.
+\end_layout
+
+\begin_layout Standard
+Definimos las
+\series bold
+integrales superior e inferior de Riemann
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $R$
+\end_inset
+
+, respectivamente, como
+\begin_inset Formula
+\begin{eqnarray*}
+\overline{\int_{R}}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n} & := & \inf\{S(f,P)\}_{P\text{ partición de }R}\\
+\underline{\int_{R}}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n} & := & \sup\{s(f,P)\}_{P\text{ partición de }R}
+\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Por lo anterior, es claro que la integral inferior es siempre menor o igual
+ a la su
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pe
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rior.
+ Si son iguales decimos que
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\series bold
+integrable Riemann
+\series default
+ en
+\begin_inset Formula $R$
+\end_inset
+
+ (
+\begin_inset Formula $f\in{\cal R}(R)$
+\end_inset
+
+) con
+\series bold
+integral
+\series default
+
+\begin_inset Formula $\int_{R}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}$
+\end_inset
+
+ igual a estas dos.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $f\in{\cal R}(R)\iff\forall\varepsilon>0,\exists P_{\varepsilon}:S(f,P_{\varepsilon})-s(f,P_{\varepsilon})\leq\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Basta tomar
+\begin_inset Formula $P$
+\end_inset
+
+ y
+\begin_inset Formula $P'$
+\end_inset
+
+ con
+\begin_inset Formula $S(f,P)\leq\int_{R}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}+\frac{\varepsilon}{2}$
+\end_inset
+
+ y
+\begin_inset Formula $s(f,P')\geq\int_{R}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}-\frac{\varepsilon}{2}$
+\end_inset
+
+ y quedarnos con la partición
+\begin_inset Formula $P\lor P'$
+\end_inset
+
+ (
+\begin_inset Formula $\{P_{i}\lor P'_{i}\}_{i=1}^{n}$
+\end_inset
+
+).
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Si se cumple
+\begin_inset Formula $0\leq\overline{\int_{R}}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}-\underline{\int_{R}}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}\leq S(f,P_{\varepsilon})-s(f,P_{\varepsilon})\leq\varepsilon$
+\end_inset
+
+ para todo
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, haciendo tender
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+ a 0 obtenemos la igualdad de las integrales superior e inferior.
+\end_layout
+
+\begin_layout Standard
+La integral es un operador lineal: sean
+\begin_inset Formula $f,g\in{\cal R}(R)$
+\end_inset
+
+ y
+\begin_inset Formula $c\in\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $f+g\in{\cal R}(R)$
+\end_inset
+
+ con
+\begin_inset Formula $\int_{R}(f+g)(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}=\int_{R}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}+\int_{R}g(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}$
+\end_inset
+
+, y
+\begin_inset Formula $cf\in{\cal R}(R)$
+\end_inset
+
+ con
+\begin_inset Formula $\int_{R}(cf)(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}=c\int_{R}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}$
+\end_inset
+
+.
+
+\series bold
+Demostración:
+\series default
+ Se deriva de que para
+\begin_inset Formula $S\subseteq R$
+\end_inset
+
+,
+\begin_inset Formula $m_{S}(f)+m_{S}(g)\leq m_{S}(f+g)$
+\end_inset
+
+,
+\begin_inset Formula $M_{S}(f+g)\leq M_{S}(f)+M_{S}(g)$
+\end_inset
+
+ y
+\begin_inset Formula $M_{S}(cf)=cM_{S}(f)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+También es un operador positivo.
+ Sean
+\begin_inset Formula $f,g\in{\cal R}(R)$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\forall(x_{1},\dots,x_{n})\in R,f(x_{1},\dots,x_{n})\geq0\implies\int_{R}(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}\geq0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\forall(x_{1},\dots,x_{n})\in R,f(x_{1},\dots,x_{n})\geq g(x_{1},\dots,x_{n})\implies\int_{R}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}\geq\int_{R}g(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $|f|\in{\cal R}(R)$
+\end_inset
+
+ y
+\begin_inset Formula $\left|\int_{R}f(x_{1},\dots,x_{n})dx_{1}\dots dx_{n}\right|\leq\int_{R}|f(x_{1},\dots,x_{n})|dx_{1}\dots dx_{n}$
+\end_inset
+
+ (desigualdad triangular).
+\end_layout
+
+\begin_layout Standard
+Definimos la
+\series bold
+oscilación
+\series default
+ de
+\begin_inset Formula $f:R\rightarrow\mathbb{R}$
+\end_inset
+
+ en
+\begin_inset Formula $S\subseteq R$
+\end_inset
+
+ como
+\begin_inset Formula
+\[
+\text{osc}(f,S):=M_{S}(f)-m_{S}(f)=\sup\{|f(x)-f(y)|\}_{x,y\in S}
+\]
+
+\end_inset
+
+ y la oscilación de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $x\in R$
+\end_inset
+
+ como
+\begin_inset Formula
+\[
+\text{osc}(f,x):=\inf\{\text{osc}(f,S\cap T)\}_{T\text{ rectángulo abierto centrado en }S}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Vemos que
+\begin_inset Formula $f$
+\end_inset
+
+ es continua en
+\begin_inset Formula $x$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $\text{osc}(f,x)=0$
+\end_inset
+
+, y que para cada
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+ y cada
+\begin_inset Formula $x$
+\end_inset
+
+ donde
+\begin_inset Formula $f$
+\end_inset
+
+ es continua existe un cubo abierto
+\begin_inset Formula $C_{x}(d_{x})$
+\end_inset
+
+ centrado en
+\begin_inset Formula $x$
+\end_inset
+
+ con diámetro
+\begin_inset Formula $d_{x}$
+\end_inset
+
+ donde la oscilación de
+\begin_inset Formula $f$
+\end_inset
+
+ es menor que
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{TEM}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Toda
+\begin_inset Formula $f:(X,d)\rightarrow(Y,d')$
+\end_inset
+
+ continua, siendo
+\begin_inset Formula $(X,{\cal T}_{d})$
+\end_inset
+
+ compacto, es uniformemente continua.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, toda
+\begin_inset Formula $f:R\rightarrow\mathbb{R}$
+\end_inset
+
+ continua definida en un rectángulo cerrado
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional
+\begin_inset Formula $R$
+\end_inset
+
+ es integrable Riemann en
+\begin_inset Formula $R$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Conjuntos de contenido y de medida nula
+\end_layout
+
+\begin_layout Standard
+Un subconjunto
+\begin_inset Formula $S\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ tiene
+\series bold
+medida
+\series default
+ (
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional)
+\series bold
+nula
+\series default
+ si para cada
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+ existe una sucesión
+\begin_inset Formula $(R_{k})_{k}$
+\end_inset
+
+ de rectángulos
+\begin_inset Formula $n$
+\end_inset
+
+-dimensionales cerrados tal que
+\begin_inset Formula $S\subseteq\bigcup_{j=1}^{\infty}R_{j}$
+\end_inset
+
+ y
+\begin_inset Formula $\sum_{j=1}^{\infty}v(R_{j})<\varepsilon$
+\end_inset
+
+.
+ Sustituyendo los rectángulos cerrados por rectángulos abiertos obtenemos
+ el mismo concepto.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Fijado
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+, sea
+\begin_inset Formula $(R_{k})_{k}$
+\end_inset
+
+ la sucesión de cerrados que cumple las propiedades y
+\begin_inset Formula $0<d<\varepsilon-\sum_{j=1}^{\infty}v(R_{j})$
+\end_inset
+
+.
+ Para cada rectángulo
+\begin_inset Formula $R_{k}$
+\end_inset
+
+, tomamos un rectángulo abierto
+\begin_inset Formula $R'_{k}\supseteq R_{k}$
+\end_inset
+
+ tal que
+\begin_inset Formula $v(R'_{k})\leq R_{k}+\frac{d}{2^{k+1}}$
+\end_inset
+
+, y vemos que, en efecto,
+\begin_inset Formula $\sum_{j=1}^{\infty}v(R'_{j})\leq\sum_{j=1}^{\infty}v(R_{j})+\sum_{j=1}^{\infty}\frac{d}{2^{k+1}}<\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Fijado
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, sea
+\begin_inset Formula $(R_{k})_{k\in\mathbb{N}}$
+\end_inset
+
+ una sucesión de rectángulos abiertos que cumple las propiedades, vemos
+ que
+\begin_inset Formula $N\subseteq\bigcup_{k\in\mathbb{N}}R_{k}\subseteq\bigcup_{k\in\mathbb{N}}\overline{R_{k}}$
+\end_inset
+
+ y que
+\begin_inset Formula $\sum_{j=1}^{\infty}v(\overline{R_{j}})=\sum_{j=1}^{\infty}v(R_{j})<\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, la unión numerable de conjuntos de medida nula tiene medida nula.
+
+\series bold
+Demostración:
+\series default
+ Consideremos
+\begin_inset Formula $\bigcup_{i=1}^{\infty}S_{i}$
+\end_inset
+
+.
+ Fijado
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+, para cada
+\begin_inset Formula $i\in\mathbb{N}$
+\end_inset
+
+ utilizamos que
+\begin_inset Formula $S_{i}$
+\end_inset
+
+ es de medida nula para recubrirlo con una sucesión
+\begin_inset Formula $\{R_{ij}\}_{j\in\mathbb{N}}$
+\end_inset
+
+ cuyos volúmenes suman menos que
+\begin_inset Formula $\frac{\varepsilon}{2^{i}}$
+\end_inset
+
+.
+ Vemos que
+\begin_inset Formula $\{R_{ij}\}_{i,j\in\mathbb{N}}$
+\end_inset
+
+ es numerable y podemos describirlo como una sucesión que recubre
+\begin_inset Formula $N$
+\end_inset
+
+ y cuyos volúmenes suman menos que
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+, pues
+\begin_inset Formula $\sum_{i,j=1}^{\infty}v(R_{ij})=\sum_{i=1}^{\infty}(\sum_{j=1}^{\infty}v(R_{ij}))<\sum_{i=1}^{\infty}\frac{\varepsilon}{2^{i}}=\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Un subconjunto
+\begin_inset Formula $S\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ tiene
+\series bold
+contenido
+\series default
+ (
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional)
+\series bold
+nulo
+\series default
+ si para cada
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+ existe una familia finita de rectángulos
+\begin_inset Formula $n$
+\end_inset
+
+-dimensionales cerrados que cumplen las mismas condiciones que los de la
+ definición de medida nula.
+ Es claro que todo conjunto de contenido nulo tiene medida nula.
+ Como
+\series bold
+teorema
+\series default
+, todo compacto en
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+ de medida nula es de contenido nulo; basta usar un cubrimiento con rectángulos
+ abiertos en la definición de medida nula y extraer un subrecubrimiento
+ finito por compacidad.
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $f:R\subseteq\mathbb{R}^{m}\rightarrow\mathbb{R}$
+\end_inset
+
+ es integrable Riemann en el rectángulo cerrado
+\begin_inset Formula $R$
+\end_inset
+
+, entonces
+\begin_inset Formula $\text{graf}(f)$
+\end_inset
+
+ tiene contenido
+\begin_inset Formula $(m+1)$
+\end_inset
+
+-dimensional nulo.
+\end_layout
+
+\begin_layout Subsection
+El conjunto de Cantor
+\end_layout
+
+\begin_layout Standard
+Consideremos el intervalo
+\begin_inset Formula $[0,1]$
+\end_inset
+
+, que dividimos en 3 subintervalos y eliminamos el subintervalo abierto
+ central,
+\begin_inset Formula $(\frac{1}{3},\frac{2}{3})$
+\end_inset
+
+.
+ A continuación, de cada subintervalo cerrado restante, eliminamos el subinterva
+lo abierto central de longitud la tercera parte del subintervalo original.
+ Repitiendo este proceso indefinidamente lo que nos queda es el
+\series bold
+conjunto de Cantor
+\series default
+,
+\begin_inset Formula $C$
+\end_inset
+
+.
+ Observamos que un número está en el conjunto de Cantor si y sólo si su
+ representación en base 3,
+\begin_inset Formula $0.c_{1}c_{2}c_{3}\cdots c_{n}\cdots$
+\end_inset
+
+, contiene sólo los dígitos 0 y 2, teniendo en cuenta que el número puede
+ también acabar por una secuencia infinita de doses.
+ Teoremas:
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $C$
+\end_inset
+
+ es incontable, con igual cardinalidad que
+\begin_inset Formula $[0,1]$
+\end_inset
+
+.
+\begin_inset Newline newline
+\end_inset
+
+La función
+\begin_inset Formula $f:C\rightarrow[0,1]$
+\end_inset
+
+ dada por
+\begin_inset Formula $f(0.c_{1}c_{2}\cdots c_{n}\cdots_{(3)}):=0.\frac{c_{1}}{2}\frac{c_{2}}{2}\cdots\frac{c_{n}}{2}\cdots_{(2)}$
+\end_inset
+
+ es suprayectiva, luego
+\begin_inset Formula $|C|\geq|[0,1]|$
+\end_inset
+
+, pero es claro que
+\begin_inset Formula $|C|\leq|[0,1]|$
+\end_inset
+
+, luego
+\begin_inset Formula $|C|=|[0,1]|$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $C$
+\end_inset
+
+ es de medida nula.
+\begin_inset Newline newline
+\end_inset
+
+Al principio
+\begin_inset Formula $[0,1]$
+\end_inset
+
+ tiene longitud 1, y es fácil ver que si en un
+\begin_inset Quotes fld
+\end_inset
+
+paso
+\begin_inset Quotes frd
+\end_inset
+
+ de la construcción el conjunto resultante tiene longitud
+\begin_inset Formula $n$
+\end_inset
+
+, en el siguiente tendrá longitud
+\begin_inset Formula $\frac{2}{3}n$
+\end_inset
+
+.
+ Por tanto la longitud de
+\begin_inset Formula $C$
+\end_inset
+
+ es
+\begin_inset Formula $\lim_{n}\left(\frac{2}{3}\right)^{n}=0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $C$
+\end_inset
+
+ no tiene puntos interiores.
+\begin_inset Newline newline
+\end_inset
+
+Como es de medida nula no contiene puntos de acumulación, pues para ello
+ debería contener intervalos, de medida no nula.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $C$
+\end_inset
+
+ está acotado.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $C$
+\end_inset
+
+ es cerrado.
+\begin_inset Newline newline
+\end_inset
+
+Es el resultado de quitar a un cerrado (
+\begin_inset Formula $[0,1]$
+\end_inset
+
+) un abierto (la unión de los abiertos eliminados en su construcción).
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $C$
+\end_inset
+
+ no tiene puntos aislados.
+\begin_inset Newline newline
+\end_inset
+
+Dado
+\begin_inset Formula $x\in C$
+\end_inset
+
+ y
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, sea
+\begin_inset Formula $n$
+\end_inset
+
+ tal que
+\begin_inset Formula $\frac{2}{3^{n}}<\varepsilon$
+\end_inset
+
+, existe un punto, el resultado de cambiar la cifra
+\begin_inset Formula $n$
+\end_inset
+
+-ésima de
+\begin_inset Formula $x$
+\end_inset
+
+ por un 2 si era un 0 o viceversa, cuya distancia a
+\begin_inset Formula $x$
+\end_inset
+
+ es menor que
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+Dados
+\begin_inset Formula $a,b\in C$
+\end_inset
+
+ distintos, existe una partición
+\begin_inset Formula $\{A,B\}$
+\end_inset
+
+ de
+\begin_inset Formula $C$
+\end_inset
+
+ con
+\begin_inset Formula $A$
+\end_inset
+
+ y
+\begin_inset Formula $B$
+\end_inset
+
+ cerrados,
+\begin_inset Formula $a\in A$
+\end_inset
+
+ y
+\begin_inset Formula $b\in B$
+\end_inset
+
+.
+\begin_inset Newline newline
+\end_inset
+
+Sea
+\begin_inset Formula $n$
+\end_inset
+
+ la posición de una cifra (en base 3) en la que
+\begin_inset Formula $a$
+\end_inset
+
+ y
+\begin_inset Formula $b$
+\end_inset
+
+ difieren, basta hacer la partición según el valor de dicha cifra.
+\end_layout
+
+\begin_layout Subsection
+Caracterización
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $A\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ cerrado, si
+\begin_inset Formula $f:A\rightarrow\mathbb{R}$
+\end_inset
+
+ es acotada y
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+,
+\begin_inset Formula $B:=\{x\in A:\text{osc}(f,x)\geq\varepsilon\}$
+\end_inset
+
+ es cerrado.
+
+\series bold
+Demostración:
+\series default
+ Sea
+\begin_inset Formula $x\in\mathbb{R}^{n}\backslash B$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $x\notin A$
+\end_inset
+
+, existe una bola de centro
+\begin_inset Formula $x$
+\end_inset
+
+ que no interseca con
+\begin_inset Formula $A$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $x\in A$
+\end_inset
+
+, existe un rectángulo abierto
+\begin_inset Formula $C\ni x$
+\end_inset
+
+ con
+\begin_inset Formula $\text{osc}(f,c)<\varepsilon$
+\end_inset
+
+, y para
+\begin_inset Formula $y\in C$
+\end_inset
+
+ existe
+\begin_inset Formula $\delta_{y}$
+\end_inset
+
+ tal que si
+\begin_inset Formula $\Vert z-y\Vert<\delta_{y}$
+\end_inset
+
+ entonces
+\begin_inset Formula $\Vert x-z\Vert<\delta$
+\end_inset
+
+, con lo que
+\begin_inset Formula $\text{osc}(f,y)<\varepsilon$
+\end_inset
+
+ y
+\begin_inset Formula $C\subseteq\mathbb{R}^{n}\backslash B$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+teorema de Lebesgue de caracterización de las funciones integrables
+\series default
+ afirma que si
+\begin_inset Formula $R$
+\end_inset
+
+ es un rectángulo
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional cerrado y
+\begin_inset Formula $f:R\rightarrow\mathbb{R}$
+\end_inset
+
+ es acotada, entonces
+\begin_inset Formula $f\in{\cal R}(R)$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $B:=\{x\in R:f\text{ no es continua en }x\}$
+\end_inset
+
+ tiene medida nula.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Sea
+\begin_inset Formula $B_{k}:=\{x\in R:o(f,x)\geq\frac{1}{k}\}$
+\end_inset
+
+, basta probar que cada
+\begin_inset Formula $B_{k}$
+\end_inset
+
+ tiene medida nula dado que
+\begin_inset Formula $B=\bigcup_{k\in\mathbb{N}}B_{k}$
+\end_inset
+
+.
+ Dado
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, sean
+\begin_inset Formula $P$
+\end_inset
+
+ una partición de
+\begin_inset Formula $R$
+\end_inset
+
+ con
+\begin_inset Formula $S(f,P)-s(f,P)<\frac{\varepsilon}{k}$
+\end_inset
+
+ y
+\begin_inset Formula ${\cal S}$
+\end_inset
+
+ el conjunto de subrectángulos de
+\begin_inset Formula $P$
+\end_inset
+
+ que cortan a
+\begin_inset Formula $B_{k}$
+\end_inset
+
+ , entonces para
+\begin_inset Formula $S\in{\cal S}$
+\end_inset
+
+ se tiene
+\begin_inset Formula $M_{S}(f)-m_{S}(f)\geq\frac{1}{k}$
+\end_inset
+
+ y
+\begin_inset Formula
+\[
+\frac{1}{k}\sum_{S\in{\cal S}}v(S)\leq\sum_{S\in{\cal S}}(M_{S}(f)-m_{S}(f))v(S)\leq S(f,P)-s(f,P)<\frac{\varepsilon}{k}
+\]
+
+\end_inset
+
+con lo que
+\begin_inset Formula $\sum_{S\in{\cal S}}v(S)<\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Fijado
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, sea
+\begin_inset Formula $K$
+\end_inset
+
+ tal que
+\begin_inset Formula $|f(x)|\leq K\forall x\in R$
+\end_inset
+
+, y tenemos que
+\begin_inset Formula $M_{N}(f)-m_{N}(f)\leq2K\forall N\subseteq R$
+\end_inset
+
+.
+ Consideramos el conjunto de puntos donde
+\begin_inset Formula $\text{osc}(f,x)\geq\frac{\varepsilon}{2v(R)}$
+\end_inset
+
+, un cerrado de medida nula y por tanto un compacto de contenido nulo, que
+ podemos cubrir con una cantidad finita de abiertos
+\begin_inset Formula $N_{k}$
+\end_inset
+
+ tales que
+\begin_inset Formula $\sum_{k}v(N_{k})<\frac{\varepsilon}{4K}$
+\end_inset
+
+, y por tanto
+\begin_inset Formula $\sum_{k}\text{osc}(N_{k},f)v(N_{k})<2K\cdot\frac{\varepsilon}{4K}=\frac{\varepsilon}{2}$
+\end_inset
+
+.
+ Es claro que
+\begin_inset Formula $C:=R\backslash\bigcup_{k}N_{k}$
+\end_inset
+
+ es compacto, y como para cada
+\begin_inset Formula $x\in C$
+\end_inset
+
+ podemos tomar un
+\begin_inset Formula $S_{x}$
+\end_inset
+
+ abierto tal que
+\begin_inset Formula $\text{osc}(f,S_{x})<\frac{\varepsilon}{2v(R)}$
+\end_inset
+
+, existe un subrecubrimiento finito
+\begin_inset Formula $S_{x_{i}}$
+\end_inset
+
+ a partir de este, de modo que
+\begin_inset Formula $\sum_{i}\text{osc}(f,S_{x_{i}})v(S_{x_{i}})<\frac{\varepsilon}{2v(R)}\cdot v(R)=\frac{\varepsilon}{2}$
+\end_inset
+
+ La partición
+\begin_inset Formula $P$
+\end_inset
+
+ cuyos subintervalos están contenidos bien en un rectángulo
+\begin_inset Formula $S_{x_{i}}$
+\end_inset
+
+ o
+\begin_inset Formula $N_{k}$
+\end_inset
+
+ cumple que
+\begin_inset Formula $S(f,P)-s(f,P)\leq\sum_{k}\text{osc}(f,N_{k})v(N_{k})+\sum_{i}\text{osc}(f,S_{x_{i}})v(S_{x_{i}})<\frac{\varepsilon}{2}+\frac{\varepsilon}{2}=\varepsilon$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+Conjuntos medibles Jordan
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $A\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ acotado es
+\series bold
+medible Jordan
+\series default
+ si su
+\series bold
+función característica
+\series default
+,
+\begin_inset Formula
+\[
+\chi_{A}(x):=\begin{cases}
+1 & \text{si }x\in A\\
+0 & \text{si }x\notin A
+\end{cases}
+\]
+
+\end_inset
+
+ es integrable Riemann en un rectángulo cerrado
+\begin_inset Formula $R\supseteq A$
+\end_inset
+
+, y se define el
+\series bold
+volumen
+\series default
+
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional de
+\begin_inset Formula $A$
+\end_inset
+
+ como
+\begin_inset Formula
+\[
+v(A):=\int_{R}\chi_{A}(x_{1},\dots,x_{n})dx_{1}\cdots dx_{n}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Equivalentemente,
+\begin_inset Formula $A$
+\end_inset
+
+ es medible Jordan si y sólo si su frontera,
+\begin_inset Formula $\partial A=\overline{A}\backslash\mathring{A}$
+\end_inset
+
+, tiene medida nula.
+ Se dice que una función acotada
+\begin_inset Formula $f:A\rightarrow\mathbb{R}$
+\end_inset
+
+ es integrable Riemann en
+\begin_inset Formula $A$
+\end_inset
+
+ si
+\begin_inset Formula $f\chi_{A}\in{\cal R}(R)$
+\end_inset
+
+.
+ Por ejemplo, si
+\begin_inset Formula $N$
+\end_inset
+
+ tiene contenido nulo y
+\begin_inset Formula $f:N\rightarrow\mathbb{R}$
+\end_inset
+
+ es acotada, entonces
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Riemann en
+\begin_inset Formula $N$
+\end_inset
+
+ y
+\begin_inset Formula $\int_{N}f(x)dx=0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Teorema de Fubini
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Sean
+\begin_inset Formula $R_{1}\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ y
+\begin_inset Formula $R_{2}\subseteq\mathbb{R}^{m}$
+\end_inset
+
+ rectángulos cerrados de dimensiones respectivas
+\begin_inset Formula $n$
+\end_inset
+
+ y
+\begin_inset Formula $m$
+\end_inset
+
+,
+\begin_inset Formula $R=R_{1}\times R_{2}\subseteq\mathbb{R}^{n+m}$
+\end_inset
+
+ un rectángulo cerrado
+\begin_inset Formula $(n+m)$
+\end_inset
+
+-dimensional y
+\begin_inset Formula $f:R\rightarrow\mathbb{R}$
+\end_inset
+
+ una función acotada.
+ Para cada
+\begin_inset Formula $x\in R_{1}$
+\end_inset
+
+ definimos
+\begin_inset Formula $lf_{x}:R_{2}\rightarrow\mathbb{R}$
+\end_inset
+
+ como
+\begin_inset Formula $lf_{x}(y):=f(x,y)$
+\end_inset
+
+,
+\begin_inset Formula $s_{lf}(x):=\underline{\int_{R_{2}}}lf_{x}(y_{1},\dots,y_{m})dy_{1}\cdots dy_{m}$
+\end_inset
+
+ y
+\begin_inset Formula $S_{lf}(x):=\overline{\int_{R_{2}}}lf_{x}(y_{1},\dots,y_{m})dy_{1}\cdots dy_{m}$
+\end_inset
+
+, y para cada
+\begin_inset Formula $y\in R_{2}$
+\end_inset
+
+ definimos
+\begin_inset Formula $rf_{y}(x):=f(x,y)$
+\end_inset
+
+,
+\begin_inset Formula $s_{rf}(y):=\int_{R_{1}}rf_{y}(x_{1},\dots,x_{n})dx_{1}\cdots dx_{m}$
+\end_inset
+
+ y
+\begin_inset Formula $S_{rf}(y):=\overline{\int_{R_{1}}}rf_{y}(x_{1},\dots,x_{n})dx_{1}\cdots dx_{m}$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $f\in{\cal R}(R)$
+\end_inset
+
+ entonces
+\begin_inset Formula $s_{lf},S_{lf}\in{\cal R}(R_{1})$
+\end_inset
+
+,
+\begin_inset Formula $s_{rf},S_{rf}\in{\cal R}(R_{2})$
+\end_inset
+
+ y
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\begin_inset Formula
+\begin{multline*}
+\int_{R}f(x_{1},\dots,x_{n},y_{1},\dots,y_{m})dx_{1}\cdots dx_{n}dy_{1}\cdots dy_{m}=\\
+=\int_{R_{1}}s_{lf}(x_{1},\dots,x_{n})dx_{1}\cdots dx_{n}=\int_{R_{1}}S_{lf}(x_{1},\dots,x_{n})dx_{1}\cdots dx_{n}=\\
+=\int_{R_{2}}s_{rf}(y_{1},\dots,y_{m})dy_{1}\cdots dy_{m}=\int_{R_{2}}S_{rf}(y_{1},\dots,y_{m})dy_{1}\cdots dy_{m}
+\end{multline*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+En la práctica esto significa que
+\begin_inset Formula
+\[
+\int_{R}f(\vec{x},\vec{y})d\vec{x}d\vec{y}=\int_{R_{1}}\left(\int_{R_{2}}f(\vec{x},\vec{y})d\vec{y}\right)d\vec{x}=\int_{R_{2}}\left(\int_{R_{1}}f(\vec{x},\vec{y})d\vec{x}\right)d\vec{y}
+\]
+
+\end_inset
+
+donde
+\begin_inset Formula $d\vec{x}:=dx_{1}\cdots dx_{n}$
+\end_inset
+
+ y
+\begin_inset Formula $d\vec{y}:=dy_{1}\cdots dy_{m}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{FUVR2}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Cálculo de primitivas
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int u^{n}u'\,dx=\frac{u^{n+1}}{n+1}+C\forall n\neq-1$
+\end_inset
+
+;
+\begin_inset Formula $\int\frac{u'}{u}dx=\ln|u|+C\forall u\neq0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int e^{u}u'\,dx=e^{u}+C$
+\end_inset
+
+;
+\begin_inset Formula $\int a^{u}u'\,dx=\frac{a^{u}}{\ln a}+C\forall a>0,a\neq1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\cos u\,u'\,dx=\sin u+C$
+\end_inset
+
+;
+\begin_inset Formula $\int\sin u\,u'\,dx=-\cos u+C$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\cosh u\,u'\,dx=\sinh u+C$
+\end_inset
+
+;
+\begin_inset Formula $\int\sinh u\,u'\,dx=\cosh u+C$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\frac{u'}{\sin^{2}u}dx=\int\frac{u'}{\sinh^{2}u}dx=-\cot u+C$
+\end_inset
+
+;
+\begin_inset Formula $\int\frac{u'}{\cos^{2}u}dx=\int\frac{u'}{\cosh^{2}u}dx=\tan u+C$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\frac{u'}{1+u^{2}}dx=\arctan u+C$
+\end_inset
+
+;
+\begin_inset Formula $\int\frac{u'}{1-u^{2}}dx=\arg\tanh u+C$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\frac{u'}{\sqrt{1-u^{2}}}dx=\arcsin u+C=-\arccos u+C'$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\frac{u'}{\sqrt{u^{2}+1}}dx=\arg\sinh u+C$
+\end_inset
+
+;
+\begin_inset Formula $\int\frac{u'}{\sqrt{u^{2}-1}}dx=\arg\cosh u+C$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\backslash
+sremember{FUVR2}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula
+\begin{eqnarray*}
+\cosh(x)=\frac{e^{x}+e^{-x}}{2} & & \arg\cosh(x)=\ln(x+\sqrt{x^{2}-1})\\
+\sinh(x)=\frac{e^{x}-e^{-x}}{2} & & \arg\sinh(x)=\ln(x+\sqrt{x^{2}+1})\\
+\cosh^{2}(x)-\sinh^{2}(x)=1 & & \arg\tanh(x)=\frac{1}{2}\ln\frac{1+x}{1-x}
+\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Integración por partes
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula $f,g\in{\cal R}[a,b]$
+\end_inset
+
+ con primitivas respectivas
+\begin_inset Formula $F$
+\end_inset
+
+ y
+\begin_inset Formula $G$
+\end_inset
+
+,
+\begin_inset Formula
+\[
+\int_{a}^{b}Fg=F(b)G(b)-F(a)G(a)-\int_{a}^{b}fG
+\]
+
+\end_inset
+
+lo que suele escribirse como
+\begin_inset Formula $\int u\,dv=uv-\int v\,du$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+Cambio de variable
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, sea
+\begin_inset Formula $\varphi:[c,d]\rightarrow[a,b]\in{\cal C}^{1}[c,d]$
+\end_inset
+
+ con
+\begin_inset Formula $\varphi(c)=a$
+\end_inset
+
+ y
+\begin_inset Formula $\varphi(d)=b$
+\end_inset
+
+, sea
+\begin_inset Formula $f:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ continua, entonces
+\begin_inset Formula
+\[
+\int_{a}^{b}f=\int_{c}^{d}(f\circ\varphi)\varphi'
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Funciones racionales
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula $P(x)$
+\end_inset
+
+ y
+\begin_inset Formula $Q(x)$
+\end_inset
+
+ polinomios y queremos resolver
+\begin_inset Formula $\int_{a}^{b}\frac{P(x)}{Q(x)}dx$
+\end_inset
+
+.
+ Si el grado de
+\begin_inset Formula $P(x)$
+\end_inset
+
+ es mayor o igual que el de
+\begin_inset Formula $Q(x)$
+\end_inset
+
+ hacemos
+\begin_inset Formula $\int_{a}^{b}\frac{P(x)}{Q(x)}dx=\int C(x)dx+\int\frac{R(x)}{Q(x)}dx$
+\end_inset
+
+ para que el grado del numerador sea menor que el del denominador.
+ Entonces descomponemos en fracciones simples.
+\end_layout
+
+\begin_layout Standard
+Descomponemos
+\begin_inset Formula $Q(x)$
+\end_inset
+
+ como
+\begin_inset Formula $Q(x)=\prod_{i=1}^{r}(x-a_{i})^{m_{i}}\prod_{i=1}^{s}(x^{2}+p_{i}x+q_{i})^{n_{i}}$
+\end_inset
+
+, donde
+\begin_inset Formula $q_{i}>\frac{p_{i}^{2}}{4}$
+\end_inset
+
+ para que los factores sean irreducibles.
+ Entonces (si el grado de
+\begin_inset Formula $P(x)$
+\end_inset
+
+ es menor que el de
+\begin_inset Formula $Q(x)$
+\end_inset
+
+) podemos expresar la fracción como
+\begin_inset Formula
+\[
+\frac{P(x)}{Q(x)}=\sum_{i=1}^{r}\sum_{j=1}^{m_{i}}\frac{A_{ij}}{(x-a_{i})^{j}}+\sum_{i=1}^{M}\sum_{j=1}^{n_{i}}\frac{M_{ij}x+N_{ij}}{(x^{2}+p_{i}x+q_{i})^{j}}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Resolvemos los
+\begin_inset Formula $A_{k,i}$
+\end_inset
+
+,
+\begin_inset Formula $M_{k,i}$
+\end_inset
+
+,
+\begin_inset Formula $N_{k,i}$
+\end_inset
+
+ y nos queda hallar la integral de cada sumando como sigue:
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\frac{A}{x-a}dx=A\ln|x-a|+C$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\frac{A}{(x-a)^{n}}dx=-\frac{A}{(n-1)(x-a)^{n-1}}+C$
+\end_inset
+
+, donde
+\begin_inset Formula $n\in2,3,\dots$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\backslash
+sremember{FUVR2}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $\int\frac{Mx+N}{x^{2}+px+q}dx=\frac{M}{2}\ln\left(\left(x+\frac{p}{2}\right)^{2}+c^{2}\right)+\frac{N-\frac{Mp}{2}}{c}\arctan\left(\frac{x+\frac{p}{2}}{c}\right)+C$
+\end_inset
+
+, donde
+\begin_inset Formula $c=\frac{\sqrt{4q-p^{2}}}{2}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+Funciones que contienen
+\begin_inset Formula $\cos x$
+\end_inset
+
+ y
+\begin_inset Formula $\sin x$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+En general, haremos
+\begin_inset Formula $t=\tan\frac{x}{2}$
+\end_inset
+
+ y entonces
+\begin_inset Formula
+\begin{eqnarray*}
+\cos x=\frac{\cos(2\frac{x}{2})}{\sin^{2}\frac{x}{2}+\cos^{2}\frac{x}{2}}=\frac{\cos^{2}\frac{x}{2}-\sin^{2}\frac{x}{2}}{\sin^{2}\frac{x}{2}+\cos^{2}\frac{x}{2}} & \overset{\text{div. }\cos^{2}\frac{x}{2}}{=} & \frac{1-\tan^{2}\frac{x}{2}}{\tan^{2}\frac{x}{2}+1}=\frac{1-t^{2}}{1+t^{2}}\\
+\sin x=\frac{\sin(2\frac{x}{2})}{\sin^{2}\frac{x}{2}+\cos^{2}\frac{x}{2}}=\frac{2\sin\frac{x}{2}\cos\frac{x}{2}}{\sin^{2}\frac{x}{2}+\cos^{2}\frac{x}{2}} & \overset{\text{div. }\cos^{2}\frac{x}{2}}{=} & \frac{2\tan\frac{x}{2}}{\tan^{2}\frac{x}{2}+1}=\frac{2t}{1+t^{2}}\\
+x=2\arctan t & \text{ y } & dx=\frac{2}{1+t^{2}}dt
+\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Si la función es de la forma
+\begin_inset Formula $f(x)=g(\sin x)\cos x$
+\end_inset
+
+, siendo
+\begin_inset Formula $g$
+\end_inset
+
+ una función racional, hacemos
+\begin_inset Formula $t=\sin x$
+\end_inset
+
+, y si es
+\begin_inset Formula $f(x)=g(\cos x)\sin x$
+\end_inset
+
+ hacemos
+\begin_inset Formula $t=\cos x$
+\end_inset
+
+.
+ Si es
+\begin_inset Formula $f(x)=g(\tan x)$
+\end_inset
+
+ hacemos
+\begin_inset Formula $\tan x=t$
+\end_inset
+
+, y podemos llegar a esta situación cuando al sustituir
+\begin_inset Formula $\sin x$
+\end_inset
+
+ por
+\begin_inset Formula $\cos x\tan x$
+\end_inset
+
+ quedan solo potencias pares de
+\begin_inset Formula $\cos x$
+\end_inset
+
+, y hacemos
+\begin_inset Formula $\cos^{2}x=\frac{1}{1+\tan^{2}x}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+En el caso
+\begin_inset Formula $f(x)=\cos^{n}x\sin^{m}x$
+\end_inset
+
+, si
+\begin_inset Formula $n$
+\end_inset
+
+ es impar hacemos
+\begin_inset Formula $t=\sin x$
+\end_inset
+
+, si
+\begin_inset Formula $m$
+\end_inset
+
+ es impar,
+\begin_inset Formula $t=\cos x$
+\end_inset
+
+, y si ambos son pares, usamos
+\begin_inset Formula $\cos^{2}x=\frac{1+\cos(2x)}{2}$
+\end_inset
+
+ y
+\begin_inset Formula $\sin^{2}x=\frac{1-\cos(2x)}{2}$
+\end_inset
+
+ para
+\begin_inset Quotes cld
+\end_inset
+
+reducir el grado
+\begin_inset Quotes crd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+Funciones de la forma
+\begin_inset Formula $f(e^{x})$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Hacemos el cambio
+\begin_inset Formula $t=e^{x}$
+\end_inset
+
+ y
+\begin_inset Formula $dt=e^{x}dx$
+\end_inset
+
+, y esto también sirve para el coseno y seno hiperbólicos (
+\begin_inset Formula $\cosh$
+\end_inset
+
+ y
+\begin_inset Formula $\sinh$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Subsection
+Funciones que contienen
+\begin_inset Formula $\sqrt{ax^{2}+2bx+c}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\begin_inset Formula $d:=\frac{ac-b^{2}}{a}$
+\end_inset
+
+ y se tiene
+\begin_inset Formula $ax^{2}+2bx+c=a\left(x+\frac{b}{a}\right)^{2}+d$
+\end_inset
+
+.
+ Hacemos entonces el cambio de variable
+\begin_inset Formula $t=x+\frac{b}{a}$
+\end_inset
+
+ y a continuación:
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $a>0$
+\end_inset
+
+ y
+\begin_inset Formula $d>0$
+\end_inset
+
+ hacemos
+\begin_inset Formula $at^{2}=d\tan^{2}u$
+\end_inset
+
+ y entonces
+\begin_inset Formula $\sqrt{at^{2}+d}=[...]\sqrt{d}\sec u$
+\end_inset
+
+ y
+\begin_inset Formula $dt=\sqrt{\frac{d}{a}}\sec^{2}u\,du$
+\end_inset
+
+.
+ También podemos hacer
+\begin_inset Formula $at^{2}=d\sinh^{2}u$
+\end_inset
+
+ y entonces
+\begin_inset Formula $\sqrt{at^{2}+d}=[...]\sqrt{d}\cosh u$
+\end_inset
+
+ y
+\begin_inset Formula $dt=\sqrt{\frac{d}{a}}\cosh u\,du$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $a>0$
+\end_inset
+
+ y
+\begin_inset Formula $d<0$
+\end_inset
+
+ hacemos
+\begin_inset Formula $at^{2}=-d\sec^{2}u$
+\end_inset
+
+ y entonces
+\begin_inset Formula $\sqrt{at^{2}+d}=[...]\sqrt{-d}\tan u$
+\end_inset
+
+ y
+\begin_inset Formula $dt=\sqrt{-\frac{d}{a}}\sec u\tan u\,du$
+\end_inset
+
+.
+ También podemos hacer
+\begin_inset Formula $at^{2}=-d\cosh^{2}u$
+\end_inset
+
+ y entonces
+\begin_inset Formula $\sqrt{at^{2}+d}=[...]\sqrt{-d}\sinh u$
+\end_inset
+
+ y
+\begin_inset Formula $dt=\sqrt{-\frac{d}{a}}\sinh u\,du$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\backslash
+sremember{FUVR2}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $a<0$
+\end_inset
+
+ y
+\begin_inset Formula $d>0$
+\end_inset
+
+ hacemos
+\begin_inset Formula $at^{2}=-d\sin^{2}u$
+\end_inset
+
+ y entonces
+\begin_inset Formula $\sqrt{at^{2}+d}=[..]\sqrt{d}\cos u$
+\end_inset
+
+ y
+\begin_inset Formula $dt=\sqrt{-\frac{d}{a}}\cos u\,du$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Cambio de variable
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $\Omega$
+\end_inset
+
+ un abierto y
+\begin_inset Formula $T:\Omega\subseteq\mathbb{R}^{n}\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+, llamamos
+\series bold
+jacobiano
+\series default
+ de
+\begin_inset Formula $T$
+\end_inset
+
+ en
+\begin_inset Formula $a\in\Omega$
+\end_inset
+
+ a la matriz cuadrada asociada a
+\begin_inset Formula $dT(a)$
+\end_inset
+
+,
+\begin_inset Formula $\left(\frac{\partial T_{i}}{\partial x_{j}}(a)\right)_{ij}$
+\end_inset
+
+.
+ El
+\series bold
+teorema de cambio de variable
+\series default
+ afirma que si
+\begin_inset Formula $\Omega\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ es un abierto medible Jordan y
+\begin_inset Formula $T:\Omega\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ es una función inyectiva diferenciable con derivadas parciales continuas
+ tal que
+\begin_inset Formula $\forall x\in\Omega,\det(dg(x))\neq0$
+\end_inset
+
+, si
+\begin_inset Formula $f:T(\Omega)\rightarrow\mathbb{R}$
+\end_inset
+
+ es integrable Riemann en
+\begin_inset Formula $T(\Omega)$
+\end_inset
+
+ entonces
+\begin_inset Formula $f\circ T$
+\end_inset
+
+ es integrable Riemann en
+\begin_inset Formula $\Omega$
+\end_inset
+
+ y
+\begin_inset Formula
+\[
+\int_{g(A)}f(\vec{x})d\vec{x}=\int f(T(\vec{y}))|\det(dg(\vec{y}))|d\vec{y}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Algunos cambios de variable importantes:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Coordenadas polares
+\series default
+ en
+\begin_inset Formula $\mathbb{R}^{2}$
+\end_inset
+
+: Los puntos vienen dados por la distancia al origen, y el ángulo entre
+ el eje OX y el vector desde el origen al punto.
+ La función de cambio de variable es
+\begin_inset Formula $T(\rho,\theta)=(\rho\cos\theta,\rho\sin\theta)$
+\end_inset
+
+, inyectiva en cualquier banda de la forma
+\begin_inset Formula $(0,+\infty)\times(a,b)$
+\end_inset
+
+ con
+\begin_inset Formula $b-a\leq2\pi$
+\end_inset
+
+, y
+\begin_inset Formula
+\[
+|dT(\rho,\theta)|=\left|\begin{array}{cc}
+\cos\theta & -\rho\sin\theta\\
+\sin\theta & \rho\cos\theta
+\end{array}\right|=\rho
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Coordenadas cilíndricas
+\series default
+ en
+\begin_inset Formula $\mathbb{R}^{3}$
+\end_inset
+
+: Los puntos vienen dados por las coordenadas de
+\begin_inset Formula $(x,y)$
+\end_inset
+
+ en polares y la coordenada
+\begin_inset Formula $z$
+\end_inset
+
+.
+ La función de cambio es
+\begin_inset Formula $T(\rho,\theta,z)=(\rho\cos\theta,\rho\sin\theta,z)$
+\end_inset
+
+, inyectiva en cualquier banda de la forma
+\begin_inset Formula $(0,+\infty)\times(a,b)\times\mathbb{R}$
+\end_inset
+
+ con
+\begin_inset Formula $b-a\leq2\pi$
+\end_inset
+
+, y
+\begin_inset Formula
+\[
+|dT(\rho,\theta,z)|=\left|\begin{array}{ccc}
+\cos\theta & -\rho\sin\theta & 0\\
+\sin\theta & \rho\cos\theta & 0\\
+0 & 0 & 1
+\end{array}\right|=\rho
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Coordenadas esféricas
+\series default
+ o
+\series bold
+polares
+\series default
+ en
+\begin_inset Formula $\mathbb{R}^{3}$
+\end_inset
+
+: Los puntos vienen dados por la distancia al origen; el ángulo entre el
+ eje OX y la proyección en el plano XY del vector del origen al punto, y
+ el ángulo entre el eje OZ y el vector del origen al punto.
+ La función de cambio es
+\begin_inset Formula $T(\rho,\theta,\varphi)=(\rho\cos\theta\sin\varphi,\rho\sin\theta\sin\varphi,\rho,\rho\cos\varphi)$
+\end_inset
+
+, inyectiva en cualquier banda de la forma
+\begin_inset Formula $(0,+\infty)\times(a,b)\times(0,\pi)$
+\end_inset
+
+ con
+\begin_inset Formula $b-a\leq2\pi$
+\end_inset
+
+, y
+\begin_inset Formula
+\[
+|dT(\rho,\theta,\varphi)|=\left|\begin{array}{ccc}
+\cos\theta\sin\varphi & -\rho\sin\theta\sin\varphi & \rho\cos\theta\cos\varphi\\
+\sin\theta\sin\varphi & \rho\cos\theta\sin\varphi & \rho\sin\theta\cos\varphi\\
+\cos\varphi & 0 & -\rho\sin\varphi
+\end{array}\right|=\rho^{2}\sin\varphi
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+La integral de Riemann-Stieltjes
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula $f,\varphi:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ y
+\begin_inset Formula $P=\{a=t_{0}<\dots<t_{n}=b\}$
+\end_inset
+
+ una partición del intervalo, llamamos
+\series bold
+suma de Riemann-Stieltjes
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ con respecto a
+\begin_inset Formula $\varphi$
+\end_inset
+
+ asociada a la partición
+\begin_inset Formula $P$
+\end_inset
+
+ a cualquier suma de la forma
+\begin_inset Formula
+\[
+R(f,\varphi,P,\{\xi_{i}\})=\sum_{i=1}^{n}f(\xi_{i})(\varphi(t_{i})-\varphi(t_{i-1}))
+\]
+
+\end_inset
+
+donde
+\begin_inset Formula $\xi_{i}\in[t_{i-1},t_{i}]\forall i\in\{1,\dots,n\}$
+\end_inset
+
+.
+ Si existe el límite de estas sumas cuando
+\begin_inset Formula $|P|:=\sup\{t_{i}-t_{i-1}\}_{i=1}^{n}$
+\end_inset
+
+ tiende a 0 se dice que
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\series bold
+integrable en el sentido de Riemann-Stieltjes
+\series default
+ con respecto a
+\begin_inset Formula $\varphi$
+\end_inset
+
+ en el intervalo
+\begin_inset Formula $[a,b]$
+\end_inset
+
+, y a este límite lo llamamos
+\series bold
+integral de Riemann-Stieltjes
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ con respecto a
+\begin_inset Formula $\varphi$
+\end_inset
+
+ en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+, denotado como
+\begin_inset Formula
+\[
+\int_{a}^{b}f(x)d\varphi(x)=\int_{a}^{b}f\,d\varphi
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Vemos que si
+\begin_inset Formula $\varphi$
+\end_inset
+
+ es la identidad entonces la integral es exactamente la de Riemann.
+ Denotamos
+\begin_inset Formula $\lambda_{\varphi}([a,b]):=\varphi(b)-\varphi(a)$
+\end_inset
+
+.
+ Para que esta medida sea positiva es necesario que
+\begin_inset Formula $\varphi$
+\end_inset
+
+ sea creciente.
+ Una función
+\begin_inset Formula $\varphi:D\subseteq\mathbb{R}\rightarrow\mathbb{R}$
+\end_inset
+
+ es
+\series bold
+continua por la derecha
+\series default
+ en
+\begin_inset Formula $c\in D$
+\end_inset
+
+ si
+\begin_inset Formula $\lim_{x\rightarrow c^{+}}\varphi(x)=\varphi(c)$
+\end_inset
+
+.
+ Si se quiere que
+\begin_inset Formula $\lambda_{\varphi}$
+\end_inset
+
+ se comporte bien al hacer uniones crecientes o intersecciones decrecientes
+ de intervalos, es necesario que
+\begin_inset Formula $\varphi$
+\end_inset
+
+ sea continua por la derecha.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Riemann-Stieltjes con respecto a
+\begin_inset Formula $\varphi$
+\end_inset
+
+ en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $\forall\varepsilon>0,\exists\delta>0:\forall P,Q\in[a,b],(|P|,|Q|<\delta\implies|R(f,\varphi,P)-R(f,\varphi,Q)|<\varepsilon)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Dado
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, existe
+\begin_inset Formula $\delta>0$
+\end_inset
+
+ tal que si
+\begin_inset Formula $|P|<\delta$
+\end_inset
+
+ entonces
+\begin_inset Formula $\left|R(f,\varphi,P)-\int_{a}^{b}f\,d\varphi\right|<\frac{\varepsilon}{2}$
+\end_inset
+
+, pero si
+\begin_inset Formula $P$
+\end_inset
+
+ y
+\begin_inset Formula $Q$
+\end_inset
+
+ son son particiones de
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ con
+\begin_inset Formula $|P|,|Q|<\delta$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+|R(f,\varphi,P)-R(f,\varphi,Q)|\leq\left|R(f,\varphi,P)-\int_{a}^{b}f\,d\varphi\right|+\left|\int_{a}^{b}f\,d\varphi-R(f,\varphi,Q)\right|<\frac{\varepsilon}{2}+\frac{\varepsilon}{2}=\varepsilon
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Dada una sucesión de particiones
+\begin_inset Formula $(P_{k})_{k}$
+\end_inset
+
+ de
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ con
+\begin_inset Formula $|P_{k}|\rightarrow0$
+\end_inset
+
+, por la condición se tiene que
+\begin_inset Formula $(R(f,\varphi,P_{k}))_{k}$
+\end_inset
+
+ es de Cauchy y por tanto converge hacia un
+\begin_inset Formula $I\in\mathbb{R}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ es continua en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ y
+\begin_inset Formula $\varphi$
+\end_inset
+
+ es monótona creciente definida en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+, entonces
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Riemann-Stieltjes respecto a
+\begin_inset Formula $\varphi$
+\end_inset
+
+ en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+.
+
+\series bold
+Demostración:
+\series default
+ Al ser
+\begin_inset Formula $f$
+\end_inset
+
+ continua en un compacto, es uniformemente continua, luego para
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+ existe
+\begin_inset Formula $\delta>0$
+\end_inset
+
+ tal que si
+\begin_inset Formula $|x-y|<\delta$
+\end_inset
+
+ entonces
+\begin_inset Formula $|f(x)-f(y)|<\frac{\varepsilon}{\varphi(b)-\varphi(a)}$
+\end_inset
+
+.
+ Sean
+\begin_inset Formula $P:=\{a=x_{0}<\dots<x_{n}=b\}$
+\end_inset
+
+ y
+\begin_inset Formula $Q:=\{a=y_{0}<\dots<y_{m}=b\}$
+\end_inset
+
+ particiones con
+\begin_inset Formula $|P|,|Q|<\frac{\delta}{2}$
+\end_inset
+
+ y
+\begin_inset Formula $P\lor Q=:\{a=t_{0}<\dots<t_{p}=b\}$
+\end_inset
+
+, podemos escribir las sumas de Riemann-Stieltjes asociadas a
+\begin_inset Formula $P$
+\end_inset
+
+ y
+\begin_inset Formula $Q$
+\end_inset
+
+ como
+\begin_inset Formula $R(f,\varphi,P)=\sum_{i=1}^{n}f(\chi_{i})(\varphi(x_{i})-\varphi(x_{i-1}))=\sum_{j=1}^{p}f(\chi_{j}^{*})(\varphi(t_{j})-\varphi(t_{j-1}))$
+\end_inset
+
+ y
+\begin_inset Formula $R(f,\varphi,Q)=\sum_{k=1}^{m}f(\eta_{i})(\varphi(y_{k})-\varphi(y_{k-1}))=\sum_{j=1}^{p}f(\eta_{j}^{*})(\varphi(t_{j})-\varphi(t_{j-1}))$
+\end_inset
+
+, respectivamente, donde
+\begin_inset Formula $\chi_{j}^{*}=\chi_{i}$
+\end_inset
+
+ si
+\begin_inset Formula $[t_{j-1},t_{j}]\subseteq[x_{i-1},x_{i}]$
+\end_inset
+
+ y
+\begin_inset Formula $\eta_{j}^{*}=\eta_{k}$
+\end_inset
+
+ si
+\begin_inset Formula $[t_{j-1},t_{j}]\subseteq[y_{k-1},y_{k}]$
+\end_inset
+
+.
+ De aquí,
+\begin_inset Formula $|\chi_{j}^{*}-\eta_{j}^{*}|\leq|\chi_{j}^{*}-t_{j}|+|t_{j}-\eta_{j}^{*}|<\frac{\delta}{2}+\frac{\delta}{2}=\delta$
+\end_inset
+
+, y con esto
+\begin_inset Formula
+\begin{multline*}
+|R(f,\varphi,P)-R(f,\varphi,Q)|\leq\sum_{j=1}^{p}|f(\chi_{j}^{*})-f(\eta_{j}^{*})|(\varphi(t_{j})-\varphi(t_{j-1}))<\\
+<\sum_{j=1}^{p}\frac{\varepsilon}{\varphi(b)-\varphi(a)}(\varphi(t_{j})-\varphi(t_{j-1}))=\frac{\varepsilon}{\varphi(b)-\varphi(a)}(\varphi(b)-\varphi(a))=\varepsilon
+\end{multline*}
+
+\end_inset
+
+Por tanto si
+\begin_inset Formula $f$
+\end_inset
+
+ es continua en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ y
+\begin_inset Formula $\varphi$
+\end_inset
+
+ es una función creciente de clase
+\begin_inset Formula ${\cal C}^{1}$
+\end_inset
+
+ en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+, se cumple que
+\begin_inset Formula
+\[
+\int_{a}^{b}f(x)d\varphi(x)=\int_{a}^{b}f(x)\varphi'(x)dx
+\]
+
+\end_inset
+
+ Propiedades: Dadas
+\begin_inset Formula $f,g:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ integrables Riemann-Stieltjes en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ respecto a
+\begin_inset Formula $\varphi,\psi:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ y
+\begin_inset Formula $\lambda\in\mathbb{R}$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\int_{a}^{b}(\lambda f)d\varphi=\int_{a}^{b}f\,d(\lambda\varphi)=\lambda\int_{a}^{b}f\,d\varphi$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\int_{a}^{b}(f+g)d\varphi=\int_{a}^{b}f\,d\varphi+\int_{a}^{b}g\,d\varphi$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f(t)\geq g(t)\forall t\in[a,b]$
+\end_inset
+
+ y
+\begin_inset Formula $\varphi$
+\end_inset
+
+ es monótona creciente,
+\begin_inset Formula $\int_{a}^{b}f\,d\varphi\geq\int_{a}^{b}g\,d\varphi$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\int_{a}^{b}f\,d(\varphi+\psi)=\int_{a}^{b}f\,d\varphi+\int_{a}^{b}f\,d\psi$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Para
+\begin_inset Formula $c\in(a,b)$
+\end_inset
+
+,
+\begin_inset Formula $\int_{a}^{c}f\,d\varphi+\int_{c}^{b}f\,d\varphi=\int_{a}^{b}f\,d\varphi$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+integración por partes
+\series default
+ en Riemann-Stieltjes se basa en que, si existe
+\begin_inset Formula $\int_{a}^{b}f\,d\varphi$
+\end_inset
+
+ entonces también existe
+\begin_inset Formula $\int_{a}^{b}\varphi\,df$
+\end_inset
+
+ y
+\begin_inset Formula
+\[
+\int_{a}^{b}\varphi\,df=(f(b)\varphi(b)-f(a)\varphi(a))-\int_{a}^{b}f\,d\varphi
+\]
+
+\end_inset
+
+
+\series bold
+Demostración:
+\series default
+ Sea
+\begin_inset Formula $P=\{a=t_{0}<\dots<t_{n}=b\}$
+\end_inset
+
+ una partición de
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ y
+\begin_inset Formula $\xi_{i}\in[t_{i-1},t_{i}]\forall i\in\{1,\dots,n\}$
+\end_inset
+
+.
+ Sea
+\begin_inset Formula $Q=\{a=\xi_{0}<\dots<\xi_{n}<\xi_{n+1}=b\}$
+\end_inset
+
+,
+\begin_inset Formula $x_{1}:=t_{0}=a\in[\xi_{0},\xi_{1}]$
+\end_inset
+
+,
+\begin_inset Formula $x_{i}:=t_{i-1}\in[\xi_{i-1},\xi_{i}]\forall i\in\{1,\dots,n\}$
+\end_inset
+
+ y
+\begin_inset Formula $x_{n+1}:=t_{n}=b\in[\xi_{n},\xi_{n+1}]$
+\end_inset
+
+.
+ Entonces
+\begin_inset Formula
+\begin{multline*}
+R(\varphi,f,P,\{\xi_{i}\})=\sum_{i=1}^{n}\varphi(\xi_{i})(f(t_{i})-f(t_{i-1}))=\sum_{i=1}^{n}f(t_{i})\varphi(\xi_{i})-\sum_{i=1}^{n}f(t_{i-1})\varphi(\xi_{i})=\\
+=\sum_{i=1}^{n-1}f(t_{i})\varphi(\xi_{i})+f(b)\varphi(b)-f(a)\varphi(\xi_{1})-\sum_{i=2}^{n}f(t_{i-1})\varphi(\xi_{i})=\\
+=f(b)\varphi(b)-f(a)\varphi(a)-f(a)(\varphi(\xi_{1})-\varphi(a))+\sum_{i=2}^{n}f(x_{i})\varphi(\xi_{i-1})-\sum_{i=2}^{n}f(x_{i})\varphi(\xi_{i})=\\
+=f(b)\varphi(b)-f(a)\varphi(a)-\sum_{i=1}^{n}f(x_{i})(\varphi(\xi_{i})-\varphi(\xi_{i-1}))=f(b)\varphi(b)-f(a)\varphi(a)-R(f,\varphi,Q,\{x_{i}\})
+\end{multline*}
+
+\end_inset
+
+Basta pues tomar límites en esta última expresión cuando
+\begin_inset Formula $|Q|\leq2|P|\rightarrow0$
+\end_inset
+
+.
+\end_layout
+
+\end_body
+\end_document
diff --git a/fvv2/n3.lyx b/fvv2/n3.lyx
new file mode 100644
index 0000000..a35f67f
--- /dev/null
+++ b/fvv2/n3.lyx
@@ -0,0 +1,3763 @@
+#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 0
+\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
+Funciones medibles
+\end_layout
+
+\begin_layout Standard
+Una aplicación
+\begin_inset Formula $f:\Omega\rightarrow\Omega'$
+\end_inset
+
+ es
+\series bold
+
+\begin_inset Formula $(\Sigma,\Sigma')$
+\end_inset
+
+-medible
+\series default
+ si
+\begin_inset Formula $\forall E'\in\Sigma',f^{-1}(E')\in\Sigma$
+\end_inset
+
+.
+ Cuando
+\begin_inset Formula $\Omega'$
+\end_inset
+
+ es un espacio topológico, decimos que
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\series bold
+
+\begin_inset Formula $\Sigma$
+\end_inset
+
+-medible
+\series default
+ si es
+\begin_inset Formula $(\Sigma,{\cal B}(\Omega'))$
+\end_inset
+
+-medible.
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $\Sigma'=:\sigma({\cal D})$
+\end_inset
+
+,
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\begin_inset Formula $(\Sigma,\Sigma')$
+\end_inset
+
+-medible si y sólo si
+\begin_inset Formula $\forall D\in{\cal D},f^{-1}(D)\in\Sigma$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Obvio.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Sea
+\begin_inset Formula ${\cal A}:=\{E\in\Sigma':f^{-1}(E)\in\Sigma\}$
+\end_inset
+
+, vemos que
+\begin_inset Formula ${\cal A}$
+\end_inset
+
+ es una
+\begin_inset Formula $\sigma$
+\end_inset
+
+-álgebra que contiene a
+\begin_inset Formula ${\cal D}$
+\end_inset
+
+, pues
+\begin_inset Formula $f^{-1}(E^{\complement})=\Omega\backslash f^{-1}(E)$
+\end_inset
+
+ y
+\begin_inset Formula $f^{-1}(\bigcup_{k=1}^{\infty}E_{k})=\bigcup_{k=1}^{\infty}f^{-1}(E_{k})$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Sean
+\begin_inset Formula $T:=(X,{\cal T})$
+\end_inset
+
+ y
+\begin_inset Formula $T':=(X,{\cal T}')$
+\end_inset
+
+ espacios topológicos, toda función
+\begin_inset Formula $f:T\rightarrow T'$
+\end_inset
+
+ continua es
+\begin_inset Formula $({\cal B}(T),{\cal B}(T'))$
+\end_inset
+
+-medible, pues
+\begin_inset Formula ${\cal B}(T')=\sigma({\cal T}')$
+\end_inset
+
+ y la continuidad asegura que
+\begin_inset Formula $\forall A\in{\cal T}',f^{-1}(A)\in{\cal T}\subseteq{\cal B}(T)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Composición de medibles:
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f:\Omega\rightarrow\Omega'$
+\end_inset
+
+ y
+\begin_inset Formula $g:f(\Omega)\rightarrow\Omega''$
+\end_inset
+
+ son medibles,
+\begin_inset Formula $g\circ f$
+\end_inset
+
+ también lo es.
+ En particular, si
+\begin_inset Formula $T$
+\end_inset
+
+ y
+\begin_inset Formula $T'$
+\end_inset
+
+ son espacios topológicos,
+\begin_inset Formula $f:\Omega\rightarrow T$
+\end_inset
+
+ es
+\begin_inset Formula $(\Sigma,{\cal B}(T))$
+\end_inset
+
+-medible y
+\begin_inset Formula $g:T\rightarrow T'$
+\end_inset
+
+ es continua,
+\begin_inset Formula $g\circ f$
+\end_inset
+
+ es
+\begin_inset Formula $(\Sigma,{\cal B}(T'))$
+\end_inset
+
+-medible.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Para
+\begin_inset Formula $E\in\Sigma''$
+\end_inset
+
+,
+\begin_inset Formula $g^{-1}(E)\in\Sigma'$
+\end_inset
+
+ por ser
+\begin_inset Formula $g$
+\end_inset
+
+ medible y
+\begin_inset Formula $f^{-1}(g^{-1}(E))=(g\circ f)^{-1}(E)\in\Sigma$
+\end_inset
+
+ por ser
+\begin_inset Formula $g$
+\end_inset
+
+ medible, luego
+\begin_inset Formula $g\circ f$
+\end_inset
+
+ es medible.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $u_{1},\dots u_{n}:\Omega\rightarrow\mathbb{R}$
+\end_inset
+
+ son medibles,
+\begin_inset Formula $\varphi:\Omega\rightarrow\mathbb{R}^{n}$
+\end_inset
+
+ dada por
+\begin_inset Formula $\varphi(\omega):=(u_{1}(\omega),\dots,u_{n}(\omega))$
+\end_inset
+
+ es medible.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Un abierto
+\begin_inset Formula $G\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ se puede expresar como unión numerable de cubos diádicos disjuntos, y como
+ estos están en
+\begin_inset Formula ${\cal B}(\mathbb{R}^{n})$
+\end_inset
+
+, lo generan.
+ Si
+\begin_inset Formula $[a,b)$
+\end_inset
+
+ es uno de estos cubos,
+\begin_inset Formula
+\[
+\varphi^{-1}([a,b))=\bigcap_{i=1}^{n}u_{i}^{-1}([a_{i},b_{i}))\in\Sigma
+\]
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ es medible si y sólo si lo son
+\begin_inset Formula $\omega\mapsto\text{Re}(f(\omega))$
+\end_inset
+
+ e
+\begin_inset Formula $\omega\mapsto\text{Im}(f(\omega))$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+ Se deriva de que
+\begin_inset Formula $x\mapsto\text{Re}(x)$
+\end_inset
+
+ y
+\begin_inset Formula $x\mapsto\text{Im}(x)$
+\end_inset
+
+ son continuas.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Sea
+\begin_inset Formula $\pi:\mathbb{R}^{2}\rightarrow\mathbb{C}$
+\end_inset
+
+ el isomorfismo canónico, como
+\begin_inset Formula $\pi$
+\end_inset
+
+ es continua y
+\begin_inset Formula $f(\omega)=\pi(\text{Re}(f(\omega)),\text{Im}(f(\omega)))$
+\end_inset
+
+, el punto anterior nos da que
+\begin_inset Formula $f$
+\end_inset
+
+ es medible.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f,g:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ son medibles,
+\begin_inset Formula $f+g$
+\end_inset
+
+,
+\begin_inset Formula $fg$
+\end_inset
+
+ y
+\begin_inset Formula $\frac{f}{g}\chi_{\{g\neq0\}}$
+\end_inset
+
+ también lo son.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Se debe a que
+\begin_inset Formula $(x,y)\mapsto x+y$
+\end_inset
+
+,
+\begin_inset Formula $(x,y)\mapsto xy$
+\end_inset
+
+ son continuas.
+ Para el cociente, si
+\begin_inset Formula $\{g=0\}=\emptyset$
+\end_inset
+
+, la continuidad de
+\begin_inset Formula $(x,y)\mapsto\frac{x}{y}$
+\end_inset
+
+ cuando
+\begin_inset Formula $y\neq0$
+\end_inset
+
+ implica que
+\begin_inset Formula $\frac{f}{g}$
+\end_inset
+
+ es medible.
+ En el caso general, sea
+\begin_inset Formula $S\subseteq\mathbb{C}$
+\end_inset
+
+ medible,
+\begin_inset Formula
+\begin{multline*}
+\left(\frac{f}{g}\chi_{\{g\neq0\}}\right)^{-1}(S)=\left(\left(\frac{f}{g}\chi_{\{g\neq0\}}\right)^{-1}(S)\cap\{g\neq0\}\right)\cup\left(\left(\frac{f}{g}\chi_{\{g\neq0\}}\right)^{-1}(S)\cap\{g=0\}\right)\\
+=\left(\frac{f}{g}\chi_{\{g\neq0\}}\right)^{-1}(S\backslash\{0\}))\cup\left(\frac{f}{g}\chi_{\{g\neq0\}}\right)^{-1}(S\cap\{0\})
+\end{multline*}
+
+\end_inset
+
+El primer elemento de esta última unión no contiene elementos de
+\begin_inset Formula $\{g=0\}$
+\end_inset
+
+, pues para todos ellos
+\begin_inset Formula $\frac{f}{g}\chi_{\{g\neq0\}}(\omega)\neq0$
+\end_inset
+
+, por tanto el conjunto es igual a
+\begin_inset Formula $\left(\frac{f}{g}\right)^{-1}(S\backslash\{0\})$
+\end_inset
+
+, que es medible.
+ El segundo elemento es
+\begin_inset Formula $\emptyset$
+\end_inset
+
+ si
+\begin_inset Formula $0\notin S$
+\end_inset
+
+ o
+\begin_inset Formula $\{f=0\}\cup\{g=0\}$
+\end_inset
+
+ si
+\begin_inset Formula $0\in S$
+\end_inset
+
+; en cualquier caso es medible.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ es medible,
+\begin_inset Formula $|f|$
+\end_inset
+
+ también lo es y existe
+\begin_inset Formula $\alpha:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ tal que
+\begin_inset Formula $\forall\omega\in\Omega,|\alpha(\omega)|=1$
+\end_inset
+
+ y
+\begin_inset Formula $|f|=\alpha f$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula $|f|$
+\end_inset
+
+ es medible por ser
+\begin_inset Formula $\omega\mapsto\sqrt{\text{Re}(f(\omega))^{2}+\text{Im}(f(\omega))^{2}}$
+\end_inset
+
+, al igual que
+\begin_inset Formula $\alpha$
+\end_inset
+
+ dada por
+\begin_inset Formula $\alpha(\omega)=\chi_{\{f=0\}}+\frac{f}{|f|}\chi_{\{f\neq0\}}$
+\end_inset
+
+, que cumple las condiciones.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Una función
+\begin_inset Formula $f:\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+ es
+\series bold
+
+\begin_inset Formula $\Sigma$
+\end_inset
+
+-medible
+\series default
+ si es
+\begin_inset Formula $(\Sigma,\Sigma':=\sigma(\{(a,+\infty]\}_{a\in\mathbb{R}}))$
+\end_inset
+
+-medible.
+ Todos los cubos diádicos
+\begin_inset Formula $[a,b)\subseteq\mathbb{R}$
+\end_inset
+
+ están en
+\begin_inset Formula $\Sigma'$
+\end_inset
+
+, luego también están todos los abiertos de
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ como unión numerable de cubos diádicos y por tanto
+\begin_inset Formula ${\cal B}(\mathbb{R})\subseteq\Sigma'$
+\end_inset
+
+.
+ Adoptamos el convenio
+\begin_inset Formula $\pm\infty\cdot0=0\cdot\pm\infty=0$
+\end_inset
+
+ y la notación
+\begin_inset Formula $\{f\bullet a\}:=\{\omega\in\Omega:f(\omega)\bullet a\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $f:\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+, si tenemos que
+\begin_inset Formula
+\begin{multline*}
+f\text{ es medible}\iff\forall a\in\mathbb{R},\{f>a\}\in\Sigma\iff\forall a\in\mathbb{R},\{f\geq a\}\in\Sigma\\
+\iff\forall a\in\mathbb{R},\{f<a\}\in\Sigma\iff\forall a\in\mathbb{R},\{f\leq a\}\in\Sigma
+\end{multline*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $1\implies3]$
+\end_inset
+
+ Como
+\begin_inset Formula $(a,+\infty]$
+\end_inset
+
+ es medible,
+\begin_inset Formula $f^{-1}((a,+\infty])=\{f>a\}$
+\end_inset
+
+ también lo es.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $3\implies1]$
+\end_inset
+
+ Para cada elemento de
+\begin_inset Formula $\{(a,+\infty]\}_{a\in\mathbb{R}}$
+\end_inset
+
+,
+\begin_inset Formula $f^{-1}((a,+\infty])=\{f>a\}\in\Sigma$
+\end_inset
+
+, y por tanto
+\begin_inset Formula $f$
+\end_inset
+
+ es medible.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $2\implies3]$
+\end_inset
+
+
+\begin_inset Formula $\{f\geq a\}=\bigcap_{k=1}^{\infty}\{f>a-\frac{1}{k}\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $3\implies4]$
+\end_inset
+
+
+\begin_inset Formula $\{f<a\}=\Omega\backslash\{f\geq a\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $4\implies5]$
+\end_inset
+
+
+\begin_inset Formula $\{f\leq a\}=\bigcap_{k=1}^{\infty}\{f<a+\frac{1}{k}\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+\begin_inset Formula $5\implies2]$
+\end_inset
+
+
+\begin_inset Formula $\{f>a\}=\Omega\backslash\{f\leq a\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Además, si
+\begin_inset Formula $f$
+\end_inset
+
+ es medible,
+\begin_inset Formula $\{f>-\infty\}$
+\end_inset
+
+,
+\begin_inset Formula $\{f<+\infty\}$
+\end_inset
+
+,
+\begin_inset Formula $\{f=-\infty\}$
+\end_inset
+
+,
+\begin_inset Formula $\{f=+\infty\}$
+\end_inset
+
+,
+\begin_inset Formula $\{a\leq f\leq b\}$
+\end_inset
+
+,
+\begin_inset Formula $\{f=a\}$
+\end_inset
+
+, etc.
+ son medibles, y
+\begin_inset Formula $f$
+\end_inset
+
+ es medible si y sólo si
+\begin_inset Formula $\{f=-\infty\}$
+\end_inset
+
+ es medible y para
+\begin_inset Formula $a\in\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $\{a<f<+\infty\}$
+\end_inset
+
+ es medible.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset Formula $\{a<f<+\infty\}=\{f>a\}\cap\bigcup_{k=1}^{\infty}\{f<k\}$
+\end_inset
+
+,
+\begin_inset Formula $\{f=-\infty\}=\bigcap_{k=1}^{\infty}\{f<-k\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset Formula $\{f>a\}=\{a<f<+\infty\}\cup\left(\{f=-\infty\}\cup\bigcup_{k=1}^{\infty}\{-k<f<+\infty\}\right)^{\complement}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Dado un subconjunto denso
+\begin_inset Formula $A\subseteq[-\infty,+\infty]$
+\end_inset
+
+, si
+\begin_inset Formula $\{f>a\}$
+\end_inset
+
+ es medible para todo
+\begin_inset Formula $a\in A$
+\end_inset
+
+,
+\begin_inset Formula $f$
+\end_inset
+
+ es medible.
+
+\series bold
+Demostración:
+\series default
+ Para
+\begin_inset Formula $a\in\mathbb{R}$
+\end_inset
+
+, existe una sucesión
+\begin_inset Formula $(a_{k})_{k}$
+\end_inset
+
+ de elementos de
+\begin_inset Formula $A$
+\end_inset
+
+ que converge a
+\begin_inset Formula $a$
+\end_inset
+
+ con
+\begin_inset Formula $a_{k}>a\forall k\in\mathbb{N}$
+\end_inset
+
+, y entonces
+\begin_inset Formula $\{f>a\}=\bigcup\{f>a_{k}\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $f:\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+ es medible si y sólo si para todo abierto
+\begin_inset Formula $G\subseteq\mathbb{R}^{n}$
+\end_inset
+
+,
+\begin_inset Formula $f^{-1}(G)$
+\end_inset
+
+ es medible.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Los abiertos de
+\begin_inset Formula $\mathbb{R}^{n}$
+\end_inset
+
+ están en
+\begin_inset Formula $\sigma(\{(a,+\infty]\}_{a\in\mathbb{R}})$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Para todo
+\begin_inset Formula $a\in\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $f^{-1}((a,+\infty))=\{a<f<+\infty\}$
+\end_inset
+
+ es medible, luego
+\begin_inset Formula $f$
+\end_inset
+
+ lo es.
+\end_layout
+
+\begin_layout Standard
+Una propiedad se cumple
+\series bold
+en casi todo punto
+\series default
+ de
+\begin_inset Formula $\Omega$
+\end_inset
+
+ si el conjunto de puntos
+\begin_inset Formula $\omega\in\Omega$
+\end_inset
+
+ en los que no se cumple tiene medida cero.
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f,g:\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+ son medibles,
+\begin_inset Formula $\{f>g\}$
+\end_inset
+
+ también lo es.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Si
+\begin_inset Formula $\{r_{k}\}_{k\in\mathbb{N}}=\mathbb{Q}$
+\end_inset
+
+, entonces
+\begin_inset Formula $\{f>g\}=\bigcup_{k=1}^{\infty}\{f>r_{k}>g\}=\bigcup_{k=1}^{\infty}(\{f>r_{k}\}\cap\{g<r_{k}\})$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ es medible y
+\begin_inset Formula $g=f$
+\end_inset
+
+ en casi todo punto,
+\begin_inset Formula $g$
+\end_inset
+
+ es medible y
+\begin_inset Formula $\mu(\{g>a\})=\mu(\{f>a\})$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Si
+\begin_inset Formula $Z:=\{f\neq g\}$
+\end_inset
+
+,
+\begin_inset Formula $\{g>a\}\cup Z=\{f>a\}\cup Z$
+\end_inset
+
+, luego si
+\begin_inset Formula $f$
+\end_inset
+
+ es medible,
+\begin_inset Formula $\{g>a\}\cup Z$
+\end_inset
+
+ lo es y como difiere de
+\begin_inset Formula $\{g>a\}$
+\end_inset
+
+ por un conjunto de medida cero,
+\begin_inset Formula $g$
+\end_inset
+
+ es medible.
+ Por último,
+\begin_inset Formula $\mu(\{g>a\})=\mu(\{g>a\}\cup Z)=\mu(\{f>a\}\cup Z)=\mu(\{f>a\})$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ es medible y
+\begin_inset Formula $\lambda\in\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $f+\lambda$
+\end_inset
+
+ y
+\begin_inset Formula $\lambda f$
+\end_inset
+
+ son medibles.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Para
+\begin_inset Formula $a\in\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula $\{f+\lambda>a\}=\{f>a-\lambda\}$
+\end_inset
+
+ y
+\begin_inset Formula
+\[
+\{\lambda f>a\}=\begin{cases}
+f>\frac{a}{\lambda} & \text{si }\lambda>0\\
+f<\frac{a}{\lambda} & \text{si }\lambda<0\\
+\Omega & \text{si }\lambda=0\land a<0\\
+\emptyset & \text{si }\lambda=0\land a\geq0
+\end{cases}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ y
+\begin_inset Formula $g$
+\end_inset
+
+ son medibles, también lo es
+\begin_inset Formula $f+g$
+\end_inset
+
+.
+ Esto significa que las combinaciones lineales
+\begin_inset Formula $\lambda_{1}f_{1}+\dots+\lambda_{n}f_{n}$
+\end_inset
+
+ de funciones medibles
+\begin_inset Formula $f_{1},\dots,f_{n}$
+\end_inset
+
+ son medibles, por lo que el conjunto de funciones
+\begin_inset Formula $\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+
+\begin_inset Formula $\Sigma$
+\end_inset
+
+-medibles es un espacio vectorial.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Para
+\begin_inset Formula $a\in\mathbb{R}$
+\end_inset
+
+, si
+\begin_inset Formula $g$
+\end_inset
+
+ es medible, también lo es
+\begin_inset Formula $a-g$
+\end_inset
+
+, y entonces
+\begin_inset Formula $\{f+g>a\}=\{f>a-g\}$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Para
+\begin_inset Formula $f,g:\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+ medibles,
+\begin_inset Formula $fg$
+\end_inset
+
+ es medible y, si
+\begin_inset Formula $g\neq0$
+\end_inset
+
+ en casi todo punto,
+\begin_inset Formula $f/g$
+\end_inset
+
+ (definida en casi todo punto) es medible.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ es medible, es fácil ver que
+\begin_inset Formula $f^{2}=|f|^{2}$
+\end_inset
+
+ también lo es.
+ Para valores finitos,
+\begin_inset Formula $fg=\frac{(f+g)^{2}-(f-g)^{2}}{4}$
+\end_inset
+
+.
+ Si alguna de las funciones puede tener valores infinitos, vemos que
+\begin_inset Formula $\{f=+\infty\}$
+\end_inset
+
+,
+\begin_inset Formula $\{f=-\infty\}$
+\end_inset
+
+,
+\begin_inset Formula $\{f=0\}$
+\end_inset
+
+,
+\begin_inset Formula $\{g=+\infty\}$
+\end_inset
+
+, etc.
+ son medibles y por tanto
+\begin_inset Formula $\{fg=0\}=\{f=0\}\cup\{g=0\}$
+\end_inset
+
+,
+\begin_inset Formula $\{fg=+\infty\}$
+\end_inset
+
+ y
+\begin_inset Formula $\{fg=-\infty\}$
+\end_inset
+
+ también lo son.
+ Para
+\begin_inset Formula $f/g$
+\end_inset
+
+, basta ver que
+\begin_inset Formula $1/g$
+\end_inset
+
+ es medible, pero dado
+\begin_inset Formula $a\in\mathbb{R}$
+\end_inset
+
+,
+\begin_inset Formula
+\[
+\{1/g>a\}=\begin{cases}
+\{0<g<\frac{1}{a}\} & \text{si }a>0\\
+\{0<g<+\infty\} & \text{si }a=0\\
+\{g<\frac{1}{a}\}\cup\{0<g<+\infty\} & \text{si }a<0
+\end{cases}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Dada una sucesión de funciones medibles
+\begin_inset Formula $(f_{k}:\Omega\rightarrow\mathbb{R})_{k}$
+\end_inset
+
+, las funciones
+\begin_inset Formula $\sup_{k}f_{k}(\omega)$
+\end_inset
+
+,
+\begin_inset Formula $\inf_{k}f_{k}(\omega)$
+\end_inset
+
+,
+\begin_inset Formula $\limsup_{k}f_{k}(\omega)$
+\end_inset
+
+ y
+\begin_inset Formula $\liminf_{k}f_{k}(\omega)$
+\end_inset
+
+ son medibles.
+ De aquí que, si
+\begin_inset Formula $E$
+\end_inset
+
+ es el conjunto de puntos
+\begin_inset Formula $\omega\in\Omega$
+\end_inset
+
+ en los que
+\begin_inset Formula $(f_{n}(\omega))_{n}$
+\end_inset
+
+ converge, entonces el límite puntual de
+\begin_inset Formula $(f_{n}|_{E})_{n}$
+\end_inset
+
+ es medible y
+\begin_inset Formula $E$
+\end_inset
+
+ también lo es.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Basta probarlo para el supremo, pues
+\begin_inset Formula $\inf_{k}f_{k}(x)=-\sup_{k}(-f_{k})$
+\end_inset
+
+,
+\begin_inset Formula $\limsup_{n}f_{n}(\omega)=\inf_{m\in\mathbb{N}}\{\sup_{k\geq m}\{f_{k}(\omega)\}\}$
+\end_inset
+
+ y
+\begin_inset Formula $\liminf_{n}f_{n}(\omega)=\sup_{m\in\mathbb{N}}\{\inf_{k\geq m}\{f_{k}(\omega)\}\}$
+\end_inset
+
+, pero
+\begin_inset Formula $\{\sup_{k}f_{k}>a\}=\bigcup_{k}\{f_{k}>a\}$
+\end_inset
+
+.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Funciones simples
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+función simple
+\series default
+ es aquella cuya imagen es finita.
+ Si
+\begin_inset Formula $f:\Omega\rightarrow\Omega'$
+\end_inset
+
+ es una función simple que toma valores distintos
+\begin_inset Formula $a_{1},\dots,a_{n}$
+\end_inset
+
+ en conjuntos disjuntos respectivos
+\begin_inset Formula $E_{1},\dots,E_{n}$
+\end_inset
+
+, su
+\series bold
+forma canónica
+\series default
+ es
+\begin_inset Formula
+\[
+f=\sum_{k=1}^{n}a_{k}\chi_{E_{k}}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Claramente
+\begin_inset Formula $\chi_{E}$
+\end_inset
+
+ es medible si y sólo si
+\begin_inset Formula $E$
+\end_inset
+
+ lo es, por lo que
+\begin_inset Formula $f$
+\end_inset
+
+ es medible si y sólo si lo son
+\begin_inset Formula $E_{1},\dots,E_{n}$
+\end_inset
+
+.
+ Algunos autores sólo llaman funciones simples a las que además son medibles.
+ Como
+\series bold
+teorema
+\series default
+:
+\end_layout
+
+\begin_layout Enumerate
+Toda función
+\begin_inset Formula $f:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ es límite de una sucesión creciente de funciones simples.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Para
+\begin_inset Formula $k\in\mathbb{N}$
+\end_inset
+
+, subdividimos
+\begin_inset Formula $[0,k]$
+\end_inset
+
+ en subintervalos
+\begin_inset Formula $\{[(j-1)2^{-k},j2^{-k}]\}_{j\in\{1,\dots,k2^{k}\}}$
+\end_inset
+
+ y definimos
+\begin_inset Formula
+\[
+f_{k}(x):=\begin{cases}
+\frac{j-1}{2^{k}} & \text{si }\frac{j-1}{2^{k}}\leq f(x)<\frac{j}{2^{k}},j\in\{1,\dots,k2^{k}\}\\
+k & \text{si }f(x)\geq k
+\end{cases}
+\]
+
+\end_inset
+
+Cada
+\begin_inset Formula $f_{k}$
+\end_inset
+
+ es una función simple definida en todo
+\begin_inset Formula $\Omega$
+\end_inset
+
+,
+\begin_inset Formula $f_{k}\leq f_{k+1}$
+\end_inset
+
+ porque al pasar de
+\begin_inset Formula $f_{k}$
+\end_inset
+
+ a
+\begin_inset Formula $f_{k+1}$
+\end_inset
+
+ dividimos los intervalos por la mitad y permitimos valores mayores en la
+ imagen, y
+\begin_inset Formula $f_{k}\rightarrow f$
+\end_inset
+
+ porque para un valor
+\begin_inset Formula $k$
+\end_inset
+
+ lo suficientemente grande,
+\begin_inset Formula $0\leq f(x)-f_{k}(x)\leq2^{-k}$
+\end_inset
+
+ si
+\begin_inset Formula $f(x)$
+\end_inset
+
+ es finito y
+\begin_inset Formula $f_{k}=k\rightarrow+\infty$
+\end_inset
+
+ si
+\begin_inset Formula $f(x)=+\infty$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Toda función
+\begin_inset Formula $f:\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+ es límite de una sucesión de funciones simples.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Basta aplicar lo anterior a
+\begin_inset Formula $f^{+}:=\max\{0,f\}$
+\end_inset
+
+ y
+\begin_inset Formula $f^{-}:=-\min\{0,f\}$
+\end_inset
+
+ y restar las sucesiones resultantes.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si la función
+\begin_inset Formula $f$
+\end_inset
+
+ en los dos apartados anteriores es medible, podemos hacer que las
+\begin_inset Formula $f_{k}$
+\end_inset
+
+ también lo sean.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+En el primer apartado,
+\begin_inset Formula
+\[
+f_{k}=\sum_{j=1}^{k2^{k}}\frac{j-1}{2^{k}}\chi_{\left\{ \frac{j-1}{2^{k}}\leq f<\frac{j}{2^{k}}\right\} }+k\chi_{\{f\geq k\}}
+\]
+
+\end_inset
+
+que es medible porque todos los conjuntos involucrados lo son, y en el segundo
+ basta considerar
+\begin_inset Formula $f^{+}$
+\end_inset
+
+ y
+\begin_inset Formula $f^{-}$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ es acotada, las funciones simples dadas convergerán uniformemente a
+\begin_inset Formula $f$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Integrales en funciones positivas
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $(\Omega,\Sigma,\mu)$
+\end_inset
+
+ un espacio de medida,
+\begin_inset Formula ${\cal S}(\Omega)$
+\end_inset
+
+ el espacio vectorial de las funciones simples
+\begin_inset Formula $\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+ y
+\begin_inset Formula ${\cal S}(\Omega)^{+}:=\{h\in{\cal S}(\Omega):h\geq0\}$
+\end_inset
+
+, llamamos
+\series bold
+integral
+\series default
+ de una función simple
+\begin_inset Formula $h:=\sum_{k=1}^{n}a_{k}\chi_{E_{k}}\in{\cal S}(\Omega)^{+}$
+\end_inset
+
+ como
+\begin_inset Formula
+\[
+\int h\,d\mu:=\sum_{k=1}^{n}a_{k}\mu(E_{k})
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $f,g\in{\cal S}(\Omega)^{+}$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $\alpha\in[0,+\infty)$
+\end_inset
+
+,
+\begin_inset Formula $\int\alpha f\,d\mu=\alpha\int f\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Supongamos
+\begin_inset Formula $f=:\sum_{i=1}^{n}a_{i}\chi_{A_{i}}$
+\end_inset
+
+ y
+\begin_inset Formula $g=:\sum_{j=1}^{m}b_{j}\chi_{B_{j}}$
+\end_inset
+
+.
+ Entonces
+\begin_inset Formula $\alpha f=\sum_{i=1}^{n}\alpha a_{i}\chi_{A_{i}}$
+\end_inset
+
+ y
+\begin_inset Formula
+\[
+\int\alpha f\,d\mu=\sum_{i=1}^{n}\alpha a_{i}\mu(A_{i})=\alpha\sum_{i=1}^{n}a_{i}\mu(A_{i})=\alpha\int f\,d\mu
+\]
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+\begin_inset Formula $\int(f+g)d\mu=\int f\,d\mu+\int g\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Sean
+\begin_inset Formula $C:=\{c_{1},\dots,c_{r}\}=\{a_{i}+b_{j}\}_{i\in\{1,\dots,n\},j\in\{1,\dots,m\}}$
+\end_inset
+
+, y
+\begin_inset Formula $C_{k}:=\bigcup_{a_{i}+b_{j}=c_{k}}(A_{i}\cap B_{j})$
+\end_inset
+
+ para cada
+\begin_inset Formula $c_{k}$
+\end_inset
+
+, tenemos
+\begin_inset Formula $f+g=\sum_{k=1}^{r}c_{k}\chi_{C_{k}}$
+\end_inset
+
+.
+ Entonces
+\begin_inset Formula
+\begin{multline*}
+\int f+g\,d\mu=\sum_{k=1}^{r}c_{k}\mu(C_{k})=\sum_{k=1}^{r}c_{k}\mu(C_{k})=\sum_{k=1}^{r}c_{k}\left(\sum_{a_{i}+b_{j}=c_{k}}\mu(A_{i}\cap B_{j})\right)=\\
+=\sum_{k=1}^{r}\sum_{a_{i}+b_{j}=c_{k}}(a_{i}+b_{j})\mu(A_{i}\cap B_{j})=\sum_{i=1}^{n}\sum_{j=1}^{m}((a_{i}+b_{j})\mu(A_{i}\cap B_{j})=\\
+=\sum_{i=1}^{n}a_{i}\left(\sum_{j=1}^{m}\mu(A_{i}\cap B_{j})\right)+\sum_{j=1}^{m}b_{j}\left(\sum_{i=1}^{n}\mu(A_{i}\cap B_{j})\right)=\sum_{i=1}^{n}a_{i}\mu(A_{i})+\sum_{j=1}^{m}b_{i}\mu(B_{j})
+\end{multline*}
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f\leq g$
+\end_inset
+
+ entonces
+\begin_inset Formula $\int f\,d\mu\leq\int g\,d\mu$
+\end_inset
+
+.
+\begin_inset Formula
+\[
+\int g\,d\mu=\int f\,d\mu+\int(g-f)d\mu\geq\int f\,d\mu
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\nu:\Sigma\rightarrow[0,+\infty]$
+\end_inset
+
+ dada por
+\begin_inset Formula $\nu(E):=\int f\chi_{E}d\mu$
+\end_inset
+
+ es una medida finita.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula $\nu(E)=\sum_{i=1}^{n}a_{i}\mu(A_{i}\cap E)$
+\end_inset
+
+, y como las aplicaciones
+\begin_inset Formula $\nu_{i}(E)=\mu(E\cap A_{i})$
+\end_inset
+
+ son medidas,
+\begin_inset Formula $\nu$
+\end_inset
+
+ también lo es.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Para
+\begin_inset Formula $f:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ medible, se define
+\begin_inset Formula
+\[
+\int f\,d\mu:=\sup\left\{ \int s\,d\mu:s\in{\cal S}(\Omega)\land0\leq s\leq f\right\}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Esta definición es compatible con la dada inicialmente para funciones simples.
+ Para
+\begin_inset Formula $E\in\Sigma$
+\end_inset
+
+, se define
+\begin_inset Formula
+\[
+\int_{E}f\,d\mu:=\int\chi_{E}f\,d\mu
+\]
+
+\end_inset
+
+
+\begin_inset Newpage pagebreak
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Para
+\begin_inset Formula $f,g:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ medibles y
+\begin_inset Formula $A,B\in\Sigma$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $f\leq g\implies\int f\,d\mu\leq\int g\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $A\subseteq B\implies\int_{A}f\,d\mu\leq\int_{B}f\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\forall\alpha\in[0,+\infty),\int\alpha f\,d\mu=\alpha\int f\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $f|_{A}=0\implies\int_{A}f\,d\mu=0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\mu(A)=0\implies\int_{A}f\,d\mu=0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+desigualdad de Tchevichev
+\series default
+ afirma que si
+\begin_inset Formula $f:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ es medible y
+\begin_inset Formula $E\in\Sigma$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Enumerate
+Si para
+\begin_inset Formula $t>0$
+\end_inset
+
+ definimos
+\begin_inset Formula $E_{t}:=E\cap\{f>t\}$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+t\mu(E_{t})\leq\int_{E_{t}}f\,d\mu\leq\int f\,d\mu
+\]
+
+\end_inset
+
+Se obtiene de integrar en
+\begin_inset Formula $t\chi_{E_{t}}\leq f\chi_{E_{t}}\leq f$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $\int_{E}f\,d\mu=0$
+\end_inset
+
+ entonces
+\begin_inset Formula $f(\omega)=0$
+\end_inset
+
+ para casi todo
+\begin_inset Formula $\omega\in E$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Por lo anterior,
+\begin_inset Formula $\forall k\in\mathbb{N},\mu(E_{\frac{1}{k}})=0$
+\end_inset
+
+, y como
+\begin_inset Formula $\{f\neq0\}=\bigcup_{k}E_{\frac{1}{k}}$
+\end_inset
+
+, este conjunto también tiene medida nula.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $\int_{E}f\,d\mu<+\infty$
+\end_inset
+
+ entonces
+\begin_inset Formula $f(\omega)<+\infty$
+\end_inset
+
+ para casi todo
+\begin_inset Formula $\omega\in E$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula $\mu(E_{k})\leq\frac{1}{k}\int f\,d\mu$
+\end_inset
+
+, luego
+\begin_inset Formula $\mu(\{f=+\infty\})=\mu\left(\bigcap_{k}E_{k}\right)=\lim_{n}\mu(E_{k})=0$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $\int_{E}f\,d\mu<+\infty$
+\end_inset
+
+ entonces
+\begin_inset Formula $\{f>0\}$
+\end_inset
+
+ es
+\begin_inset Formula $\sigma$
+\end_inset
+
+-finito.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula $\{f>0\}=\bigcup_{k}E_{\frac{1}{k}}$
+\end_inset
+
+ y cada
+\begin_inset Formula $E_{\frac{1}{k}}$
+\end_inset
+
+ tiene medida finita.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+El
+\series bold
+teorema de convergencia monótona de Lebesgue
+\series default
+ afirma que si
+\begin_inset Formula $(f_{n}:\Omega\rightarrow[0,+\infty])_{n}$
+\end_inset
+
+ es una sucesión creciente de funciones medibles que converge puntualmente
+ a
+\begin_inset Formula $f:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+\int f\,d\mu=\lim_{n}\int f_{n}d\mu
+\]
+
+\end_inset
+
+
+\series bold
+Demostración:
+\series default
+ Sea
+\begin_inset Formula $\alpha:=\sup\int f_{n}d\mu\in[0,+\infty]$
+\end_inset
+
+, como
+\begin_inset Formula $f_{n}\leq f\forall n$
+\end_inset
+
+ y
+\begin_inset Formula $f$
+\end_inset
+
+ es medible por ser límite puntual de medibles,
+\begin_inset Formula $\alpha\leq\int f$
+\end_inset
+
+.
+ Sea
+\begin_inset Formula $s\leq f$
+\end_inset
+
+ una función simple, al ser
+\begin_inset Formula $f_{n}$
+\end_inset
+
+ creciente y convergente a
+\begin_inset Formula $f$
+\end_inset
+
+, se tiene que
+\begin_inset Formula $(E_{n}:=\{f_{n}\geq s\})_{n}$
+\end_inset
+
+ es creciente con
+\begin_inset Formula $\bigcup_{n}E_{n}=\Omega$
+\end_inset
+
+.
+ Tenemos que
+\begin_inset Formula $\int f_{n}d\mu\geq\int\chi_{E_{n}}f_{n}d\mu\geq\int\chi_{E_{n}}s\,d\mu$
+\end_inset
+
+.
+ Tomando límites aquí, vemos que
+\begin_inset Formula $\alpha\geq\int\chi_{\Omega}s\,d\mu=\int s\,d\mu$
+\end_inset
+
+, y tomando supremos entre las funciones simples
+\begin_inset Formula $s\leq f$
+\end_inset
+
+,
+\begin_inset Formula $\alpha\geq\int f\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Usando esto podemos probar para
+\begin_inset Formula $f,g:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ que
+\begin_inset Formula $\int(f+g)d\mu=\int f\,d\mu+\int g\,d\mu$
+\end_inset
+
+, partiendo de la propiedad correspondiente para funciones simples.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+teorema de Beppo-Levi
+\series default
+ afirma que la suma de una sucesión de funciones medibles
+\begin_inset Formula $f_{n}:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ es medible y
+\begin_inset Formula
+\[
+\int\left(\sum_{n=1}^{\infty}f_{n}\right)d\mu=\sum_{n=1}^{\infty}\int f_{n}d\mu
+\]
+
+\end_inset
+
+
+\series bold
+Demostración:
+\series default
+
+\begin_inset Formula $(F_{n}:=\sum_{k=1}^{n}f_{k})_{n}$
+\end_inset
+
+ es una sucesión de funciones medibles, por lo que basta tomar límites en
+
+\begin_inset Formula $\int F_{n}d\mu=\sum_{k=1}^{n}\int f_{k}d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Una función
+\begin_inset Formula $\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ medible es
+\series bold
+integrable
+\series default
+ si su integral es finita.
+ Por ejemplo, si
+\begin_inset Formula $\Sigma={\cal P}(\Omega)$
+\end_inset
+
+ y
+\begin_inset Formula $\mu(E)=|E|\forall E\in\Sigma$
+\end_inset
+
+, una función
+\begin_inset Formula $f$
+\end_inset
+
+ medible positiva es integrable si y sólo si
+\begin_inset Formula $\int f\,d\mu=\sum_{\omega\in\Omega}f(\omega)<+\infty$
+\end_inset
+
+, y si además
+\begin_inset Formula $\Omega=\mathbb{N}$
+\end_inset
+
+, la sucesión
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable si y sólo si la serie
+\begin_inset Formula $\sum_{n}f(n)$
+\end_inset
+
+ converge, y la integral coincide con la suma.
+ En tal caso, el teorema de Beppo-Levi nos dice que si
+\begin_inset Formula $a_{n,m}$
+\end_inset
+
+ es una sucesión doble de números positivos, entonces
+\begin_inset Formula
+\[
+\sum_{n=1}^{\infty}\sum_{m=1}^{\infty}a_{m,n}=\sum_{m=1}^{\infty}\sum_{n=1}^{\infty}a_{m,n}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+lema de Fatou
+\series default
+ afirma que si
+\begin_inset Formula $f_{n}:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ es una sucesión de funciones medibles, su límite inferior
+\begin_inset Formula $f(\omega):=\liminf_{n}f_{n}(\omega)$
+\end_inset
+
+ es medible y
+\begin_inset Formula $\int f\,d\mu\leq\liminf_{n}\int f_{n}d\mu$
+\end_inset
+
+.
+
+\series bold
+Demostración:
+\series default
+
+\begin_inset Formula $(g_{n}:=\inf_{m\geq n}\{f_{m}(x)\})_{n}$
+\end_inset
+
+ define una sucesión creciente de funciones medibles convergente hacia
+\begin_inset Formula $f$
+\end_inset
+
+, y por la monotonía de la integral y el teorema de convergencia monótona,
+
+\begin_inset Formula
+\[
+\int f\,d\mu=\sup_{n\in\mathbb{N}}\left\{ \int g_{n}d\mu\right\} \leq\sup_{n\in\mathbb{N}}\left\{ \inf_{m\geq n}\left\{ \int f_{m}d\mu\right\} \right\} =\liminf_{n}\int f_{n}d\mu
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, si
+\begin_inset Formula $g:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+ es medible, entonces
+\begin_inset Formula $\nu:\Sigma\rightarrow[0,+\infty]$
+\end_inset
+
+ dada por
+\begin_inset Formula $\nu(E):=\int_{E}g\,d\mu$
+\end_inset
+
+ es una medida y para
+\begin_inset Formula $f:\Omega\rightarrow[0,+\infty]$
+\end_inset
+
+,
+\begin_inset Formula
+\[
+\int f\,d\nu=\int fg\,d\mu
+\]
+
+\end_inset
+
+
+\series bold
+Demostración:
+\series default
+
+\begin_inset Formula $\nu(\emptyset)=0$
+\end_inset
+
+ y, dada una sucesión
+\begin_inset Formula $(A_{n})_{n}$
+\end_inset
+
+ de medibles disjuntos,
+\begin_inset Formula $g\chi_{\bigcup_{n}A_{n}}=\sum_{n}g\chi_{A_{n}}$
+\end_inset
+
+ y el teorema de Beppo-Levi nos da que
+\begin_inset Formula $\nu(\bigcup_{n}A_{n})=\sum_{n}\nu(A_{n})$
+\end_inset
+
+ y por tanto
+\begin_inset Formula $\nu$
+\end_inset
+
+ es una medida.
+ Sea
+\begin_inset Formula $s:=\sum_{i=1}^{m}a_{i}\chi_{E_{i}}\in{\cal S}(\Omega)^{+}$
+\end_inset
+
+,
+\begin_inset Formula
+\[
+\int s\,d\nu=\sum_{i=1}^{m}a_{i}\int\chi_{E_{i}}g\,d\mu=\int\left(\sum_{i=1}^{m}a_{i}\chi_{E_{i}}\right)g\,d\mu=\int sg\,d\mu
+\]
+
+\end_inset
+
+Usando el teorema de la convergencia monótona para tomar límites en una
+ sucesión creciente de funciones simples que converge a
+\begin_inset Formula $f$
+\end_inset
+
+ se completa la prueba.
+\end_layout
+
+\begin_layout Section
+Funciones integrables
+\end_layout
+
+\begin_layout Standard
+Una función medible
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{R}$
+\end_inset
+
+ es integrable si
+\begin_inset Formula $\int|f|d\mu<+\infty$
+\end_inset
+
+, si y sólo si
+\begin_inset Formula $f^{+}=\max\{f,0\},f^{-}=\min\{f,0\}:\Omega\rightarrow[-\infty,+\infty]$
+\end_inset
+
+ son integrables, y definimos
+\begin_inset Formula
+\[
+\int f\,d\mu:=\int f^{+}\,d\mu-\int f^{-}\,d\mu
+\]
+
+\end_inset
+
+Si solo una de entre
+\begin_inset Formula $f^{+}$
+\end_inset
+
+ y
+\begin_inset Formula $f^{-}$
+\end_inset
+
+ es integrable, usamos esta misma definición y entonces
+\begin_inset Formula $\int f\,d\mu\in[-\infty,+\infty]$
+\end_inset
+
+.
+ Una función medible
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ es integrable si
+\begin_inset Formula $\int|f|d\mu<+\infty$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $u,v:\Omega\rightarrow\mathbb{R}$
+\end_inset
+
+ son tales que
+\begin_inset Formula $f=u+iv$
+\end_inset
+
+, es claro que
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable si y sólo si
+\begin_inset Formula $u$
+\end_inset
+
+ y
+\begin_inset Formula $v$
+\end_inset
+
+ lo son, y definimos
+\begin_inset Formula
+\[
+\int f\,d\mu:=\int u\,d\mu+i\int v\,d\mu
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\begin_inset Formula ${\cal L}^{1}(\Omega,\Sigma,\mu)$
+\end_inset
+
+ al conjunto de funciones integrables
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+.
+ Cuando basta indicar uno de los componentes de la terna y se sobreentiende
+ el resto, podemos escribir
+\begin_inset Formula ${\cal L}^{1}(\Omega)$
+\end_inset
+
+,
+\begin_inset Formula ${\cal L}^{1}(\Sigma)$
+\end_inset
+
+ o
+\begin_inset Formula ${\cal L}^{1}(\mu)$
+\end_inset
+
+.
+ El subconjunto de
+\begin_inset Formula ${\cal L}^{1}$
+\end_inset
+
+ formado por las funciones reales se denota
+\begin_inset Formula ${\cal L}_{\mathbb{R}}^{1}(\mu)$
+\end_inset
+
+, y por definición
+\begin_inset Formula $f\in{\cal L}^{1}(\mu)\iff|f|\in{\cal L}^{1}(\mu)$
+\end_inset
+
+.
+ Propiedades:
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula ${\cal L}^{1}(\mu)$
+\end_inset
+
+ es un espacio vectorial complejo y, si lo consideramos como un espacio
+ vectorial real por el isomorfismo canónico entre
+\begin_inset Formula $\mathbb{C}$
+\end_inset
+
+ y
+\begin_inset Formula $\mathbb{R}^{2}$
+\end_inset
+
+,
+\begin_inset Formula ${\cal L}_{\mathbb{R}}^{1}$
+\end_inset
+
+ es un subespacio suyo.
+\begin_inset Newline newline
+\end_inset
+
+Sean
+\begin_inset Formula $f,g\in{\cal L}^{1}(\mu)$
+\end_inset
+
+ y
+\begin_inset Formula $\alpha\in\mathbb{C}$
+\end_inset
+
+,
+\begin_inset Formula $\alpha f+g$
+\end_inset
+
+ es medible y
+\begin_inset Formula $|\alpha f+g|\leq|\alpha||f|+|g|$
+\end_inset
+
+, e integrando y aplicando las propiedades de la integral en funciones positivas
+,
+\begin_inset Formula $\int|\alpha f+g|d\mu\leq\int(|\alpha||f|+|g|)d\mu=|\alpha|\int|f|d\mu+\int|g|d\mu<+\infty$
+\end_inset
+
+,
+\end_layout
+
+\begin_layout Enumerate
+La aplicación
+\begin_inset Formula $\nu:{\cal L}^{1}(\mu)\rightarrow\mathbb{C}$
+\end_inset
+
+ dada por
+\begin_inset Formula $\nu(f):=\int f\,d\mu$
+\end_inset
+
+ es lineal.
+\begin_inset Newline newline
+\end_inset
+
+Sean
+\begin_inset Formula $u,v\in{\cal L}_{\mathbb{R}}^{1}(\mu)$
+\end_inset
+
+ y
+\begin_inset Formula $\alpha\in\mathbb{R}$
+\end_inset
+
+:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+\begin_inset Formula $i\int(u+iv)d\mu=i\int ud\mu+i^{2}\int v\,d\mu=\int(-v+iu)d\mu=\int i(u+iv)d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $h:=u+v\implies h^{+}-h^{-}=u^{+}-u^{-}+v^{+}-v^{-}\implies h^{+}+(u^{-}+v^{-})=(u^{+}+v^{+})+h^{-}\implies\int h^{+}d\mu+\int u^{-}d\mu+\int v^{-}d\mu=\int u^{+}d\mu+\int v^{+}d\mu+\int h^{-}d\mu\implies\int h\,d\mu=\int h^{+}d\mu-\int h^{-}d\mu=\int u^{+}d\mu-\int u^{-}d\mu+\int v^{+}d\mu-\int v^{-}d\mu=\int u\,d\mu+\int v\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\alpha\geq0\implies(\alpha u)^{+}=\alpha u^{+}\land(\alpha u)^{-}=\alpha u^{-}\implies\int\alpha u\,d\mu=\int\alpha u^{+}d\mu-\int\alpha u^{-}d\mu=\alpha\left(\int u^{+}d\mu-\int u^{-}d\mu\right)=\alpha\int u\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Formula $\alpha<0\implies(\alpha u)^{+}=(-\alpha)u^{-}\land(\alpha u)^{-}=(-\alpha)u^{+}\implies\int\alpha u\,d\mu=\int(-\alpha)u^{-}d\mu-\int(-\alpha)u^{+}d\mu=(-\alpha)\left(\int u^{-}d\mu-\int u^{+}d\mu\right)=\alpha\int u\,d\mu$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Desigualdad triangular:
+\begin_inset Formula
+\[
+\forall f\in{\cal L}^{1}(\mu),\left|\int f\,d\mu\right|\leq\int|f|d\mu
+\]
+
+\end_inset
+
+Si
+\begin_inset Formula $\left|\int f\,d\mu\right|=0$
+\end_inset
+
+ es trivial.
+ Si
+\begin_inset Formula $\left|\int f\,d\mu\right|\neq0$
+\end_inset
+
+, sea
+\begin_inset Formula $a:=\frac{\int f\,d\mu}{|\int f\,d\mu|}$
+\end_inset
+
+ y como
+\begin_inset Formula $\forall z\in\mathbb{C},|\text{Re}(z)|\leq|z|$
+\end_inset
+
+,
+\begin_inset Formula $|\text{Re}(af)|\leq|af|=|f|$
+\end_inset
+
+; de aquí que
+\begin_inset Formula $\left|\int f\,d\mu\right|=a\int f\,d\mu=\text{Re}\left(\int af\,d\mu\right)=\int\text{Re}(af)d\mu\leq\int|f|d\mu$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Una función medible
+\begin_inset Formula $f:E\rightarrow\mathbb{C}$
+\end_inset
+
+ definida en
+\begin_inset Formula $E\in\Sigma$
+\end_inset
+
+ es
+\series bold
+integrable sobre
+\begin_inset Formula $E$
+\end_inset
+
+
+\series default
+ si la
+\series bold
+extensión canónica
+\series default
+
+\begin_inset Formula $\tilde{f}:=f\chi_{E}$
+\end_inset
+
+ es integrable, y entonces se define
+\begin_inset Formula $\int_{E}f\,d\mu:=\int\tilde{f}\,d\mu$
+\end_inset
+
+.
+ Con esto:
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f:E\rightarrow\mathbb{C}$
+\end_inset
+
+ es una función medible definida en
+\begin_inset Formula $E\in\Sigma$
+\end_inset
+
+,
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable sobre
+\begin_inset Formula $E$
+\end_inset
+
+ y
+\begin_inset Formula $\forall A\in\Sigma\cap{\cal P}(E),\int_{A}f\,d\mu=0$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $f$
+\end_inset
+
+ se anula en casi todo
+\begin_inset Formula $\omega\in E$
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+En particular,
+\begin_inset Formula $\int(\text{Re}(f))^{+}d\mu=\text{Re}\left(\int_{\{\text{Re}(f)\geq0\}}f\,d\mu\right)=0$
+\end_inset
+
+, y por la desigualdad de Tchevichev,
+\begin_inset Formula $\mu\{\text{Re}(f)^{+}>t\}\leq\frac{1}{t}\int(\text{Re}(f))^{+}d\mu=0$
+\end_inset
+
+ para todo
+\begin_inset Formula $t>0$
+\end_inset
+
+, por lo que
+\begin_inset Formula $\text{Re}(f)^{+}$
+\end_inset
+
+ se anula en casi todo punto.
+ Lo mismo sucede con
+\begin_inset Formula $(\text{Re}(f))^{-}$
+\end_inset
+
+,
+\begin_inset Formula $(\text{Im}(f))^{+}$
+\end_inset
+
+ e
+\begin_inset Formula $(\text{Im}(f))^{-}$
+\end_inset
+
+.
+ Por tanto
+\begin_inset Formula $f$
+\end_inset
+
+ se anula en casi todo punto.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Para
+\begin_inset Formula $A\in\Sigma\cap{\cal P}(E)$
+\end_inset
+
+,
+\begin_inset Formula $(\text{Re}(f))^{+}$
+\end_inset
+
+,
+\begin_inset Formula $(\text{Re}(f))^{-}$
+\end_inset
+
+,
+\begin_inset Formula $(\text{Im}(f))^{+}$
+\end_inset
+
+ e
+\begin_inset Formula $(\text{Im}(f))^{-}$
+\end_inset
+
+ se anulan en casi todo
+\begin_inset Formula $\omega\in A\subseteq E$
+\end_inset
+
+, por lo que
+\begin_inset Formula $\text{Re}\left(\int f\,d\mu\right)=\int\text{Re}(f)d\mu=\int(\text{Re}(f))^{+}d\mu-\int(\text{Re}(f))^{-}d\mu=0-0=0$
+\end_inset
+
+ y, análogamente,
+\begin_inset Formula $\text{Im}\left(\int f\,d\mu\right)=0$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f,g:E\rightarrow\mathbb{C}$
+\end_inset
+
+ son medibles iguales en casi todo punto y
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable sobre
+\begin_inset Formula $E$
+\end_inset
+
+ entonces
+\begin_inset Formula $g$
+\end_inset
+
+ también lo es y
+\begin_inset Formula $\int_{E}f\,d\mu=\int_{E}g\,d\mu$
+\end_inset
+
+.
+\begin_inset Newline newline
+\end_inset
+
+Basta aplicar el punto anterior a
+\begin_inset Formula $f-g$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+teorema de la convergencia dominada
+\series default
+ afirma que, dada una sucesión
+\begin_inset Formula $(f_{n}:\Omega\rightarrow\mathbb{C})_{n}$
+\end_inset
+
+ de funciones que converge en casi todo punto, si existe
+\begin_inset Formula $g:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ integrable con
+\begin_inset Formula $|f_{n}|\leq g\forall n\in\mathbb{N}$
+\end_inset
+
+, entonces la función límite
+\begin_inset Formula $f(\omega):=\lim_{n}f_{n}(\omega)$
+\end_inset
+
+, definida en casi todo punto, es integrable,
+\begin_inset Formula
+\[
+\lim_{n}\int|f_{n}-f|d\mu=0
+\]
+
+\end_inset
+
+y, en particular,
+\begin_inset Formula
+\[
+\lim_{n}\int f_{n}d\mu=\int f\,d\mu
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Demostración:
+\series default
+ Las
+\begin_inset Formula $f_{n}$
+\end_inset
+
+ son integrables al estar acotadas por una función integrable.
+ Te
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ne
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+mos que
+\begin_inset Formula $|f-f_{n}|\leq|f|+|f_{n}|\leq2g$
+\end_inset
+
+ y, teniendo en cuenta que
+\begin_inset Formula $\limsup_{n}|f-f_{n}|=0$
+\end_inset
+
+ y aplicando el lema de Fatou a la sucesión de medibles positivas
+\begin_inset Formula $2g-|f-f_{n}|$
+\end_inset
+
+, queda que
+\begin_inset Formula $\int2g\,d\mu=\int\liminf_{n}(2g-|f-f_{n}|)d\mu\leq\liminf_{n}\int(2g-|f-f_{n}|)d\mu=\int2g\,d\mu-\limsup_{n}\int|f-f_{n}|$
+\end_inset
+
+.
+ Restando la cantidad finita
+\begin_inset Formula $\int2g\,d\mu$
+\end_inset
+
+ a ambos miembros de la desigualdad,
+\begin_inset Formula $0\leq-\limsup_{n}\int|f-f_{n}|\leq0$
+\end_inset
+
+, con lo que
+\begin_inset Formula $\lim_{n}\int|f-f_{n}|=0$
+\end_inset
+
+ y
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable porque
+\begin_inset Formula $|f|\leq|f_{n}|+|f-f_{n}|$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Como
+\series bold
+teorema
+\series default
+, dada una sucesión de funciones integrables
+\begin_inset Formula $(f_{n}:\Omega\rightarrow\mathbb{C})_{n}$
+\end_inset
+
+ con
+\begin_inset Formula $\sum_{n=1}^{\infty}\int|f_{n}|d\mu<+\infty$
+\end_inset
+
+, la serie
+\begin_inset Formula $\sum_{n=1}^{\infty}f_{n}(\omega)$
+\end_inset
+
+ converge absolutamente en casi todo punto y su suma es integrable con
+\begin_inset Formula $\int\left(\sum_{n=1}^{\infty}f_{n}\right)d\mu=\sum_{n=1}^{\infty}\int f_{n}d\mu$
+\end_inset
+
+.
+
+\series bold
+Demostración:
+\series default
+ Por el teorema de la convergencia monótona,
+\begin_inset Formula $G:=\sum_{n}|f_{n}|$
+\end_inset
+
+ converge en casi todo punto y es integrable, y
+\begin_inset Formula $S:=\sum_{n}f_{n}$
+\end_inset
+
+ también, y como para
+\begin_inset Formula $(g_{m}:=\sum_{n=0}^{m}f_{n})_{m}$
+\end_inset
+
+ se tiene
+\begin_inset Formula $|g_{m}|\leq G$
+\end_inset
+
+, podemos aplicar el teorema de la convergencia dominada para obtener el
+ resultado.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Relación entre las integrales de Riemann y Lebesgue
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, las funciones integrables Riemann son integrables respecto a la medida
+ de Lebesgue y las integrales coinciden.
+
+\series bold
+Demostración:
+\series default
+ Sea
+\begin_inset Formula $f:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ integrable Riemann, y por tanto acotada, existe una sucesión
+\begin_inset Formula $(P_{k})_{k}$
+\end_inset
+
+ de particiones en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ con
+\begin_inset Formula $\Vert P_{n}\Vert\rightarrow0$
+\end_inset
+
+ y
+\begin_inset Formula $\int_{[a,b]}f(\vec{x})d\vec{x}=\lim_{k}s(f,P_{k})$
+\end_inset
+
+, y si
+\begin_inset Formula $\{N_{k1},\dots,N_{km_{k}}\}$
+\end_inset
+
+ es el conjunto de subrectángulos de
+\begin_inset Formula $P_{k}$
+\end_inset
+
+, la sucesión
+\begin_inset Formula $(s_{k})_{k}$
+\end_inset
+
+ de funciones simples
+\begin_inset Formula $s_{k}(t):=\sum_{i=1}^{m_{k}}\chi_{N_{ki}}\inf_{x\in N_{ki}}\{f(x)\}$
+\end_inset
+
+ está acotada por la función constante
+\begin_inset Formula $M:=\chi_{[a,b]}\sup_{x\in[a,b]}\{|f(x)|\}$
+\end_inset
+
+ y converge a
+\begin_inset Formula $f$
+\end_inset
+
+ en todos sus puntos de continuidad y por tanto en casi todo punto.
+ Entonces, por el teorema de la convergencia dominada,
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Lebesgue en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ y
+\begin_inset Formula $\int_{[a,b]}f\,d\lambda_{n}=\int_{[a,b]}f(\vec{x})d\vec{x}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Una función
+\begin_inset Formula $f:S\rightarrow\mathbb{R}$
+\end_inset
+
+ definida en un intervalo
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional
+\begin_inset Formula $S\subseteq\mathbb{R}^{n}$
+\end_inset
+
+ se dice
+\series bold
+localmente integrable Riemann
+\series default
+ si es integrable Riemann sobre cada intervalo compacto
+\begin_inset Formula $I\subseteq S$
+\end_inset
+
+.
+ Definimos entonces la
+\series bold
+integral impropia
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ en
+\begin_inset Formula $S$
+\end_inset
+
+ como
+\begin_inset Formula
+\[
+\int_{S}f(x)dx:=\lim_{I\nearrow S}\int_{I}f(x)dx
+\]
+
+\end_inset
+
+y si existe, decimos que
+\series bold
+converge
+\series default
+.
+ La integral impropia
+\begin_inset Formula $\int_{S}f(x)dx$
+\end_inset
+
+ es
+\series bold
+absolutamente convergente
+\series default
+ si
+\begin_inset Formula $\int_{S}|f(x)|dx$
+\end_inset
+
+ es convergente.
+\end_layout
+
+\begin_layout Standard
+Para
+\begin_inset Formula $f:S\rightarrow\mathbb{R}$
+\end_inset
+
+ localmente integrable Riemann sobre un intervalo
+\begin_inset Formula $n$
+\end_inset
+
+-dimensional
+\begin_inset Formula $S\subseteq\mathbb{R}^{n}$
+\end_inset
+
+,
+\begin_inset Formula $\int_{S}f(x)dx$
+\end_inset
+
+ es absolutamente convergente si y sólo si
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Lebesgue sobre
+\begin_inset Formula $S$
+\end_inset
+
+ y
+\begin_inset Formula $\int_{S}f\,d\lambda_{n}=\int_{S}f(x)dx$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\implies]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Riemann, y por tanto Lebesgue, sobre todo intervalo compacto
+
+\begin_inset Formula $I\subseteq S$
+\end_inset
+
+, y dada una sucesión
+\begin_inset Formula $(I_{k})_{k}$
+\end_inset
+
+ de intervalos compactos en
+\begin_inset Formula $S$
+\end_inset
+
+ que tiende a
+\begin_inset Formula $S$
+\end_inset
+
+,
+\begin_inset Formula $(f_{k}:=\chi_{I_{k}}f)$
+\end_inset
+
+ es una sucesión de funciones que tiende a
+\begin_inset Formula $f$
+\end_inset
+
+ tal que
+\begin_inset Formula $|f_{k}|<|f|\forall k\in\mathbb{N}$
+\end_inset
+
+, y por la convergencia dominada tenemos que
+\begin_inset Formula $\int_{S}f\,d\lambda_{n}=\lim_{k}\int f_{k}d\lambda_{n}=\lim_{k}\int_{I_{k}}f\,dx=\int_{S}f(x)dx$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+\begin_inset Formula $\impliedby]$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Riemann en un intervalo compacto
+\begin_inset Formula $I\subseteq S$
+\end_inset
+
+, también es acotada en ese intervalo y por tanto
+\begin_inset Formula $f^{+}$
+\end_inset
+
+ y
+\begin_inset Formula $f^{-}$
+\end_inset
+
+ también lo son.
+ Si además
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Lebesgue sobre
+\begin_inset Formula $S$
+\end_inset
+
+, por la convergencia monótona tenemos que si
+\begin_inset Formula $(I_{k})_{k}$
+\end_inset
+
+ es una sucesión creciente de in
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ter
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+va
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+los compactos que tiende a
+\begin_inset Formula $S$
+\end_inset
+
+,
+\begin_inset Formula $\int_{S}f^{+}(x)dx=\lim_{I\nearrow S}\int_{I}f^{+}(x)dx=\lim_{k}\int_{I_{k}}f^{+}(x)dx=\lim_{k}\int_{I_{k}}f^{+}(x)d\lambda_{n}=\int\lim_{k}\chi_{I_{k}}f^{+}(x)d\lambda_{n}=\int_{S}f^{+}(x)d\lambda_{n}<+\infty$
+\end_inset
+
+, y análogamente
+\begin_inset Formula $\int_{S}f^{-}(x)dx<+\infty$
+\end_inset
+
+, por lo que
+\begin_inset Formula $\int_{S}|f(x)|dx=\int_{S}f^{+}(x)dx+\int_{S}f^{-}(x)dx<+\infty$
+\end_inset
+
+.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\series bold
+soporte
+\series default
+ de una función
+\begin_inset Formula $g:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ a
+\begin_inset Formula $\text{sop}(g):=\overline{\{g\neq0\}}$
+\end_inset
+
+, y
+\begin_inset Formula ${\cal C}_{0}(\Omega)$
+\end_inset
+
+ al conjunto de funciones continuas
+\begin_inset Formula $g:\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ con soporte compacto.
+ Como
+\series bold
+teorema
+\series default
+,
+\begin_inset Formula ${\cal C}_{0}(\mathbb{R}^{n})$
+\end_inset
+
+ es denso en
+\begin_inset Formula ${\cal L}^{1}(\mathbb{R}^{n})$
+\end_inset
+
+.
+
+\series bold
+Demostración:
+\series default
+ Como las funciones simples medibles son densas en
+\begin_inset Formula ${\cal L}^{1}(\mathbb{R}^{n})$
+\end_inset
+
+, basta ver que la función característica de cualquier conjunto medible
+ Lebesgue es límite de una sucesión de funciones en
+\begin_inset Formula ${\cal C}_{0}(\mathbb{R}^{n})$
+\end_inset
+
+.
+ Para ello, dado un medible
+\begin_inset Formula $E$
+\end_inset
+
+ y
+\begin_inset Formula $\varepsilon>0$
+\end_inset
+
+, existen
+\begin_inset Formula $K$
+\end_inset
+
+ compacto y
+\begin_inset Formula $A$
+\end_inset
+
+ abierto con
+\begin_inset Formula $K\subseteq E\subseteq A$
+\end_inset
+
+ y
+\begin_inset Formula $\lambda(A\backslash K)<\frac{\varepsilon}{2}$
+\end_inset
+
+, y si
+\begin_inset Formula $f\in{\cal C}_{0}(\mathbb{R}^{n})$
+\end_inset
+
+ cumple que
+\begin_inset Formula $K\subseteq\text{sop}(f)\subseteq A$
+\end_inset
+
+ y
+\begin_inset Formula $\chi_{K}\leq f\leq1$
+\end_inset
+
+, entonces
+\begin_inset Formula $\Vert f-\chi_{E}\Vert_{\infty}\leq2\chi_{A\backslash K}$
+\end_inset
+
+ y
+\begin_inset Formula $\Vert f-\chi_{E}\Vert_{\infty}\leq2\lambda(A\backslash K)<\varepsilon$
+\end_inset
+
+.
+ Para ver que existe
+\begin_inset Formula $f$
+\end_inset
+
+, fijado un cerrado
+\begin_inset Formula $F\subseteq\mathbb{R}^{n}$
+\end_inset
+
+,
+\begin_inset Formula $d(x,F)$
+\end_inset
+
+ es continua, y como
+\begin_inset Formula $\delta:=\min\{d(x,K):x\notin A\}>0$
+\end_inset
+
+,
+\begin_inset Formula $A_{0}:=\{x:d(x,K)<\frac{\delta}{2}\}$
+\end_inset
+
+ es un abierto acotado con
+\begin_inset Formula $K\subseteq A_{0}\subseteq\overline{A_{0}}\subseteq A$
+\end_inset
+
+.
+ Tomando
+\begin_inset Formula $F_{0}:=\mathbb{R}^{n}\backslash A_{0}=\{x:d(x,K)\geq\frac{\delta}{2}\}$
+\end_inset
+
+, podemos definir
+\begin_inset Formula $f_{0}(y):=\frac{d(y,F_{0})}{1+d(y,F_{0})}$
+\end_inset
+
+, que cumple
+\begin_inset Formula $0\leq f_{0}\leq1$
+\end_inset
+
+,
+\begin_inset Formula $f_{0}(x)=0\forall x\in F_{0}\supseteq\mathbb{R}^{n}\backslash A$
+\end_inset
+
+ y, como para
+\begin_inset Formula $y\in K$
+\end_inset
+
+,
+\begin_inset Formula $d(y,F_{0})\geq\frac{\delta}{2}$
+\end_inset
+
+,
+\begin_inset Formula $f_{0}(y)\geq k_{0}:=\frac{\frac{\delta}{2}}{1+\frac{\delta}{2}}$
+\end_inset
+
+ y la función continua
+\begin_inset Formula $f(x):=\min\{1,\frac{f_{0}(x)}{k_{0}}\}$
+\end_inset
+
+ tiene soporte compacto en
+\begin_inset Formula $\overline{A_{0}}\subseteq A$
+\end_inset
+
+ y
+\begin_inset Formula $\chi_{K}\leq f\leq1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Integrales dependientes de un parámetro
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+ sean
+\begin_inset Formula $(\Omega,\Sigma,\mu)$
+\end_inset
+
+ un espacio de medida,
+\begin_inset Formula $(X,d)$
+\end_inset
+
+ un espacio métrico y
+\begin_inset Formula $f:X\times\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ una función tal que:
+\end_layout
+
+\begin_layout Enumerate
+Para casi todo
+\begin_inset Formula $\omega\in\Omega$
+\end_inset
+
+
+\begin_inset Formula $f^{\omega}(x):=f(x,\omega)$
+\end_inset
+
+ es continua.
+\end_layout
+
+\begin_layout Enumerate
+Para todo
+\begin_inset Formula $x\in X$
+\end_inset
+
+
+\begin_inset Formula $f_{x}(\omega):=f(x,\omega)$
+\end_inset
+
+ es medible.
+\end_layout
+
+\begin_layout Enumerate
+Existe
+\begin_inset Formula $g:\Omega\rightarrow[0,+\infty)$
+\end_inset
+
+ tal que para todo
+\begin_inset Formula $x\in X$
+\end_inset
+
+, para casi todo
+\begin_inset Formula $\omega\in\Omega$
+\end_inset
+
+,
+\begin_inset Formula $|f(x,\omega)|\leq g(\omega)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Entonces para todo
+\begin_inset Formula $x\in X$
+\end_inset
+
+
+\begin_inset Formula $f_{x}$
+\end_inset
+
+ es integrable y
+\begin_inset Formula $F(x):=\int f(x,\omega)d\mu(\omega)$
+\end_inset
+
+ es continua.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Demostración:
+\series default
+ Como
+\begin_inset Formula $(X,d)$
+\end_inset
+
+ es un espacio métrico, la continuidad de las funciones en
+\begin_inset Formula $X$
+\end_inset
+
+ se puede caracterizar mediante sucesiones, por lo que basta tomar una sucesión
+
+\begin_inset Formula $(x_{n})_{n}$
+\end_inset
+
+ de elementos de
+\begin_inset Formula $X$
+\end_inset
+
+ que converge a un cierto
+\begin_inset Formula $x$
+\end_inset
+
+ arbitrario y probar que
+\begin_inset Formula
+\[
+\left(F(x_{n})=\int f(x_{n},\omega)d\mu(\omega)\right)_{n}
+\]
+
+\end_inset
+
+ converge a
+\begin_inset Formula $F(x)$
+\end_inset
+
+.
+ Sea
+\begin_inset Formula $N\in\Sigma$
+\end_inset
+
+ de medida cero tal que
+\begin_inset Formula $f^{\omega}$
+\end_inset
+
+ es continua para
+\begin_inset Formula $\omega\notin N$
+\end_inset
+
+ y por tanto
+\begin_inset Formula $f^{\omega}(x_{n})=f(x_{n},\omega)\rightarrow f(x,\omega)$
+\end_inset
+
+.
+ Podemos tomar una sucesión
+\begin_inset Formula $(A_{n})_{n}$
+\end_inset
+
+ de conjuntos de medida nula tales que para
+\begin_inset Formula $n\in\mathbb{N}$
+\end_inset
+
+ y
+\begin_inset Formula $\omega\notin A_{n}$
+\end_inset
+
+,
+\begin_inset Formula $|f(x_{n},\omega)|\leq g(\omega)$
+\end_inset
+
+.
+ Entonces
+\begin_inset Formula $N\cup\bigcup_{n}A_{n}$
+\end_inset
+
+ tiene medida nula y fuera de él, como la sucesión
+\begin_inset Formula $(f_{x_{n}})_{n}$
+\end_inset
+
+ converge puntualmente y
+\begin_inset Formula $|f_{x_{n}}|\leq g\forall n\in\mathbb{N}$
+\end_inset
+
+, podemos aplicar el teorema de la convergencia dominada y
+\begin_inset Formula
+\[
+\lim_{n}F(x_{n})=\lim_{n}\int f(x_{n},\omega)d\mu(\omega)=\int\lim_{n}f(x_{n},\omega)d\mu(\omega)=\int f(x,\omega)d\mu(\omega)=F(x)
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Otro
+\series bold
+teorema
+\series default
+ nos dice que si
+\begin_inset Formula $I\subseteq\mathbb{R}$
+\end_inset
+
+ es un intervalo y
+\begin_inset Formula $f:I\times\Omega\rightarrow\mathbb{C}$
+\end_inset
+
+ cumple que:
+\end_layout
+
+\begin_layout Enumerate
+Para casi todo
+\begin_inset Formula $\omega\in\Omega$
+\end_inset
+
+
+\begin_inset Formula $f^{\omega}(x):=f(x,\omega)$
+\end_inset
+
+ es derivable (
+\begin_inset Formula $\exists\frac{\partial f}{\partial x}(x,\omega)$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Enumerate
+Para todo
+\begin_inset Formula $x\in I$
+\end_inset
+
+
+\begin_inset Formula $f_{x}(\omega):=f(x,\omega)$
+\end_inset
+
+ es medible, siendo integrable para algún
+\begin_inset Formula $x_{0}\in I$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Existe
+\begin_inset Formula $g:\Omega\rightarrow[0,+\infty)$
+\end_inset
+
+ integrable tal que para casi todo
+\begin_inset Formula $\omega\in\Omega$
+\end_inset
+
+ para todo
+\begin_inset Formula $x\in I$
+\end_inset
+
+
+\begin_inset Formula $\left|\frac{\partial f}{\partial x}(x,\omega)\right|\leq g(\omega)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Entonces para todo
+\begin_inset Formula $x\in I$
+\end_inset
+
+,
+\begin_inset Formula $f_{x}$
+\end_inset
+
+ es integrable,
+\begin_inset Formula $F(x):=\int f(x,\omega)d\mu(\omega)$
+\end_inset
+
+ es derivable y
+\begin_inset Formula $F'(x)=\int\frac{\partial f}{\partial x}(x,\omega)d\mu(\omega)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Demostración:
+\series default
+ Sea
+\begin_inset Formula $A\in\Sigma$
+\end_inset
+
+ de medida nula tal que
+\begin_inset Formula
+\[
+\left|\frac{\partial f}{\partial x}(s,\omega)\right|\leq g(\omega)
+\]
+
+\end_inset
+
+ para
+\begin_inset Formula $\omega\notin A$
+\end_inset
+
+ para todo
+\begin_inset Formula $s\in I$
+\end_inset
+
+, por el teorema del incremento finito, si
+\begin_inset Formula $\omega\notin A$
+\end_inset
+
+,
+\begin_inset Formula
+\[
+|f(x,\omega)-f(x_{0},\omega)|=\left|\frac{\partial f}{\partial x}(\xi_{x,\omega},\omega)(x-x_{0})\right|\leq g(\omega)|x-x_{0}|
+\]
+
+\end_inset
+
+Entonces
+\begin_inset Formula $f_{x}$
+\end_inset
+
+ se diferencia de
+\begin_inset Formula $f_{x_{0}}$
+\end_inset
+
+ en un múltiplo de una función integrable
+\begin_inset Formula $g$
+\end_inset
+
+, por lo que también es integrable.
+ Para ver que la integral es derivable, basta tomar una sucesión
+\begin_inset Formula $(x_{n})_{n}$
+\end_inset
+
+ de elementos de
+\begin_inset Formula $X$
+\end_inset
+
+ que converge a un cierto
+\begin_inset Formula $x$
+\end_inset
+
+ arbitrario y probar que existe
+\begin_inset Formula $\lim_{n}\frac{F(x_{n})-F(x)}{x_{n}-x}$
+\end_inset
+
+.
+ Sea
+\begin_inset Formula $N\in\Sigma$
+\end_inset
+
+ de medida nula tal que para
+\begin_inset Formula $\omega\notin N$
+\end_inset
+
+,
+\begin_inset Formula $f^{\omega}$
+\end_inset
+
+ es derivable y por tanto
+\begin_inset Formula
+\[
+\frac{f(x_{n},\omega)-f(x,\omega)}{x_{n}-x}\rightarrow\frac{\partial f}{\partial x}(x,\omega)
+\]
+
+\end_inset
+
+Entonces
+\begin_inset Formula $N\cup A$
+\end_inset
+
+ tiene medida nula y fuera de él, la sucesión
+\begin_inset Formula
+\[
+\left(h_{n,\omega}:=\frac{f(x_{n},\omega)-f(x,\omega)}{x_{n}-x}\right)_{n}
+\]
+
+\end_inset
+
+ cumple que
+\begin_inset Formula
+\[
+|h_{n,\omega}|=\left|\frac{f(x_{n},\omega)-f(x,\omega)}{x_{n}-x}\right|=\left|\frac{\partial f}{\partial x}f(\eta_{x,x_{n},\omega},\omega)\right|\leq g(\omega)
+\]
+
+\end_inset
+
+ y, como además converge puntualmente, podemos aplicar el teorema de la
+ convergencia dominada y
+\begin_inset Formula
+\begin{eqnarray*}
+F'(x) & = & \lim_{n}\frac{F(x_{n})-F(x)}{x_{n}-x}=\lim_{n}\frac{\int f(x_{n},\omega)d\mu(\omega)-\int f(x_{n},\omega)d\mu(\omega)}{x_{n}-x}\\
+ & = & \lim_{n}\int\frac{f(x_{n},\omega)-f(x,\omega)}{x_{n}-x}d\mu(\omega)=\int\left(\lim_{n}\frac{f(x_{n},\omega)-f(x,\omega)}{x_{n}-x}\right)d\mu(\omega)\\
+ & = & \int\frac{\partial f}{\partial x}(x,\omega)d\mu(\omega)
+\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/fvv2/n4.lyx b/fvv2/n4.lyx
new file mode 100644
index 0000000..6628b45
--- /dev/null
+++ b/fvv2/n4.lyx
@@ -0,0 +1,688 @@
+#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 0
+\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
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+\begin_inset Note Comment
+status open
+
+\begin_layout Section
+Espacios producto
+\end_layout
+
+\begin_layout Plain Layout
+Dados dos espacios medibles
+\begin_inset Formula $(\Omega_{1},\Sigma_{1})$
+\end_inset
+
+ y
+\begin_inset Formula $(\Omega_{2},\Sigma_{2})$
+\end_inset
+
+, llamamos
+\series bold
+rectángulo medible
+\series default
+ en
+\begin_inset Formula $\Omega:=\Omega_{1}\times\Omega_{2}$
+\end_inset
+
+ a los elementos de
+\begin_inset Formula ${\cal R}:=\{A\times B\}_{A\in\Sigma_{1},B\in\Sigma_{2}}$
+\end_inset
+
+.
+ Llamamos
+\series bold
+
+\begin_inset Formula $\sigma$
+\end_inset
+
+-álgebra producto
+\series default
+ de partes de
+\begin_inset Formula $\Omega$
+\end_inset
+
+ a
+\begin_inset Formula $\Sigma:=\Sigma_{1}\times\Sigma_{2}:=\sigma({\cal R})$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Plain Layout
+Como
+\series bold
+teorema
+\series default
+, dados dos espacios de medida
+\begin_inset Formula $(\Omega_{1},\Sigma_{1},\mu_{1})$
+\end_inset
+
+ y
+\begin_inset Formula $(\Omega_{2},\Sigma_{2},\mu_{2})$
+\end_inset
+
+, existe una medida
+\begin_inset Formula $\mu$
+\end_inset
+
+ en
+\begin_inset Formula $\Sigma_{1}\times\Sigma_{2}$
+\end_inset
+
+ tal que
+\begin_inset Formula $\mu(A\times B)=\mu_{1}(A)\mu_{2}(B)$
+\end_inset
+
+ para cada
+\begin_inset Formula $A\times B$
+\end_inset
+
+ medible.
+ Si además los dos espacios de medida son
+\begin_inset Formula $\sigma$
+\end_inset
+
+-finitos,
+\begin_inset Formula $\mu$
+\end_inset
+
+ es la única.
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\series bold
+Demostración:
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Cambio de variable
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Sea
+\begin_inset Formula $(\Omega,\Sigma,\mu)$
+\end_inset
+
+ un espacio de medida,
+\begin_inset Formula $(\Omega',\Sigma')$
+\end_inset
+
+ un espacio medible y
+\begin_inset Formula $g:\Omega\rightarrow\Omega'$
+\end_inset
+
+ medible, llamamos
+\series bold
+medida imagen
+\series default
+ de
+\begin_inset Formula $\mu$
+\end_inset
+
+ a través de
+\begin_inset Formula $g$
+\end_inset
+
+ a la medida
+\begin_inset Formula $\nu:=\mu g^{-1}:\Sigma'\rightarrow[0,+\infty]$
+\end_inset
+
+ dada por
+\begin_inset Formula $\nu(A):=\mu(g^{-1}(A))$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Una función
+\begin_inset Formula $\Sigma'$
+\end_inset
+
+-medible
+\begin_inset Formula $f:\Omega'\rightarrow\mathbb{C}$
+\end_inset
+
+ es
+\begin_inset Formula $\nu$
+\end_inset
+
+-integrable si y sólo si
+\begin_inset Formula $f\circ g$
+\end_inset
+
+ es
+\begin_inset Formula $\mu$
+\end_inset
+
+-integrable, y si
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\begin_inset Formula $\nu$
+\end_inset
+
+-integrable o
+\begin_inset Formula $f\geq0$
+\end_inset
+
+ se tiene
+\begin_inset Formula
+\[
+\int f\,d\nu=\int f\circ g\,d\mu
+\]
+
+\end_inset
+
+
+\series bold
+Demostración:
+\series default
+ Para
+\begin_inset Formula $A\in\Sigma'$
+\end_inset
+
+ y
+\begin_inset Formula $x\in\Omega$
+\end_inset
+
+,
+\begin_inset Formula $\chi_{g^{-1}(A)}(x)=\chi_{A}(g(x))=(\chi_{A}\circ g)(x)$
+\end_inset
+
+, luego
+\begin_inset Formula $\chi_{g^{-1}(A)}=\chi_{A}\circ g$
+\end_inset
+
+ y
+\begin_inset Formula $\int_{\Omega'}\chi_{A}d\nu=\nu(A)=\mu(g^{-1}(A))=\int_{\Omega}\chi_{g^{-1}(A)}d\mu=\int_{\Omega}(\chi_{A}\circ g)d\mu$
+\end_inset
+
+.
+ Con esto, una función simple
+\begin_inset Formula $f:\Sigma'\rightarrow[0,+\infty]$
+\end_inset
+
+ es
+\begin_inset Formula $\nu$
+\end_inset
+
+-integrable si y sólo si
+\begin_inset Formula $f\circ g$
+\end_inset
+
+ es
+\begin_inset Formula $\mu$
+\end_inset
+
+-integrable, y entonces
+\begin_inset Formula $\int f\,d\nu=\int f\circ g\,d\mu$
+\end_inset
+
+.
+ Usando el teorema de la convergencia monótona podemos extender este resultado
+ a funciones medibles positivas, y el de la convergencia dominada nos da
+ el resultado para el caso general.
+\end_layout
+
+\begin_layout Standard
+Dada una función
+\begin_inset Formula $\alpha:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ creciente y continua por la derecha, llamamos
+\series bold
+medida de Lebesgue-Stieltjes
+\series default
+ asociada a
+\begin_inset Formula $\alpha$
+\end_inset
+
+ o
+\series bold
+medida de Borel inducida
+\series default
+ a la única medida de Borel con
+\begin_inset Formula $\mu_{\alpha}((a,b])=\alpha(b)-\alpha(a)$
+\end_inset
+
+, y que se construye de forma similar a la de Lebesgue.
+\end_layout
+
+\begin_layout Standard
+Como
+\series bold
+teorema
+\series default
+, si
+\begin_inset Formula $f:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ es acotada y
+\begin_inset Formula $D(f):=\{x\in[a,b]:f\text{ es discontinua en }x\}$
+\end_inset
+
+, entonces
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable Riemann-Stieltjes con respecto a
+\begin_inset Formula $\alpha$
+\end_inset
+
+ en
+\begin_inset Formula $[a,b]$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $\mu_{\alpha}(D(f))=0$
+\end_inset
+
+, y en tal caso
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\begin_inset Formula $\mu_{\alpha}$
+\end_inset
+
+-integrable y
+\begin_inset Formula $\int_{[a,b]}f\,d\mu_{\alpha}=\int_{a}^{b}f\,d\alpha$
+\end_inset
+
+.
+ La demostración de esto es similar a la correspondiente para integrales
+ de Riemann simples.
+\end_layout
+
+\begin_layout Standard
+Dado un espacio de medida
+\begin_inset Formula $(\Omega,\Sigma,\mu)$
+\end_inset
+
+ finito, llamamos
+\series bold
+variables aleatorias
+\series default
+ a las funciones medibles
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{R}$
+\end_inset
+
+, y tenemos que
+\begin_inset Formula $\mu f^{-1}$
+\end_inset
+
+ es una medida finita en
+\begin_inset Formula $\mathbb{R}$
+\end_inset
+
+ tal que
+\begin_inset Formula $f=f\circ id$
+\end_inset
+
+ es
+\begin_inset Formula $\mu$
+\end_inset
+
+-integrable si y sólo si
+\begin_inset Formula $id$
+\end_inset
+
+ es
+\begin_inset Formula $\mu f^{-1}$
+\end_inset
+
+-integrable, y entonces
+\begin_inset Formula $\int_{\Omega}f\,d\mu=\int_{\mathbb{R}}id\,d\mu f^{-1}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\series bold
+función de distribución
+\series default
+ de
+\begin_inset Formula $f$
+\end_inset
+
+ a
+\begin_inset Formula $F(x):=\mu(\{f\leq x\})$
+\end_inset
+
+ o a
+\begin_inset Formula $\varphi(x):=\mu(\{f>x\})=\mu(\Omega)-F(x)$
+\end_inset
+
+.
+ Sea
+\begin_inset Formula $f:\Omega\rightarrow(a,b]$
+\end_inset
+
+ una variable aleatoria,
+\begin_inset Formula $F(x):=\mu(\{f\leq x\})$
+\end_inset
+
+ y
+\begin_inset Formula $\varphi(x):=\mu(\{f>x\})$
+\end_inset
+
+, entonces
+\begin_inset Formula $f$
+\end_inset
+
+ es integrable y
+\begin_inset Formula
+\[
+\int f\,d\mu=\int_{[a,b]}id\,d\mu f^{-1}=\int_{a}^{b}id\,dF=-\int_{a}^{b}id\,d\varphi
+\]
+
+\end_inset
+
+
+\series bold
+
+\begin_inset Newpage clearpage
+\end_inset
+
+Demostración:
+\series default
+La identidad es continua y por tanto integrable Riemann-Stieltjes respecto
+ a
+\begin_inset Formula $F$
+\end_inset
+
+ o
+\begin_inset Formula $\varphi$
+\end_inset
+
+, y como
+\begin_inset Formula $F(y)-F(x)=-(\varphi(y)-\varphi(x))$
+\end_inset
+
+, se tiene
+\begin_inset Formula $\int_{a}^{b}id\,dF=-\int_{a}^{b}id\,d\varphi$
+\end_inset
+
+, pero entonces
+\begin_inset Formula $id$
+\end_inset
+
+ es
+\begin_inset Formula $\mu f^{-1}$
+\end_inset
+
+-integrable.
+\end_layout
+
+\begin_layout Standard
+Si
+\begin_inset Formula $f$
+\end_inset
+
+ no es acotada, podemos aplicar este resultado a los conjuntos
+\begin_inset Formula $E_{a,b}:=\{a<f\leq b\}$
+\end_inset
+
+ para
+\begin_inset Formula $a<b$
+\end_inset
+
+ cualesquiera definiendo
+\begin_inset Formula $\mu_{a,b}(E):=\mu(E\cap E_{a,b})$
+\end_inset
+
+ y usando esta medida.
+\end_layout
+
+\begin_layout Standard
+La restricción de que
+\begin_inset Formula $f$
+\end_inset
+
+ sea acotada se puede suprimir definiendo
+\begin_inset Formula
+\[
+\int_{-\infty}^{+\infty}id\,d\varphi:=\lim_{\begin{subarray}{c}
+a\to-\infty\\
+b\to+\infty
+\end{subarray}}\int_{a}^{b}id\,d\varphi
+\]
+
+\end_inset
+
+ cuando el límite existe.
+ En tal caso se cumple
+\begin_inset Formula
+\begin{eqnarray*}
+\int_{\Omega}f^{+}d\mu=\lim_{b\rightarrow+\infty}\int_{E_{0,b}}f\,d\mu<+\infty & \text{ y } & \int_{\Omega}f^{-}d\mu=-\lim_{a\rightarrow-\infty}\int_{E_{a,0}}f\,d\mu<+\infty
+\end{eqnarray*}
+
+\end_inset
+
+por lo que
+\begin_inset Formula $f$
+\end_inset
+
+ es
+\begin_inset Formula $\mu$
+\end_inset
+
+-integrable.
+\end_layout
+
+\begin_layout Standard
+De aquí que, si
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{R}$
+\end_inset
+
+ es medible, entonces
+\begin_inset Formula $f\in{\cal L}^{1}(\Omega)$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $\int_{-\infty}^{+\infty}id\,d\varphi$
+\end_inset
+
+ es finita, y en tal caso
+\begin_inset Formula $\int_{\Omega}f\,d\mu=-\int_{-\infty}^{+\infty}id\,d\varphi$
+\end_inset
+
+.
+ Entonces:
+\end_layout
+
+\begin_layout Enumerate
+Si
+\begin_inset Formula $f:\Omega\rightarrow[a,b]$
+\end_inset
+
+ es medible con
+\begin_inset Formula $\varphi(x):=\mu(\{f>x\})$
+\end_inset
+
+ y
+\begin_inset Formula $\phi:[a,b]\rightarrow\mathbb{R}$
+\end_inset
+
+ es continua, entonces
+\begin_inset Formula $\phi\circ f$
+\end_inset
+
+ es integrable y
+\begin_inset Formula
+\[
+\int_{\Omega}\phi\circ f\,d\mu=-\int_{a}^{b}\phi\,d\varphi
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Si es
+\begin_inset Formula $f:\Omega\rightarrow\mathbb{R}$
+\end_inset
+
+ y
+\begin_inset Formula $\phi:\mathbb{R}\rightarrow[0,+\infty)$
+\end_inset
+
+, entonces
+\begin_inset Formula
+\[
+\int_{\Omega}\phi\circ f\,d\mu=-\int_{-\infty}^{+\infty}\phi\,d\varphi
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Si es
+\begin_inset Formula $\phi:\mathbb{R}\rightarrow\mathbb{R}$
+\end_inset
+
+ y
+\begin_inset Formula $\phi\circ f$
+\end_inset
+
+ es integrable, esta igualdad también se cumple.
+\end_layout
+
+\begin_layout Standard
+Llamamos
+\begin_inset Formula ${\cal L}_{\phi}(\mu)$
+\end_inset
+
+ al conjunto de funciones medibles
+\begin_inset Formula $f$
+\end_inset
+
+ tales que
+\begin_inset Formula $\phi\circ f$
+\end_inset
+
+ es integrable, y para
+\begin_inset Formula $\phi(x)=|x|^{p}$
+\end_inset
+
+, escribimos
+\begin_inset Formula ${\cal L}^{p}(\mu):={\cal L}_{\phi}(\mu)$
+\end_inset
+
+.
+ Esto es compatible con la definición inicial de
+\begin_inset Formula ${\cal L}^{1}(\mu)$
+\end_inset
+
+.
+\end_layout
+
+\end_body
+\end_document
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
diff --git a/license.lyx b/license.lyx
index 4288ef3..d1dfd8d 100644
--- a/license.lyx
+++ b/license.lyx
@@ -147,6 +147,19 @@ begin{sloppypar}
Esta obra está bajo la licencia Reconocimiento-CompartirIgual 4.0 Internacional
de Creative Commons (CC-BY-SA 4.0).
Para ver una copia de esta licencia, visite
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+mbox{
+\end_layout
+
+\end_inset
+
+
\begin_inset Flex URL
status open
@@ -157,6 +170,17 @@ https://creativecommons.org/licenses/by-sa/4.0/
\end_inset
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
.
\begin_inset ERT
status open
diff --git a/poo/n.lyx b/poo/n.lyx
new file mode 100644
index 0000000..ff15b9e
--- /dev/null
+++ b/poo/n.lyx
@@ -0,0 +1,266 @@
+#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
+Programación Orientada a Objetos
+\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
+Programación Orientada a Objetos, anónimo (Curso 2018–2019).
+\end_layout
+
+\begin_layout Itemize
+Java™ Platform, Standard Edition 8, API Specification (
+\begin_inset Flex URL
+status open
+
+\begin_layout Plain Layout
+
+https://docs.oracle.com/javase/8/docs/api/
+\end_layout
+
+\end_inset
+
+).
+\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
+Clases y objetos
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n2.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Herencia
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n3.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Genericidad
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n4.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Programación funcional
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n5.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Excepciones
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n6.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+\start_of_appendix
+Algo más de la API
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "na.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Despliegue de software Java
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "nb.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/poo/n1.lyx b/poo/n1.lyx
new file mode 100644
index 0000000..4ab7e7c
--- /dev/null
+++ b/poo/n1.lyx
@@ -0,0 +1,235 @@
+#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
+La evolución de los lenguajes de programación va ligada al crecimiento de
+ la complejidad en aplicaciones y a la mejora de la capacidad del hardware,
+ y busca acercarse a los conceptos del dominio de la aplicación (
+\series bold
+abstracción
+\series default
+).
+ Un
+\series bold
+paradigma de programación
+\series default
+ es una serie de conceptos que guían la forma de pensar acerca de los programas,
+ construirlos y estructurarlos.
+ Los lenguajes de programación reflejan uno o varios de estos paradigmas.
+\end_layout
+
+\begin_layout Standard
+El paradigma
+\series bold
+orientado a objetos
+\series default
+ organiza el software como una colección de objetos que se relacionan y
+ proveen la funcionalidad de un sistema.
+ Este paradigma nos permite:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Abstracción
+\series default
+: Centrarse en las propiedades de los tipos y no en la implementación.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Modularidad
+\series default
+: Descomponer el software en componentes que se combinan entre sí.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Encapsulación
+\series default
+: Juntar la estructura de un tipo de datos con sus operaciones.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Ocultación de información
+\series default
+: Diferenciar la parte pública de un módulo de la privada.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Herencia
+\series default
+: Definir clases a partir de otras.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Polimorfismo
+\series default
+: Permitir que una entidad haga referencia a objetos de distintos tipos.
+\end_layout
+
+\begin_layout Standard
+En 1985 se crean el
+\series bold
+C++
+\series default
+, extensión orientada a objetos de C muy popular que ayudó a difundir el
+ paradigma, y
+\series bold
+Eiffel
+\series default
+, creado por Bertrand Meyer tras un profundo estudio del paradigma pero
+ considerado
+\begin_inset Quotes fld
+\end_inset
+
+teórico
+\begin_inset Quotes frd
+\end_inset
+
+ y poco usado.
+\end_layout
+
+\begin_layout Standard
+En 1995, Sun Microsystems (adquirido por Oracle en 2009) crea
+\series bold
+Java
+\series default
+, un lenguaje OO puro popularizado por su uso en la web y con numerosas
+ bibliotecas de código, y en el año 2000 Microsoft crea
+\series bold
+C#
+\series default
+, que combina C++ y Java, junto con su plataforma
+\series bold
+.NET
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+El compilador de Java genera un
+\series bold
+código intermedio
+\series default
+ o
+\emph on
+bytecode
+\emph default
+, independiente de la plataforma, e interpretado o compilado en el momento
+ (compilación
+\series bold
+JIT
+\series default
+,
+\emph on
+Just In Time
+\emph default
+) por la máquina virtual de Java (JVM), con lo que el código se puede ejecutar
+ en cualquier máquina que tenga instalado el entorno de ejecución de Java
+ y la máquina virtual, independientemente de la arquitectura del procesador
+ y el sistema operativo.
+\end_layout
+
+\begin_layout Standard
+Java presenta una sintaxis sencilla, parecida a C++ pero eliminando las
+ características complejas, y es robusto al ser fuertemente tipado (el compilado
+r detecta muchos problemas del código), soportar excepciones (para gestión
+ de errores en tiempo de ejecución) y proveer
+\begin_inset Quotes fld
+\end_inset
+
+recogida de basura
+\begin_inset Quotes frd
+\end_inset
+
+ (hace innecesaria la gestión de punteros).
+ Aprenderemos Java 1.8.
+\end_layout
+
+\end_body
+\end_document
diff --git a/poo/n2.lyx b/poo/n2.lyx
new file mode 100644
index 0000000..e22fece
--- /dev/null
+++ b/poo/n2.lyx
@@ -0,0 +1,1168 @@
+#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 Java los tipos de datos se implementan como
+\series bold
+clases
+\series default
+, cada una dentro de un fichero y con nombre normalmente en
+\emph on
+CamelCase
+\emph default
+, que a su vez se organizan en
+\series bold
+paquetes
+\series default
+ que agrupan código relacionado
+\emph on
+,
+\emph default
+ con nombres en
+\emph on
+lowerCamelCase
+\emph default
+
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Ese término me lo he inventado.
+\end_layout
+
+\end_inset
+
+, que pueden a su vez estar en otros.
+ Los elementos de la ruta de un paquete, clase, etc.
+ se separan con
+\begin_inset Quotes fld
+\end_inset
+
+
+\family typewriter
+.
+\family default
+
+\begin_inset Quotes frd
+\end_inset
+
+.
+ Los ficheros de clase contienen:
+\end_layout
+
+\begin_layout Itemize
+Declaración del paquete en el que está la clase:
+\family typewriter
+package
+\emph on
+ruta.del.paquete
+\emph default
+;
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+Importación de clases de paquetes distintos al de la clase o a
+\family typewriter
+java.lang
+\family default
+, para poder referirnos a ellas sin indicar la ruta completa:
+\family typewriter
+import
+\emph on
+ruta.de.Clase
+\emph default
+;
+\family default
+.
+ También se pueden importar constantes
+\begin_inset Newline newline
+\end_inset
+
+definidas en clases con
+\family typewriter
+import static ruta.de.Clase.
+\family default
+[
+\family typewriter
+CONSTANTE
+\family default
+|
+\family typewriter
+*
+\family default
+]
+\family typewriter
+;
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+Definición de la clase: [
+\family typewriter
+\emph on
+visibilidad
+\family default
+\emph default
+] [
+\family typewriter
+\emph on
+mods
+\family default
+\emph default
+]
+\family typewriter
+class
+\emph on
+NombreClase
+\family default
+\emph default
+[
+\family typewriter
+<
+\family default
+...
+\family typewriter
+>
+\family default
+] [
+\family typewriter
+extends
+\emph on
+Clase
+\family default
+\emph default
+] [
+\family typewriter
+implements
+\emph on
+Interfaz1
+\emph default
+,
+\family default
+...]
+\family typewriter
+{
+\family default
+...
+
+\family typewriter
+ }
+\family default
+, donde se define la clase.
+ La visibilidad es
+\family typewriter
+public
+\family default
+ para que la clase sea visible fuera del paquete; por defecto solo lo es
+ dentro de este.
+\end_layout
+
+\begin_layout Standard
+Los elementos de una clase (dentro de
+\family typewriter
+{
+\family default
+...
+
+\family typewriter
+ }
+\family default
+) pueden tener visibilidad pública (
+\family typewriter
+public
+\family default
+, accesible fuera del paquete), privada (
+\family typewriter
+private
+\family default
+, accesible solo dentro la clase) o a nivel de paquete (por defecto, accesible
+ solo dentro del paquete).
+ Estos son:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Atributos
+\series default
+: Los campos de la estructura: [
+\family typewriter
+\emph on
+visibilidad
+\family default
+\emph default
+] [
+\family typewriter
+\emph on
+mods
+\family default
+\emph default
+]
+\family typewriter
+\emph on
+Tipo nombre
+\emph default
+
+\family default
+[
+\family typewriter
+=
+\emph on
+expr
+\family default
+\emph default
+]
+\family typewriter
+;
+\family default
+.
+ Siempre privados según las buenas prácticas.
+ Cuando una clase
+\begin_inset Formula $A$
+\end_inset
+
+ declara un atributo cuyo tipo es otra clase
+\begin_inset Formula $B$
+\end_inset
+
+, decimos que
+\begin_inset Formula $A$
+\end_inset
+
+ es
+\series bold
+cliente
+\series default
+ de
+\begin_inset Formula $B$
+\end_inset
+
+ (
+\series bold
+relación de clientela
+\series default
+).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Métodos
+\series default
+: Operaciones aplicables sobre los objetos:
+\begin_inset Newline newline
+\end_inset
+
+[
+\family typewriter
+\emph on
+visibilidad
+\family default
+\emph default
+] [
+\family typewriter
+\emph on
+mods
+\family default
+\emph default
+] [
+\family typewriter
+\emph on
+TipoDevuelto
+\family default
+\emph default
+|
+\family typewriter
+void
+\family default
+]
+\family typewriter
+\emph on
+ nombre
+\emph default
+(
+\family default
+[
+\family typewriter
+final
+\family default
+]
+\family typewriter
+\emph on
+Tipo parámetro
+\emph default
+,
+\family default
+...
+ [
+\family typewriter
+,
+\family default
+[
+\family typewriter
+final
+\family default
+]
+\family typewriter
+
+\emph on
+Tipo
+\emph default
+...
+
+\emph on
+array
+\family default
+\emph default
+]
+\family typewriter
+)
+\family default
+[
+\family typewriter
+throws
+\emph on
+Excepción1
+\emph default
+,
+\family default
+...]
+\family typewriter
+ {
+\family default
+(implementación)
+\family typewriter
+ }
+\family default
+.
+ Si se incluye el parámetro
+\family typewriter
+\emph on
+array
+\family default
+\emph default
+, su tipo es
+\family typewriter
+\emph on
+Tipo
+\emph default
+[]
+\family default
+ (ver abajo), y recibe la lista de todos los parámetros después de los obligator
+ios si son de tipo
+\family typewriter
+\emph on
+Tipo
+\family default
+\emph default
+, o el (único) parámetro des
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pués de los obligatorios si es de tipo
+\family typewriter
+\emph on
+Tipo
+\emph default
+[]
+\family default
+.
+ Puede haber varios métodos con el mismo nombre, siempre que tengan distinto
+ número de parámetros o alguno tenga distinto tipo y estos sean disjuntos
+ (
+\series bold
+sobrecarga de métodos
+\series default
+ u
+\series bold
+\emph on
+
+\series default
+overloading
+\emph default
+).
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{IP}
+\end_layout
+
+\end_inset
+
+Llamamos
+\series bold
+parámetros formales
+\series default
+ a los parámetros de una acción (
+\begin_inset Formula $par_{1},\dots,par_{n}$
+\end_inset
+
+) y
+\series bold
+argumentos
+\series default
+ o
+\series bold
+parámetros reales
+\series default
+ a los valores con los que se invoca la acción, mediante la notación
+\begin_inset Quotes cld
+\end_inset
+
+
+\emph on
+nombre
+\emph default
+(
+\begin_inset Formula $expr_{1},\dots,expr_{n}$
+\end_inset
+
+)
+\begin_inset Quotes crd
+\end_inset
+
+.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember{}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+Para acceder a los atributos se pueden usar
+\series bold
+métodos de acceso
+\series default
+ (
+\emph on
+getters
+\emph default
+, normalmente
+\family typewriter
+public
+\emph on
+Tipo
+\emph default
+ get
+\emph on
+Atributo
+\emph default
+()
+\family default
+) y
+\series bold
+métodos de modificación
+\series default
+ (
+\emph on
+setters
+\emph default
+, normalmente
+\family typewriter
+public void set
+\emph on
+Atributo
+\emph default
+(
+\emph on
+Tipo atributo
+\emph default
+)
+\family default
+), lo que permite más tarde cambiar la estructura manteniendo la interfaz
+ compatible.
+ Otras veces se accede a los atributos de otras formas más apropiadas para
+ su significado concreto, o se añaden métodos de acceso para propiedades
+ calculadas.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Constructores
+\series default
+: Operaciones encargadas de inicializar correctamente un objeto.
+ Se definen como los métodos pero sin el tipo devuelto, y el nombre es el
+ de la clase.
+ Si no se define ninguno se crea un
+\series bold
+constructor por defecto
+\series default
+, que no toma ningún parámetro y deja todos los atributos con su valor por
+ defecto.
+\end_layout
+
+\begin_layout Standard
+Los modificadores (
+\family typewriter
+\emph on
+mods
+\family default
+\emph default
+) son:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+static
+\family default
+: Indica que un atributo es global para todos los objetos de la clase (atributo
+
+\series bold
+de clase
+\series default
+), o que un método es de clase, y por tanto no se llama a través de un objeto
+ y en principio solo puede acceder a atributos de clase.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+final
+\family default
+: Indica que el valor de un atributo (o variable local) solo puede ser estableci
+do en su declaración o, en su caso, en un constructor.
+ No se les asigna un valor por defecto.
+ Puede combinarse con
+\family typewriter
+static
+\family default
+ para definir constantes, que no hace falta hacerlas privadas.
+
+\end_layout
+
+\begin_layout Standard
+Tipos de datos en Java:
+\end_layout
+
+\begin_layout Itemize
+Primitivos.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Enteros con signo:
+\family typewriter
+byte
+\family default
+ (8 bits),
+\family typewriter
+short
+\family default
+ (16),
+\family typewriter
+int
+\family default
+ (32),
+\family typewriter
+long
+\family default
+ (64).
+ Por defecto:
+\family typewriter
+0
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+Reales:
+\family typewriter
+float
+\family default
+ (IEEE-854, 32 bits),
+\family typewriter
+double
+\family default
+ (64).
+ Por defecto:
+\family typewriter
+0
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+Caracteres:
+\family typewriter
+char
+\family default
+.
+ Por defecto:
+\family typewriter
+'
+\backslash
+u000'
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+Booleano:
+\family typewriter
+boolean
+\family default
+.
+ Valores
+\family typewriter
+false
+\family default
+ (por defecto) y
+\family typewriter
+true
+\family default
+.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Objetos
+\series default
+.
+
+\series bold
+Instancias
+\series default
+ de una clase, representadas por una estructura en memoria con un campo
+ por cada atributo, que para tipos primitivos contiene el valor y para el
+ resto contiene un identificador de objeto (
+\emph on
+oid
+\emph default
+), o el valor
+\family typewriter
+null
+\family default
+, su valor por defecto, que no indica ningún objeto.
+ El
+\series bold
+estado
+\series default
+ de un objeto es el valor de estos campos.
+\begin_inset Newline newline
+\end_inset
+
+Los objetos en Java se manejan por referencia (a través del
+\emph on
+oid
+\emph default
+).
+ Esto permite la compartición de objetos con integridad referencial, es
+ más eficiente para objetos complejos, permite estructuras recursivas e
+ implica que los objetos se crean cuando se construyen y no en su declaración.
+ El inconveniente es el
+\series bold
+\emph on
+aliasing
+\series default
+\emph default
+, pues al asignar el valor de una variable a otra no se copia el objeto
+ sino su identificador, lo cual es importante tener en cuenta en métodos
+ de acceso a atributos mutables para no comprometer la integridad del objeto.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Las cadenas de caracteres son objetos inmutables de clase
+\family typewriter
+String
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+Los
+\series bold
+enumerados
+\series default
+ son clases definidas de forma especial, con la sintaxis [
+\family typewriter
+\emph on
+visibilidad
+\family default
+\emph default
+]
+\family typewriter
+enum
+\emph on
+Nombre
+\emph default
+ {
+\emph on
+VALOR_1
+\emph default
+,
+\emph on
+VALOR_2
+\emph default
+,
+\family default
+...
+
+\family typewriter
+ }
+\family default
+.
+ Incluyen una constante del propio tipo para cada valor, y estas definen
+ el dominio de valores de la clase, así como métodos
+\family typewriter
+public int ordinal()
+\family default
+ que devuelve el índice del valor y
+\family typewriter
+public static
+\emph on
+Tipo
+\emph default
+[] values()
+\family default
+ que devuelve una lista con todas los valores posibles.
+\end_layout
+
+\begin_layout Itemize
+Los
+\series bold
+\emph on
+arrays
+\series default
+\emph default
+ son objetos que contienen un número fijo de elementos de otro tipo.
+ Su tipo es
+\family typewriter
+\emph on
+TipoElemento
+\emph default
+[]
+\family default
+...
+\family typewriter
+[]
+\family default
+ (pueden tener varias dimensiones).
+ Su tamaño puede consultarse mediante el atributo
+\family typewriter
+public final int length
+\family default
+.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+El operador
+\family typewriter
+==
+\family default
+ comprueba si dos elementos de un tipo primitivo son iguales o si dos referencia
+s apuntan al mismo objeto (igual
+\emph on
+oid
+\emph default
+), y en particular si dos elementos de un tipo enumerado tienen el mismo
+ valor (devuelve un booleano).
+\end_layout
+
+\begin_layout Standard
+Los objetos se comunican entre sí mediante
+\series bold
+mensajes
+\series default
+, formados por un
+\series bold
+objeto receptor
+\series default
+ (si no es un método de clase), un
+\series bold
+identificador de método
+\series default
+ y los
+\series bold
+argumentos
+\series default
+.
+ Enviar un mensaje es llamar al método, definido en la clase del objeto,
+ con la sintaxis
+\family typewriter
+\emph on
+objeto
+\emph default
+.
+\emph on
+método
+\emph default
+(
+\emph on
+args
+\emph default
+,
+\family default
+...
+\family typewriter
+)
+\family default
+ o, si es un método de clase, con
+\family typewriter
+\emph on
+Clase
+\emph default
+.
+\emph on
+método
+\emph default
+(
+\emph on
+args
+\emph default
+,
+\family default
+...
+\family typewriter
+)
+\family default
+.
+ Los argumentos se pasan por valor.
+ Este método (si no es de clase) puede acceder al objeto sobre el que se
+ llama (la
+\series bold
+instancia actual
+\series default
+) por la palabra reservada
+\family typewriter
+this
+\family default
+.
+ Además, puede referirse a los métodos y atributos de la instancia actual
+ (si no es un método de clase) o de la propia clase sin especificar la instancia
+ actual o la clase, siempre que no haya un parámetro o variable local del
+ mismo nombre.
+ Un constructor puede invocar a otro mediante
+\family typewriter
+this(
+\emph on
+args
+\emph default
+,
+\family default
+...
+\family typewriter
+);
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Dentro de un método, la sentencia
+\family typewriter
+\emph on
+Tipo var
+\emph default
+
+\family default
+[
+\family typewriter
+=
+\emph on
+expr
+\family default
+\emph default
+]
+\family typewriter
+;
+\family default
+ declara una variable local y le asigna opcionalmente un valor, y la expresión
+
+\family typewriter
+new
+\emph on
+Clase
+\emph default
+(
+\emph on
+arg
+\emph default
+,
+\family default
+...
+\family typewriter
+)
+\family default
+ asigna el espacio para la estructura de un objeto, le asigna un identificador,
+ inicializa los campos con su valor por defecto, llama al constructor corrspondi
+ente y devuelve dicho objeto.
+ Para crear un
+\emph on
+array
+\emph default
+ se usa
+\family typewriter
+new
+\emph on
+TipoElemento
+\emph default
+[
+\emph on
+t1
+\emph default
+]
+\family default
+...
+\family typewriter
+[
+\emph on
+tn
+\emph default
+]
+\family default
+[
+\family typewriter
+{
+\family default
+\emph on
+...
+\family typewriter
+\emph default
+{
+\emph on
+valor11
+\emph default
+,
+\family default
+...
+\family typewriter
+},
+\family default
+...
+\family typewriter
+}
+\family default
+], con el número de elementos en cada dimensión, lo que asigna el espacio
+ necesario al
+\emph on
+array
+\emph default
+, le asigna un identificador e inicializa cada elemento con su valor por
+ defecto o con los valores indicados entre llaves.
+ La destrucción de los objetos no es explícita, sino que el
+\series bold
+recolector de basura
+\series default
+ (
+\emph on
+garbage collector
+\emph default
+) periódicamente libera los objetos que no son referenciados.
+ Un objeto puede ser notificado antes de ser eliminado implementando el
+ método
+\family typewriter
+finalize()
+\family default
+, lo que interesa cuando este hace uso de recursos externos.
+ Estructuras de control:
+\end_layout
+
+\begin_layout Itemize
+Sentencias condicionales:
+\family typewriter
+if (
+\emph on
+cond-expr
+\emph default
+)
+\emph on
+then-stmt
+\emph default
+
+\family default
+[
+\family typewriter
+else
+\emph on
+else-stmt
+\family default
+\emph default
+] (
+\family typewriter
+\emph on
+cond-expr
+\family default
+\emph default
+ debe evaluar a booleano);
+\family typewriter
+switch (
+\emph on
+expr
+\emph default
+) {
+\family default
+...
+
+\family typewriter
+ }
+\family default
+ (
+\family typewriter
+\emph on
+expr
+\family default
+\emph default
+ debe evaluar a entero, valor de enumerado o cadena, y es necesario usar
+
+\family typewriter
+break;
+\family default
+ para evitar que la ejecución continúe con el caso siguiente).
+\end_layout
+
+\begin_layout Itemize
+Bucles:
+\family typewriter
+while
+\family default
+,
+\family typewriter
+for
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Una aplicación OO se organiza como un conjunto de clases relacionadas, siendo
+ una de ellas la
+\series bold
+raíz de la aplicación
+\series default
+, que contiene un método (en Java,
+\family typewriter
+public static void main(String[] args)
+\family default
+) encargado de poner en marcha la aplicación.
+ El flujo de ejecución siempre se encuentra aplicando un método sobre un
+ objeto o ejecutando alguna instrucción imperativa, si bien en una aplicación
+ concurrente puede haber varios flujos de ejecución.
+\end_layout
+
+\begin_layout Standard
+Si una clase tiene muchos atributos de tipo primitivo, suele ser necesario
+ separar la funcionalidad definiendo clases con parte de estos atributos.
+ Se usa el patrón
+\series bold
+experto en información
+\series default
+: asignar una funcionalidad a la clase que tiene la información necesaria
+ para llevarla a cabo.
+\end_layout
+
+\end_body
+\end_document
diff --git a/poo/n3.lyx b/poo/n3.lyx
new file mode 100644
index 0000000..1c193b3
--- /dev/null
+++ b/poo/n3.lyx
@@ -0,0 +1,959 @@
+#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
+La
+\series bold
+herencia
+\series default
+ es un mecanismo para definir y utilizar relaciones conceptuales entre clases
+ como de extensión, especialización y combinación, que permite definir una
+ clase a partir de otra, organizando las clases en una
+\series bold
+jerarquía
+\series default
+ consistente con el sistema de tipos.
+ La
+\series bold
+especialización
+\series default
+ ocurre cuando una clase es un caso especial o un tipo de otra, mientras
+ que la
+\series bold
+generalización
+\series default
+, muy relacionada, ocurre cuando se detectan clases con características
+ en común.
+\end_layout
+
+\begin_layout Standard
+Cuando una clase
+\begin_inset Formula $B$
+\end_inset
+
+
+\series bold
+hereda
+\series default
+ de una clase
+\begin_inset Formula $A$
+\end_inset
+
+, incorpora automáticamente los atributos y métodos de
+\begin_inset Formula $A$
+\end_inset
+
+ (en Java, no incorpora los constructores), pero puede añadir nuevos atributos
+ y métodos y redefinir métodos heredados.
+ Decimos que
+\begin_inset Formula $A$
+\end_inset
+
+ es la
+\series bold
+superclase
+\series default
+ o clase padre de
+\begin_inset Formula $B$
+\end_inset
+
+ y
+\begin_inset Formula $B$
+\end_inset
+
+ es una
+\series bold
+subclase
+\series default
+ o clase hija de
+\begin_inset Formula $A$
+\end_inset
+
+.
+ Si
+\begin_inset Formula $C$
+\end_inset
+
+ hereda a su vez de
+\begin_inset Formula $B$
+\end_inset
+
+, también hereda de
+\begin_inset Formula $A$
+\end_inset
+
+, pero
+\begin_inset Formula $B$
+\end_inset
+
+ es un
+\series bold
+descendiente directo
+\series default
+ y
+\begin_inset Formula $C$
+\end_inset
+
+ es un
+\series bold
+descendiente indirecto
+\series default
+ de
+\begin_inset Formula $A$
+\end_inset
+
+.
+ Decimos que
+\begin_inset Formula $A$
+\end_inset
+
+ y
+\begin_inset Formula $B$
+\end_inset
+
+ son
+\series bold
+ascendientes
+\series default
+ de
+\begin_inset Formula $C$
+\end_inset
+
+.
+ Algunos lenguajes como C++ o Python permiten
+\series bold
+herencia múltiple
+\series default
+, de modo que una clase puede heredar directamente de varias, mientras que
+ otros, como Java o C#, solo permiten
+\series bold
+herencia simple
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+En Java se indica que una clase deriva de otra indicando
+\family typewriter
+extends
+\emph on
+Superclase
+\family default
+\emph default
+ detrás del nombre de la clase en su definición.
+ Los descendientes de una clase no pueden ver sus atributos y métodos privados,
+ sino que se proporciona el nivel de visibilidad
+\family typewriter
+protected
+\family default
+, útil para métodos, que da visibilidad a nivel de paquete y a descendientes
+ de la clase.
+\end_layout
+
+\begin_layout Standard
+La primera sentencia de un constructor debe ser una llamada a un constructor
+ de la clase padre, que se hace con
+\family typewriter
+super(
+\family default
+...
+\family typewriter
+);
+\family default
+ o a otro constructor de la propia clase, y si se omite el compilador inserta
+ una llamada
+\family typewriter
+super();
+\family default
+ al constructor vacío, dando error si este no existe.
+\end_layout
+
+\begin_layout Standard
+El modificador
+\family typewriter
+final
+\family default
+ se puede añadir a un método para impedir que sea redefinido en clases descendie
+ntes, y en una clase para impedir que se pueda heredar de ella.
+\end_layout
+
+\begin_layout Section
+Polimorfismo
+\end_layout
+
+\begin_layout Standard
+Un método es una
+\series bold
+redefinición
+\series default
+ si tiene la misma signatura (nombre, parámetros y tipo de retorno) que
+ un método de la clase padre.
+ En Java se indica con la
+\series bold
+anotación
+\series default
+
+\family typewriter
+@Override
+\family default
+ encima de la definición de la función, que es opcional pero señala un fallo
+ si el método no es realmente una redefinición, útil para detectar errores.
+ Esta puede ser de
+\series bold
+reemplazo
+\series default
+ si se sustituye completamente la implementación o de
+\series bold
+refinamiento
+\series default
+ si simplemente se añade nueva funcionalidad, en cuyo caso la sintaxis
+\family typewriter
+super.
+\emph on
+método
+\emph default
+(
+\family default
+...
+\family typewriter
+)
+\family default
+ sirve para llamar a la versión del padre de un método redefinido.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+polimorfismo
+\series default
+ es la capacidad de una entidad de referenciar en tiempo de ejecución a
+ objetos de distintas clases, y en lenguajes como Java significa que toda
+ entidad tiene un
+\series bold
+tipo estático
+\series default
+ (
+\emph on
+te
+\emph default
+), asociado a su declaración, y uno
+\series bold
+dinámico
+\series default
+, que corresponde al objeto al que hace referencia y puede variar.
+ A cada entidad le corresponde un
+\series bold
+conjunto de tipos dinámicos
+\series default
+ (
+\emph on
+ctd
+\emph default
+), el de los posibles tipos dinámicos a los que puede hacer referencia y
+ que viene dado por el conjunto de tipos
+\series bold
+compatibles
+\series default
+ con el tipo estático, es decir, los descendientes de este tipo incluyéndose
+ a sí mismo.
+\end_layout
+
+\begin_layout Standard
+Una asignación polimórfica es válida si el tipo estático de la parte derecha
+ es compatible con el de la parte izquierda.
+ Un paso de parámetros es válido si el tipo estático del parámetro real
+ es compatible con el del parámetro formal.
+ La
+\series bold
+ligadura dinámica
+\series default
+ significa que la versión de un método que se llama al pasar un mensaje
+ es la asociada al tipo dinámico, que puede ser la del tipo estático o haber
+ sido redefinida.
+\end_layout
+
+\begin_layout Standard
+En Java, la sintaxis
+\family typewriter
+(
+\emph on
+Tipo
+\emph default
+)
+\emph on
+variable
+\family default
+\emph default
+ permite hacer un
+\emph on
+casting
+\emph default
+ a uno de los
+\family typewriter
+\emph on
+Tipo
+\family default
+\emph default
+s dinámicos que puede tener la
+\family typewriter
+\emph on
+variable
+\family default
+\emph default
+, permitiendo tratar la variable como si este fuese su tipo estático y pudiendo
+ acceder a los métodos de este, si bien esto dará un error en tiempo de
+ ejecución si el tipo dinámico de la variable no es compatible con el que
+ se especifica al hacer el
+\emph on
+casting
+\emph default
+.
+ La expresión
+\family typewriter
+\emph on
+variable
+\emph default
+ instanceof
+\emph on
+Tipo
+\family default
+\emph default
+ devuelve verdadero si el tipo dinámico de la
+\family typewriter
+\emph on
+variable
+\family default
+\emph default
+ es compatible con el del
+\family typewriter
+\emph on
+Tipo
+\family default
+\emph default
+ y falso en caso contrario.
+\end_layout
+
+\begin_layout Standard
+Al redefinir un método (al que se tenga acceso desde la clase descendiente)
+ se puede cambiar el tipo de retorno a un tipo descendiente (
+\series bold
+regla covariante
+\series default
+) o incrementar su nivel de visibilidad.
+\end_layout
+
+\begin_layout Standard
+Se recomienda situar los atributos y métodos comunes en clases altas de
+ la jerarquía, aplicando herencia si tiene sentido decir que todos los objetos
+ de una clase
+\begin_inset Quotes fld
+\end_inset
+
+lo son
+\begin_inset Quotes frd
+\end_inset
+
+ también de otra, usando polimorfismo y ligadura dinámica para evitar análisis
+ de casos.
+ No debe usarse herencia si un método heredado no tiene sentido en la clase
+ hija, y no se debe cambiar la semántica de un método en la clase hija.
+\end_layout
+
+\begin_layout Section
+Clases abstractas
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+clase abstracta
+\series default
+ es una que no se puede instanciar, no puede ser
+\family typewriter
+final
+\family default
+ y permite definir
+\series bold
+métodos abstractos
+\series default
+, sin código, con
+\family typewriter
+;
+\family default
+ en vez de la implementación (
+\family typewriter
+{
+\family default
+...
+\family typewriter
+}
+\family default
+), y que no pueden ser
+\family typewriter
+static
+\family default
+ ni
+\family typewriter
+final
+\family default
+.
+ Las clases y métodos abstractos se deben indicar con el modificador
+\family typewriter
+abstract
+\family default
+, y una clase
+\series bold
+efectiva
+\series default
+ (no abstracta) debe implementar todos los métodos abstractos que hereda.
+ Una clase abstracta puede implementar constructores, pero estos sólo son
+ útiles para su uso por las clases hijas, por lo que se declaran
+\family typewriter
+protected
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+método plantilla
+\series default
+ es un método ordinario de una clase abstracta que usa uno o más métodos
+ abstractos, normalmente
+\family typewriter
+protected
+\family default
+, con el fin de evitar repetición de código en las clases descendientes.
+ La generalización por clases abstractas se aplica muchas veces tras la
+ implementación (
+\series bold
+refactorización
+\series default
+).
+\end_layout
+
+\begin_layout Section
+Interfaces
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+interfaz
+\series default
+ es la definición de un tipo sin la implementación, como una clase totalmente
+ abstracta, y se definen con [
+\family typewriter
+\emph on
+visibilidad
+\family default
+\emph default
+] [
+\family typewriter
+\emph on
+mods
+\family default
+\emph default
+]
+\family typewriter
+ interface
+\emph on
+Nombre
+\family default
+\emph default
+ [
+\family typewriter
+extends
+\emph on
+Interfaz1
+\emph default
+,
+\family default
+...]
+\family typewriter
+ {
+\family default
+...
+
+\family typewriter
+ }
+\family default
+.
+ Las interfaces no tienen constructores, sus métodos son
+\family typewriter
+public abstract
+\family default
+ por defecto (aunque puede haber métodos no abstractos) y sus atributos
+ son
+\family typewriter
+public static final
+\family default
+, y no es necesario indicar estos modificadores.
+
+\end_layout
+
+\begin_layout Standard
+Una interfaz puede heredar de varias interfaces con
+\family typewriter
+extends
+\family default
+.
+ Una clase puede heredar de varias interfaces (se dice que las
+\series bold
+implementa
+\series default
+), y se indica con
+\family typewriter
+implements
+\emph on
+Interfaz1
+\emph default
+,
+\family default
+....
+\end_layout
+
+\begin_layout Standard
+Las interfaces pueden incluir
+\series bold
+métodos por defecto
+\series default
+, con el modificador
+\family typewriter
+default
+\family default
+, que no son abstractos.
+ Una clase puede implementar varias interfaces con distintos métodos por
+ defecto con la misma signatura, en cuyo caso para que una clase compile
+ debe reimplementar este método.
+ La sintaxis
+\family typewriter
+\emph on
+Interfaz
+\emph default
+.super.
+\emph on
+método
+\emph default
+(
+\family default
+.\SpecialChar endofsentence
+.
+\family typewriter
+)
+\family default
+ permite llamar al método por defecto de una interfaz
+\begin_inset Quotes fld
+\end_inset
+
+padre
+\begin_inset Quotes frd
+\end_inset
+
+ cuando hay ambigüedad.
+ Las interfaces también pueden incluir métodos
+\family typewriter
+static
+\family default
+.
+\end_layout
+
+\begin_layout Section
+La clase
+\family typewriter
+Object
+\end_layout
+
+\begin_layout Standard
+Cuando una clase no hereda de ninguna, realmente hereda de
+\family typewriter
+Object
+\family default
+.
+ Métodos de
+\family typewriter
+Object
+\family default
+:
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+public final Class
+\series bold
+getClass
+\series default
+()
+\family default
+.
+ Devuelve la clase de la instancia actual.
+ Se recomienda usar
+\family typewriter
+instanceof
+\family default
+ en vez de esto en caso de duda para comprobar compatibilidad.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+public boolean
+\series bold
+equals
+\series default
+(Object)
+\family default
+.
+ Indica si un objeto es igual a otro.
+\begin_inset Newline newline
+\end_inset
+
+Tipos de igualdad:
+\series bold
+superficial
+\series default
+, que compara la igualdad de los campos primitivos y el
+\emph on
+oid
+\emph default
+ de las referencias;
+\series bold
+profunda
+\series default
+, que usa
+\family typewriter
+equals
+\family default
+ recursivamente, o adaptada a las necesidades de la aplicación.
+ Por defecto la comparación es superficial.
+\begin_inset Newline newline
+\end_inset
+
+Es necesario redefinir el método en las clases donde necesitemos igualdad,
+ pero hay que elegir la semántica de igualdad más adecuada.
+ El método heredado en una subclase es correcto si no tiene nuevos atributos
+ o estos no se tienen en cuenta en la igualdad, y en caso contrario, salvo
+ que la versión heredada sea la de
+\family typewriter
+Object
+\family default
+, hay que reutilizarla.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+public int
+\series bold
+hashCode
+\series default
+()
+\family default
+.
+ Devuelve el resultado de aplicar alguna función
+\emph on
+hash
+\emph default
+ al objeto; usado en tablas de dispersión.
+ Si
+\family typewriter
+\emph on
+o1
+\emph default
+.equals(
+\emph on
+o2
+\emph default
+)
+\family default
+, debe ser
+\family typewriter
+\emph on
+o1
+\emph default
+.hashCode() ==
+\emph on
+o2
+\emph default
+.hashCode()
+\family default
+.
+ Por defecto se compara la dirección de memoria del objeto.
+ Si se redefine el método
+\family typewriter
+equals
+\family default
+ también debe redefinirse
+\family typewriter
+hashCode
+\family default
+.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+public String
+\series bold
+toString
+\series default
+()
+\family default
+.
+ Devuelve una representación textual de un objeto.
+ Por defecto se imprime el nombre de la clase y el
+\emph on
+oid
+\emph default
+.
+ Se recomienda usar
+\family typewriter
+getClass().getName()
+\family default
+, que devuelve la clase de la instancia actual, permitiendo que la implementació
+n sea he
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+re
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+da
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ble.
+ Debe ser redefinido en una subclase si añade nuevos atributos.
+\end_layout
+
+\begin_layout Enumerate
+
+\family typewriter
+protected Object
+\series bold
+clone
+\series default
+() throws CloneNotSupportedException
+\family default
+.
+ Devuelve una
+\begin_inset Newline newline
+\end_inset
+
+copia del objeto.
+\begin_inset Newline newline
+\end_inset
+
+Tipos de copia:
+\series bold
+superficial
+\series default
+, que copia los campos primitivos y los
+\emph on
+oid
+\emph default
+;
+\series bold
+profunda
+\series default
+, que aplica
+\family typewriter
+clone
+\family default
+ recursivamente, y adaptada a las necesidades de la aplicación.
+ Por defecto la copia es superficial.
+\begin_inset Newline newline
+\end_inset
+
+Al redefinir el método, hay que cambiar la visibilidad a
+\family typewriter
+public
+\family default
+, cambiar el tipo de retorno al tipo propio y ocultar la excepción (el
+\family typewriter
+throws
+\family default
+...).
+ Esta excepción se lanza si la clase del objeto no implementa la interfaz
+
+\family typewriter
+Cloneable
+\family default
+, que no implementa ningún método pero marca que los objetos de una clase
+ (y todas las clases descendientes) pueden ser clonadas.
+\begin_inset Newline newline
+\end_inset
+
+Al redefinir este método, para que funcione con la herencia, es conveniente
+ llamar a la versión heredada y, si el tipo padre no es
+\family typewriter
+Cloneable
+\family default
+, manejar la excepción mediante
+\family typewriter
+try {
+\family default
+(código que llame a
+\family typewriter
+super.clone()
+\family default
+)
+\family typewriter
+ } catch (CloneNotSupportedException e) {
+\family default
+(manejo del error)
+\family typewriter
+ }
+\family default
+ de modo que si salta la excepción se salte directamente al código de manejo
+ del error, lo que no debería ocurrir.
+\end_layout
+
+\begin_layout Standard
+Además, para cada tipo primitivo existe una clase (
+\family typewriter
+Integer
+\family default
+,
+\family typewriter
+Float
+\family default
+,
+\family typewriter
+Double
+\family default
+,
+\family typewriter
+Character
+\family default
+,
+\family typewriter
+Boolean
+\family default
+, etc.) correspondiente que actúa como
+\series bold
+objeto envoltorio
+\series default
+ y hereda de
+\family typewriter
+Object
+\family default
+.
+ Java permite convertir automáticamente entre el tipo primitivo y el envoltorio
+ (
+\series bold
+\emph on
+autoboxing
+\series default
+\emph default
+).
+\end_layout
+
+\end_body
+\end_document
diff --git a/poo/n4.lyx b/poo/n4.lyx
new file mode 100644
index 0000000..dce5506
--- /dev/null
+++ b/poo/n4.lyx
@@ -0,0 +1,3827 @@
+#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
+Una
+\series bold
+clase genérica
+\series default
+ es aquella que en su declaración tiene uno o varios tipos variables (
+\series bold
+parámetros
+\series default
+).
+ Se indican como
+\family typewriter
+\emph on
+NombreClase
+\emph default
+<
+\emph on
+T
+\begin_inset Formula $_{1}$
+\end_inset
+
+
+\family default
+\emph default
+ [
+\family typewriter
+extends
+\emph on
+K
+\emph default
+
+\begin_inset Formula $_{11}$
+\end_inset
+
+[&
+\family default
+...]][
+\family typewriter
+,
+\family default
+...]
+\family typewriter
+>
+\family default
+, y dentro de la clase se pueden usar los tipos
+\family typewriter
+T
+\family default
+
+\begin_inset Formula $_{i}$
+\end_inset
+
+ como otros tipos cualesquiera, sobre los que se pueden usar los métodos
+ de los tipos no primitivos
+\family typewriter
+K
+\begin_inset Formula $_{ij}$
+\end_inset
+
+
+\family default
+, o de
+\family typewriter
+Object
+\family default
+ si no se especifican, salvo constructores.
+ El uso de tipos
+\family typewriter
+K
+\begin_inset Formula $_{ij}$
+\end_inset
+
+
+\family default
+ permite
+\series bold
+genericidad restringida
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+También existen las interfaces genéricas, con la misma sintaxis.
+ Una clase genérica puede heredar de otra e implementar interfaces genéricas.
+ En la herencia se establecen los parámetros de la clase padre e interfaces
+ implementadas, que pueden ser parámetros de la propia clase hija o tipos
+ concretos.
+\end_layout
+
+\begin_layout Standard
+La parametrización de una clase genérica se realiza en la declaración de
+ una variable (incluyendo parámetro, etc.) y en la construcción de objetos,
+ con la forma
+\family typewriter
+\emph on
+NombreClase
+\emph default
+<
+\emph on
+T
+\begin_inset Formula $_{1}$
+\end_inset
+
+
+\emph default
+,
+\family default
+...
+\family typewriter
+>
+\family default
+, donde los
+\family typewriter
+T
+\begin_inset Formula $_{i}$
+\end_inset
+
+
+\family default
+ son los tipos parámetros y deben ser compatibles con todos los
+\family typewriter
+K
+\begin_inset Formula $_{ij}$
+\end_inset
+
+
+\family default
+, si bien en la construcción se pueden omitir los parámetros con la sintaxis
+
+\family typewriter
+\emph on
+NombreClase
+\emph default
+<>
+\family default
+.
+ En la declaración de variables los
+\family typewriter
+\emph on
+T
+\begin_inset Formula $_{i}$
+\end_inset
+
+
+\family default
+\emph default
+ se pueden cambiar por
+\family typewriter
+? extends
+\emph on
+E
+\begin_inset Formula $_{i}$
+\end_inset
+
+
+\family default
+\emph default
+ (
+\series bold
+tipo comodín
+\series default
+) para indicar que se permite cualquier tipo compatible con
+\family typewriter
+\emph on
+E
+\begin_inset Formula $_{i}$
+\end_inset
+
+
+\family default
+\emph default
+, o
+\family typewriter
+? super
+\emph on
+S
+\begin_inset Formula $_{i}$
+\end_inset
+
+
+\family default
+\emph default
+ para cualquier tipo con el que
+\family typewriter
+\emph on
+S
+\begin_inset Formula $_{i}$
+\end_inset
+
+
+\family default
+\emph default
+ sea compatible.
+\end_layout
+
+\begin_layout Standard
+También podemos declarar un tipo genérico sin especificar
+\begin_inset Quotes cld
+\end_inset
+
+
+\family typewriter
+<
+\family default
+...
+\family typewriter
+>
+\family default
+
+\begin_inset Quotes crd
+\end_inset
+
+ con los parámetros de tipo (
+\series bold
+tipo puro
+\series default
+), en cuyo caso equivale a parametrizarlo a
+\family typewriter
+Object
+\family default
+ (salvo genericidad restringida), si bien esto no es recomendable y el compilado
+r lo marca como un aviso.
+ La información de los tipos parámetro se pierde en tiempo de ejecución,
+ pues no se almacenan en el código compilado, por lo que solo podemos comprobar
+ si el tipo dinámico de una variable es o no del tipo puro (o compatible).
+ El compilador marca una conversión a un tipo genérico como un
+\emph on
+warning
+\emph default
+, pues no se puede comprobar el tipo utilizado en la parametrización, pero
+ podemos suprimirlo escribiendo la línea
+\family typewriter
+@SuppressWarnings("unchecked")
+\family default
+ encima de la sentencia que realiza la conversión.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+método genérico
+\series default
+ es el que en su declaración acepta uno o varios parámetros de tipo, independien
+tes de los de la clase (si los hay), que pueden aparecer en la signatura
+ y el cuerpo del método y que se indican poniendo
+\family typewriter
+<
+\family default
+...
+\family typewriter
+>
+\family default
+ (sintaxis como en las clases genéricas) antes del tipo de retorno (o de
+
+\family typewriter
+void
+\family default
+).
+ Se llaman como un método normal, y los tipos se infieren a partir de sus
+ parámetros o la variable a la que se asigna el resultado.
+\end_layout
+
+\begin_layout Section
+Ordenación
+\end_layout
+
+\begin_layout Standard
+Las clases e interfaces que se definen a continuación están todas en
+\family typewriter
+java.util
+\family default
+, salvo si se indica lo contrario.
+ Se omite cualquier declaración, o parte de declaración, que no es relevante.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+java.lang.Comparable<T>
+\family default
+ Una clase es
+\series bold
+comparable
+\series default
+ si implementa esta interfaz, y si dice que tiene un
+\series bold
+orden natural
+\series default
+.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+boolean equals(Object)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+int
+\begin_inset space ~
+\end_inset
+
+compareTo(T)
+\family default
+ Devuelve un entero positivo si el objeto receptor es mayor, negativo si
+ es menor y 0 si es igual al parámetro.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+@FunctionalInterface
+\begin_inset space ~
+\end_inset
+
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Comparator<T>
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+int
+\begin_inset space ~
+\end_inset
+
+compare(T,
+\begin_inset space ~
+\end_inset
+
+T)
+\family default
+ Devuelve un entero positivo si el primer parámetro es mayor, ne
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ga
+\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 si es menor y 0 si es igual al segundo.
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Iteradores
+\end_layout
+
+\begin_layout Standard
+Permiten recorrer una secuencia de elementos.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Iterator<E>
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+boolean
+\begin_inset space ~
+\end_inset
+
+hasNext()
+\family default
+\series default
+ Indica si quedan elementos en la iteración.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+E
+\begin_inset space ~
+\end_inset
+
+next()
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws NoSuchElementException
+\end_layout
+
+\end_inset
+
+Devuelve (y
+\begin_inset Quotes fld
+\end_inset
+
+consume
+\begin_inset Quotes frd
+\end_inset
+
+) el siguiente elemento en la iteración.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+default
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+remove()
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, IllegalStateException
+\end_layout
+
+\end_inset
+
+Elimina de la colección el último elemento devuelto por el ite
+\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
+
+dor, y sólo puede ser llamado una vez después de cada llamada a
+\family typewriter
+next()
+\family default
+.
+ Si la colección se modifica mientras el iterador está en progreso, su comportam
+iento es no especificado.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+java.lang.Iterable<T>
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+Iterator<T>
+\begin_inset space ~
+\end_inset
+
+iterator()
+\family default
+ Devuelve un iterador sobre elementos de tipo
+\family typewriter
+T
+\family default
+.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Dado un objeto
+\family typewriter
+\emph on
+c
+\family default
+\emph default
+ que implementa la interfaz
+\family typewriter
+Iterable<
+\emph on
+T
+\emph default
+>
+\family default
+, la sintaxis
+\family typewriter
+for (
+\emph on
+T
+\emph default
+
+\emph on
+e
+\emph default
+ :
+\emph on
+c
+\emph default
+)
+\emph on
+stmt
+\family default
+\emph default
+ equivale a:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+Iterator _it =
+\emph on
+c
+\emph default
+.iterator();
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+Extra indentation is because this'll typically be inside a method inside
+ a class, not (just) for centering.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+while (_it.hasNext()) {
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\emph on
+T e
+\emph default
+ = _it.next();
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\emph on
+stmt
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+
+\begin_inset space \hspace*{}
+\length 4em
+\end_inset
+
+}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Esto también se puede hacer si
+\family typewriter
+\emph on
+c
+\family default
+\emph default
+ es de tipo
+\family typewriter
+\emph on
+T
+\emph default
+[]
+\family default
+, en cuyo caso se hace recorrido secuencial.
+\end_layout
+
+\begin_layout Section
+Colecciones
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Collection<E>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+Iterable<E>
+\family default
+\series default
+ Colección de elementos.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+boolean containsAll(Collection<?>) throws ClassCastException, NullPointerExcepti
+on
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+boolean equals(Object)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+int hashCode()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+boolean removeAll(Collection<?>) throws UnsupportedOperationException, ClassCast
+Exception, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+boolean retainAll(Collection<?>) throws UnsupportedOperationException, ClassCast
+Exception, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Object[] toArray()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+<T> T[] toArray(T[]) throws ArrayStoreException, NullPointerException
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+int
+\begin_inset space ~
+\end_inset
+
+size()
+\family default
+\series default
+ Devuelve el número de elementos en la colección, si cabe en un entero.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+ Si contiene más que
+\family typewriter
+Integer.MAX_VALUE
+\family default
+, devuelve
+\family typewriter
+Integer.MAX_VALUE
+\family default
+.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+boolean
+\begin_inset space ~
+\end_inset
+
+isEmpty()
+\family default
+\series default
+ Indica si la colección está vacía.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+boolean
+\begin_inset space ~
+\end_inset
+
+contains(Object)
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws ClassCastException, NullPointerException
+\end_layout
+
+\end_inset
+
+Indica si la colección contiene el elemento dado.
+ Es un error común pasar un elemento de tipo no compatible con
+\family typewriter
+E
+\family default
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+boolean
+\begin_inset space ~
+\end_inset
+
+add(E)
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException,
+ IllegalArgumentException, IllegalStateException
+\end_layout
+
+\end_inset
+
+Se asegura de que la colección contenga el elemento especificado, indicando
+ si la colección ha cambiado como resultado de la llamada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+remove(Object)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws ClassCastException, NullPointerException
+\end_layout
+
+\end_inset
+
+Elimina una única instancia del elemento especificado de la colección, si
+ esta presente, indicando si la colección ha cambiado como resultado de
+ la llamada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+addAll(Collection<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+E>)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException,
+ IllegalArgumentException, IllegalStateException
+\end_layout
+
+\end_inset
+
+Añade a esta colección todos los elementos de otra, indicando si ha cambiado
+ como resultado de la llamada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+boolean
+\begin_inset space ~
+\end_inset
+
+removeAll(Collection<?>)
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException
+\end_layout
+
+\end_inset
+
+Elimina de essta colección todos los elementos en común con otra, indicando
+ si ha cambiado como resultado de la llamada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+void
+\begin_inset space ~
+\end_inset
+
+clear()
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException
+\end_layout
+
+\end_inset
+
+Elimina todos los elementos de la colección, que quedará vacía.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+default
+\begin_inset space ~
+\end_inset
+
+Stream<E>
+\begin_inset space ~
+\end_inset
+
+stream()
+\family default
+ Devuelve un flujo secuencial con esta colección como fuente.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+abstract
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+AbstractCollection<E>
+\begin_inset space ~
+\end_inset
+
+implements
+\begin_inset space ~
+\end_inset
+
+Collection<E>
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+public abstract Iterator<E> iterator()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+public abstract int size()
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+String
+\begin_inset space ~
+\end_inset
+
+toString()
+\family default
+ Devuelve una representación como cadena de caracteres de la colección como
+ una lista de sus elementos.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+List<E>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+Collection<E>
+\family default
+\series default
+ Lista, colección ordenada o secuencia.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+int indexOf(Object) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+int lastIndexOf(Object) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+ListIterator<E> listIterator()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+ListIterator<E> listIterator(int)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+List<E> subList(int, int)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+add(E)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException,
+ IllegalArgumentException
+\end_layout
+
+\end_inset
+
+Añade un elemento al final de la lista y devuelve
+\family typewriter
+true
+\family default
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+default
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+sort(Comparator<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+E>)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws ClassCastException, UnsupportedOperationException, IllegalArgumentExcepti
+on
+\end_layout
+
+\end_inset
+
+Ordena una lista de acuerdo a un comparador.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+equals(Object)
+\family default
+ Indica si el otro objeto es una lista del mismo tamaño y con los mismos
+ elementos en las mismas posiciones.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+E
+\begin_inset space ~
+\end_inset
+
+get(int)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws IndexOutOfBoundsException
+\end_layout
+
+\end_inset
+
+Devuelve el elemento en una determinada posición en el rango
+\begin_inset Formula $[0,\mathtt{size()})$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+E
+\begin_inset space ~
+\end_inset
+
+set(int,
+\begin_inset space ~
+\end_inset
+
+E)
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException,
+ IllegalArgumentException, IndexOutOfBoundsException
+\end_layout
+
+\end_inset
+
+Sustituye el elemento en la posición dada, en el rango
+\begin_inset Formula $[0,\mathtt{size()})$
+\end_inset
+
+, por el elemento dado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+void
+\begin_inset space ~
+\end_inset
+
+add(int,
+\begin_inset space ~
+\end_inset
+
+E)
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException,
+ IllegalArgumentException, IndexOutOfBoundsException
+\end_layout
+
+\end_inset
+
+Inserta el elemento dado en la posición dada, en el rango
+\begin_inset Formula $[0,\mathtt{size()}]$
+\end_inset
+
+, moviendo todos los elementos posteriores una posición a la derecha.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+E
+\begin_inset space ~
+\end_inset
+
+remove(int)
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, IndexOutOfBoundsException
+\end_layout
+
+\end_inset
+
+Elimina el elemento en la posición especificada, en el rango
+\begin_inset Formula $[0,\mathtt{size()})$
+\end_inset
+
+, moviendo todos los elementos posteriores una posición a la izquierda.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\series bold
+public abstract class AbstractList<E> extends AbstractCollection<E> implements
+ List<E>
+\end_layout
+
+\end_inset
+
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+abstract E get(int)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+abstract
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+AbstractSequentialList<E>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+AbstractList<E>
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+abstract ListIterator<E> listIterator(int)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\series bold
+public class LinkedList<E> extends AbstractSequentialList<E> implements
+ List<E>, Cloneable
+\end_layout
+
+\end_inset
+
+
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, Serializable
+\end_layout
+
+\end_inset
+
+Lista doblemente enlazada, con la que podemos gestionar pilas y colas.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+LinkedList()
+\family default
+\series default
+ Construye una lista vacía.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+LinkedList(Collection<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+E>)
+\family default
+\series default
+ Construye una lista con los elementos de la colección dada, en el orden
+ en que los devuelve el iterador.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+E
+\begin_inset space ~
+\end_inset
+
+getFirst()
+\begin_inset space ~
+\end_inset
+
+throws
+\begin_inset space ~
+\end_inset
+
+NoSuchElementException
+\family default
+ Devuelve el primer elemento.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+E
+\begin_inset space ~
+\end_inset
+
+getLast()
+\begin_inset space ~
+\end_inset
+
+throws
+\begin_inset space ~
+\end_inset
+
+NoSuchElementException
+\family default
+ Devuelve el último elemento.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+E
+\begin_inset space ~
+\end_inset
+
+removeFirst()
+\series default
+
+\begin_inset space ~
+\end_inset
+
+throws
+\begin_inset space ~
+\end_inset
+
+NoSuchElementException
+\family default
+ Elimina y devuelve el primer elemento.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+E
+\begin_inset space ~
+\end_inset
+
+removeLast()
+\begin_inset space ~
+\end_inset
+
+throws
+\begin_inset space ~
+\end_inset
+
+NoSuchElementException
+\family default
+Elimina y devuelve el último elemento.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+addFirst(E)
+\family default
+\series default
+ Inserta un elemento al principio.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+addLast(E)
+\family default
+ Inserta un elemento al final.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+Object
+\begin_inset space ~
+\end_inset
+
+clone()
+\family default
+\series default
+ Devuelve una copia superficial (no se copian los elementos).
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+ArrayList<E>
+\begin_inset space ~
+\end_inset
+
+expands
+\begin_inset space ~
+\end_inset
+
+AbstractList<E>
+\begin_inset space ~
+\end_inset
+
+implements
+\begin_inset space ~
+\end_inset
+
+List<E>,
+\begin_inset space ~
+\end_inset
+
+Cloneable
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, RandomAccess, Serializable
+\end_layout
+
+\end_inset
+
+Lista contigua redimensionable.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+ArrayList()
+\family default
+\series default
+ Construye una lista vacía.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+ArrayList(Collection<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+E>)
+\family default
+\series default
+ Construye una lista con los elementos de la colección dada, en el orden
+ en que los devuelve el iterador.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+Object
+\begin_inset space ~
+\end_inset
+
+clone()
+\family default
+\series default
+ Devuelve una copia superficial (no se copian los elementos).
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Set<E>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+Collection<E>
+\family default
+\series default
+ Conjunto o colección sin elementos duplicados.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+add(E)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException,
+ IllegalArgumentException
+\end_layout
+
+\end_inset
+
+Añade un elemento si no estaba ya presente, indicando si se ha añadido (si
+ no estaba ya presente).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+boolean
+\begin_inset space ~
+\end_inset
+
+equals(Object)
+\family default
+\series default
+ Indica si el objeto dado es un conjunto de igual longitud que este y todos
+ los miembros del conjunto dado están contenidos en este (o, equivalentemente,
+ todos los de este están en el otro).
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+public abstract class AbstractSet<E> extends AbstractCollection<E> implements
+ Set<E>
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+HashSet<E>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+AbstractSet<E>
+\begin_inset space ~
+\end_inset
+
+implements
+\begin_inset space ~
+\end_inset
+
+Set<E>,
+\begin_inset space ~
+\end_inset
+
+Cloneable
+\end_layout
+
+\end_inset
+
+
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, Serializable
+\end_layout
+
+\end_inset
+
+Conjunto implementado por tabla de dispersión.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+HashSet()
+\family default
+\series default
+ Construye un conjunto vacío.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+HashSet(Collection<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+E>)
+\family default
+\series default
+ Construye un conjunto con los elementos de la colección dada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+Object
+\begin_inset space ~
+\end_inset
+
+clone()
+\family default
+\series default
+ Devuelve una copia superficial (no se copian los elementos).
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+SortedSet<E>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+Set<E>
+\family default
+ Conjunto totalmente ordenado, por el orden natural de
+\family typewriter
+E
+\family default
+ o por un
+\family typewriter
+Comparator<? super E>
+\family default
+.
+ El iterador devuelve los elementos en orden ascendente.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+Comparator<? super E> comparator()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+SortedSet<E> subSet(E, E)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+SortedSet<E>
+\begin_inset space ~
+\end_inset
+
+headSet(E)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws ClassCastException, NullPointerException, IllegalArgumentException
+\end_layout
+
+\end_inset
+
+Devuelve una vista de los elementos estrictamente menores que el dado, y
+ que depende del original.
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+Y que lanzará un
+\family typewriter
+IllegalArgumentException
+\family default
+ si se intenta insertar un elemento fuera del rango.
+\end_layout
+
+\end_inset
+
+Una vista es un objeto que permite acceder a otro con una interfaz algo
+ distinta.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SortedSet<E>
+\begin_inset space ~
+\end_inset
+
+tailSet(E)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws ClassCastException, NullPointerException, IllegalArgumentException
+\end_layout
+
+\end_inset
+
+Devuelve una vista de los elementos estrictamente mayores que el dado, y
+ que depende del original.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+Y que lanzará un
+\family typewriter
+IllegalArgumentException
+\family default
+ si se intenta insertar un elemento fuera del rango.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+E
+\begin_inset space ~
+\end_inset
+
+first()
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws NoSuchElementException
+\end_layout
+
+\end_inset
+
+Devuelve el menor elemento del conjunto.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+E
+\begin_inset space ~
+\end_inset
+
+last()
+\family default
+\series bold
+
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws NoSuchElementException
+\end_layout
+
+\end_inset
+
+Devuelve el mayor elemento del conjunto.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+NavigableSet<E>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+SortedSet<E>
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+E ceiling(E) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Iterator<E> descendingIterator()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+NavigableSet<E> descendingSet()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+E floor(E) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+NavigableSet<E> headSet(E, boolean) throws ClassCastException, NullPointerExcept
+ion, IllegalArgumentException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+E higher(E) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+E lower(E) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+E pollFirst()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+E pollLast()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+E subset(E, boolean, E, boolean) throws ClassCastException, NullPointerException
+, IllegalArgumentException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+E tailSet(E, boolean) throws ClassCastException, NullPointerException, IllegalAr
+gumentException
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\series bold
+public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>,
+ Cloneable
+\end_layout
+
+\end_inset
+
+
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, Serializable
+\end_layout
+
+\end_inset
+
+ Conjunto implementado por árbol rojo-negro.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+TreeSet()
+\family default
+\series default
+ Construye un conjunto vacío.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+TreeSet(Collection<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+E>)
+\family default
+\series default
+ Construye un conjunto con los elementos de la colección dada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+TreeSet(Comparator<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+E>)
+\family default
+\series default
+ Construye un conjunto vacío con el comparador dado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+Object
+\begin_inset space ~
+\end_inset
+
+clone()
+\family default
+\series default
+ Devuelve una copia superficial (no se copian los elementos).
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+Collections
+\family default
+ Utilidades estáticas para colecciones.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+<T
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+Comparable<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T>>
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+sort(List<T>)
+\end_layout
+
+\end_inset
+
+
+\family default
+\series default
+ Ordena una lista según el orden natural de sus elementos.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+<T>
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+sort(List<T>,
+\begin_inset space ~
+\end_inset
+
+Comparator<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T>)
+\end_layout
+
+\end_inset
+
+
+\family default
+\series default
+ Ordena una lista según un comparador.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+@SafeVarargs
+\begin_inset space ~
+\end_inset
+
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+<T>
+\begin_inset space ~
+\end_inset
+
+boolean
+\begin_inset space ~
+\end_inset
+
+addAll(Collection<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T>,
+\begin_inset space ~
+\end_inset
+
+T...)
+\family default
+ Añade todos los elementos a la colección dada, indicando si la colección
+ ha cambiado como resultado de la llamada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+<T>
+\begin_inset space ~
+\end_inset
+
+Set<T>
+\begin_inset space ~
+\end_inset
+
+unmodifiableSet(Set<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+T>)
+\family default
+\series default
+ Devuelve una vista no modificable del conjunto dado.
+ Para dar acceso de solo lectura a un conjunto interno a una clase sin necesidad
+ de hacer una copia.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+<T>
+\begin_inset space ~
+\end_inset
+
+List<T>
+\begin_inset space ~
+\end_inset
+
+unmodifiableList(List<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+T>)
+\family default
+ Devuelve una vista no modificable de la lista dada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+<K,V>
+\begin_inset space ~
+\end_inset
+
+Map<K,V>
+\begin_inset space ~
+\end_inset
+
+unmodifiableMap(Map<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+K,?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+V>)
+\family default
+\series default
+ Devuelve una copia no modificable del mapa dado.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+Arrays
+\family default
+ Utilidades estáticas para
+\emph on
+arrays
+\emph default
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+@SafeVarargs
+\begin_inset space ~
+\end_inset
+
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+<T>
+\begin_inset space ~
+\end_inset
+
+List<T>
+\begin_inset space ~
+\end_inset
+
+asList(T...)
+\family default
+ Devuelve una vista de un
+\emph on
+array
+\emph default
+ como lista de tamaño fijo.
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Mapas
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Map<K,V>
+\family default
+ Mapa o diccionario clave-valor.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+static interface Map.Entry<K,V>
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+boolean equals(Object)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+K getKey() throws IllegalStateException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+V getValue() throws IllegalStateException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+int hashCode()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+V setValue(V) throws UnsupportedOperationException, ClassCastException,
+ NullPointerException, IllegalArgumentException, IllegalStateException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Set<Map.Entry<K,V>> entrySet()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+boolean equals(Object)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+int hashCode()
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+int
+\begin_inset space ~
+\end_inset
+
+size()
+\family default
+ Devuelve el total de asociaciones clave-valor.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+boolean
+\begin_inset space ~
+\end_inset
+
+isEmpty()
+\family default
+\series default
+ Indica si el mapa es vacío.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+containsKey(Object)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws ClassCastException, NullPointerException
+\end_layout
+
+\end_inset
+
+Indica si el mapa contiene una asociación para la clave dada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+containsValue(Object)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws ClassCastException, NullPointerException
+\end_layout
+
+\end_inset
+
+Indica si el mapa contiene una asociación con el valor dado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+V
+\begin_inset space ~
+\end_inset
+
+get(Object)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws ClassCastException, NullPointerException
+\end_layout
+
+\end_inset
+
+Obtiene el valor asociado a la clave dada, o
+\family typewriter
+null
+\family default
+ si el mapa no tiene asociación para la clave.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+V
+\begin_inset space ~
+\end_inset
+
+put(K,
+\begin_inset space ~
+\end_inset
+
+V)
+\family default
+\series medium
+
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException,
+ IllegalArgumentException
+\end_layout
+
+\end_inset
+
+
+\series medium
+Asocia el valor dado a la clave dada, sustituyendo la asociación anterior
+ para esta clave de haber alguna.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+V
+\begin_inset space ~
+\end_inset
+
+remove(Object)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException
+\end_layout
+
+\end_inset
+
+Elimina la asociación para la clave dada, si existe.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+void
+\begin_inset space ~
+\end_inset
+
+putAll(Map<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+K,
+\begin_inset space ~
+\end_inset
+
+?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+V>)
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException, ClassCastException, NullPointerException,
+ IllegalArgumentException
+\end_layout
+
+\end_inset
+
+Copia todas las asociaciones del mapa dado al objeto receptor.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+void
+\begin_inset space ~
+\end_inset
+
+clear()
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws UnsupportedOperationException
+\end_layout
+
+\end_inset
+
+Elimina todas las asociaciones del mapa, dejándolo vacío.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Set<K>
+\begin_inset space ~
+\end_inset
+
+keySet()
+\family default
+ Devuelve una vista de las claves del mapa, que depende de este.
+ Si el mapa se modifica mientras se itera la vista, el comportamiento es
+ no especificado.
+ Eliminar un elemento del conjunto elimina la asociación correspondiente
+ del mapa.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Collection<V>
+\begin_inset space ~
+\end_inset
+
+values()
+\family default
+ Devuelve una vista de los valores del mapa, que depende de este.
+ Si el mapa se modifica mientras se itera la vista, el comportamiento es
+ no especificado.
+ Eliminar un elemento de la colección elimina la asociación correspondiente
+ del mapa.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+default
+\begin_inset space ~
+\end_inset
+
+V
+\begin_inset space ~
+\end_inset
+
+getOrDefault(Object,
+\begin_inset space ~
+\end_inset
+
+V)
+\family default
+\series default
+ Devuelve el valor asociado a la clave dada, o el que se le pasa como parámetro
+ si no hay ninguno asociado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+default
+\begin_inset space ~
+\end_inset
+
+V
+\begin_inset space ~
+\end_inset
+
+putIfAbsent(K,
+\begin_inset space ~
+\end_inset
+
+V)
+\family default
+ Si la clave dada no está asociada ningún valor (o está asociada a
+\family typewriter
+null
+\family default
+), la asocia al valor dado, devolviendo
+\family typewriter
+null
+\family default
+ si este es el caso o su valor actual en caso contrario.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+AbstractMap<K,V>
+\begin_inset space ~
+\end_inset
+
+implements
+\begin_inset space ~
+\end_inset
+
+Map<K,V>
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+public abstract Set<Map.Entry<K,V>> entrySet()
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,
+ Cloneable
+\end_layout
+
+\end_inset
+
+
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, Serializable
+\end_layout
+
+\end_inset
+
+Diccionario implementado por tabla de dispersión.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+HashMap()
+\family default
+\series default
+ Construye un mapa vacío.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+HashMap(Map<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+K,?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+V>)
+\family default
+\series default
+ Construye un mapa con las asociaciones del mapa dado.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+SortedMap<K,V>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+Map<K,V>
+\family default
+ El iterador de
+\family typewriter
+keySet()
+\family default
+ devuelve las claves en orden ascendente.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+Comparator<? super K> comparator()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+K firstKey() throws NoSuchElementException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+SortedMap<K,V> headMap(K) throws ClassCastException, NullPointerException,
+ IllegalArgumentException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+K lastKey() throws NoSuchelementException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+SortedMap<K,V> subMap(K, K)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+SortedMap<K,V> tailMap(K) throws ClassCastException, NullPointerException,
+ IllegalArgumentException
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+NavigableMap<K,V>
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+SortedMap<K,V>
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+Map.Entry<K,V> ceilingEntry(K) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+K ceilingKey(K) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+NavigableSet<K> descendingKeySet()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+NavigableMap<K,V> descendingMap()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Map.Entry<K,V> firstEntry()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Map.Entry<K,V> floorEntry(K) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+K floorKey(K) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+NavigableMap<K,V> headMap(K, boolean) throws ClassCastException, NullPointerExce
+ption, IllegalArgumentException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Map.Entry<K,V> higherEntry(K) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+K higherKey(K) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Map.Entry<K,V> lastEntry()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Map.Entry<K,V> lowerEntry(K) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+K lowerKey(K) throws ClassCastException, NullPointerException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+NavigableSet<K> navigableKeySet()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Map.Entry<K,V> pollFirstEntry()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Map.Entry<K,V> pollLastEntry()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+NavigableMap<K,V> subMap(K, boolean, K, boolean) throws ClassCastException,
+ NullPointerException, IllegalArgumentException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+NavigableMap<K,V> tailMap(K, boolean) throws ClassCastException, NullPointerExce
+ption, IllegalArgumentException
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\series bold
+public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>,
+ Cloneable
+\end_layout
+
+\end_inset
+
+
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, Serializable
+\end_layout
+
+\end_inset
+
+Diccionario implementado por árbol rojo-negro.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+TreeMap()
+\family default
+\series default
+ Construye un mapa vacío.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+TreeMap(Map<?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+K,?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+V>)
+\family default
+\series default
+ Construye un mapa con las asociaciones del mapa dado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+TreeMap(Comparator<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+K>)
+\family default
+\series default
+ Construye un mapa vacío con el comparador dado.
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Recomendaciones
+\end_layout
+
+\begin_layout Enumerate
+En constructores y métodos públicos, especificar el tipo de retorno y tipo
+ de los pa
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rá
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+me
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+tros mediante la interfaz, y no la clase.
+\end_layout
+
+\begin_layout Enumerate
+Evitar el uso de
+\emph on
+arrays
+\emph default
+, pues tienen tamaño fijo, no definen las operaciones fundamentales de
+\family typewriter
+Object
+\family default
+ y es necesario usar
+\family typewriter
+java.util.Arrays
+\family default
+ para estas.
+\end_layout
+
+\end_body
+\end_document
diff --git a/poo/n5.lyx b/poo/n5.lyx
new file mode 100644
index 0000000..bcf7598
--- /dev/null
+++ b/poo/n5.lyx
@@ -0,0 +1,926 @@
+#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 Java, la sintaxis
+\family typewriter
+new
+\emph on
+Clase
+\family default
+\emph default
+[
+\family typewriter
+\emph on
+<T1
+\emph default
+,
+\family default
+...
+\family typewriter
+>
+\family default
+]
+\family typewriter
+(
+\emph on
+Arg1
+\emph default
+,
+\family default
+...
+\family typewriter
+) {
+\family default
+ ...
+
+\family typewriter
+}
+\family default
+ se puede usar para crear una clase anónima que herede de
+\family typewriter
+\emph on
+Clase
+\family default
+\emph default
+.
+ Una
+\series bold
+interfaz funcional
+\series default
+ es una que se declara con la anotación (opcional)
+\family typewriter
+@FunctionalInterface
+\family default
+ encima de la definición y que contienen un sólo método abstracto.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{sloppypar}
+\end_layout
+
+\end_inset
+
+Las
+\series bold
+expresiones lambda
+\series default
+ tienen sintaxis (
+\family typewriter
+(
+\family default
+[
+\family typewriter
+\emph on
+Tipo
+\family default
+\emph default
+]
+\family typewriter
+
+\emph on
+var
+\emph default
+,
+\family default
+...
+\family typewriter
+)
+\family default
+|
+\family typewriter
+\emph on
+var
+\family default
+\emph default
+)
+\family typewriter
+ ->
+\family default
+(
+\family typewriter
+{
+\emph on
+cuerpo
+\emph default
+ }
+\family default
+|
+\family typewriter
+\emph on
+expresión
+\family default
+\emph default
+), donde
+\family typewriter
+\emph on
+cuerpo
+\family default
+\emph default
+ es el cuerpo de una función,
+\family typewriter
+\emph on
+expresión
+\family default
+\emph default
+ es una única expresión que equivale a
+\family typewriter
+{ return
+\emph on
+expresión
+\emph default
+; }
+\family default
+ y el
+\family typewriter
+\emph on
+Tipo
+\family default
+\emph default
+ de los argumentos normalmente se puede inferir.
+ Internamente son clases compatibles con las interfaces funcionales que
+ se requieran siempre que su signatura sea compatible con la de su único
+ método abstracto.
+ Si la expresión lambda se refiere a variables de su entorno léxico (variables
+ locales o elementos de la clase), las instancias de su clase asociada se
+ denominan
+\series bold
+clausuras
+\series default
+ (
+\emph on
+closures
+\emph default
+).
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{sloppypar}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Salvo que se indique lo contrario, las siguientes interfaces se definen
+ en
+\family typewriter
+java.util.function
+\family default
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+@FunctionalInterface
+\begin_inset space ~
+\end_inset
+
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Predicate<T>
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+test(T)
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+@FunctionalInterface
+\begin_inset space ~
+\end_inset
+
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Function<T,R>
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+R
+\begin_inset space ~
+\end_inset
+
+apply(T)
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+@FunctionalInterface
+\series default
+
+\begin_inset space ~
+\end_inset
+
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Supplier<T>
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+T
+\begin_inset space ~
+\end_inset
+
+get()
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+@FunctionalInterface
+\begin_inset space ~
+\end_inset
+
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Consumer<T>
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+void
+\begin_inset space ~
+\end_inset
+
+accept(T)
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+El paquete
+\family typewriter
+java.util.stream
+\family default
+ contiene clases para soportar operaciones funcionales en flujos de elementos.
+ Las operaciones con flujos se dividen en operaciones
+\series bold
+intermedias
+\series default
+ y
+\series bold
+terminales
+\series default
+.
+ Las operaciones intermedias devuelven un nuevo flujo.
+ Las operaciones terminales pueden atravesar el flujo para producir un resultado
+ o un efecto colateral.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\series default
+
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+java.util.stream.Stream<T>
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+extends BaseStream<T,Stream<T>>
+\end_layout
+
+\end_inset
+
+Secuencia de elementos que soporta o
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pe
+\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
+
+cio
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+nes secuenciales y paralelas en agregado.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+<R,A> R collect(Collector<? super T,A,R>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+<R> R collect(Supplier<R>, BiConsumer<R, ? super T>, BiConsumer<R,R>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Stream<T> distinct()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Optional<T> findAny()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Optional<T> findFirst()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+<R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+DoubleStream flatMapToDouble(Function<? super T,? extends DoubleStream>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+IntStream flatMapToInt(Function<? super T,? extends IntStream>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+LongStream flatMapToLong(Function<? super T,? extends LongStream>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+void forEachOrdered(Consumer<? super T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Stream<T> limit(long)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+DoubleStream mapToDouble(ToDoubleFunction<? super T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+IntStream mapToInt(ToIntFunction<? super T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+LongStream mapToLong(ToLongFunction<? super T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Optional<T> max(Comparator<? super T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Optional<T> min(Comparator<? super T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+boolean noneMatch(Predicate<? super T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Stream<T> peek(Consumer<? super T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Optional<T> reduce(BinaryOperator<T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+T reduce(T, BinaryOperator<T>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+<U> U reduce(U, BiFunction<U,? super T,U>, BinaryOperator<U>)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Stream<T> skip(long)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Object[] toArray()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+<A> A[] toArray(IntFunction<A[]>)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+Stream<T>
+\series default
+
+\begin_inset space ~
+\end_inset
+
+filter(Predicate<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T>)
+\family default
+ Devuelve un flujo con los elementos de este para los que se cumple el predicado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+<R>
+\series default
+
+\begin_inset space ~
+\end_inset
+
+Stream<R>
+\begin_inset space ~
+\end_inset
+
+map(Function<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T,?
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+R>)
+\family default
+ Devuelve un flujo con el resultado de aplicar la función dada a los elementos
+ de este.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Stream<T>
+\begin_inset space ~
+\end_inset
+
+sorted()
+\family default
+ Devuelve un flujo con los elementos de este, ordenados según su orden natural.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+Stream<T>
+\series default
+
+\begin_inset space ~
+\end_inset
+
+sorted(Comparator<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T>)
+\family default
+ Devuelve un flujo con los elementos de este, ordenados según el comparador
+ dado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+void
+\begin_inset space ~
+\end_inset
+
+forEach(Consumer<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T>)
+\family default
+ Realiza una acción en cada elemento.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+long
+\series default
+
+\begin_inset space ~
+\end_inset
+
+count()
+\family default
+ Devuelve el número de elementos en el flujo.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+anyMatch(Predicate<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T>)
+\family default
+ Indica si algún elemento de este flujo cum
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ple el predicado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+boolean
+\begin_inset space ~
+\end_inset
+
+allMatch(Predicate<?
+\begin_inset space ~
+\end_inset
+
+super
+\begin_inset space ~
+\end_inset
+
+T>)
+\family default
+ Indica si todos los elementos de este flujo cumplen el predicado.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Donde sea aceptable una expresión lambda también es aceptable una referencia
+ a un método:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+\emph on
+Clase
+\emph default
+::
+\emph on
+métodoDeClase
+\family default
+\emph default
+ equivale a
+\family typewriter
+e ->
+\emph on
+Clase
+\emph default
+.
+\emph on
+métodoDeClase
+\emph default
+(e)
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+\emph on
+Clase
+\emph default
+::
+\emph on
+métodoDeInstancia
+\family default
+\emph default
+ equivale a
+\family typewriter
+(
+\emph on
+Clase
+\emph default
+ e) -> e.
+\emph on
+métodoDeInstancia
+\emph default
+()
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+\emph on
+objeto
+\emph default
+::
+\emph on
+método
+\family default
+\emph default
+ equivale a
+\family typewriter
+e ->
+\emph on
+objeto
+\emph default
+.
+\emph on
+método
+\emph default
+(e)
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+\emph on
+Clase
+\emph default
+::new
+\family default
+ equivale a
+\family typewriter
+e -> new
+\emph on
+Clase
+\emph default
+(e)
+\family default
+.
+\end_layout
+
+\end_body
+\end_document
diff --git a/poo/n6.lyx b/poo/n6.lyx
new file mode 100644
index 0000000..7a65f35
--- /dev/null
+++ b/poo/n6.lyx
@@ -0,0 +1,771 @@
+#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
+La
+\series bold
+corrección
+\series default
+ es la capacidad del software de cumplir con su especificación, de modo
+ que el incumplimiento de los requisitos de uso implica la finalización
+ de la ejecución.
+ La
+\series bold
+robustez
+\series default
+ es la capacidad del software de reaccionar adecuadamente a situaciones
+ excepcionales (fallos de disco, red, etc.).
+ En Java, para esto se usan excepciones.
+\end_layout
+
+\begin_layout Standard
+Una excepción es un objeto de clase compatible con
+\family typewriter
+java.lang.Exception
+\family default
+, que podemos lanzar con la cláusula
+\family typewriter
+throw
+\emph on
+objeto
+\emph default
+;
+\family default
+.
+ Para capturar una excepción usamos la construcción
+\family typewriter
+try
+\family default
+–
+\family typewriter
+catch
+\family default
+, con la sintaxis:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+try {
+\emph on
+stmt
+\family default
+\emph default
+...
+
+\family typewriter
+ }
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+catch (
+\emph on
+Tipo var
+\emph default
+) {
+\emph on
+stmt
+\family default
+\emph default
+...
+
+\family typewriter
+ }
+\family default
+...
+\end_layout
+
+\begin_layout Plain Layout
+[
+\family typewriter
+finally {
+\emph on
+stmt
+\family default
+\emph default
+...
+
+\family typewriter
+ }
+\family default
+]
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Si se lanza una excepción en el bloque
+\family typewriter
+try
+\family default
+, se comprueba el
+\family typewriter
+\emph on
+Tipo
+\family default
+\emph default
+ en cada bloque
+\family typewriter
+catch
+\family default
+ (que debería ser compatible con
+\family typewriter
+java.lang.Exception
+\family default
+) en orden y, si se encuentra uno compatible con el tipo dinámico de la
+ excepción, se ejecuta el interior de dicho bloque con la variable
+\family typewriter
+\emph on
+var
+\family default
+\emph default
+ (de tipo estático
+\family typewriter
+\emph on
+Tipo
+\family default
+\emph default
+) asociada al objeto excepción, y decimos que la excepción ha sido capturada.
+ El bloque
+\family typewriter
+finally
+\family default
+, si existe, se ejecuta tanto si la excepción es capturada como si no.
+ Finalmente, si la excepción no es capturada, el resultado es como si la
+ propia construcción lanzara la excepción.
+\end_layout
+
+\begin_layout Standard
+Las siguientes clases se definen en
+\family typewriter
+java.lang
+\family default
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+Throwable
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+implements Serializable
+\end_layout
+
+\end_inset
+
+Superclase de todos los errores y excepciones en el lenguaje.
+ Sólo instancias de esta clase (o compatibles) son lanzadas por la máquina
+ virtual de Java o la cláusula
+\family typewriter
+throw
+\family default
+.
+ Solo esta clase o compatibles pueden ser el tipo de argumento de una cláusula
+
+\family typewriter
+catch
+\family default
+.
+
+\family typewriter
+Throwable
+\family default
+ y cualquier clase compatible con
+\family typewriter
+Throwable
+\family default
+ que no lo es también con
+\family typewriter
+RuntimeException
+\family default
+ o
+\family typewriter
+Error
+\family default
+ se consideran excepciones comprobadas.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+String
+\begin_inset space ~
+\end_inset
+
+getMessage()
+\family default
+ Deuvuelve la cadena de mensaje de este lanzable.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+printStackTrace()
+\family default
+ Imprime este lanzable y su
+\emph on
+backtrace
+\emph default
+ (estado de la pila de llamadas en el momento de crear la excepción) al
+ flujo de error estándar.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+Exception
+\family default
+ Forma de
+\family typewriter
+Throwable
+\family default
+ que indica condiciones que una aplicación razonable querría capturar.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+Exception(String)
+\family default
+ Construye una excepción con el mensaje especificado.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Si se lanza una excepción fuera de un bloque
+\family typewriter
+try
+\family default
+, se termina la ejecución del método y el resultado es como si la llamada
+ a dicho método lanzara la excepción, y decimos que el método produce la
+ excepción.
+ Si un método puede producir una excepción comprobada, debemos escribir
+
+\family typewriter
+throws
+\emph on
+Tipo1
+\emph default
+,
+\family default
+...
+ detrás de la lista de parámetros (
+\family typewriter
+(
+\family default
+...
+\family typewriter
+)
+\family default
+) y antes de la implementación (
+\family typewriter
+{
+\family default
+...
+\family typewriter
+}
+\family default
+) o el
+\family typewriter
+;
+\family default
+ para métodos abstractos, siendo
+\family typewriter
+\emph on
+Tipo1
+\emph default
+,
+\family default
+...
+ una lista de excepciones tales que cualquier excepción comprobada que pueda
+ producir el método sea de tipo compatible con uno de la lista.
+ Entonces se considera que el método puede producir un error de cualquier
+ tipo de la lista.
+ Si el método
+\family typewriter
+\series bold
+main
+\family default
+\series default
+ de la aplicación produce una excepción, el programa termina con error.
+\end_layout
+
+\begin_layout Standard
+Si bien las excepciones permiten aportar robustez, también permiten controlar
+ el uso correcto de operaciones, notificando de errores de programación.
+ Para ello se usan las
+\series bold
+excepciones en tiempo de ejecución
+\series default
+, compatibles con
+\family typewriter
+java.lang.RuntimeException
+\family default
+, y que en general no se tratan.
+ La máquina virtual también puede lanzar excepciones de este tipo.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+RuntimeException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+Exception
+\family default
+\series default
+ Superclase de las excepciones que pue
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+den ser lanzadas durante la operación normal de la máquina virtual de Java.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+NullPointerException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+RuntimeException
+\family default
+ Lanzada cuando una a
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pli
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ca
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ción intenta usar
+\family typewriter
+null
+\family default
+ cuando se requiere un objeto.
+ Las aplicaciones deberían lanzar instancias de esta clase para otros usos
+ no permitidos de
+\family typewriter
+null
+\family default
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+IllegalArgumentException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+RuntimeException
+\family default
+ Lanzada para in
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+di
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+car que a un método se le ha pasado un argumento inapropiado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+IllegalStateException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+RuntimeException
+\family default
+ Señala que el entorno o la aplicación no está en un estado apropiado para
+ la operación solicitada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+NoSuchElementException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+RuntimeException
+\family default
+ Lanzada por algunos métodos accesores para indicar que el elemento solicitado
+ no existe.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+ClassCastException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+RuntimeException
+\family default
+ Lanzada para indicar que el código ha intentado hacer
+\emph on
+casting
+\emph default
+ a un objeto hacia una subclase a la que no pertenece.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+IndexOutOfBoundsException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+RuntimeException
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+\series bold
+public class ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException
+\end_layout
+
+\end_inset
+
+
+\family default
+\series default
+ Lanzada para indicar que se ha accedido a un
+\emph on
+array
+\emph default
+ con un índice no permitido.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+diseño por contrato
+\series default
+ es un modo de proceder ante los errores de programación basado en que las
+ operaciones tienen requisitos de uso o
+\series bold
+precondiciones
+\series default
+ con los que se considera un error no cumplir, y si no se cumplen el programa
+ no debe continuar.
+\end_layout
+
+\end_body
+\end_document
diff --git a/poo/na.lyx b/poo/na.lyx
new file mode 100644
index 0000000..9b4af57
--- /dev/null
+++ b/poo/na.lyx
@@ -0,0 +1,1500 @@
+#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*
+
+\family typewriter
+java.io
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+Closeable
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+extends AutoCloseable
+\end_layout
+
+\end_inset
+
+ Fuente o destino de datos que puede ser cerrado.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+void
+\begin_inset space ~
+\end_inset
+
+close()
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws IOException
+\end_layout
+
+\end_inset
+
+Cierra este flujo y libera cualquier recurso asociado con él.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+FileNotFoundException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+IOException
+\family default
+\series default
+ Indica que ha fallado un intento de abrir el fichero con nombre especificado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+IOException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+Exception
+\family default
+\series default
+ Señaliza una excepción de E/S.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+IOException(String)
+\family default
+ Construye una
+\family typewriter
+IOException
+\family default
+ con el mensaje especificado.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+abstract
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+InputStream
+\begin_inset space ~
+\end_inset
+
+
+\series default
+implements
+\begin_inset space ~
+\end_inset
+
+Closeable
+\family default
+ Representa un flujo de entrada de bytes.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+abstract int read()
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+PrintStream
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+extends FilterOutputStream
+\end_layout
+
+\end_inset
+
+
+\family default
+ Añade a otro flujo de salida la habilidad de imprimir representaciones
+ de datos convenientemente.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+println(String)
+\family default
+ Imprime una cadena y termina la línea.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+abstract
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+PrintWriter
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+extends Writer
+\end_layout
+
+\end_inset
+
+Imprime representaciones de objetos con formato a un flujo de salida de
+ texto.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+public abstract class Writer()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+public abstract void close() throws IOException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+public abstract void flush() throws IOException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+public abstract void write(char[],int,int)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+PrintWriter(String)
+\begin_inset space ~
+\end_inset
+
+throws
+\begin_inset space ~
+\end_inset
+
+FileNotFoundException
+\family default
+\series default
+ Construye un nuevo
+\family typewriter
+PrintWriter
+\family default
+ con el nombre de fichero indicado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+boolean
+\begin_inset space ~
+\end_inset
+
+checkError()
+\family default
+\series default
+ Comprueba su estado de error.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+void
+\begin_inset space ~
+\end_inset
+
+println(String)
+\family default
+ Imprime una cadena y termina la línea.
+\end_layout
+
+\end_deeper
+\begin_layout Section*
+
+\family typewriter
+java.lang
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+Integer
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+String
+\begin_inset space ~
+\end_inset
+
+toHexString(int)
+\family default
+ Devuelve una representación textual del argumento entero como entero sin
+ signo en base 16, una cadena de dígitos ASCII en hexadecimal sin
+\family typewriter
+0
+\family default
+s extra a la izquierda.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+Math
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+double
+\begin_inset space ~
+\end_inset
+
+PI
+\family default
+\series default
+ El valor de doble precisión más cerca que cualquier otro a
+\begin_inset Formula $\pi$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+double
+\begin_inset space ~
+\end_inset
+
+sqrt(double)
+\family default
+ Devuelve la raíz cuadrada positiva de un valor correctamente redondeada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+double
+\begin_inset space ~
+\end_inset
+
+pow(double,
+\begin_inset space ~
+\end_inset
+
+double)
+\family default
+\series default
+ Devuelve el primer argumento elevado a la potencia del segundo.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+String
+\begin_inset space ~
+\end_inset
+
+implements
+\begin_inset space ~
+\end_inset
+
+CharSequence
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, Serializable, Comparable<String>
+\end_layout
+
+\end_inset
+
+Representa cadenas inmutables de caracteres.
+ Todos los literales de cadena en programas Java, como
+\family typewriter
+"
+\emph on
+abc
+\emph default
+"
+\family default
+, son instancias de esta clase.
+ El lenguaje proporciona soporte especial para el operador de concatenación
+ (
+\family typewriter
++
+\family default
+), y para conversión de otros objetos a cadenas al concatenar.
+ Las conversiones se implementan mediante el método
+\family typewriter
+toString
+\family default
+.
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+public interface CharSequence
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+char charAt(int)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+int length()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+CharSequence subSequence(int, int)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+String toString()
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+boolean
+\begin_inset space ~
+\end_inset
+
+contains(CharSequence)
+\family default
+ Indica si esta cadena contiene la secuencia de caracteres especificada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+int
+\begin_inset space ~
+\end_inset
+
+length()
+\family default
+ Devuelve el número de unidades de código Unicode en la cadena.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+System
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+InputStream
+\begin_inset space ~
+\end_inset
+
+in
+\family default
+\series default
+ El flujo de entrada estándar.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+PrintStream
+\begin_inset space ~
+\end_inset
+
+out
+\family default
+ El flujo de salida estándar.
+\end_layout
+
+\end_deeper
+\begin_layout Section*
+
+\family typewriter
+java.net
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+MalformedURLException
+\begin_inset space ~
+\end_inset
+
+extends
+\begin_inset space ~
+\end_inset
+
+IOException
+\family default
+\series default
+ Indica una URL mal formada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+URL
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+implements Serializable
+\end_layout
+
+\end_inset
+
+Representa una URL.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+URL(String)
+\begin_inset space ~
+\end_inset
+
+throws
+\begin_inset space ~
+\end_inset
+
+MalformedURLException
+\family default
+ Construye una URL a partir de su representación como cadena.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+InputStream
+\begin_inset space ~
+\end_inset
+
+openStream()
+\begin_inset space ~
+\end_inset
+
+throws
+\begin_inset space ~
+\end_inset
+
+IOException
+\family default
+\series default
+ Abre una conexión a la URL y devuelve un
+\family typewriter
+InputStream
+\family default
+ para leer de esta.
+\end_layout
+
+\end_deeper
+\begin_layout Section*
+
+\family typewriter
+java.time
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+LocalTime
+\begin_inset space ~
+\end_inset
+
+implements
+\begin_inset space ~
+\end_inset
+
+ChronoLocalDate
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, Temporal, TemporalAdjuster, Serializable
+\end_layout
+
+\end_inset
+
+Fecha sin zona horaria.
+ Inmutable.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+LocalDate
+\begin_inset space ~
+\end_inset
+
+now()
+\family default
+ Obtiene la fecha actual del reloj del sistema en la zona horaria por defecto.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+LocalDate
+\begin_inset space ~
+\end_inset
+
+of(int,
+\begin_inset space ~
+\end_inset
+
+int,
+\begin_inset space ~
+\end_inset
+
+int)
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws DateTimeException
+\end_layout
+
+\end_inset
+
+Obtiene una instancia de
+\family typewriter
+LocalDate
+\family default
+ desde un año, mes y día, respectivamente.
+\end_layout
+
+\end_deeper
+\begin_layout Section*
+
+\family typewriter
+java.time.chrono
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+interface
+\begin_inset space ~
+\end_inset
+
+ChronoLocalDate
+\family default
+\series medium
+
+\begin_inset Note Greyedout
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+extends Temporal, TemporalAdjuster, Comparable<ChronoLocalDate>
+\end_layout
+
+\end_inset
+
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+public interface Temporal extends TemporalAccessor
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+boolean isSupported(TemporalUnit)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+Temporal plus(long,TemporalUnit) throws DateTimeException, UnsupportedTemporalEx
+ception, ArithmeticException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+long until(Temporal, TemporalUnit) throws DateTimeException, UnsupportedTemporal
+TypeException, ArithmeticException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset space ~
+\end_inset
+
+Temporal with(TemporalField, long) throws DateTimeException, UnsupportedTemporal
+TypeException, ArithmeticException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+default boolean isSupported(TemporalUnit)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+default Temporal plus(long,TemporalUnit) throws DateTimeException, ArithmeticExc
+eption
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+default Temporal with(TemporalField, long) throws DateTimeException, Unsupported
+TemporalTypeException, ArithmeticException
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+boolean equals(Object)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Chronology getChronology()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+int hashCode()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+int lengthOfMonth()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+String toString()
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+ChronoPeriod until(ChronoLocalDate) throws DateTimeException, ArithmeticExceptio
+n
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+default
+\begin_inset space ~
+\end_inset
+
+boolean
+\begin_inset space ~
+\end_inset
+
+isAfter(ChronoLocalDate)
+\family default
+ Comprueba si esta fecha es posterior a la especificada.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+default
+\begin_inset space ~
+\end_inset
+
+boolean
+\begin_inset space ~
+\end_inset
+
+isBefore(ChronoLocalDate)
+\family default
+ Comprueba si es anterior.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+default
+\begin_inset space ~
+\end_inset
+
+boolean
+\begin_inset space ~
+\end_inset
+
+isEqual(ChronoLocalDate)
+\family default
+ Comprueba si es igual.
+\end_layout
+
+\end_deeper
+\begin_layout Section*
+
+\family typewriter
+java.util
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+Random
+\family default
+\series default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+implements Serializable
+\end_layout
+
+\end_inset
+
+Genera números pseudoaleatorios.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+\series bold
+public
+\series default
+
+\begin_inset space ~
+\end_inset
+
+Random()
+\family default
+ Construye un generador de números aleatorios.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+int
+\begin_inset space ~
+\end_inset
+
+nextInt(int)
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+throws IllegalArgumentException
+\end_layout
+
+\end_inset
+
+Devuelve un valor entero pseudoaleatorio distribuido uniformemente entre
+ 0 (inclusive) y el valor especificado (exclusive), extraído de la secuencia
+ del generador.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+Scanner
+\begin_inset space ~
+\end_inset
+
+implements
+\begin_inset space ~
+\end_inset
+
+Closeable
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+, Iterator<String>
+\end_layout
+
+\end_inset
+
+Escáner de texto simple.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+Scanner(InputStream)
+\family default
+ Construye un escáner que produce valores del flujo de entrada especificado.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+String
+\begin_inset space ~
+\end_inset
+
+nextLine()
+\family default
+ Devuelve el resto de la línea actual, excluyendo cualquier separador de
+ línea al final.
+ La posición se establece al principio de la siguiente línea.
+\end_layout
+
+\end_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+final
+\begin_inset space ~
+\end_inset
+
+class
+\begin_inset space ~
+\end_inset
+
+UUID
+\family default
+
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+implements Serializable, Comparable<UUID>
+\end_layout
+
+\end_inset
+
+Representa unn identificador único universal.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\family typewriter
+public
+\begin_inset space ~
+\end_inset
+
+static
+\begin_inset space ~
+\end_inset
+
+UUID
+\begin_inset space ~
+\end_inset
+
+randomUUID()
+\family default
+ Obtiene un UUID usando un generador de números pseudoaleatorios.
+\end_layout
+
+\end_deeper
+\end_body
+\end_document
diff --git a/poo/nb.lyx b/poo/nb.lyx
new file mode 100644
index 0000000..19478fe
--- /dev/null
+++ b/poo/nb.lyx
@@ -0,0 +1,743 @@
+#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 Eclipse, todo el código fuente o compilado se encuentra en un directorio
+ llamado
+\series bold
+espacio de trabajo
+\series default
+.
+ Para importar un proyecto, movemos su directorio al espacio de trabajo
+ y, desde Eclipse, usamos
+\begin_inset Quotes fld
+\end_inset
+
+Archivo
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+Importar
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+General
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+Proyectos existentes en el espacio de trabajo
+\begin_inset Quotes frd
+\end_inset
+
+, donde nos pide el directorio raíz introducimos la ruta del espacio de
+ trabajo, pulsamos
+\begin_inset Quotes fld
+\end_inset
+
+Examinar
+\begin_inset Quotes frd
+\end_inset
+
+ y, en el panel inferior
+\begin_inset Quotes fld
+\end_inset
+
+Proyectos
+\begin_inset Quotes frd
+\end_inset
+
+, seleccionamos el que deseamos importar, y pulsamos
+\begin_inset Quotes fld
+\end_inset
+
+Finalizar
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+El código fuente Java se guarda en ficheros
+\family typewriter
+\emph on
+Clase
+\emph default
+.java
+\family default
+ que, al compilarlos, se convierten en ficheros compilados o de
+\emph on
+bytecode
+\emph default
+
+\family typewriter
+\emph on
+Clase
+\emph default
+.class
+\family default
+, uno por clase.
+ Para ejecutar un programa usamos el comando
+\family typewriter
+java [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+CLASE
+\family default
+\emph default
+, donde
+\family typewriter
+\emph on
+CLASE
+\family default
+\emph default
+ es la ruta completa de la clase principal.
+ Las clases se buscan según un
+\emph on
+classpath
+\emph default
+, una lista de directorios (o ficheros com
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pri
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+mi
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+dos) separados por
+\family typewriter
+;
+\family default
+, de forma que en uno de ellos debe haber un fichero de
+\emph on
+bytecode
+\emph default
+ cuya ruta relativa al directorio debe ser el resultado de cambiar los separador
+es
+\family typewriter
+.
+
+\family default
+ en la ruta completa de la clase por
+\family typewriter
+/
+\family default
+ y añadir al final la extensión
+\family typewriter
+.class
+\family default
+.
+ El
+\emph on
+classpath
+\emph default
+ se indica al comando con la opción
+\family typewriter
+-cp
+\emph on
+CLASSPATH
+\family default
+\emph default
+; si no aparece, se toma de la variable de entorno
+\family typewriter
+CLASSPATH
+\family default
+, y si esta tampoco existe, se asume que es
+\begin_inset Quotes fld
+\end_inset
+
+
+\family typewriter
+.
+\family default
+
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Un fichero JAR es un comprimido con extensión (normalmente)
+\family typewriter
+.jar
+\family default
+ que contiene los ficheros compilados y un
+\series bold
+manifiesto
+\series default
+ que describe el contenido.
+ El manifiesto se encuentra en
+\family typewriter
+META-INF/MANIFEST.MF
+\family default
+ dentro del comprimido, y suele tener el siguiente aspecto:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+Class-Path:
+\emph on
+ELEMENTO
+\emph default
+
+\family default
+...
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Main-Class:
+\emph on
+RUTA_CLASE
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Donde la entrada
+\family typewriter
+Class-Path
+\family default
+ indica el
+\emph on
+classpath
+\emph default
+ como lista separada por espacios en la que
+\family typewriter
+.
+
+\family default
+ indica el propio fichero y las rutas relativas que no comienzan con
+\family typewriter
+.
+
+\family default
+ lo son respecto al directorio donde se encuentra el comprimido.
+
+\family typewriter
+Main-Class
+\family default
+ indica el nombre completo de la clase principal.
+ Esto permite ejecutar un programa en Java con el comando
+\family typewriter
+java -jar
+\emph on
+fichero.jar
+\family default
+\emph default
+, o abriendo el fichero desde un explorador de ficheros.
+\end_layout
+
+\begin_layout Standard
+Si tenemos una biblioteca en un fichero JAR que queremos usar en nuestro
+ proyecto, creamos dentro una carpeta
+\family typewriter
+lib
+\family default
+, copiamos el comprimido dentro junto con su documentación JavaDoc (descomprimid
+a) y, dentro de Eclipse, pulsamos F5 para actualizar el contenido de
+\family typewriter
+lib
+\family default
+.
+ Pulsamos el fichero de la biblioteca con el botón derecho del ratón, usamos
+
+\begin_inset Quotes fld
+\end_inset
+
+Vía de acceso de construcción
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+Añadir a la vía de construcción
+\begin_inset Quotes frd
+\end_inset
+
+ y aparece una sección
+\begin_inset Quotes fld
+\end_inset
+
+Li
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+bre
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rí
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+as referidas
+\begin_inset Quotes frd
+\end_inset
+
+ con la biblioteca añadida.
+ Pulsamos aquí con el botón derecho del ratón, en
+\begin_inset Quotes fld
+\end_inset
+
+Propiedades
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+Ubicación del JavaDoc
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+Vía de acceso de ubicación JavaDoc
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+Examinar
+\begin_inset Quotes frd
+\end_inset
+
+ seleccionamos el directorio con la documentación, y pulsamos
+\begin_inset Quotes fld
+\end_inset
+
+Validar
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Para generar un archivo JAR de nuestro proyecto, usamos
+\begin_inset Quotes fld
+\end_inset
+
+Archivo
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+Exportar
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+Java
+\begin_inset Quotes frd
+\end_inset
+
+ y podemos elegir
+\begin_inset Quotes fld
+\end_inset
+
+Archivo JAR
+\begin_inset Quotes frd
+\end_inset
+
+ para empaquetar una biblioteca (sin clase principal),
+\begin_inset Quotes fld
+\end_inset
+
+Archivo JAR ejecutable
+\begin_inset Quotes frd
+\end_inset
+
+ para un ejecutable o
+\begin_inset Quotes fld
+\end_inset
+
+JavaDoc
+\begin_inset Quotes frd
+\end_inset
+
+ para extraer la documentación JavaDoc.
+\end_layout
+
+\begin_layout Standard
+Si elegimos la segunda opción, tenemos las opciones:
+\end_layout
+
+\begin_layout Itemize
+
+\emph on
+Launch configuration
+\emph default
+: Para elegir la clase principal de entre las posibles.
+\end_layout
+
+\begin_layout Itemize
+
+\emph on
+Export destination
+\emph default
+: Dónde queremos que se guarde el fichero JAR.
+\end_layout
+
+\begin_layout Itemize
+
+\emph on
+Library handling
+\emph default
+:
+\begin_inset Quotes fld
+\end_inset
+
+
+\emph on
+Extract required libraries into generated JAR
+\emph default
+
+\begin_inset Quotes frd
+\end_inset
+
+ descomprime los ficheros JAR de las bibliotecas e introduce las clases
+ en el JAR de salida.
+
+\begin_inset Quotes fld
+\end_inset
+
+
+\emph on
+Package required libraries into generated JAR
+\emph default
+
+\begin_inset Quotes frd
+\end_inset
+
+ guarda los propios ficheros JAR de las bibliotecas dentro del nuestro.
+
+\begin_inset Quotes fld
+\end_inset
+
+
+\emph on
+Copy required libraries into a sub-folder next to the generated JAR
+\emph default
+
+\begin_inset Quotes frd
+\end_inset
+
+ crea un directorio junto al fichero JAR donde mete las bibliotecas, que
+ añade como dependencias en el
+\family typewriter
+Class-Path
+\family default
+ del manifiesto.
+\end_layout
+
+\begin_layout Standard
+JavaDoc es una forma de generar documentación de código Java a partir de
+ comentarios.
+ Para ello, encima de cada clase, interfaz, etc., método o incluso paquete,
+ creamos un comentario como el siguiente:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Box Frameless
+position "t"
+hor_pos "c"
+has_inner_box 1
+inner_pos "t"
+use_parbox 0
+use_makebox 0
+width "100col%"
+special "none"
+height "1in"
+height_special "totalheight"
+thickness "0.4pt"
+separation "3pt"
+shadowsize "4pt"
+framecolor "black"
+backgroundcolor "none"
+status open
+
+\begin_layout Plain Layout
+
+\family typewriter
+/**
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+*
+\emph on
+Descripción.
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+*
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+* @param
+\emph on
+nombre
+\emph default
+
+\emph on
+Descripción del parámetro
+\begin_inset Quotes fld
+\end_inset
+
+nombre
+\begin_inset Quotes frd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+*
+\family default
+...
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+* @return
+\emph on
+Valor devuelto.
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+* @throws
+\emph on
+Tipo Significado si el método lanza una excepción del Tipo dado.
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+*
+\family default
+...
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+* @seeAlso
+\emph on
+Clase,método,etc.
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+\begin_inset space ~
+\end_inset
+
+*/
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Cualquier parte puede omitirse (de hecho muchas son específicas para métodos),
+ y puede usarse código HTML o marcadores propios de JavaDoc (por ejemplo,
+ para enlazar a otra clase o método).
+ Si un método redefine a otro sin cambiar la semántica, podemos usar
+\family typewriter
+/** {@inheritDoc} */
+\family default
+ para heredar la documentación.
+\end_layout
+
+\end_body
+\end_document