diff options
| author | Juan Marín Noguera <juan.marinn@um.es> | 2020-02-24 11:22:00 +0100 |
|---|---|---|
| committer | Juan Marín Noguera <juan.marinn@um.es> | 2020-02-24 11:22:00 +0100 |
| commit | 79e1a51eb55d0df43323c0fe77a7d55b2c2bd17d (patch) | |
| tree | 89bd93a329f9deb72efce8fed205b69918c3d9b9 /iso | |
| parent | 1f7f9bcc7660fba0827a62c3068d5c7082f025d7 (diff) | |
POO
Diffstat (limited to 'iso')
| -rw-r--r-- | iso/n.lyx | 336 | ||||
| -rw-r--r-- | iso/n1.lyx | 997 | ||||
| -rw-r--r-- | iso/n2.lyx | 1232 | ||||
| -rw-r--r-- | iso/n3.lyx | 943 | ||||
| -rw-r--r-- | iso/n4.lyx | 895 | ||||
| -rw-r--r-- | iso/n5.lyx | 879 | ||||
| -rw-r--r-- | iso/n6.lyx | 826 | ||||
| -rw-r--r-- | iso/na.lyx | 7090 | ||||
| -rw-r--r-- | iso/nb.lyx | 1092 | ||||
| -rw-r--r-- | iso/nc.lyx | 1408 | ||||
| -rw-r--r-- | iso/nd.lyx | 4024 | ||||
| -rw-r--r-- | iso/ne.lyx | 1997 | ||||
| -rw-r--r-- | iso/nf.lyx | 2949 | ||||
| -rw-r--r-- | iso/pegado1.png | bin | 0 -> 19295 bytes | |||
| -rw-r--r-- | iso/pegado2.png | bin | 0 -> 39707 bytes | |||
| -rw-r--r-- | iso/pegado3.png | bin | 0 -> 21311 bytes | |||
| -rw-r--r-- | iso/pegado4.png | bin | 0 -> 3204 bytes | |||
| -rw-r--r-- | iso/pegado5.png | bin | 0 -> 32237 bytes | |||
| -rw-r--r-- | iso/pegado6.png | bin | 0 -> 32568 bytes |
19 files changed, 24668 insertions, 0 deletions
diff --git a/iso/n.lyx b/iso/n.lyx new file mode 100644 index 0000000..d1dc6ca --- /dev/null +++ b/iso/n.lyx @@ -0,0 +1,336 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize 10 +\spacing single +\use_hyperref false +\papersize a5paper +\use_geometry true +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\leftmargin 0.2cm +\topmargin 0.7cm +\rightmargin 0.2cm +\bottommargin 0.7cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style swiss +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle empty +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Title +Introducción a los Sistemas Operativos +\end_layout + +\begin_layout Date +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +def +\backslash +cryear{2018} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "../license.lyx" + +\end_inset + + +\end_layout + +\begin_layout Standard +Bibliografía: +\end_layout + +\begin_layout Itemize +Apuntes de la asignatura, anónimos. +\end_layout + +\begin_layout Itemize +Wikipedia, the free encyclopedia ( +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://en.wikipedia.org/ +\end_layout + +\end_inset + +). +\end_layout + +\begin_layout Itemize +Páginas +\family typewriter +man +\family default + de Fedora 29 de todos los comandos y ficheros que se explican en los apéndices + en subsección propia, de sus respectivos autores, salvo que se indique + específicamente lo contrario, así como la página +\family typewriter +signal(7) +\family default +. +\end_layout + +\begin_layout Chapter +Introducción +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n1.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Gestión de procesos +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n2.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Seguridad y protección +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n3.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Sistemas de ficheros +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n4.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Gestión de memoria +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n5.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Gestión de E/S +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n6.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +\start_of_appendix +El entorno de comandos de GNU +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "na.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Gestión de software +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "nb.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Usuarios y grupos +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "nc.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Administración de discos +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "nd.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Procesos y memoria +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "ne.lyx" + +\end_inset + + +\end_layout + +\begin_layout Chapter +Arranque del sistema +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "nf.lyx" + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/iso/n1.lyx b/iso/n1.lyx new file mode 100644 index 0000000..e1c15d4 --- /dev/null +++ b/iso/n1.lyx @@ -0,0 +1,997 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Un +\series bold +sistema operativo +\series default + es un intermediario entre el usuario y el hardware, un programa complejo + que se ejecuta cuando otro lo solicita o periódicamente para realizar ciertas + tareas. + +\end_layout + +\begin_layout Itemize +Como +\series bold +máquina extendida +\series default + o +\series bold +virtual +\series default +, presenta una interfaz sencilla de la máquina al programador ocultando + detalles de hardware de bajo nivel (interrupciones, relojes, control de + memoria, etc.). +\end_layout + +\begin_layout Itemize +Como +\series bold +controlador de recursos +\series default +, proporciona una asignación ordenada y controlada de los recursos de hardware + (procesadores, memoria, entrada y salida, etc.) entre los programas que + compiten por ellos. +\end_layout + +\begin_layout Standard +Destacamos Microsoft Windows, Apple MacOS X, Linux, y para dispositivos + móviles, iOS y Android. + Las características de un sistema operativo dependen del hardware en que + se ejecuta; por ejemplo, este en general no puede garantizar la protección + entre zonas de memoria de dos programas si el hardware no dispone de un + mecanismo para ello. + Por esto los sistemas operativos han evolucionado a la par con el hardware. +\end_layout + +\begin_layout Section +Historia +\end_layout + +\begin_layout Subsection +Primera generación (1945–55) +\end_layout + +\begin_layout Standard +Grandes máquinas experimentales que ocupaban habitaciones enteras, formadas + por miles de válvulas de vacío y cables conectados a mano, que consumían + una gran cantidad de energía y eran muy poco fiables. + Un solo grupo de personas diseñaba, construía, programaba, operaba y mantenía + cada máquina. + No existían lenguajes de programación ni sistemas operativos: la programación + era en lenguaje máquina, incluyendo el código de E/S dentro del propio + programa, y con frecuencia se usaban conexiones directamente para controlar + funciones básicas. +\end_layout + +\begin_layout Standard +La interacción con la máquina era directa: los programadores la reservaban + durante un tiempo, en el que introducían y ejecutaban el programa. + Si el trabajo terminaba en ese tiempo, había periodos en que la máquina + no se usaba (al ser máquinas muy caras había que aprovecharlas al máximo), + y si no daba tiempo a terminar, el programador tenía que volver a reservar + la máquina. +\end_layout + +\begin_layout Subsection +Segunda generación (1955-65) +\end_layout + +\begin_layout Standard +Aparecen desarrollos como los lectores de tarjetas, impresoras de líneas, + cintas magnéticas y, por el lado del software, ensambladores, cargadores + y enlazadores. + La introducción del transistor hizo que los ordenadores se volvieran fiables, + pudiendo venderse a clientes, y las bibliotecas de E/S hicieron que el + programador ya no tuviera que preocuparse de este aspecto. +\end_layout + +\begin_layout Standard +Si la interacción era directa, esta incluía colocar tarjetas perforadas, + preparar la impresora, hacer cambios de cinta (por ejemplo, colocar la + cinta con el compilador de FORTRAN para compilar un programa), etc. + Si el programador no tenía experiencia en esto se podían producir grandes + pérdidas de tiempo, por lo que se contrataba a un operador profesional + que controlaba la máquina de forma que los programadores entregaban su + trabajo y esperaban al resultado, perdiendo la interacción directa. + Otra medida fue planificar los trabajos para minimizar los cambios de cinta + (por ejemplo, agrupando todos los programas en FORTRAN para ser compilados + tras preparar la cinta con el compilador). +\end_layout + +\begin_layout Standard +Aun así, cuando se detenía un trabajo, el operador debía percatarse observando + la consola, determinar si se trataba de una terminación normal o anormal, + efectuar un volcado si era necesario, cargar el lector de tarjetas o la + cinta con el siguiente trabajo y volver a preparar el ordenador. + En este tiempo la CPU estaba inactiva, por lo que se desarrollaron sistemas + de +\series bold +procesamiento por lotes +\series default +, sistemas operativos rudimentarios, como el +\series bold +monitor residente +\series default +, formado por un intérprete de tarjetas de control, un cargador de programas + y controladores de dispositivos de E/S compartidos con los programas. + Este interpretaba instrucciones de tarjetas de control insertadas entre + tarjetas normales de datos, que indicaban el inicio y fin de un trabajo + y tipo de trabajo a realizar. +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename pegado1.png + scale 30 + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Ejemplo de trabajo por lotes. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Los dispositivos de E/S eran (y son) lentos en comparación con la CPU, que + debía esperar la terminación de cada operación de E/S, por lo que se creó + la +\series bold +operación fuera de línea +\series default +, consistente en pasar de operaciones en línea ( +\emph on +on-line +\emph default +) donde la CPU interactuaba directamente con la E/S lenta, a operaciones + fuera de línea ( +\emph on +off-line +\emph default +), donde la CPU interactuaba con dispositivos más rápidos. + Para esto, primero los datos se leían de las tarjetas y se guardaban en + una cinta, a continuación los datos de la cinta se procesaban y se guardaban + los resultados en otra cinta, y finalmente los datos de la cinta de salida + se imprimen. +\end_layout + +\begin_layout Standard +Esto hizo surgir la +\series bold +independencia de dispositivo +\series default +, el escribir un programa para usar dispositivos de E/S lógicos y que fuera + el sistema operativo el que hiciera corresponder los dispositivos lógicos + con los físicos. + También aumentó el tiempo que el programador debía esperar para obtener + los resultados, pues las cintas se tenían que llenar, y también hizo necesarias + varias máquinas en paralelo para hacer las copias de tarjetas a cintas + y de cintas a la impresora. + Solución: +\end_layout + +\begin_layout Itemize +Hacer que los dispositivos de entrada escriban directamente en un +\series bold +\emph on +buffer +\series default +\emph default + en memoria principal, mientras la CPU procesa los datos anteriores, de + forma que la entrada y la CPU trabajen en paralelo. + Lo mismo ocurre con la salida. +\end_layout + +\begin_layout Itemize +Hacer que la entrada y la salida se den a través de ficheros en un disco, + por el mecanismo de +\series bold +\emph on +spooler +\series default +\emph default + ( +\emph on +simultaneous peripheral operation on-line +\emph default +), de forma que durante el cómputo de un programa se imprime la salida de + programas anteriores, leída del disco, y se lee la entrada de programas + posteriores, que se imprime en el disco. + Para esto el monitor necesita hacer uso de +\emph on +buffers +\emph default + e interrupciones. +\end_layout + +\begin_layout Standard +Sigue habiendo la limitación de que un único usuario no puede mantener a + la CPU y la E/S ocupados todo el tiempo. +\end_layout + +\begin_layout Subsection +Tercera generación (1965-80) +\end_layout + +\begin_layout Standard +Los ordenadores se vuelven más pequeños y fiables. + Se crea la +\series bold +multiprogramación +\series default +: cuando un trabajo no puede continuar su ejecución porque tiene que esperar + a la E/S, se pasa la CPU a otro trabajo listo para ejecutarse. + Es necesaria una +\series bold +planificación de trabajos +\series default +, así como evitar que estos trabajos se interfieran unos a otros en el uso + de los recursos (por ejemplo, escribiendo a la vez en la impresora). +\end_layout + +\begin_layout Standard +El +\series bold +tiempo compartido +\series default + o +\series bold +multitarea +\series default + es una variante de la multiprogramación consistente en hacer un cambio + rápido entre tareas de forma que cada usuario pueda interactuar con el + programa que está ejecutando como si todos se ejecutaran a la vez ( +\series bold +pseudoparalelismo +\series default +), recuperándose la interacción directa. + Puede ocurrir que un programa no quiera liberar la CPU durante bastante + tiempo, por lo que es necesario un mecanismo para obligarle a dejar la + CPU. +\end_layout + +\begin_layout Standard +Surgen sistemas operativos como OS/360 para el IBM 360, MULTICS y su sucesor + UNIX, del que se derivan sistemas como Linux. +\end_layout + +\begin_layout Subsection +Cuarta generación (1980-95) +\end_layout + +\begin_layout Standard +Los circuitos LSI ( +\emph on +Large Scale Integration +\emph default +) y VLSI ( +\emph on +Very Large Scale Integration +\emph default +) permiten la aparición en 1975 del primer +\series bold +ordenador personal +\series default +, invento que popularizó los computadores y la informática. + También aparecen las +\series bold +estaciones de trabajo +\series default +, ordenadores personales muy potentes (para empresas) conectados entre sí + en red. +\end_layout + +\begin_layout Standard +Se populariza el sistema operativo UNIX para estaciones de trabajo y el + MS-DOS, monousuario y monotarea, para ordenadores personales, si bien en + estos comienzan a aparecer conceptos como la multitarea o la memoria virtual + propios de UNIX. + También aparecen las redes de ordenadores personales, dando lugar a sistemas + operativos en red y distribuidos; los ordenadores con varias CPUs que permiten + ejecutar varios procesos a la vez ( +\series bold +paralelismo +\series default +), y los sistemas operativos de tiempo real. +\end_layout + +\begin_layout Subsection +Quinta generación (1995-) +\end_layout + +\begin_layout Standard +Explosión del uso de Internet y aparición de dispositivos móviles, especialmente + los llamados +\series bold +teléfonos inteligentes +\series default + o +\emph on +smartphones +\emph default +, que combinan telefonía y computación, siendo el primero el Nokia N9000, + lanzado a mediados de los 90, si bien estos no se popularizaron hasta el + iPhone de Apple en 2007. +\end_layout + +\begin_layout Standard +De Microsoft aparecen Windows 2000 y sus sucesores Server 2003, 2008, etc., + destinados a servidores, y Windows XP y sus sucesores Vista, 7, etc., destinados + a usuarios. + También alcanzan gran popularidad Linux, MacOS X, Android e iOS. +\end_layout + +\begin_layout Section +Tipos +\end_layout + +\begin_layout Itemize + +\series bold +De propósito general +\series default +, que destacan por su flexibilidad y capacidad para adaptarse, mediante + configuraciones concretas, tanto al hardware sobre el que se ejecutan como + a los trabajos a procesar. + Destacan Unix (principalmente Linux), Microsoft Windows y Apple MacOS X. +\end_layout + +\begin_deeper +\begin_layout Itemize +Unix es el más usado en +\series bold +supercomputadores +\series default +, formados por un gran cantidad de procesadores, memoria, discos, etc. + y capaces de procesar enormes cantidades de datos en poco tiempo, así como + en los +\series bold +\emph on +mainframes +\series default +\emph default +, capaces de procesar a la vez muchos trabajos que requieren enormes cantidades + de E/S (sobre todo, disco y red), y que suelen servir para procesamiento + por lotes o +\emph on +batch +\emph default + (sin interacción con usuarios), transacciones (bancarias, reservas de vuelo, + etc.) y trabajos multitarea (cuando los usuarios interactúan con el sistema). +\end_layout + +\begin_layout Itemize +Al pasar a sistemas menos potentes como +\series bold +servidores +\series default +, computadores que sirven a varios usuarios a la vez compartiendo recursos + hardware y software en red, podemos encontrar tanto Unix como MacOS X o + incluso Windows. + Esto también ocurre en los ordenadores personales, caracterizados por la + multitarea y estar diseñados para dar buen rendimiento a un único usuario, + y que hoy en día son +\series bold +multiprocesadores +\series default +, pues disponen de varios +\series bold +núcleos +\series default + o +\emph on +cores +\emph default + que actúan como CPUs separadas y comparten memoria principal. +\end_layout + +\begin_layout Itemize +En teléfonos inteligentes, tabletas y sistemas integrados, pequeños ordenadores + con menos recursos que uno normal pero con un consumo de energía mucho + menor, encontramos versiones de estos tres sistemas adaptados a estos dispositi +vos y a la interacción por pantalla táctil. +\end_layout + +\end_deeper +\begin_layout Itemize + +\series bold +De red +\series default +: Permiten interactuar con otros ordenadores conectados a una misma red, + si bien cada máquina es independiente. + Actualmente esto es lo común, y de hecho los tres sistemas de propósito + general que hemos visto también son de red. +\end_layout + +\begin_layout Itemize + +\series bold +Distribuidos +\series default +: También se conectan a otros mediante red, pero el conjunto de ordenadores + en esta red es visto como un sistema tradicional, con lo que el usuario + no es consciente de dónde se ejecutan los programas o dónde se encuentran + los ficheros ( +\series bold +transparencia de localización +\series default +). + Las ventajas son la compartición de recursos, aceleración de los cálculos + y tolerancia a fallos, pues si una máquina falla el resto puede seguir + haciendo todo el trabajo. + Destacan Amoeba, Plan 9 e Inferno, si bien todos han dejado de desarrollarse. +\end_layout + +\begin_layout Itemize + +\series bold +De tiempo real +\series default +: En los +\series bold +rigurosos +\series default +, usados por ejemplo en coches y plantas nucleares, una acción se debe realizar + necesariamente en cierto intervalo de tiempo o de lo contrario se podría + poner el sistema en peligro. + En los +\series bold +no rigurosos +\series default + es aceptable no cumplir de vez en cuando un plazo, dentro de unos límites. + Destacan VxWorks y QNX. +\end_layout + +\begin_layout Itemize + +\series bold +Para tarjetas inteligentes +\series default +, debido a las grandes limitaciones de potencia y memoria que presentan. + Suelen disponer de una máquina virtual de Java (JVM) que ejecuta los +\emph on +applets +\emph default + que se cargan en la tarjeta, pequeñas porciones de código que no se pueden + ejecutar por sí mismas sino que necesitan de un entorno proporcionado por + otro programa. +\end_layout + +\begin_layout Section +Programas y procesos +\end_layout + +\begin_layout Standard +Un +\series bold +programa +\series default + es la representación estática y almacenada de un conjunto de instrucciones + a ejecutar. + Cuando es cargado en memoria y se ejecuta, lo hace como un +\series bold +proceso +\series default +, la unidad de trabajo de un sistema, y de los cuales algunos pertenecen + al propio sistema operativo y el resto son procesos de usuario. + Un proceso es dinámico, requiriendo recursos como tiempo de CPU, memoria, + ficheros y dispositivos de E/S. + Varios procesos pueden ejecutar el mismo programa y un proceso (dependiendo + del sistema) puede ejecutar código de varios programas. +\end_layout + +\begin_layout Standard +En general los sistemas operativos se distribuyen junto con +\series bold +programas de sistema +\series default +, cuya misión es ofrecer un entorno más cómodo para el desarrollo y ejecución + de programas. + Tipos: +\end_layout + +\begin_layout Itemize + +\series bold +De manipulación de ficheros +\series default +. +\end_layout + +\begin_layout Itemize + +\series bold +De información de estado +\series default +, que solicitan información al sistema operativo, le dan formato y la imprimen. +\end_layout + +\begin_layout Itemize + +\series bold +De apoyo a lenguajes de programación +\series default +, como compiladores, ensambladores, intérpretes y depuradores. +\end_layout + +\begin_layout Itemize + +\series bold +De comunicaciones +\series default +, para crear conexiones virtuales entre procesos, usuarios o máquinas, permitien +do el envío de mensajes, correos electrónicos o ficheros a usuarios de la + misma máquina u otra y la conexión a una máquina remota. +\end_layout + +\begin_layout Itemize + +\series bold +De aplicación +\series default +, para efectuar otras operaciones comunes. + Incluímos aquí ditores de texto, generadores de gráficos, sistemas de bases + de datos, hojas de cálculo, paquetes de análisis estadístico, etc. +\end_layout + +\begin_layout Itemize + +\series bold +Intérprete de órdenes +\series default +, encargado de interpretar y ejecutar órdenes dadas por el usuario. + Las órdenes pueden estar contenidas en el código del propio intérprete + o en programas independientes. +\end_layout + +\begin_layout Standard +Aunque no hay diferencia entre un programa de usuario y uno del sistema, + la mayoría de usuarios suelen ver el sistema operativo desde el punto de + vista de los programas del sistema. +\end_layout + +\begin_layout Section +Componentes y servicios +\end_layout + +\begin_layout Standard +La interfaz entre el sistema operativo y un proceso tiene lugar mediante + +\series bold +llamadas al sistema +\series default +, con la siguiente estructura: +\end_layout + +\begin_layout Enumerate +El programa ejecuta la instrucción de la CPU para realizar la llamada al + sistema, cambiando la máquina a modo núcleo y pasando el control al sistema + operativo. +\end_layout + +\begin_layout Enumerate +Este lee el número de la llamada al sistema a realizar, y una vez validado, + llama al procedimiento correspondiente indicado en una tabla de apuntadores. +\end_layout + +\begin_layout Enumerate +La llamada termina y el control regresa al proceso de usuario, que continua + su ejecución por la instrucción inmediatamente posterior. +\end_layout + +\begin_layout Standard +El usuario informa al sistema operativo del número de la llamada a realizar + y los parámetros necesarios (habitualmente) mediante los registros, la + pila o una zona de memoria indicada en un registro. + Las bibliotecas de lenguajes de programación suelen contener procedimientos + que ocultan las llamadas al sistema, proporcionando una interfaz más sencilla. +\end_layout + +\begin_layout Standard +A continuación vemos los distintos componentes de un sistema operativo típico + junto a los servicios que ofrecen y las llamadas al sistema asociadas. + +\end_layout + +\begin_layout Subsection +Administración de procesos +\end_layout + +\begin_layout Standard +El sistema operativo debe ser capaz de crear y eliminar procesos, controlar + el tiempo de CPU que se le da a cada uno y cargar programas en estos procesos, + además de proveer medios para que los procesos se comuniquen entre sí. +\end_layout + +\begin_layout Standard +Existen pues llamadas al sistema para crear y terminar procesos; finalizar + el proceso actual; obtener y establecer atributos de un proceso; cargar + un programa; esperar un tiempo; esperar un suceso; enviar una señal a otro + proceso; crear o eliminar una conexión; enviar o recibir mensajes, o transferir + información de estado. +\end_layout + +\begin_layout Subsection +Administración de memoria principal +\end_layout + +\begin_layout Standard +El esquema de administración de memoria depende sobre todo del hardware, + que el sistema operativo debe usar para controlar de qué procesos están + usando qué zonas de memoria, asignar y recuperar memoria según se requiera + y decidir qué procesos se cargarán en memoria cuando haya espacio disponible. + Debe pues haber llamadas al sistema para solicitar y liberar memoria. +\end_layout + +\begin_layout Subsection +Administración de E/S +\end_layout + +\begin_layout Standard +En UNIX, esta se consigue mediante una interfaz uniforme con los manejadores + de dispositivo, un sistema de memoria caché y manejadores de hardware específic +os para las particularidades de cada dispositivo. +\end_layout + +\begin_layout Standard +Existen pues llamadas al sistema para solicitar o liberar dispositivos; + leer y escribir en ellos; reposicionarnos; obtener y establecer atributos + de dispositivos, y unir o separar dispositivos lógicos, sean físicos y + conectados a la propia máquina o accedidos remotamente mediante red. +\end_layout + +\begin_layout Subsection +Administración de ficheros +\end_layout + +\begin_layout Standard +Por comodidad, el sistema operativo organiza la memoria de los dispositivos + de almacenamiento secundario en +\series bold +ficheros +\series default +, unidades de almacenamiento lógico, que a su vez se organizan en directorios. +\end_layout + +\begin_layout Standard +Existen pues llamadas al sistema para crear y eliminar ficheros y directorios; + abrir y cerrar ficheros; leer, escribir y reposicionarnos en ficheros abiertos; + obtener y establecer atributos de ficheros y directorios, y manipular el + contenido de estos directorios. +\end_layout + +\begin_layout Subsection +Sistema de protección +\end_layout + +\begin_layout Standard +Los procesos de un sistema operativo deben ser protegidos unos de otros, + y el sistema operativo debe ser protegido de estos. + Para ello existen tres mecanismos hardware: +\end_layout + +\begin_layout Itemize + +\series bold +Modos de ejecución +\series default + del procesador: el +\series bold +modo núcleo +\series default + o +\series bold +supervisor +\series default +, en el que se ejecuta el sistema operativo por ser así capaz de ejecutar + cualquier instrucción, y el +\series bold +modo usuario +\series default +, en el que se ejecutan los programas de usuario y que no puede ejecutar + ciertas instrucciones como de E/S, configuración de memoria, etc. + Los programas de usuario, para realizar E/S, deben usar una instrucción + especial de +\series bold +llamada al sistema +\series default + ( +\emph on +syscall +\emph default +), tratada como una interrupción que, como todas, es tratada por el sistema + operativo en modo núcleo. +\end_layout + +\begin_layout Itemize + +\series bold +Protección de memoria +\series default +: Impedir que un programa de usuario acceda a zonas de memoria de otros + programas o del sistema operativo. +\end_layout + +\begin_layout Itemize + +\series bold +Interrupciones periódicas +\series default + mediante un reloj: Permiten al sistema operativo hacerse con el control + de la máquina cada cierto tiempo para evitar que un proceso monopolice + la CPU. +\end_layout + +\begin_layout Standard +Esta protección solo funciona si los tres mecanismos funcionan y se usan + de forma conjunta. + El sistema operativo es el encargado de hacer funcionar estos mecanismos + y usarlos para asegurarse de que los recursos puedan ser usados únicamente + por los procesos que han recibido la correspondiente autorización. + Además, el sistema operativo debe ser capaz de lidiar con los errores que + se puedan producir a nivel de hardware o dentro de un programa de usuario, + y emprender la acción adecuada en cada caso. +\end_layout + +\begin_layout Subsection +Mantenimiento de información +\end_layout + +\begin_layout Standard +Si bien esto generalmente no corresponde a una única parte del sistema operativo +, puede ser deseable llevar un control del uso de recursos del ordenador + por parte de los usuarios, sea con fines contables para facturar a los + usuarios o sencillamente para recopilar estadísticas de uso del sistema + que son útiles para su administración. + Además, tanto los procesos como los dispositivos o ficheros pueden poseer + información adicional que se debe leer y modificar aparte, y el reloj es + tratado de forma especial al ser usado en el sistema de protección. +\end_layout + +\begin_layout Standard +Existen pues llamadas al sistema para obtener o establecer la fecha y la + hora, datos del sistema y atributos de proceso, fichero o dispositivo. +\end_layout + +\begin_layout Section +Estructura +\end_layout + +\begin_layout Subsection +Sistemas monolíticos +\end_layout + +\begin_layout Standard +Están formados por un conjunto de procedimientos que se llaman unos a otros. + Ofrecen una interfaz muy clara, pero no tienen una estructura formalmente + definida y cada procedimiento es visible a los demás. + Están formados por el +\series bold +núcleo +\series default + (el sistema operativo como tal, junto a todos los controladores de dispositivo + o +\emph on +drivers +\emph default +) y los programas de sistema. + Destacan Unix (incluyendo Linux) y Windows. +\end_layout + +\begin_layout Standard +\begin_inset Note Comment +status open + +\begin_layout Plain Layout +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Graphics + filename pegado2.png + width 100text% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Esquema de un sistema monolítico. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Subsection +Sistemas por capas +\end_layout + +\begin_layout Standard +El sistema operativo se divide en +\series bold +capas +\series default + o +\series bold +niveles +\series default +, siendo la más baja (capa 0) el hardware y la más alta la interfaz con + el usuario, de forma que cada capa sólo usa funciones y servicios de capas + inferiores. + Esto simplifica la depuración y verificación, pues usa vez se depura una + capa se asciende a la siguiente, y proporciona ocultación de información, + haciendo posibles las modificaciones en una capa en cualquier momento siempre + que no se modifique la interfaz al resto de capas. + Sin embargo, da problemas de dependencias entre capas, pues a veces es + difícil saber dónde colocar una función, por lo que se opta por tener menos + capas con más funcionalidad. +\end_layout + +\begin_layout Standard +Destacan THE (1968) que se definió en 6 capas (hardware, planificación de + CPU, administración de memoria, consola del operador, administración de + E/S y programas de usuario) y VENUS, donde las capas inferiores se implementaro +n directamente en hardware. +\end_layout + +\begin_layout Subsection +Sistemas cliente-servidor +\end_layout + +\begin_layout Standard +Están formados por un +\series bold +micronúcleo +\series default + o +\emph on +microkernel +\emph default + y una serie de procesos de usuario que implementan las funciones típicas + de un sistema operativo. + Así, los procesos +\series bold +clientes +\series default + solicitan servicios de los procesos +\series bold +servidores +\series default +, que realizan los trabajos solicitados por los clientes y a su vez pueden + ser clientes de otros procesos, de modo que el micronúcleo se limita a + controlar las comunicaciones cliente-servidor. + Para la E/S, bien se incluye el servidor correspondiente en el modo núcleo + o existen mensajes especiales dirigidos al núcleo para que los procese + él mismo. +\end_layout + +\begin_layout Standard +Estos sistemas tienen la ventaja de que un fallo en un servidor concreto + no afecta a todo el sistema, y que pueden adaptarse como sistemas distribuidos + dado que no importa si los procesos que se comunican están en la misma + máquina o no. + Destacan QNX, Minix 3 y MacOS X, cuyo núcleo está basado en la versión + 2.5 del micronúcleo Mach desarrollado en los 80 en la Carnegie-Mellon University. +\end_layout + +\end_body +\end_document diff --git a/iso/n2.lyx b/iso/n2.lyx new file mode 100644 index 0000000..4a252fc --- /dev/null +++ b/iso/n2.lyx @@ -0,0 +1,1232 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Normalmente hay bastantes más procesos que CPUs, por lo que hay que repartir + el uso de estas por parte de los procesos, buscando bien la eficiencia, + como en sistemas antiguos, o el poder ejecutar varios programas dando la + sensación de que todos se ejecutan a la vez, como ocurre actualmente. + El paralelismo y el pseudoparalelismo, que se dan normalmente a la vez, + permiten compartir recursos físicos y lógicos entre varios resultados y + acelerar los cálculos dividiéndolos entre varias CPUs, además de aportar + modularidad, al poder diseñar un sistema como un conjunto de procesos, + y comodidad, permitiendo a los usuarios hacer varias cosas a la vez. +\end_layout + +\begin_layout Standard +El cambio de un proceso a otro se llama +\series bold +cambio de proceso +\series default + o de +\series bold +contexto +\series default +. + El +\series bold +planificador +\series default + es el procedimiento que decide el siguiente proceso a ejecutar mediante + un +\series bold +algoritmo de planificación +\series default +, y modifica las estructuras necesarias para que el cambio de contexto sea + correcto. +\end_layout + +\begin_layout Standard +En UNIX, los procesos se organizan en un árbol de procesos y se crean con + la llamada al sistema +\family typewriter +fork() +\family default +, que crea una copia idéntica del proceso que hace la llamada y devuelve + al hijo el valor 0 y al padre el PID ( +\emph on +process identifier +\emph default +) del proceso hijo. + El PID del propio proceso se obtiene con la llamada al sistema +\family typewriter +getpid +\family default +. + Las llamadas de la familia +\family typewriter +exec +\family default +, como +\family typewriter +execve +\family default +, hacen que un proceso sustituya su código y datos por los de otro programa, + que comienza la ejecución desde el principio, si bien se conservan los + ficheros abiertos (aunque se puede especificar el cierre de algunos descriptore +s de ficheros en +\family typewriter +execve +\family default +), el PID y casi todas las propiedades. +\end_layout + +\begin_layout Standard +En Windows la jerarquía de procesos de UNIX desaparece al poder un proceso + cambiar de proceso padre, y los procesos se crean con +\family typewriter +CreateProcess +\family default +, que equivale a ejecutar un +\family typewriter +fork +\family default + seguido de +\family typewriter +exec +\family default + en el proceso hijo. +\end_layout + +\begin_layout Standard +La terminación voluntaria de un proceso se hace mediante la llamada al sistema + +\family typewriter +exit +\family default + en UNIX y +\family typewriter +ExitProcess +\family default + en Windows. + La terminación involuntaria es producida por el sistema operativo si se + produce un error fatal (división por cero, acceso a una zona memoria incorrecta +, etc.) o por otro proceso autorizado a ello con la llamada al sistema +\family typewriter +kill +\family default + en UNIX o +\family typewriter +TerminateProcess +\family default + en Windows. +\end_layout + +\begin_layout Section +Estados +\end_layout + +\begin_layout Standard +Un proceso puede estar en uno de varios estados: +\end_layout + +\begin_layout Itemize + +\series bold +Nuevo +\series default +: El proceso acaba de ser creado y todavía no tiene los recursos necesarios. +\end_layout + +\begin_layout Itemize + +\series bold +En ejecución +\series default +: Utilizando la CPU. +\end_layout + +\begin_layout Itemize + +\series bold +Listo +\series default + o +\series bold +listo suspendido +\series default +: Ejecutable pero detenido porque otro proceso está usando la CPU. +\end_layout + +\begin_layout Itemize + +\series bold +Bloqueado +\series default + o +\series bold +bloqueado +\series default + +\series bold +suspendido +\series default +: A la espera de un evento externo. +\end_layout + +\begin_layout Itemize + +\series bold +Saliente +\series default + ( +\emph on +zombie +\emph default +): El proceso ha terminado su ejecución pero todavía no ha desaparecido + del todo. + Por ejemplo, en UNIX, cuando un proceso acaba debe esperar a que su padre + recoja su estado de salida mediante la llamada al sistema +\family typewriter +wait +\family default + o +\family typewriter +waitpid +\family default +. +\end_layout + +\begin_layout Standard +Un proceso suspendido no puede ejecutarse y suele guardarse en disco. + La +\series bold +suspensión +\series default + y posterior +\series bold +reanudación +\series default + de un proceso, por parte de otro(s), es útil: +\end_layout + +\begin_layout Itemize +Si el sistema está funcionando mal, mientras se corrige el problema. +\end_layout + +\begin_layout Itemize +Si se cree que los resultados del proceso son incorrectos, para comprobar + si lo son. +\end_layout + +\begin_layout Itemize +Si el sistema está muy cargado, para dar servicio a procesos de más prioridad. +\end_layout + +\begin_layout Standard +Cambios de estado: +\end_layout + +\begin_layout Itemize +De +\begin_inset Quotes fld +\end_inset + +Nuevo +\begin_inset Quotes frd +\end_inset + + a +\begin_inset Quotes fld +\end_inset + +Listo +\begin_inset Quotes frd +\end_inset + + cuando ya dispone de los recursos o a +\begin_inset Quotes fld +\end_inset + +Listo suspendido +\begin_inset Quotes frd +\end_inset + + si no hay memoria disponible y el proceso no tiene prioridad suficiente + para expulsar a otro. +\end_layout + +\begin_layout Itemize +De +\begin_inset Quotes fld +\end_inset + +Listo +\begin_inset Quotes frd +\end_inset + + a +\begin_inset Quotes fld +\end_inset + +En ejecución +\begin_inset Quotes frd +\end_inset + + o viceversa, debido al planificador. +\end_layout + +\begin_layout Itemize +De +\begin_inset Quotes fld +\end_inset + +En ejecución +\begin_inset Quotes frd +\end_inset + + a +\begin_inset Quotes fld +\end_inset + +Bloqueado +\begin_inset Quotes frd +\end_inset + +, si el proces, ueado suspendido +\begin_inset Quotes frd +\end_inset + + a +\begin_inset Quotes fld +\end_inset + +Listo suspendido +\begin_inset Quotes frd +\end_inset + +, cuando ocurre el evento esperado. +\end_layout + +\begin_layout Itemize +De +\begin_inset Quotes fld +\end_inset + +Bloqueado +\begin_inset Quotes frd +\end_inset + + a +\begin_inset Quotes fld +\end_inset + +Bloqueado suspendido +\begin_inset Quotes frd +\end_inset + + o de +\begin_inset Quotes fld +\end_inset + +Listo +\begin_inset Quotes frd +\end_inset + + a +\begin_inset Quotes fld +\end_inset + +Listo suspendido +\begin_inset Quotes frd +\end_inset + +, o viceversa. +\end_layout + +\begin_layout Itemize +De +\begin_inset Quotes fld +\end_inset + +En ejecución +\begin_inset Quotes frd +\end_inset + + a +\begin_inset Quotes fld +\end_inset + +Saliente +\begin_inset Quotes frd +\end_inset + + cuando termina. +\end_layout + +\begin_layout Section +Implementación +\end_layout + +\begin_layout Standard +El SO mantiene una +\series bold +tabla de procesos +\series default + con una entrada, +\series bold +PCB +\series default + ( +\emph on +Process Control Block +\emph default +) o BCP para cada proceso, donde se guarda todo lo necesario para poder + continuar la ejecución tras perder la CPU y recuperarla luego, junto con + datos estadísticos, el estado del proceso, etc. + En concreto suelen guardarse: +\end_layout + +\begin_layout Itemize +Para +\series bold +administración de procesos +\series default +, PID, registros (incluyendo contador del programa, palabra de estado y + puntero de pila), estado del proceso, prioridad, parámetros de planificación, + PID del proceso padre, grupo de procesos, señales, hora de inicio, tiempo + usado de CPU. +\end_layout + +\begin_layout Itemize +Para +\series bold +administración de memoria +\series default +, apuntadores a los segmentos de texto, datos, memoria dinámica. +\end_layout + +\begin_layout Itemize +Para +\series bold +administración de ficheros +\series default +, directorio raíz, directorio actual, descriptores de fichero, identificadores + de usuario y grupo. +\end_layout + +\begin_layout Standard +Crear un proceso consiste en darle nombre (como el PID en UNIX), insertarlo + en la tabla de procesos, determinar su prioridad inicial y asignarle recursos + iniciales. + En el caso de UNIX, +\family typewriter +fork +\family default + busca una entrada libre en la entrada de procesos y copia la información + del PCB del padre a esta, cambiando el PID; evita que uno sobrescriba la + memoria del otro +\begin_inset Foot +status open + +\begin_layout Plain Layout +Según los apuntes se copian los segmentos de datos y de pila, y el de código + se comparte por ser de sólo lectura. + Realmente, desde hace mucho Linux implementa copia en escritura, consistente + en marcar las entradas de la tabla de página de ambos de forma que el núcleo + solo tenga que hacer la copia de una página cuando uno de los procesos + escriba en ella. +\end_layout + +\end_inset + +; incrementa los contadores de los descriptores de ficheros del padre para + reflejar que estos también están abiertos en el hijo, y marca el proceso + hijo como +\begin_inset Quotes fld +\end_inset + +Listo +\begin_inset Quotes frd +\end_inset + +. +\end_layout + +\begin_layout Standard +Los procesos en UNIX tienen dos modos: modo usuario, en que ejecutan un + programa normal, y modo núcleo, común a todos los procesos, en que ejecutan + código del SO al hacer una llamada al sistema. + En este último los procesos pueden bloquearse esperando a algún evento, + lo que hace que se le ceda la CPU a otro proceso hasta que el evento suceda, + momento en que el proceso continuará su ejecución en modo núcleo. + Otro enfoque es considerar el SO como una colección de procesos de sistema + distintos a los procesos de usuario, de modo que cada proceso ejecuta sólo + código de usuario, lo que ocurre en los sistemas cliente-servidor. +\end_layout + +\begin_layout Standard +En las llamadas al sistema, el hardware almacena en una pila el contador + de programa del proceso que se interrumpe, pasa a modo núcleo y almacena + un elemento del vector de interrupciones, que debe ser la dirección de + inicio de alguna rutina del SO, en el contador de programa. + Entonces, un procedimiento guarda el contexto del proceso activo en su + PCB (pudiendo actualizarse otra información como estado, contabilidad o + auditoría), elimina la información introducida en la pila por el hardware, + configura una pila en el núcleo para la llamada al sistema, comprueba que + esta es válida y llama a un procedimiento que procesa la llamada. + Tras esta, el primer procedimiento ejecuta el planificador si lo determina + necesario, teniendo en cuenta que, si el proceso se ha bloqueado en la + llamada, este ya ha sido invocado y no es necesario llamarlo de nuevo, + y finalmente ejecuta el +\series bold +despachador +\series default +, que restaura el contexto del proceso a ejecutar, entre otras cosas cambiando + a la pila de usuario e introduciendo en esta la dirección de su contador + de programa. +\end_layout + +\begin_layout Section +Hilos +\end_layout + +\begin_layout Standard +Un proceso tradicional es: +\end_layout + +\begin_layout Itemize +Unidad de propiedad de recursos, con un espacio de direcciones, variables + globales, ficheros abiertos, procesos hijos, alarmas, señales, semáforos, + información contable, etc. +\end_layout + +\begin_layout Itemize +Unidad de planificación y ejecución, con un contador de programa, una serie + de registros, una pila y un estado. +\end_layout + +\begin_layout Standard +Estas funciones son independientes, y los sistemas operativos modernos llaman + +\series bold +hilos +\series default + ( +\emph on +threads +\emph default +), +\series bold +procesos ligeros +\series default + ( +\emph on +LightWeight Processes +\emph default +, LWP), +\series bold +hebras +\series default + o +\series bold +subprocesos +\series default + a las unidades de ejecución y procesos a las de propiedad de recursos, + de forma que un mismo proceso puede tener uno o varios hilos. + Cuando comienza la ejecución de un programa existe un único hilo, el +\series bold +hilo principal +\series default +, que puede crear otros. +\end_layout + +\begin_layout Standard +En Linux y otros muchos UNIX, un hilo puede crear otro mediante +\family typewriter +pthread_create +\family default +, que entre sus parámetros recibe un puntero a otra función que es donde + comienza la ejecución el hilo hijo. + Todo hilo tiene un TID ( +\emph on +thread identifier +\emph default +), que se obtiene desde el propio hilo con la llamada al sistema +\family typewriter +gettid +\family default +. + Para facilitar la colabolación entre hilos, que pueden necesitar acceder + y modificar las mismas variables globales, existen métodos de sincronización + como +\emph on +mutex +\emph default + (exclusión mutua) y semáforos. +\end_layout + +\begin_layout Standard +Ventajas de los hilos: +\end_layout + +\begin_layout Itemize +Al compartir espacio de direcciones, se pueden comunicar entre sí sin intervenci +ón del núcleo, por lo que esta comunicación es más rápida. +\end_layout + +\begin_layout Itemize +Los hilos se pueden bloquear mientras termina una llamada al sistema, por + lo que si hay varios, la E/S puede solaparse con el cómputo. +\end_layout + +\begin_layout Itemize +Es mucho más rápido crear un hilo en un proceso existente que un nuevo proceso, + y el cambio de uno a otro es más rápido. +\end_layout + +\begin_layout Itemize +Se puede conseguir paralelismo real dentro de un mismo proceso. +\end_layout + +\begin_layout Standard +Los hilos pueden ser soportados directamente por el núcleo, como en Windows + y Linux, o ser implementados mediante una biblioteca a nivel de usuario, + como se hacía en Linux antes de que implementara hilos en el núcleo. +\end_layout + +\begin_layout Standard +La implementación en modo usuario tiene como ventajas que el programa se + puede usar en núcleos que no implementan hilos, los cambios de contexto + son mucho más rápidos al no tener que pasar por el núcleo y cada proceso + puede tener un algoritmo distinto de planificación. + Sin embargo, en este caso una llamada al sistema bloqueante, o un fallo + de página, bloquearía a todos los hilos del proceso, y no es posible obtener + paralelismo real dentro de un mismo proceso. +\end_layout + +\begin_layout Standard +En la implementación en modo núcleo, la creación, destrucción y sincronización + entre hilos es más costosa, pero esto se puede aliviar usando una biblioteca + de sincronización que sólo realice llamadas al sistema cuando sea estrictamente + necesarios, y manteniendo las estructuras de un hilo después de que termine + para poder usarlo posteriormente en vez de crear otro nuevo. + En cualquier caso todos los hilos deben pasar a estado suspendido al mismo + tiempo, pues la memoria de todo el proceso se mueve al disco. +\end_layout + +\begin_layout Section +Planificación +\end_layout + +\begin_layout Standard +Metas: +\end_layout + +\begin_layout Itemize + +\series bold +Equidad +\series default +: Dar a cada proceso una proporción adecuada de CPU. +\end_layout + +\begin_layout Itemize +Maximizar la +\series bold +eficacia +\series default + de la CPU, +\begin_inset Formula $E:=\frac{\text{Tiempo útil}}{\text{Tiempo total}}\cdot100$ +\end_inset + +, y el +\series bold +rendimiento +\series default + o +\series bold +productividad +\series default +, el número de tareas procesadas por unidad de tiempo. +\end_layout + +\begin_layout Itemize +Minimizar el +\series bold +tiempo de espera +\series default + (el que pasa un proceso en estado +\begin_inset Quotes fld +\end_inset + +Listo +\begin_inset Quotes frd +\end_inset + +), el de +\series bold +respuesta +\series default + (el que pasa desde que se solicita la ejecución de una acción hasta que + se obtienen los primeros resultados, importante para usuarios interactivos) + y el de +\series bold +regreso +\series default + o +\series bold +retorno +\series default + (el que pasa desde que se entrega a un trabajo hasta que termina y se obtienen + sus resultados, importante para trabajos por lotes). +\end_layout + +\begin_layout Standard +Algunas de estas, como el tiempo de espera y la eficacia, son contradictorias. +\end_layout + +\begin_layout Standard +Una planificación es +\series bold +apropiativa +\series default + si puede expulsar a procesos de la CPU para ejecutar otros sin necesidad + de que se bloqueen, y +\series bold +no apropiativa +\series default + o +\series bold +de ejecución hasta terminar +\series default + en caso contrario. + Para los procesos por lotes son convenientes tanto una planificación no + apropiativa como una apropiativa con periodos de CPU largos (pues los cambios + de proceso desperdician CPU), mientras que para procesos interactivos suele + ser necesaria una planificación apropiativa para cambiar la CPU rápidamente + de un proceso a otro. +\end_layout + +\begin_layout Standard +Los procesos alternan entre ráfagas de CPU y de E/S, comenzando y terminando + por una de CPU. + Decimos que un proceso es +\series bold +limitado por E/S +\series default + si pasa la mayor parte de su tiempo en espera de E/S, y normalmente tendrá + muchas ráfagas de CPU aunque breves, y es +\series bold +limitado por CPU +\series default + si usa la CPU la mayor parte del tiempo, y normalmente tendrá pocas ráfagas + de CPU aunque muy largas. +\end_layout + +\begin_layout Standard +Podemos representar un algoritmo de planificación mediante un +\series bold +diagrama de colas +\series default +, en el que cada rectángulo es una cola, los círculos son recursos que dan + servicio a las colas y las flechas indican el flujo de los procesos. + Un +\series bold +diagrama de Gantt +\series default + representa el proceso en ejecución en cada momento mediante rectángulos + de longitud proporcional a la duración de la ráfaga de CPU. +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename pegado3.png + width 80text% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Diagrama de colas de planificación de procesos. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename pegado4.png + width 80text% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Diagrama de Gantt. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Algoritmos no apropiativos: +\end_layout + +\begin_layout Itemize + +\series bold +FCFS +\series default + ( +\emph on +First Coming, First Served +\emph default +, +\begin_inset Quotes fld +\end_inset + +primero en llegar, primero en ser servido +\begin_inset Quotes frd +\end_inset + +). + Es el más simple y se puede implementar con una cola FIFO. + El tiempo medio de respuesta puede ser bastante largo debido al +\series bold +efecto convoy +\series default +: Un proceso limitado por CPU ocupa la CPU mucho tiempo mientras el resto + terminan su E/S y entonces los dispositivos de E/S quedan inactivos hasta + que el proceso en ejecución pasa a realizar su E/S; entonces los procesos + limitados por E/S pasan a usar la CPU y terminan rápido por tener ráfagas + de CPU breves y la CPU queda inactiva hasta que el proceso limitado por + CPU continúa su ejecución, momento en que el ciclo se repite, resultando + en desaprovechamiento de recursos. +\end_layout + +\begin_layout Itemize + +\series bold +SJF +\series default + ( +\emph on +Shortest Job First +\emph default +, +\begin_inset Quotes fld +\end_inset + +primero el trabajo más corto +\begin_inset Quotes frd +\end_inset + +). + Adecuado para procesos por lotes, donde los tiempos de ejecución aproximados + se suelen conocer de antemano, y de lo contrario se puede estimar mediante + +\series bold +maduración +\series default +: +\begin_inset Formula $E_{t}=aE_{t-1}+(1-a)T_{t-1}$ +\end_inset + +, donde +\begin_inset Formula $E_{t}$ +\end_inset + + es la estimación de tiempo actual, +\begin_inset Formula $E_{t-1}$ +\end_inset + + la estimación anterior para el mismo proceso, +\begin_inset Formula $T_{t-1}$ +\end_inset + + el tiempo que tardó realmente y +\begin_inset Formula $a$ +\end_inset + + un parámetro ajustable entre 0 y 1, pues un valor de +\begin_inset Formula $a$ +\end_inset + + pequeño hace que se olviden rápidamente los tiempos de ejecuciones anteriores + y un valor grande hace que se recuerden demasiado tiempo. + Si se dispone de todos los procesos de forma simultánea, este algoritmo + proporciona el mínimo tiempo medio de retorno. +\end_layout + +\begin_layout Standard +Algoritmos apropiativos: +\end_layout + +\begin_layout Itemize + +\series bold +SRTF +\series default + ( +\emph on +Shortest Remaining Time First +\emph default +, +\begin_inset Quotes fld +\end_inset + +primero el que tenga el menor tiempo restante +\begin_inset Quotes frd +\end_inset + +). + Variante del SJF que permite quitar la CPU a un proceso para dársela a + otro con tiempo total de ráfaga de CPU menor al tiempo restante de CPU + de la ráfaga del proceso que se está ejecutando. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Round Robin +\series default +\emph default + ( +\series bold +RR +\series default +) o +\series bold +circular +\series default +. + Es de los más antiguos, sencillos, equitativos y de mayor uso. + Similar al FCFS pero con un +\emph on +quantum +\emph default + de tiempo +\begin_inset Formula $q$ +\end_inset + + tal que, si un proceso consume un +\emph on +quantum +\emph default +, pasa al final de la cola de procesos listos para dar la CPU al siguiente + proceso. + De esta forma, si hay +\begin_inset Formula $n$ +\end_inset + + procesos, ninguno tiene tiempo de espera mayor a +\begin_inset Formula $(n-1)q$ +\end_inset + +. + Si +\begin_inset Formula $q$ +\end_inset + + es pequeño se desperdicia tiempo de CPU en cambios de proceso, pero si + es grande, los últimos procesos tardan mucho en ser atendidos, resultando + en tiempos de respuesta muy pobres en procesos interactivos. +\end_layout + +\begin_layout Standard +Otras formas de planificación pueden hacerse apropiativas o no apropiativas: +\end_layout + +\begin_layout Itemize + +\series bold +Planificación por prioridad +\series default +. + Cada proceso tiene una prioridad, normalmente un número que es mayor a + mayor prioridad (en UNIX es al revés), de modo que la CPU se da al primer + proceso de la cola con la mayor prioridad. + La asignación de prioridad puede ser +\series bold +estática +\series default +, si no cambia durante la ejecución del proceso, o +\series bold +dinámica +\series default + si depende de parámetros. + Un ejemplo de asignación dinámica para favorecer a los procesos limitados + por E/S, y que puedan ejecutarse pronto para enviar su siguiente solicitud + de E/S, es hacer que la prioridad sea inversamente proporcional a la fracción + del último +\emph on +quantum +\emph default + usado por el proceso. + Este +\emph on +quantum +\emph default + puede ser una referencia para medir el tiempo consumido o funcionar como + en la planificación +\emph on +round-robin +\emph default +. +\begin_inset Newline newline +\end_inset + +El +\series bold +bloqueo indefinido +\series default + o +\series bold +inanición +\series default + ocurre cuando los procesos de baja prioridad nunca llegan a ejecutarse. + Para evitarlo se puede disminuir cada cierto tiempo la prioridad del proceso + en ejecución, lo que tiene sentido si la planificación es apropiativa. + Esto sigue teniendo el problema de que pueden llegar continuamente procesos + de mayor cantidad que los que llevan tiempo esperando, por lo que una alternati +va es aumentar cada cierto tiempo la prioridad de los procesos listos. +\end_layout + +\begin_layout Itemize + +\series bold +Planificación de múltiples colas con realimentación +\series default +. + Es la más general, pero también la más compleja. + Existen varias colas de procesos listos y un proceso va a una u otra según + si es interactivo o por lotes, de sistema o de usuario, su prioridad, la + cola que usó la última vez, el consumo de CPU, etc. + Debe haber una planificación dentro de cada cola, y una planificación entre + colas, que suele ser apropiativa por prioridad pero puede ser cualquiera, + como el reparto equitativo y que cada cola se administre de una forma. + Para evitar que el esquema sea inflexible, debe haber un criterio para + que los procesos cambien de cola (realimentación). +\end_layout + +\begin_layout Standard +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename pegado5.png + width 80text% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Planificación de múltiples colas. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Si no se dispone de suficiente memoria es necesario que algunos procesos + se mantengan en disco. + Para ello, los procesos en memoria los gestiona un +\series bold +planificador a corto plazo +\series default + (PCP) mientras que un +\series bold +planificador a medio plazo +\series default + (PMP) es llamado periódicamente y se encarga de la suspensión y reanudación + de procesos, teniendo en cuenta criterios como el tiempo desde el último + intercambio, el tiempo de CPU que ha consumido el proceso recientemente, + el tamaño del proceso (los pequeños no causan problemas) y la prioridad + de este. + También es posible añadir un +\series bold +planificador a largo plazo +\series default + (PLP) que decida, de entre los procesos por lotes preparados, cuál ejecutar + después, eligiendo si este pasa directamente a memoria o a disco. +\end_layout + +\begin_layout Standard +\begin_inset Note Comment +status open + +\begin_layout Plain Layout +\begin_inset Float figure +wide false +sideways false +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename pegado6.png + width 80text% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption Standard + +\begin_layout Plain Layout +Planificación a corto, medio y largo plazo. +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/iso/n3.lyx b/iso/n3.lyx new file mode 100644 index 0000000..fdc2fbb --- /dev/null +++ b/iso/n3.lyx @@ -0,0 +1,943 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Requisitos para la seguridad y amenazas asociadas: +\end_layout + +\begin_layout Itemize + +\series bold +Confidencialidad +\series default +: La información, incluyendo la existencia de esta, solo debe poder ser + leída por usuarios autorizados. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +Interceptación +\series default +: Leer un elemento sin autorización. + Incluye copias y lecturas no autorizadas, análisis estadístico para revelar + datos ocultos y observación del tráfico de mensajes. +\end_layout + +\end_deeper +\begin_layout Itemize + +\series bold +Integridad +\series default +: Los elementos del sistema solo deben poder ser modificados, incluyendo + borrado y creación, por usuarios autorizados. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +Modificación +\series default +: Falsificar un elemento o modificarlo sin autorización, incluyendo alteración + de un programa en funcionamiento. +\end_layout + +\begin_layout Itemize + +\series bold +Invención +\series default +: Insertar objetos falsos en el sistema, incluyendo ficheros y mensajes. +\end_layout + +\end_deeper +\begin_layout Itemize + +\series bold +Disponibilidad +\series default +: Los elementos de un sistema deben estar disponibles para usuarios autorizados. +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +Interrupción +\series default +: Destruir un elemento o hacerlo inaccesible o inútil, incluyendo robo de + equipos, consumo excesivo de recursos, eliminación de ficheros o mensajes + y corte de las líneas de comunicaciones. +\end_layout + +\end_deeper +\begin_layout Standard +Para probar la seguridad de un sistema se suele contratar a un grupo de + expertos (equipo tigre o de penetración) para ver si puede penetrar en + él. + Ataques más comunes: +\end_layout + +\begin_layout Itemize +Reservar espacio de memoria o disco y leerlo, pues muchos sistemas no borran + el espacio antes de asignarlo. +\end_layout + +\begin_layout Itemize +Intentar llamadas inválidas, o con parámetros inválidos o no razonables. +\end_layout + +\begin_layout Itemize +Conectarse un sistema y pulsar +\family typewriter +C-c +\family default + o similares, terminando en ciertos sistemas el programa de verificación + de contraseñas y permitiendo el acceso. +\end_layout + +\begin_layout Itemize +Escribir un programa que aparente ser para iniciar sesión pero realmente + filtren la contraseña. +\end_layout + +\begin_layout Itemize +Buscar acciones que se conoce que no se deben llevar a cabo y hacerlas con + todas sus variaciones. +\end_layout + +\begin_layout Itemize +Convencer al administrador para que modifique el sistema de alguna forma + que evite verificaciones de seguridad. +\end_layout + +\begin_layout Itemize +Engañar o sobornar al personal de administración del centro de cálculo. +\end_layout + +\begin_layout Standard +Ataques específicos: +\end_layout + +\begin_layout Itemize + +\series bold +Bombas lógicas +\series default +: +\begin_inset Quotes fld +\end_inset + +Estallan +\begin_inset Quotes frd +\end_inset + + en un instante de tiempo determinado, y muchas veces son creadas por el + desarrollador del programa donde se encuentran como forma de protección. +\end_layout + +\begin_layout Itemize + +\series bold +Puertas traseras +\series default + ( +\emph on +backdoors +\emph default +): Programas normales pero que además permiten el acceso al sistema desde + el exterior o como administrador. + Por ejemplo un programa de autenticación que con cierta combinación de + usuario y contraseña proporciona acceso completo. +\begin_inset Foot +status open + +\begin_layout Plain Layout +Ver < +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +http://scienceblogs.com/goodmath/2007/04/15/strange-loops-dennis-ritchie-a/ +\end_layout + +\end_inset + +>. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Itemize + +\series bold +Desbordamiento de +\emph on +buffer +\series default +\emph default +: Aprovechar fallos de programación para causar que un programa escriba + (o lea) más información de la que cabe en el +\emph on +buffer +\emph default + que ha reservado, pudiendo llegar a ejecutar código malicioso, normalmente + sobrescribiendo la dirección de retorno en la pila para que apunte a este. +\end_layout + +\begin_layout Itemize + +\series bold +Caballos de Troya +\series default +: Sustituyen una orden por otra con el mismo nombre. +\end_layout + +\begin_layout Itemize + +\series bold +Virus +\series default +: Se encuentran dentro de un programa y se replican en otros programas o + ficheros, extendiéndose dentro del ordenador y copiándose a otros mediante + sistemas de almacenamiento y redes. +\end_layout + +\begin_layout Itemize + +\series bold +Gusanos +\series default +: Como los virus, pero en vez de copiarse en otros ficheros se transmiten + por red. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Spyware +\series default +\emph default +: Código que, sin que el usuario sea consciente de ello ni lo autorice, + se ejecuta en segundo plano y recopila información del sistema y la actividad + del usuario para enviarla a computadores externos. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Rootkits +\series default +\emph default +: Permiten acceso privilegiado continuo a un computador, normalmente mediante + una puerta trasera, a la vez que ocultan activamente su presencia. +\end_layout + +\begin_layout Standard +En 1975, Saltzer y Schroeder identificaron varios principios de diseño de + cara a la seguridad: +\end_layout + +\begin_layout Enumerate +El diseño debe ser público (muchos ojos ven más fallos que pocos). +\end_layout + +\begin_layout Enumerate +El estado predefinido debe ser de +\begin_inset Quotes fld +\end_inset + +no acceso +\begin_inset Quotes frd +\end_inset + +. +\end_layout + +\begin_layout Enumerate +Se debe verificar la autorización en el momento de hacer la operación; no + se debe verificar el permiso, determinar que está permitido y no hacer + más comprobaciones. +\end_layout + +\begin_layout Enumerate +Dar a los procesos el mínimo privilegio que les permita hacer su trabajo. +\end_layout + +\begin_layout Enumerate +El mecanismo de protección debe ser simple, uniforme e integrado hasta las + capas más bajas del sistema (la seguridad no es algo que se pueda añadir + por encima). +\end_layout + +\begin_layout Enumerate +El esquema debe ser psicológicamente aceptable para que los usuarios no + pongan la contraseña en un +\emph on +post-it +\emph default + o similares. +\end_layout + +\begin_layout Section +Autenticación +\end_layout + +\begin_layout Standard +La seguridad de un sistema requiere de: +\end_layout + +\begin_layout Itemize + +\series bold +Protección +\series default +. + Distinguimos entre la +\series bold +política +\series default +, que define qué se va a proteger, qué usuarios pueden acceder a qué recursos, + etc., y que pueden estar determinadas en el diseño del sistema, formuladas + por los administradores o definidas por los usuarios para proteger sus + propios ficheros, y el +\series bold +mecanismo +\series default +, que define cómo implementa esto el sistema, y es en lo que nos centraremos. +\end_layout + +\begin_layout Itemize + +\series bold +Entorno externo +\series default +. + Por ejemplo, no exponer la consola del operador a personal no autorizado, + ni permitir extraer el almacenamiento del sistema para transportarlo a + otro sin protección. +\end_layout + +\begin_layout Standard +La +\series bold +autenticación de usuarios +\series default + es el problema de identificar a los usuarios cuando están conectados al + sistema. + El método más común es pedir un nombre o identificador (ID) y una contraseña + para autenticar el ID. + Este identificador determina los privilegios del usuario, es decir, lo + que este puede o no puede hacer en el sistema. + En general existe un usuario o grupo reducido con estado de +\series bold +supervisor +\series default + o +\series bold +superusuario +\series default +, que les permite llevar a cabo funciones protegidas especialmente. + Algunos sistemas también disponen de cuentas anónimas cuyos usuarios tienen + privilegios más restringidos. + En muchos solo se permite acceder al sistema a los usuarios con un ID ya + registrado. +\end_layout + +\begin_layout Subsection +Contraseñas en UNIX +\end_layout + +\begin_layout Standard +La contraseña, junto con un +\series bold +valor base +\series default + ( +\emph on +salt +\emph default +) y el algoritmo de cifrado (función +\emph on +hash +\emph default +) a utilizar se pasan como parámetros a una función llamada +\family typewriter +crypt +\family default +, que devuelve la contraseña cifrada. + Esta se guarda en el fichero de contraseñas (antes +\family typewriter +/etc/passwd +\family default + y actualmente +\family typewriter +/etc/shadow +\family default +), con formato +\family typewriter +$ +\emph on +tipo +\emph default +$ +\emph on +base +\emph default +$ +\emph on +contraseñaCifrada +\family default +\emph default +, donde +\family typewriter +\emph on +tipo +\family default +\emph default + es 1 para MD5 (obsoleto), 5 para SHA-256 y 6 para SHA-512 y +\family typewriter +\emph on +base +\family default +\emph default + es la base sin cifrar. + El valor de la base está relacionado con el momento en que se asigna la + contraseña a un usuario y sirve para impedir que contraseñas iguales se + cifren igual. +\end_layout + +\begin_layout Subsection +Elección de contraseña +\end_layout + +\begin_layout Standard +Las funciones +\emph on +hash +\emph default + usadas están diseñadas para evitar ataques por adivinación, incluso usando + supercomputadores, pero algunos usuarios al elegir su contraseña eligen + una fácilmente adivinable. + Si se rechazan las contraseñas por longitud mínima, los usuarios pueden + elegir contraseñas igualmente adivinables como su propio nombre, el de + su calle, una palabra común del diccionario, etc., pero si se asignan contraseña +s aleatorias, la mayoría de los usuarios no la recordarán o acabarán apuntándola + en un lugar visible. + Soluciones (no incompatibles): +\end_layout + +\begin_layout Itemize + +\series bold +Instrucción del usuario +\series default +: Explicar a los usuarios la importancia de elegir contraseñas seguras y + cómo elegirlas, así como buenos hábitos como cambiarlas a menudo, no anotarlas + en lugares visibles ni comunicarlas, etc. + Una buena contraseña suele tener letras mayúsculas, minúsculas, números + y signos de puntuación u otros caracteres alfanuméricos. +\end_layout + +\begin_layout Itemize + +\series bold +Inspección proactiva de contraseña +\series default +: El sistema usa algoritmos y heurísticas para determinar la seguridad de + una contraseña y rechazarla si es fácilmente adivinable. + Incluso el administrador del sistema puede comprobar la robustez de las + contraseñas ejecutando programas de adivinación o +\emph on + cracks +\emph default +. +\end_layout + +\begin_layout Section +Protección +\end_layout + +\begin_layout Standard +Un +\series bold +derecho +\series default + es el permiso para realizar una determinada acción sobre algún objeto, + y un +\series bold +dominio +\series default +( +\series bold +de protección +\series default +) es una función que a cada objeto le asigna un conjunto de derechos. + Todo proceso se ejecuta en un dominio, y muchos sistemas proveen mecanismos + que permiten que los procesos cambien de dominio. + Algunas formas de representar los dominios son: +\end_layout + +\begin_layout Itemize + +\series bold +Matriz de protección +\series default + o +\series bold +de acceso +\series default +: Con una fila por dominio, una columna por proceso y un conjunto de derechos + en cada celda. + Si los procesos pueden cambiar de dominio, los dominios se pueden identificar + con objetos y añadir en estos el derecho de +\begin_inset Quotes fld +\end_inset + +entrar +\begin_inset Quotes frd +\end_inset + +. + Incluso la propia matriz se puede entender como un objeto que se puede + modificar mediante una serie de operaciones. + En la práctica esta matriz no se almacena. +\end_layout + +\begin_layout Itemize + +\series bold +Listas de control de acceso +\series default + o +\series bold +ACLs +\series default + ( +\emph on +Access Control Lists +\emph default +): A cada objeto se le asocia una lista con todos los dominios que pueden + tener acceso a él y con qué derechos. + Normalmente los dominios se asocian a usuarios y, si estos se pueden agrupar, + las ACLs también se pueden aplicar a los grupos. + Si una ACL contiene tanto una entrada para un usuario como entradas para + grupos a los que este pertenece se debe establecer un criterio sobre qué + derechos prevalecen. +\end_layout + +\begin_layout Itemize + +\series bold +Listas de posibilidades +\series default + o +\series bold +de capacidades +\series default +: A cada dominio se le asocia una lista de entradas, llamadas +\series bold +posibilidades +\series default + o +\series bold +capacidades +\series default +, que representan un objeto (normalmente con su tipo y una referencia a + este) y los derechos que se tienen sobre este (si un objeto no aparece, + no se tiene ningún derecho). + Normalmente los dominios se asocian a procesos, los cuales para acceder + a un objeto indican la posición de la capacidad correspondiente. + Como estas listas deben ser protegidas del manejo indebido, se suelen guardar + dentro del sistema operativo permitiendo que los procesos las referencien + por su número. + En general las posibilidades tienen operaciones genéricas para copiarlas, + eliminarlas, trasferirlas o generar una versión más restrictiva. +\end_layout + +\begin_layout Standard +Las ACLs se corresponden directamente con las necesidades del usuario, que + puede especificar los dominios que pueden acceder a un objeto cuando lo + crea, pero al haber que comprobar cada acceso al objeto, son ineficientes. + Las listas de posibilidades, por su parte, son mucho más eficientes, pero + son más complejas al no corresponderse directamente con las necesidades + de los usuarios. +\end_layout + +\begin_layout Subsection +Cancelación +\end_layout + +\begin_layout Standard +La +\series bold +cancelación +\series default + o +\series bold +revocación +\series default + de derechos de acceso puede ser +\series bold +inmediata +\series default + o +\series bold +demorada +\series default +, +\series bold +selectiva +\series default + o +\series bold +general +\series default +, +\series bold +parcial +\series default + o +\series bold +total +\series default +, y +\series bold +temporal +\series default + o +\series bold +permanente +\series default +. + Con las ACLs la cancelación es sencilla, pues basta eliminar de esta los + derechos que serán cancelados. +\end_layout + +\begin_layout Standard +Con las posibilidades haría falta determinar todas las existentes para un + objeto y modificarlas, pero esto es ineficiente. + Para cada objeto se podría llevar un registro de todas las posibilidades + asociadas, pero este podría consumir mucha memoria y en algunos sistemas + no es posible porque los procesos pueden pasarse posibilidades sin conocimiento + del sistema. +\end_layout + +\begin_layout Standard +Una técnica es hacer que cada posibilidad apunte hacia un objeto indirecto + en vez de al objeto en sí, de forma que basta romper esta conexión para + invalidar todas las posibilidades. + Otra es asignar a cada objeto un gran número aleatorio, también presente + en la posibilidad, y permitir la operación si ambos coinciden, de forma + que basta cambiar el número del objeto para invalidar todas las posibilidades. + Ninguna de estas dos técnicas permite la revocación selectiva. +\end_layout + +\begin_layout Subsection +Protección en UNIX +\end_layout + +\begin_layout Standard +Unix combina ACLs restringidas con listas de posibilidades. + Cada usuario lleva asociado un número, el +\series bold +identificador de usuario +\series default + o +\series bold +UID +\series default + ( +\emph on +User IDentifier +\emph default +), que se asocia al nombre de usuario o +\emph on +login +\emph default + mediante el fichero +\family typewriter +/etc/passwd +\family default +. + Destaca el usuario con UID 0, normalmente llamado +\family typewriter +root +\family default +, que tiene todos los privilegios. + Es pues importante elegir una buena contraseña para esta cuenta y protegerla. + Algunas distribuciones Linux no permiten iniciar sesión como +\family typewriter +root +\family default +. +\end_layout + +\begin_layout Standard +También hay grupos de usuarios, con un +\series bold +identificador de grupo +\series default + o +\series bold +GID +\series default + ( +\emph on +Group IDentifier +\emph default +) asociado al nombre del grupo y la lista de usuarios pertenecientes a él + a través del fichero +\family typewriter +/etc/group +\family default +. +\end_layout + +\begin_layout Standard +Pueden definirse varios usuarios o grupos con el mismo UID o GID, pero para + el sistema operativo se trata del mismo usuario o grupo. + Un dominio en UNIX se corresponde aproximadamente con un par +\begin_inset Formula $(\text{UID},\text{GID})$ +\end_inset + +. +\end_layout + +\begin_layout Standard +Las ACLs restringidas se limitan a 3 conjuntos de usuarios: el propietario + de un fichero, el grupo de usuarios al que pertenece y el resto de usuarios. + Para cada uno existen 3 permisos: lectura ( +\family typewriter +r +\family default +), escritura ( +\family typewriter +w +\family default +) y ejecución ( +\family typewriter +x +\family default +). + En directorios, el permiso +\family typewriter +r +\family default + indica que se puede listar su contenido, +\family typewriter +w +\family default + que se puede modificar (creando, borrando y renombrando ficheros y subdirectori +os) y +\family typewriter +x +\family default + que se puede hacer que este sea nuestro directorio actual y que es posible + atravesarlo. +\end_layout + +\begin_layout Standard +Para determinar lo que un proceso puede hacer sobre un fichero, si el usuario + tiene UID 0, se considera que tiene los tres permisos; de lo contrario, + si el UID del proceso coincide con el del fichero, se queda con los permisos + de propietario; si esto no se cumple pero el GID del proceso coincide con + el del fichero, se queda con los permisos de grupo, y en caso contrario + usa los del resto de usuarios. +\end_layout + +\begin_layout Standard +Estos permisos suelen mostrarse mediante una cadena de 9 letras con formato + +\family typewriter +rwxrwxrwx +\family default + para representar los permisos de los 3 conjuntos en orden, donde la letra + correspondiente se sustituye por +\family typewriter +- +\family default + si el conjunto de usuarios correspondiente no tiene el permiso. + Esta cadena se almacena internamente mediante 9 bits, establecidos como + 1 si el permiso se da o como 0 en caso contrario. +\end_layout + +\begin_layout Standard +Algunos sistemas UNIX, como Linux, implementan también ACLs completas para + los sistemas de ficheros que lo admiten. +\end_layout + +\begin_layout Standard +Para cambiar de dominio, los ejecutable pueden poseer los bits SETUID y + SETGID. + Si SETUID está activo, al ejecutar el fichero, el proceso en que se ejecuta + tendrá como UID efectivo (EUID) el del propietario del ejecutable, y lo + mismo ocurre con SETGID para el grupo efectivo (EGID). + Un programa puede conocer su usuario y grupo reales mediante las funciones + +\family typewriter +getuid +\family default + y +\family typewriter +getgid +\family default +, así como su usuario y grupo efectivos mediante +\family typewriter +geteuid +\family default + y +\family typewriter +getegid +\family default +. + Cuando un ejecutable posee el bit SETUID, la primera +\family typewriter +x +\family default + en la cadena que representa los permisos cambia por una +\family typewriter +s +\family default +. +\end_layout + +\begin_layout Standard +Por ejemplo, el comando +\family typewriter +passwd +\family default + permite cambiar la contraseña a un usuario, pero para ello necesita acceder + y modificar +\family typewriter +/etc/shadow +\family default +, que en general no puede ser leído ni escrito por nadie salvo +\family typewriter +root +\family default +. + Por tanto +\family typewriter +passwd +\family default + tiene como propietario +\family typewriter +root +\family default + y tiene activo el SETUID, y determina el usuario que lo ha invocado con + +\family typewriter +getuid +\family default +. + Si el UID es 0, permite cambiar la contraseña de cualquier usuario; de + lo contrario solo permite cambiar la del usuario que ejecutó que lo ejecutó. +\end_layout + +\begin_layout Standard +Las ACLs sólo se comprueban al abrir el fichero. + Si se tiene acceso a este, se crea una entrada en la +\series bold +tabla de ficheros abiertos +\series default +, una lista de capacidades mantenida por el sistema operativo, y se devuelve + un índice a esta llamado +\series bold +descriptor de fichero +\series default +. + Esto significa que si el ACL de un fichero cambia tras haber sido abierto, + el proceso puede seguir accediendo a él aunque la nueva ACL no lo permitiera, + incumpliendo el principio de diseño que dice que la autorización debe comprobar +se en el momento de realizar la operación, pero a cambio permite un mejor + rendimiento. +\end_layout + +\end_body +\end_document diff --git a/iso/n4.lyx b/iso/n4.lyx new file mode 100644 index 0000000..4944c11 --- /dev/null +++ b/iso/n4.lyx @@ -0,0 +1,895 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Los sistemas de computación actuales necesitan un +\series bold +almacenamiento secundario +\series default + que complemente al primario, para almacenar grandes cantidades de información + que no caben en el primario; preservarla para que no desaparezca cuando + termine el proceso o el sistema se apague, y permitir que la información + sea fácilmente compartida y accedida. + Para ello se usan discos y otros dispositivos que almacenan la información + en un conjunto de bloques, o que se manejan como si fuera así, y sobre + los cuales el sistema operativo crea una abstracción para facilitar su + uso a usuarios y programadores. +\end_layout + +\begin_layout Standard +Un +\series bold +sistema de ficheros +\series default + es una parte del sistema operativo que organiza un sistema de almacenamiento + secundario como una serie de ficheros o unidades de información que se + agrupan en directorios, y también es el formato que adquiere el disco para + ello. + Desde el punto de vista del usuario es importante la forma de nombrar los + ficheros, las operaciones permitidas, el tipo de protección que podemos + aplicar, etc., mientras que desde el punto de vista del sistema operativo + es importante la implementación. +\end_layout + +\begin_layout Section +Ficheros +\end_layout + +\begin_layout Standard +En los sistemas modernos, un fichero es una secuencia de bytes con significado + definido por el programa que accede al mismo. + Cada fichero tiene un nombre que lo identifica, y que dependiendo del diseño + del sistema de ficheros y del sistema operativo, distingue o no entre mayúscula +s y minúsculas, tiene un cierto tamaño máximo, tiene o no una estructura + (como +\begin_inset Quotes fld +\end_inset + + +\family typewriter +\emph on +nombre +\emph default +. +\emph on +extensión +\family default +\emph default + +\begin_inset Quotes frd +\end_inset + +), etc. +\end_layout + +\begin_layout Standard +Los ficheros suelen tener atributos, como por ejemplo: +\end_layout + +\begin_layout Itemize +ACLs, contraseña, creador, propietario. +\end_layout + +\begin_layout Itemize +Sólo lectura, ocultación, fichero de sistema, biblioteca, texto o binario, + acceso aleatorio, temporal, bloqueo. +\end_layout + +\begin_layout Itemize +Tiempos de creación, último acceso y última modificación. +\end_layout + +\begin_layout Itemize +Tamaño actual y tamaño máximo. +\end_layout + +\begin_layout Standard +En general hay operaciones para crear un fichero vacío, eliminar un fichero, + abirlo, cerrar un fichero abierto, leer una cantidad de bytes, escribir + una cantidad de bytes al final (añadir) o (si es posible) en otra posición, + cambiar de posición dentro del fichero, obtener y establecer los atributos, + cambiar de nombre o mover el fichero a otro directorio, y truncar el fichero + a partir de una posición. +\end_layout + +\begin_layout Subsection +Ficheros regulares +\end_layout + +\begin_layout Standard +Contienen información del usuario. + Distinguimos entre ficheros +\series bold +de texto +\series default +, codificados en UTF-8 o algún otro sistema y con líneas que terminan en + CR, LF o LF/CR y que se pueden ver tal cual de forma legible, y los +\series bold +binarios +\series default +, que tienen cierta estructura pero no son de texto. +\end_layout + +\begin_layout Standard +Así, los ejecutables, binarios generalmente manejados por el sistema operativo, + contienen una cabecera con un +\series bold +número mágico +\series default + (número que identifica el formato de archivo), el tamaño de las secciones + de código y datos, el punto de entrada (dirección donde debe empezar la + ejecución) y otra información, seguida de las propias secciones. + Por su parte, los archivos de biblioteca son ficheros binarios que almacenan + código máquina de funciones (e información asociada). +\end_layout + +\begin_layout Standard +Muchas veces el nombre del fichero contiene una +\series bold +extensión +\series default + que identifica el tipo, que en los sistemas operativos modernos como Linux + no es significativa pero sí lo es para algunos programas, como exploradores + de ficheros para saber con qué programa abrirlo, y ayudan al usuario a + identificar el tipo rápidamente. + +\end_layout + +\begin_layout Standard +Ejemplos de extensiones son +\family typewriter +.bak +\family default + para copias de seguridad; +\family typewriter +.hlp +\family default + para ficheros de ayuda; +\family typewriter +.gif +\family default + o +\family typewriter +.jpg +\family default + para imágenes GIF o JPEG; +\family typewriter +.c +\family default + para código fuente en C; +\family typewriter +.html +\family default +o +\family typewriter +.tex +\family default + o +\family typewriter +.txt +\family default + para documentos HTML, \SpecialChar TeX + o de texto plano; +\family typewriter +.mp3 +\family default + para sonido MP3; +\family typewriter +.mpg +\family default + para vídeo MPEG; +\family typewriter +.o +\family default + para ficheros objeto; +\family typewriter +.pdf +\family default + o +\family typewriter +.ps +\family default + para documentos PDF; +\family typewriter +.zip +\family default + para archivos comprimidos ZIP; etc. +\end_layout + +\begin_layout Subsection +Ficheros especiales +\end_layout + +\begin_layout Standard +No se corresponden con un fichero en el propio sistema de almacenamiento, + sino con una forma de tratar otro tipo de datos como si fuera un fichero + (en el almacenamiento lo que se guarda es algún tipo de referencia). + En UNIX existen dos tipos: +\end_layout + +\begin_layout Itemize + +\series bold +De caracteres +\series default +: Representan dispositivos de E/S como terminales, impresoras y conexiones + de red. + No es posible cambiar de posición, escribir en una posición distinta del + final o truncarlos. +\end_layout + +\begin_layout Itemize + +\series bold +De bloques +\series default +: Representan dispositivos que permiten acceso aleatorio, en general almacenamie +nto secundario. +\end_layout + +\begin_layout Subsection +Directorios +\end_layout + +\begin_layout Standard +Son ficheros gestionados por el sistema operativo para registrar los ficheros + y organizarlos en una +\series bold +jerarquía de directorios +\series default +, de la que existen varios tipos: +\end_layout + +\begin_layout Itemize + +\series bold +Directorio único +\series default +, con los ficheros de todos los usuarios. + Se usaban en los primeros microcomputadores. + Puede haber problemas si distintos usuarios utilizan los mismos nombres + de fichero. +\end_layout + +\begin_layout Itemize + +\series bold +Directorio por usuario +\series default +, aunque no es deseable si uno tiene muchos ficheros. + Se debe decidir si un usuario puede o no acceder a los directorios de otros + y cómo. +\end_layout + +\begin_layout Itemize + +\series bold +Árbol de directorios +\series default +. + Un directorio puede contener a otros. + Es lo que se usa hoy en día. + Normalmente los directorios tienen una entrada especial +\family typewriter +. + +\family default + para referirse al propio directorio y +\family typewriter +.. + +\family default + para referirse al directorio padre. + Se accede a los ficheros (y directorios) mediante una +\series bold +ruta de acceso +\series default +, que indica el nombre de los directorios por los que hay que pasar hasta + llevar al fichero deseado (incluyendo el nombre del fichero), separados + por un cierto caracter, que es +\family typewriter +/ +\family default + en UNIX y +\family typewriter + +\backslash + +\family default + en Windows. + Dos tipos: +\end_layout + +\begin_deeper +\begin_layout Itemize + +\series bold +Absoluta +\series default +: Parte desde la raíz y comienza por el caracter separador. + Es única para un mismo fichero siempre que no se usen +\family typewriter +. + +\family default + y +\family typewriter +.. +\family default +. +\end_layout + +\begin_layout Itemize + +\series bold +Relativa +\series default +: Parte de un +\series bold +directorio actual +\series default + o +\series bold +de trabajo +\series default +, y no comienza por el caracter separador. + Existe una cantidad numerable de rutas relativas para un mismo fichero + desde un mismo directorio actual. +\end_layout + +\end_deeper +\begin_layout Standard +No podemos leer y escribir en ellos como con los otros tipos de ficheros, + sino que en su lugar la apertura de un directorio sirve para recorrido + y hay operaciones para obtener la siguiente entrada; ligar o enlazar un + fichero al directorio, permitiendo que un mismo fichero aparezca en varios + directorios, y desligar una entrada del directorio, lo que equivale a borrarla + si esta es la única entrada del sistema de fichero en la que aparece. +\end_layout + +\begin_layout Section +Representación +\end_layout + +\begin_layout Standard +La representación en disco debe ser tal que consiga una buena velocidad + y aprovechamiento del espacio pero a la vez reduzca la fragmentación interna + (partes de un bloque sin aprovechar) y externa (bloques libres que no se + pueden ocupar). +\end_layout + +\begin_layout Subsection +Bloques lógicos +\end_layout + +\begin_layout Standard +Por lo general los discos proporcionan una interfaz basada en una lista + de +\series bold +bloques físicos +\series default + o +\series bold +sectores +\series default +, la unidad mínima de lectura y escritura, cuyo tamaño es constante y suele + ser una potencia de 2 desde +\begin_inset Formula $\unit[512]{B}$ +\end_inset + + hasta +\begin_inset Formula $\unit[4]{kB}$ +\end_inset + +. + Es común que el sistema de ficheros agrupe o incluso divida los sectores + para formar +\series bold +bloques lógicos +\series default + o unidades de asignación más grandes o pequeñas. +\end_layout + +\begin_layout Standard +Si el bloque lógico es grande, un fichero tendrá menos bloques y el rendimiento + en discos duros será mayor pero habrá más fragmentación interna, mientras + que si el bloque es pequeño habrá poca fragmentación interna pero las listas + de bloques ocuparán mucho. +\end_layout + +\begin_layout Subsection +Asignación de espacio +\end_layout + +\begin_layout Standard +Todo fichero tiene asociado un conjunto de bloques donde guarda sus datos. + La asignación de estos puede ser de varias formas: +\end_layout + +\begin_layout Itemize + +\series bold +Adyacente +\series default + o +\series bold +contigua +\series default +. + De fácil especificación, pues solo hay que recordar un número para localizar + los bloques, y ofrece un excelente rendimiento en discos duros al suponer + muy pocos movimientos del brazo del disco o ninguno. + En general no es realizable, pues si no se sabe el tamaño máximo de un + fichero no se sabe cuánto espacio reservarle; si este es muy pequeño, cuando + el fichero crezca hay que moverlo a un hueco mayor, algo costoso y no siempre + posible. + Sin embargo es útil en medios como CD-ROMs y DVD-ROMs, donde se sabe el + tamaño de los ficheros de antemano. +\end_layout + +\begin_layout Itemize + +\series bold +Mediante lista ligada +\series default +. + En cada bloque se guarda la dirección del siguiente. + No hay fragmentación externa y la entrada de directorio correspondiente + solo tiene que guardar la dirección del primer bloque, pero el acceso aleatorio + es muy lento y los programas que esperan que los bloques tengan un tamaño + potencia de 2 también se ralentizan. +\end_layout + +\begin_layout Itemize + +\series bold +Mediante lista ligada e índice +\series default +. + Similar, pero la dirección del siguiente bloque no se guarda en el bloque + sino en una tabla con una entrada por bloque que indica la dirección del + siguiente en el fichero. + Esto solo es eficiente si toda la tabla está en memoria, lo que es un problema + si la tabla es grande. + Se puede reducir el tamaño de la tabla usando bloques lógicos grandes, + pero entonces se desperdicia espacio por fragmentación. + Además, si la tabla se modifica y la modificación no se escribe en disco, + una caída del sistema puede hacer que los ficheros desaparezcan o queden + incompletos. +\begin_inset Newline newline +\end_inset + +Se puede usar un número de bloque inválido (como el 0) para indicar que + un bloque está libre. + El sistema FAT, usado por MS-DOS y uno de los implementados en Windows, + usa este sistema. +\end_layout + +\begin_layout Itemize + +\series bold +Mediante nodos-i +\series default +. + A cada fichero se le asigna un nodo-i (nodo índice) que contiene las direccione +s en disco de los bloques del fichero, en orden. + Normalmente se usan nodos-i pequeños capaces de almacenar unas pocas direccione +s y se guardan varios nodos-i en un mismo bloque, de modo que una zona contigua + del disco (o varias, por eficiencia), llamada +\series bold + tabla de nodos-i +\series default +, se destinan a nodos-i. +\begin_inset Newline newline +\end_inset + +Para ficheros grandes se usa un +\series bold +bloque simplemente indirecto +\series default + (BSI), que contiene direcciones de bloques de datos adicionales; un +\series bold +bloque doblemente indirecto +\series default + (BDI), que contiene direcciones de más BSIs, y un +\series bold +bloque triplemente indirecto +\series default + (BTI), que contiene direcciones de más BDIs, de forma que 3 de las direcciones + del nodo-i se usan para estos bloques. +\begin_inset Newline newline +\end_inset + +Este es el esquema usado en la mayoría de sistemas de ficheros en sistemas + UNIX, y permite acceder a cualquier bloque de un fichero abierto accediendo, + como mucho, a 4 bloques del disco si el nodo-i está en memoria. +\end_layout + +\begin_layout Standard +Además, debe haber una forma de saber que bloques de datos (así como qué + números de nodos-i) están libres. + Principalmente hay dos métodos: +\end_layout + +\begin_layout Itemize + +\series bold +Lista ligada de bloques +\series default +: Una lista con tantos números de bloques libres como pueda más un puntero + al siguiente bloque. + Los bloques de la lista son libres, por lo que podrán ser usados si es + necesario. +\end_layout + +\begin_layout Itemize + +\series bold +Mapa de bits +\series default +: Contiene un bit para cada bloque, que indica si el bloque es libre u ocupado. + Los bloques del mapa no son libres, pero los sistemas de ficheros actuales + como Ext2, Ext3, Ext4 o NTFS lo usan porque permite buscar de forma sencilla + grupos de bloques libres consecutivos. +\end_layout + +\begin_layout Subsection +Ficheros compartidos +\end_layout + +\begin_layout Standard +Un fichero es compartido si puede aparecer en varios directorios con el + mismo o distinto nombre, o en un mismo directorio con nombres distintos. + La conexión entre un directorio y un fichero se llama +\series bold +enlace +\series default +, y si existe, el sistema de ficheros pasa de ser un árbol a ser simplemente + un grafo acíclico dirigido. +\end_layout + +\begin_layout Itemize + +\series bold +Enlace físico +\series default + o +\emph on +hard link +\emph default +: Los datos relativos a un fichero se guardan en una estructura de datos + y las entradas de directorio correspondientes apuntan a esta. + Es necesario que entre los datos del fichero exista un contador de enlaces, + pues el nodo solo debe liberarse cuando se borra un fichero y no quedan + más enlaces. +\end_layout + +\begin_layout Itemize + +\series bold +Enlace simbólico +\series default + o +\emph on +soft link +\emph default +: Se usa un tipo de fichero especial que contiene una ruta de acceso al + fichero al que se enlaza. + Cuando el fichero original se borra, el enlace simbólico queda invalidado + salvo que se cree un fichero con la misma ruta. +\end_layout + +\begin_layout Standard +UNIX implementa ambos. + Los enlaces simbólicos tienen más coste, pero presentan menos problemas, + con lo que UNIX permite enlaces simbólicos de directorios e incluso a otros + sistemas de ficheros pero no permite hacer lo mismo con enlaces físicos. + Un programa de copias de seguridad puede duplicar datos al copiar un fichero + compartido si no usa alguna forma de detectar los enlaces para evitar esta + duplicación. +\end_layout + +\begin_layout Subsection +Directorios +\end_layout + +\begin_layout Standard +En MS-DOS, los directorios son ficheros salvo el directorio raíz que ocupa + unos bloques fijos en disco, por lo que tiene un tamaño máximo preestablecido. + Estos almacenan una lista desordenada de entradas o registros de 32 bytes, + una por fichero, con los siguientes campos, en orden: +\end_layout + +\begin_layout Enumerate +8 bytes para el nombre del fichero y 3 para la extensión. +\end_layout + +\begin_layout Enumerate +Un byte para atributos donde los bits se usan como banderas. + Uno de ellos distingue a un directorio de un fichero normal. +\end_layout + +\begin_layout Enumerate +Un campo de 10 bytes reservado para futuros usos. +\end_layout + +\begin_layout Enumerate +2 bytes para la hora de última modificación: 5 bits para la hora (0–23), + 6 para el minuto (0–59) y 5 para el segundo, que debe ser par (0–58). +\end_layout + +\begin_layout Enumerate +2 bytes para la fecha de última modificación: 7 bits para el año (correspondiend +o el valor 0 al 1980), 4 para el mes (1–12) y 5 para el día del mes (1–31). +\end_layout + +\begin_layout Enumerate +2 bytes para la dirección del primer bloque. +\end_layout + +\begin_layout Enumerate +4 bytes para el tamaño del fichero, en bytes. +\end_layout + +\begin_layout Standard +En la mayoría de sistemas de ficheros en sistemas UNIX, los atributos se + almacenan en los nodos-i y el directorio raíz no tiene tratamiento especial. + En el de los primeros UNIX, las entradas de un directorio eran de 16 bytes, + siendo 2 bytes para el número de nodo-i del fichero y otros 14 bytes para + el nombre, que tenía pues un máximo de 14 caracteres. + Posteriormente se crearon sistemas de ficheros para sistemas UNIX que soportaba +n nombres de hasta 255 caracteres, con entradas con los siguientes campos, + en orden: +\end_layout + +\begin_layout Enumerate +4 bytes para el número de nodo-i. +\end_layout + +\begin_layout Enumerate +2 bytes para la longitud del registro. +\end_layout + +\begin_layout Enumerate +1 byte para la longitud del nombre. +\end_layout + +\begin_layout Enumerate +1 byte para el tipo de fichero (regular, de caracteres, de bloques o directorio). +\end_layout + +\begin_layout Enumerate +Hasta 255 bytes para el nombre. +\end_layout + +\begin_layout Standard +Una entrada no puede estar entre dos bloques, y el total de registros de + un bloque debe cubrirlo enteramente; de ahí que se permita que la longitud + de un registro sea mayor a la estrictamente necesaria. + Siempre que se crea un directorio se añaden dos entradas, +\family typewriter +. + +\family default + y +\family typewriter +.. +\family default +. + Para añadir una nueva entrada, se elige una existente, se disminuye su + tamaño y se añade la nueva en el hueco, o se añade un nuevo bloque al directori +o si esto no es posible. + Para eliminarla se añade su espacio al de la entrada anterior, o si esto + no es posible se marca el registro como libre utilizando un número de nodo-i + inválido. +\end_layout + +\begin_layout Subsection +Estructura general +\end_layout + +\begin_layout Standard +En general el bloque 0 del almacenamiento es el +\series bold +bloque de arranque +\series default + y puede contener código de arranque del sistema operativo que se encuentra + en la partición. + El bloque 1 suele ser el +\series bold +superbloque +\series default +, que contiene información crítica del sistema de ficheros como el total + de bloques lógicos, tamaño de los mapas de bits, etc., por lo que algunos + sistemas de ficheros tienen varias copias de este en otras zonas del disco. + En otros, el superbloque es parte del bloque de arranque. +\end_layout + +\begin_layout Standard +A partir de entonces hay mucha variación, pero en los primeros sistemas + de ficheros en UNIX encontramos el mapa de bits de bloques, el de nodos-i, + la tabla de nodos-i y, finalmente, el resto de bloques, para ficheros y + bloques indirectos. +\end_layout + +\begin_layout Section +Cachés +\end_layout + +\begin_layout Standard +Una +\series bold +caché de disco +\series default +, +\series bold +bloques +\series default + o +\series bold +\emph on +buffers +\series default +\emph default + es una colección de bloques del almacenamiento secundario que se mantienen + temporalmente en memoria principal por rendimiento. + La política de sustitución podría ser LRU mediante colas, pero el LRU puro + no es recomendable si se quiere mantener la consistencia del sistema de + ficheros ante posibles fallos del sistema, pues por ejemplo un bloque que + contiene nodos-i se usará mucho y si se modifica en caché y no se vuelve + a escribir en disco el sistema de ficheros quedará inconsistente ante un + fallo del sistema. +\end_layout + +\begin_layout Standard +Por ello se suele usar un LRU modificado, en el que los bloques que por + su tipo probablemente no se vuelvan a utilizar pronto pasan directamente + al frente de la cola y los bloques esenciales para la consistencia se escriben + directamente en disco sin esperar a ser expulsados. + Tampoco es recomendable mantener mucho tiempo los bloques de datos modificados + en caché por riesgo de perder los cambios. + Así, en muchos UNIX los bloques de datos se escriben en disco como tarde + a los 30 segundos de ser modificados, mientras que los de metadatos se + escriben como tarde a los 5 segundos. + También existe la orden +\family typewriter +sync +\family default +, que al ejecutarse fuerza la escritura de todos los bloques modificados. +\end_layout + +\begin_layout Standard +Por su parte, como las resoluciones de ruta (localizar un fichero a través + de una ruta) son algo muy frecuente y una misma ruta puede resolverse muchas + veces en poco tiempo, el sistema operativo suele mantener en memoria informació +n sobre las últimas resoluciones en otra caché, que en Linux se llama +\emph on +dentry cache +\emph default + o +\series bold +caché de entradas de directorio +\series default +. +\end_layout + +\begin_layout Section +Particiones +\end_layout + +\begin_layout Standard +Son porciones de bloques consecutivos de un disco, manejadas por el sistema + operativo y tratadas de por sí como listas de bloques sobre las que se + puede implementar un sistema de ficheros. + Tradicionalmente la información de las particiones, como sus bloques de + inicio y fin, se guarda en la +\series bold +tabla de particiones +\series default + del bloque +\series bold +MBR +\series default + ( +\emph on +Master Boot Record +\emph default +, registro de arranque maestro), el primer bloque del disco, que además + contiene una pequeña porción de código de arranque que la BIOS carga en + memoria y ejecuta para, tras una serie de pasos, arrancar un sistema operativo. + En general lo que hace este código es buscar una partición activa y cargar + el código de arranque en esta. +\end_layout + +\begin_layout Standard +Las particiones permiten tener distintos sistemas de ficheros en un mismo + disco, o incluso sistemas operativos distintos. + Por ejemplo, en Linux conviene tener al menos una partición para datos + con Ext4 y una +\series bold +partición de intercambio +\series default + usada para la memoria virtual. + También permite dar a cada partición un uso distinto, de modo que si hay + un error grave en el sistema de ficheros de una partición el resto siguen + siendo usables. +\end_layout + +\end_body +\end_document diff --git a/iso/n5.lyx b/iso/n5.lyx new file mode 100644 index 0000000..50cbe03 --- /dev/null +++ b/iso/n5.lyx @@ -0,0 +1,879 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +El +\series bold +administrador de memoria +\series default + del sistema operativo se encarga de abstraer y administrar la jerarquía + de memoria. +\end_layout + +\begin_layout Section +Sin memoria virtual +\end_layout + +\begin_layout Standard +En la +\series bold +multiprogramación con particiones fijas +\series default +, se asigna una zona de tamaño fijo al sistema operativo y el resto se dividen + en +\series bold +particiones +\series default + de igual o distinto tamaño. + Podemos tener una cola por partición y colocar cada trabajo en la cola + de la partición más pequeña en que quepa, pero si hay pocas particiones + pequeñas sus colas serán largas porque la mayoría de procesos son pequeños + y si hay muchas puede no quedar espacio para trabajos grandes. + También se puede tener una cola para todas las particiones y, cuando queda + una partición libre, darla a la primera tarea de la cola que quepa, lo + que hace que las tareas pequeñas desperdicien espacio, o darla a la tarea + más grande que quepa, lo que discrimina a las tareas pequeñas. + Soluciones a este último problema son tener una partición pequeña o establecer + un máximo de veces que se puede excluir una tarea. +\end_layout + +\begin_layout Standard +Esto limita el +\series bold +grado de multiprogramación +\series default +, el total de procesos que puede haber a la vez en memoria compartiendo + CPU, además de producir fragmentación interna sobre todo en procesos pequeños + y fragmentación externa si hay particiones libres con tamaño total suficiente + para un proceso pero ninguna es lo bastante grande. +\end_layout + +\begin_layout Standard +La +\series bold +multiprogramación con particiones variables +\series default + soluciona el problema asignando a cada proceso una partición del tamaño + exacto que necesita, con lo que las particiones se crean, desaparecen o + intercambian según se necesita. + +\series bold +Políticas de asignación de huecos +\series default +: +\end_layout + +\begin_layout Itemize + +\series bold +Primero en ajustarse +\series default +: Se busca el primer hueco lo suficientemente grande desde el principio + de la memoria, dividiendo el hueco en una parte para el proceso y un hueco + libre (salvo si hay ajuste perfecto), y es rápido. +\end_layout + +\begin_layout Itemize + +\series bold +Siguiente en ajustarse +\series default +: Igual pero se empieza a buscar por donde se quedó la anterior búsqueda. +\end_layout + +\begin_layout Itemize + +\series bold +Mejor en ajustarse +\series default +: Busca el hueco más pequeño en el que quepa el proceso, es lenta y desperdicia + más memoria por fragmentación externa. +\end_layout + +\begin_layout Itemize + +\series bold +Peor en ajustarse +\series default +: Toma el hueco libre más grande, y es lenta pero aprovecha bien la memoria. +\end_layout + +\begin_layout Standard +La +\series bold +compactación +\series default + consiste en mover procesos en memoria para juntar los huecos y reducir + la fragmentación externa. + No se suele usar porque consume mucho tiempo, proporcional a la cantidad + de información a mover, si bien ordenadores como el CDC CYBERS tenían hardware + especial para esto. + Para la +\series bold +administración de memoria libre +\series default +: +\end_layout + +\begin_layout Itemize + +\series bold +Mapas de bits +\series default +: Se divide la memoria en unidades de asignación del mismo tamaño, y a cada + una le corresponde un bit que indica si está libre o no. + Si la unidad de asignación es pequeña, el mapa de bits será grande y las + búsquedas lentas, pero si es grande habrá fragmentación interna. +\end_layout + +\begin_layout Itemize + +\series bold +Listas ligadas +\series default +: Lista de segmentos de memoria, que pueden ser procesos o huecos. + Cuando un proceso termina, debe fusionar el hueco con los adyacentes, lo + que es sencillo si la lista está ordenada por direcciones. + Si hay una lista para procesos y otra para huecos, las operaciones serán + más rápidas por no tener que ordenar la lista de procesos. + Si la de huecos se ordena por tamaño decreciente, la política de peor ajuste + es +\begin_inset Formula $O(1)$ +\end_inset + +, pero la fusión de huecos es cara. + En general se accede a la información de memoria asignada a un proceso + desde su bloque de control. +\end_layout + +\begin_layout Standard +La asignación de hueco en la zona de intercambio del disco puede hacerse + cuando el proceso deba intercambiarse o cuando se cree. + Los algoritmos de asignación y registro de estos huecos son los mismos + que en memoria principal, salvo que el tamaño de un hueco en disco es múltiplo + del tamaño de bloque. +\end_layout + +\begin_layout Standard +La +\series bold +reubicación +\series default + o +\series bold +relocalización +\series default + consiste en que, cuando un programa se ejecuta, puede ir a cualquier partición, + por lo que el programa debe usar +\series bold +código relocalizable +\series default +, que pueda ejecutarse correctamente independientemente de dónde se sitúe. +\end_layout + +\begin_layout Standard +Para la protección de memoria puede haber un +\series bold +registro base +\series default + con la dirección de memoria donde comienza la partición de un proceso y + un +\series bold +registro límite +\series default + con su tamaño, de modo que el proceso puede generar cualquier +\series bold +dirección lógica +\series default + en un +\series bold +espacio de direcciones lógicas +\series default + de 0 a su tamaño menos 1 que se traducen a +\series bold +direcciones físicas +\series default +, y si genera una dirección mayor se produce una excepción. +\end_layout + +\begin_layout Section +Paginación +\end_layout + +\begin_layout Standard +El esquema de +\series bold +memoria virtual +\series default + permite ejecutar procesos con tamaño total mayor al de la memoria física, + para lo que guarda en esta sólo las partes del proceso que se están usando + y el resto lo guarda en disco. + Cada proceso posee un espacio de direcciones virtuales, de tamaño normalmente + limitado por CPU, que van a la +\series bold +unidad de administración de memoria +\series default + ( +\series bold +MMU +\series default +) normalmente integrada en el chip de la CPU para que las traduzca a direcciones + físicas. +\end_layout + +\begin_layout Standard +El espacio de direcciones virtuales se divide en +\series bold +páginas +\series default + y el de memoria física en +\series bold +marcos de página +\series default +, del mismo tamaño, normalmente potencias de 2 entre +\begin_inset Formula $\unit[512]{B}$ +\end_inset + + y +\begin_inset Formula $\unit[8]{KiB}$ +\end_inset + +, aunque pueden ser bastante más grandes, y las transferencias entre memoria + y disco son siempre en unidades de página. +\end_layout + +\begin_layout Standard +Una +\series bold +tabla de páginas +\series default + tiene tantas entradas como páginas y en cada una indica el marco en que + se almacena junto a algunos bits: +\end_layout + +\begin_layout Itemize + +\series bold +Bit presente/ausente +\series default +: Indica si la página está asociada o no. + Si se accede a una página no asociada, la MMU genera una excepción llamada + +\series bold +fallo de página +\series default + a tratar por el sistema operativo. + Este selecciona un marco, escribe su contenido en disco (si estaba ocupado + y se había escrito algo), lo marca como ausente en su tabla de páginas + y asigna el marco a la página que provocó el fallo, que lee del disco si + es necesario. +\end_layout + +\begin_layout Itemize + +\series bold +Bits de protección +\series default +: Tipo de acceso permitido (lectura, escritura, ejecución...). + Las páginas con código suelen tener permisos de lectura y ejecución pero + no de escritura, mientras que las de datos suelen tener de lectura y escritura. +\end_layout + +\begin_layout Itemize + +\series bold +Modificado +\series default +: Indica si se ha modificado o no el contenido del marco. +\end_layout + +\begin_layout Itemize + +\series bold +Referenciado +\series default +: Se establece al hacer referencia a una página, y se usa en algoritmos + de reemplazo. +\end_layout + +\begin_layout Itemize + +\series bold +Caché +\series default +: En las máquinas con E/S mapeada a memoria, evita que el contenido de la + página se almacene en caché. +\end_layout + +\begin_layout Itemize + +\series bold +Visible en modo núcleo +\series default +: Evita que se pueda acceder a la página en modo usuario. +\end_layout + +\begin_layout Standard +Las direcciones virtuales se dividen en un +\series bold +número de página +\series default +, usado como índice en la tabla de páginas, y un +\series bold +ajuste +\series default + o +\series bold +desplazamiento +\series default + dentro de ella. +\end_layout + +\begin_layout Standard +La traducción de páginas debe ser rápida, por lo que se usa un +\series bold +TLB +\series default + ( +\emph on +Translation Look-aside Buffer +\emph default +), una caché totalmente asociativa generalmente en la MMU que contiene entradas + de la tabla de páginas. + El hardware verifica si el número de página está en el TLB comparando todas + las entradas en paralelo (por lo que número de entradas suele ser muy pequeño). + Si coincide alguna, se toma la entrada del TLB (incluyendo bits de protección, + etc.). + Si no está, se lee la entrada de memoria principal y, bien se elimina una + entrada del TLB escribiendo sus bits de modificado y uso en la principal + y se reemplaza por la nueva, o se produce un fallo de página. +\end_layout + +\begin_layout Standard +Al cambiar de proceso se puede invalidar el contenido del TLB, borrando + todos los bits de validez mediante una instrucción especial, o añadir un + nuevo campo a cada entrada del TLB con el identificador del proceso y un + registro con el del proceso activo, requiriendo hardware adicional pero + ahorrando tiempo en los cambios de proceso y dando lugar a encontrar entradas + en el TLB del propio proceso tras volver a tomar la CPU. +\end_layout + +\begin_layout Standard +Como una tabla de páginas global puede ser muy grande, en la práctica se + divide el número de página en varias partes y se usan tablas de páginas + de varios niveles, de modo que la de primer nivel se indexa según la primera + parte del número de página e indica la dirección de las tablas de segundo + nivel, etc., y las tablas que no son necesarias no se tienen. + Los Intel Pentium Pro tienen 3 niveles, los procesadores de Intel y AMD + de 64 bits tienen 4, y Linux soporta hasta 5 desde la versión 4.14, permitiendo + gestionar hasta +\begin_inset Formula $\unit[128]{PiB}$ +\end_inset + + de memoria virtual y hasta +\begin_inset Formula $\unit[4]{PiB}$ +\end_inset + + de RAM. +\end_layout + +\begin_layout Standard +Una +\series bold +tabla de páginas invertida +\series default + contiene una entrada por cada marco de página con el número de la página + que almacena, el PID, una serie de bits como en una entrada de tabla de + páginas normal y un puntero para encadenamiento en una tabla de dispersión + abierta usada para acelerar las traducciones, que usa como clave el PID + y el número de página y devuelve el número de una entrada de la tabla. +\end_layout + +\begin_layout Standard +El +\series bold +mapa de memoria +\series default + de un proceso es la estructura de su espacio de direcciones lógicas, en + zonas contiguas de memoria virtual llamadas +\series bold +regiones +\series default + como las de código, datos con valor inicial, datos sin valor inicial y + pila de cada hilo, con características como: +\end_layout + +\begin_layout Itemize + +\series bold +Soporte +\series default +: De dónde se obtienen los datos que contiene la región; normalmente un + fichero o parte de este, como un ejecutable en el caso del código. + También hay regiones sin soporte como la pila, cuyas páginas, si se modifican + y son expulsadas, se guardan en la zona de intercambio del disco. +\end_layout + +\begin_layout Itemize + +\series bold +Tipo de compartición +\series default +: Si las modificaciones que haga un proceso son visibles por otros o no. +\end_layout + +\begin_layout Itemize + +\series bold +Protección +\series default +: Permisos de lectura, escritura y ejecución. +\end_layout + +\begin_layout Itemize + +\series bold +Tamaño fijo +\series default + o +\series bold +variable +\series default +: Si es variable, se indica si crece hacia direcciones mayores, como la + memoria montón o +\emph on +heap +\emph default + usada para la memoria dinámica, o menores, como la pila. + En UNIX, la memoria montón no tiene soporte, está inicialmente a 0 y crece + conforme el proceso necesita memoria mediante las llamadas +\family typewriter +brk +\family default + y +\family typewriter +sbrk +\family default +. +\end_layout + +\begin_layout Standard +El sistema operativo suele estar mapeado en todos los procesos, con el bit + de visible en modo núcleo activado, por eficiencia en las transferencias + de datos entre usuario y núcleo +\begin_inset Foot +status open + +\begin_layout Plain Layout +En procesadores como Intel, esto ya no se hace debido a Meltdown. +\end_layout + +\end_inset + +. +\end_layout + +\begin_layout Standard +En Linux, al hacer la llamada al sistema +\family typewriter +fork +\family default +, se usa +\series bold +copia en escritura +\series default + ( +\emph on +copy on write +\emph default +, COW), consistente en desactivar el permiso de escritura de las páginas + y dar al proceso hijo una copia de la tabla de páginas del padre, de modo + que si uno de los dos intenta escribir en una región en la que tendría + permiso, el sistema operativo hace una copia de la página que provocó la + violación, la asigna a la tabla de páginas del proceso que hace la escritura + y activa el permiso de escritura en ambas páginas +\begin_inset Foot +status open + +\begin_layout Plain Layout +Linux usa conteo de referencias para que, si hay varios +\family typewriter +fork +\family default +, no se active la escritura en la página original hasta que el resto de + procesos tenga una copia de la página. + Ver +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://stackoverflow.com/questions/13813636/how-does-copy-on-write-in-fork-handl +e-multiple-fork +\end_layout + +\end_inset + + para más detalles. +\end_layout + +\end_inset + +. +\end_layout + +\begin_layout Standard +Algoritmos de reemplazo de páginas: +\end_layout + +\begin_layout Itemize + +\series bold +Algoritmo óptimo +\series default +: Se elimina la página para la que pasará más tiempo antes de ser utilizada. + Modelo teórico imposible de implementar. +\end_layout + +\begin_layout Itemize + +\series bold +NRU +\series default + (no usada recientemente): Se limpia el bit de referenciado periódicamente + en todas las páginas, y al reemplazar se prefieren páginas con este bit + desactivado y, dentro de esto, con el de modificado desactivado. +\end_layout + +\begin_layout Itemize + +\series bold +FIFO +\series default + (primera en enterar, primera en salir): Se elimina la primera página de + una lista y se añade la nueva al final. + El algoritmo es de bajo coste, pero no tiene en cuenta ningún dato adicional + y produce demasiados fallos. +\end_layout + +\begin_layout Itemize + +\series bold +Algoritmo de la segunda oportunidad +\series default +: Como el FIFO pero, si el bit de referenciado de la primera página está + activo, el bit se limpia, la página pasa al final y se comprueba la siguiente. +\end_layout + +\begin_layout Itemize + +\series bold +Algoritmo del reloj +\series default +: Equivalente al anterior pero con una lista circular donde una +\begin_inset Quotes fld +\end_inset + +manecilla +\begin_inset Quotes frd +\end_inset + + (un puntero) apunta a la página más antigua. + Si el bit de referenciado está inactivo, se expulsa y se reemplaza en la + lista la página apuntada y se avanza la manecilla a la siguiente, y de + lo contrario se inactiva el bit, se pasa a la siguiente página y se repite + el proceso. +\end_layout + +\begin_layout Itemize + +\series bold +LRU +\series default + (usada menos recientemente): Se elimina la página no usada desde hace más + tiempo. + Se podría usar una lista ligada de todas las páginas de memoria, pero tendría + que actualizarse en cada acceso a memoria. + También se podría tener un contador hardware que se incrementa en cada + referencia a memoria y un campo en las entradas de la tabla de páginas + y la TLB donde copiarlo. + Otra forma es usar una matriz +\begin_inset Formula $n\times n$ +\end_inset + +, siendo +\begin_inset Formula $n$ +\end_inset + + el total de páginas, inicializada a 0, con lo que al referencial el marco + +\begin_inset Formula $k$ +\end_inset + +, el hardware activa todos los bits de la fila +\begin_inset Formula $k$ +\end_inset + + y después desactiva todos los de la columna, con lo que la fila cuyo valor + en binario sea mínimo es la del marco que se usó hace más tiempo, pero + esto es inviable por el tamaño de la matriz. +\end_layout + +\begin_layout Itemize + +\series bold +Algoritmo de maduración +\series default +: Aproximación software de LRU. + En cada interrupción de reloj, se desplaza un contador en cada entrada + de la tabla de páginas un bit a la derecha y se añade a la izquierda el + bit de referenciado. +\end_layout + +\begin_layout Standard +Se debe decidir también si la página a reemplazar se busca sólo en las del + proceso ( +\series bold +reemplazo local +\series default +) o en todas las de memoria ( +\series bold +reemplazo global +\series default +), y si el número de marcos asignados a un proceso varía ( +\series bold +asignación dinámica +\series default +) o no ( +\series bold +asignación fija +\series default + o +\series bold +estática +\series default +). + No es posible el reemplazo global con asignación fija, pero el reemplazo + local con asignación dinámica puede evitar que un proceso que empieza a + producir fallos de página le quite páginas a otros siendo a la vez más + flexible que una asignación fija. + Llamamos +\series bold +algoritmo de frecuencia de fallos de página +\series default + al consistente en asignar más marcos a los procesos que producen muchos + fallos de página y quitarlos a los que producen pocos. + Otros aspectos son el número mínimo de marcos por proceso, que depende + entre otros del máximo de páginas que puede usar una sola instrucción +\begin_inset Foot +status open + +\begin_layout Plain Layout +Si, por ejemplo, una instrucción debe acceder a 5 páginas incluyendo la + de la propia instrucción pero sólo hay 4 marcos, uno de los accesos provocará + necesariamente un fallo de página que reemplazará otra de las 4 páginas + necesarias y reiniciará la instrucción, que nunca llegará a terminar. +\end_layout + +\end_inset + +, y el reparto de marcos entre distintos procesos (equitativo, proporcional + al tamaño, etc.). +\end_layout + +\begin_layout Standard +Páginas pequeñas producen menos fragmentación interna, pero páginas grandes + aceleran el reemplazo porque las transferencias entre memoria y disco son + normalmente de una página y hay poca diferencia entre el tiempo de transferenci +a de una página pequeña y el de una grande. + Los tamaños más frecuentes son de 4 y +\begin_inset Formula $\unit[8]{KiB}$ +\end_inset + +. +\end_layout + +\begin_layout Standard +La +\series bold +hiperpaginación +\series default + ocurre cuando un proceso emplea más tiempo paginando (esperando a que se + resuelvan sus fallos de página) que ejecutando código porque necesita muchos + más marcos de los que tiene. + En tal caso, aparte de añadir más memoria principal, podemos suspender + temporalmente algunos procesos para liberar memoria y reanudarlos cuando + la tasa de fallos de página decaiga. +\end_layout + +\begin_layout Standard +Políticas de lectura y escritura de páginas: +\end_layout + +\begin_layout Itemize + +\series bold +Paginación por demanda +\series default +: Solo se lee la página que produce el fallo. +\end_layout + +\begin_layout Itemize + +\series bold +Prepaginación +\series default + o +\series bold +paginación anticipada +\series default +: Se leen varias páginas más, normalmente las que se encuentran después + en el espacio de direcciones virtuales. +\end_layout + +\begin_layout Itemize + +\series bold +Escritura por demanda +\series default +: Una página se escribe en disco cuando se expulsa, aumentando el tiempo + de resolución de fallos de página. +\end_layout + +\begin_layout Itemize + +\series bold +Escritura anticipada +\series default +: Un hilo del núcleo, el +\series bold +demonio de paginación +\series default +, cada cierto tiempo escribe en disco las páginas modificadas, aumentando + el rendimiento en discos duros al escribir varias páginas a la vez y acelerando + la resolución de fallos de página. + Muchas escrituras pueden ser inútiles si la páginas se modifican poco después, + por lo que el demonio puede buscar páginas que, según el algoritmo de reemplazo +, podrían expulsarse próximamente y escribirlas en disco si han sido modificadas. + También puede liberar más páginas para tener páginas libres ( +\series bold +caché de páginas +\series default +) y resolver rápidamente cualquier futuro fallo de página, de forma que + si una página liberada se necesita poco después su contenido siga en memoria. +\end_layout + +\begin_layout Section +Segmentación +\end_layout + +\begin_layout Standard +El espacio de direcciones lógicas de un proceso se compone de +\series bold +segmentos +\series default +, zonas contiguas dadas por una +\series bold +base +\series default + (dirección de comienzo) y un +\series bold +límite +\series default + (tamaño), y las direcciones especifican el número de segmento y el desplazamien +to dentro de él, de 0 al tamaño menos 1. + Esto facilita la protección y compartición de información, y se puede acelerar + la traducción con un TLB, pero sufre fragmentación externa, los segmentos + no pueden superar el tamaño de la memoria física y los intercambios con + el disco se hacen siempre moviendo segmentos enteros. +\end_layout + +\begin_layout Standard +En la +\series bold +segmentación paginada +\series default + estos segmentos se paginan, por lo que no hay fragmentación externa ni + hay que buscar un hueco adecuado para cada segmento. + El TLB es direccionable por el número de segmento a usar y el número de + la página dentro del segmento. +\end_layout + +\end_body +\end_document diff --git a/iso/n6.lyx b/iso/n6.lyx new file mode 100644 index 0000000..594ec44 --- /dev/null +++ b/iso/n6.lyx @@ -0,0 +1,826 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Distinguimos: +\end_layout + +\begin_layout Itemize + +\series bold +Dispositivos de bloques +\series default +: Dispositivos de almacenamiento en general. + Almacenan información en bloques de tamaño fijo que podemos leer y escribir + de forma independiente de los demás. +\end_layout + +\begin_layout Itemize + +\series bold +Dispositivos de caracteres +\series default +: Terminales, impresoras, interfaces de red, ratones, etc. + Envían o reciben un flujo de caracteres. +\end_layout + +\begin_layout Itemize +Otros, como los relojes, que sólo producen interrupciones periódicas, o + las tarjetas gráficas mapeadas a memoria en las que la memoria de vídeo + es parte del espacio de direcciones. +\end_layout + +\begin_layout Section +El software de E/S +\end_layout + +\begin_layout Standard +Objetivos: +\end_layout + +\begin_layout Itemize +Crear conceptos generales que no dependan de las características específicas + de cada dispositivo. + Por ejemplo, podemos acceder a un dispositivo de bloques sin importar si + es un CD-ROM en el que el lector tiene un motor que se debe arrancar y + parar o un disco duro que está girando continuamente. +\end_layout + +\begin_layout Itemize +Dar a los dispositivos nombres uniformes sin importar sus características. + En UNIX esto se hace mediante ficheros especiales. +\end_layout + +\begin_layout Itemize +Manejar los errores lo más cerca posible del hardware. + Si el controlador descubre un error, debe intentar corregirlo. + Si no puede, debe notificarlo para que lo intente el manejador de dispositivo. + Si tampoco puede, debe notificarlo al software independiente de E/S. +\end_layout + +\begin_layout Itemize +Convertir las transferencias asíncronas, en que la CPU inicia una transferencia + y hace otras cosas hasta recibir una interrupción indicando que esta ha + terminado, en síncronas, más fáciles de programar, en que el programa se + bloquea hasta que los datos están disponibles +\begin_inset Foot +status open + +\begin_layout Plain Layout +Muchos programas usan hilos para volverlas a convertir en asíncronas. +\end_layout + +\end_inset + +. +\end_layout + +\begin_layout Itemize +Permitir la compartición de recursos para lo que esto es posible (como discos) + y asignar los de uso exclusivo (como impresoras). +\end_layout + +\begin_layout Subsection +Manejadores de interrupciones +\end_layout + +\begin_layout Standard +Cuando un proceso inicia una operación de E/S, se bloquea hasta que esta + termine mediante una llamada al sistema específica o, en el caso de UNIX, + de forma automática, cediendo la CPU a otro proceso. + Cuando la operación termina, el controlador envía una interrupción que + atiende el manejador de interrupciones del sistema operativo, el cual identific +a la interrupción y avisa al manejador de dispositivo correspondiente para + que elimine el bloqueo del proceso. + En UNIX, el proceso continuará en su parte de núcleo para terminar la operación. +\end_layout + +\begin_layout Subsection +Manejadores de dispositivo o +\emph on +drivers +\end_layout + +\begin_layout Standard +Contienen el código que depende del funcionamiento concreto de los dispositivos, + con lo que cada uno controla solo un tipo de dispositivo o varios similares. + En los sistemas monolíticos, para acceder a los registros de las controladoras, + necesitan ejecutarse en modo núcleo, por lo que se les considera parte + del núcleo. +\end_layout + +\begin_layout Standard +Un manejador recibe solicitudes abstractas que le hace el software independiente + de dis +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +po +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +si +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ti +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +vo y verifica la ejecución de estas solicitudes. + Tras enviar la orden (u órdenes) al dispositivo, el controlador puede tener + que bloquearse hasta que ocurra una interrupción, o puede que no sea necesario + porque la operación no conlleve retraso. + Tras terminar la operación, el manejador debe verificar los errores corrigiendo + los que pueda e informar al software independiente de dispositivo, y selecciona +r e iniciar alguna solicitud pendiente si tiene o, según el sistema operativo, + bloquearse en espera de una solicitud. +\end_layout + +\begin_layout Standard +El sistema operativo define una interfaz, una serie de funciones genéricas, + a la que se deben adaptar todos los manejadores. + Implementar un manejador supone conocer el funcionamiento del sistema operativo + y el del dispositivo. + Además muchos manejadores deben ser +\series bold +reentrantes +\series default +: capaces de ser interrumpidos a mitad de atender una petición de un proceso + y recibir otra petición sin haber terminado de atender la primera. +\end_layout + +\begin_layout Subsection +Software de E/S independiente de dispositivo +\end_layout + +\begin_layout Standard +Sus funciones suelen ser: +\end_layout + +\begin_layout Itemize +Proporcionar una interfaz uniforme al usuario, seleccionando el manejador + adecuado en cada caso. +\end_layout + +\begin_layout Itemize +Dar nombre a los dispositivos. + En Linux cada uno tiene un +\series bold +número mayor +\series default +, que identifica al manejador, y un +\series bold +número menor +\series default +, que usa el manejador para identificar el dispositivo concreto. +\end_layout + +\begin_layout Itemize +Evitar accesos no autorizados. +\end_layout + +\begin_layout Itemize +Proporcionar un tamaño de bloque independiente del dispositivo, agrupando + o dividiendo sectores, si bien esto también lo puede hacer el manejador + de dispositivo. +\end_layout + +\begin_layout Itemize +Proporcionar +\emph on +buffers +\emph default + para: +\end_layout + +\begin_deeper +\begin_layout Itemize +Dispositivos de entrada como el teclado que no son capaces de almacenar + información o la envían antes de que ningún proceso la solicite, en cuyo + caso el sistema operativo debe guardar la información enviada (en este + caso, códigos de teclas). +\end_layout + +\begin_layout Itemize +Dispositivos de salida como impresoras que no son capaces de procesar informació +n a la velocidad a la que un proceso puede enviarla, por lo que se debe + ir enviando poco a poco. +\end_layout + +\begin_layout Itemize +Dispositivos de bloques, en los que conviene guardar temporalmente en memoria + ciertos bloques para acelerar su funcionamiento y permitir a los procesos + leer o escribir una cantidad arbitraria de bytes. +\end_layout + +\end_deeper +\begin_layout Itemize +Asignar y liberar dispositivos de uso exclusivo, aceptando o rechazando + solicitudes según disponibilidad. +\end_layout + +\begin_layout Itemize +Informar de los errores cuando el manejador de dispositivo no los puede + solucionar. +\end_layout + +\begin_layout Standard +Los sistemas de fichero son independientes de dispositivo y trabajan sobre + dispositivos de bloques abstractos. + También hay software de E/S independiente de dispositivo en el espacio + de usuario: +\end_layout + +\begin_layout Itemize +Bibliotecas de E/S, que llevan a cabo las llamadas al sistema. +\end_layout + +\begin_layout Itemize +Sistema de +\emph on +spooling +\emph default + para dispositivos de uso exclusivo. + Por ejemplo, el +\series bold +demonio +\series default + de impresión comprueba periódicamente si hay ficheros en el +\series bold +directorio de +\emph on +spooling +\series default +\emph default + y, si es así, los imprime, de modo que el resto de procesos pueden imprimir + un fichero situándolo (en el formato apropiado) en el directorio de +\emph on +spooling +\emph default +. + Esto impide que un proceso mantenga abierto un dispositivo de uso exclusivo + sin hacer nada con él mientras el resto de procesos esperan, y permite + eliminar un trabajo antes de que sea procesado, cambiar el orden en que + se deben tratar los trabajos, etc. +\end_layout + +\begin_layout Section +Discos +\end_layout + +\begin_layout Standard +Los discos duros están formados por una serie de discos o platos magnéticos + conectados a un eje común que gira a gran velocidad (por ejemplo, +\begin_inset Formula $\unit[5400]{RPM}$ +\end_inset + +) y una serie de cabezas de lectura/escritura, una por cada superficie de + disco, que pueden leer o escribir sobre la porción de la superficie de + los platos que está justo debajo o encima de estas, y que están todas conectada +s mediante brazos a un mismo soporte que puede girar en un cierto arco haciendo + que las cabezas se muevan hacia dentro o fuera sobre la superficie de los + discos. +\end_layout + +\begin_layout Standard +Llamamos +\series bold +cilindro +\series default + al conjunto de posiciones del disco accesibles en una cierta posición de + las cabezas, +\series bold +pista +\series default + ( +\series bold +circular +\series default +) al subconjunto de estas posiciones sobre una misma superficie de disco + y +\series bold +sector +\series default + a la unidad mínima de lectura y escritura soportada por la controladora, + con tamaños típicos de entre +\begin_inset Formula $\unit[512]{B}$ +\end_inset + + y +\begin_inset Formula $\unit[4]{KiB}$ +\end_inset + + (siempre potencias de 2), y que corresponde a una porción de pista. +\end_layout + +\begin_layout Standard +Cada sector se identifica por la terna de los números de cilindro, cabeza + y sector dentro de la pista, numerados desde 0, donde los cilindros más + externos (más alejados del eje) tienen menor número. + El +\series bold +tiempo de servicio +\series default + o +\series bold +de acceso +\series default + a un sector es la suma de: +\end_layout + +\begin_layout Enumerate + +\series bold +Tiempo de búsqueda +\series default +, para colocar las cabezas en el cilindro adecuado. + El más largo. +\end_layout + +\begin_layout Enumerate +Tiempo para activar la cabeza adecuada, despreciable. +\end_layout + +\begin_layout Enumerate + +\series bold +Tiempo de latencia +\series default +, hasta que los sectores a leer o escribir pasen junto a la cabeza. +\end_layout + +\begin_layout Enumerate + +\series bold +Tiempo de transmisión +\series default +, de leer o escribir los sectores en sí según van pasando por la cabeza. +\end_layout + +\begin_layout Standard +Hoy en día las pistas exteriores de los discos son más largas que las interiores + y por tanto contienen más sectores, dividiéndose el disco en zonas (anillos + circulares) en las que cada pista contiene el mismo número de sectores. + Para que el manejador de disco no tenga que conocer su estructura interna, + la controladora de disco expone una interfaz a modo de lista contigua de + bloques. +\end_layout + +\begin_layout Standard +Debemos planificar el orden en que se atienden las solicitudes de la cola + de solicitudes a disco pendientes para reducir el movimiento de las cabezas. + Como el manejador no conoce la geometría del disco, en vez de la distancia + entre cilindros se tiene en cuenta la distancia entre direcciones de bloque. +\end_layout + +\begin_layout Itemize + +\series bold +FCFS +\series default + ( +\emph on +First Come, First Served +\emph default +): Por orden de llegada, da tiempos de servicio grandes. +\end_layout + +\begin_layout Itemize + +\series bold +SSF +\series default + ( +\emph on +Shortest Seek First +\emph default +): Atiende la solicitud del bloque más cercano al actual. + No es equitativo, pues atiende enseguida solicitudes de cilindros próximos + al actual y no otras solicitudes que llegaron antes, y tampoco es óptimo. +\end_layout + +\begin_layout Itemize + +\series bold +SCAN +\series default + o +\series bold +algoritmo del ascensor +\series default +: En un sentido, atiende la solicitud del bloque con el mayor número que + sea menor al del actual. + En el otro, la del menor número que sea mayor al del actual. + Cuando no quedan peticiones en un sentido, cambia al otro. + Dada cualquier colección de solicitudes, el máximo de movimientos es el + doble del número de cilindros, evitando la localidad. +\end_layout + +\begin_layout Itemize + +\series bold +C-SCAN +\series default + o +\series bold +SCAN circular +\series default +: En SCAN, cuando las cabezas llegan a un extremo e inviertan el sentido, + habrá pocas solicitudes en la zona próxima, mientras que en la otra habrá + muchas y llevarán más tiempo. + El C-SCAN modifica este algoritmo de modo que, si el sentido es de mayor + a menor bloque y no hay ninguna solicitud de bloque de número menor, se + toma el bloque de mayor número y se sigue en el mismo sentido, y lo mismo + ocurre al revés si el sentido es el otro. +\end_layout + +\begin_layout Standard +Si la tecnología cambia, pueden ser necesarios nuevos algoritmos. + Los discos duros actuales suelen tener una pequeña caché en la controladora + para leer por adelantado pistas enteras o partes de ellas, por lo que se + prefiere atender una solicitud que acaba de llegar pero está próxima a + la última servida antes de otra que lleva más esperando, aunque si lleva + mucho tiempo esperando se atiende de inmediato. +\end_layout + +\begin_layout Standard +La implementación del sistema de ficheros puede tener gran influencia sobre + las solicitudes, pues no es lo mismo si estos están en un área contigua + en disco (requiriendo pocos movimientos de las cabezas) o dispersos (muchos + movimientos), en cuyo caso se podría defragmentar el disco colocando los + bloques de cada fichero contiguos o próximos. + También podemos colocar los bloques de datos de directorios próximos a + los bloques de nodos-i de sus ficheros, como hacen ext2/3/4, XFS o JFS. +\end_layout + +\begin_layout Standard +Un +\series bold +disco RAM +\series default + es un dispositivo de bloques en que los bloques se almacenan en memoria + principal, permitiendo acceso instantáneo, con lo que cuando el manejador + recibe un mensaje para lectura o escritura de un bloque, basta que calcule + el lugar de la memoria del disco RAM donde se encuentra. +\end_layout + +\begin_layout Section +Relojes +\end_layout + +\begin_layout Standard +Los relojes más sencillos están sujetos a la línea de corriente alterna + y provocan una in +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +te +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +rrup +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ción por cada ciclo de voltaje (a 50 o +\begin_inset Formula $\unit[60]{Hz}$ +\end_inset + +). + Los +\series bold +relojes programables +\series default + constan de un oscilador de cristal de cuarzo que genera una señal periódica + de 5 a +\begin_inset Formula $\unit[100]{MHz}$ +\end_inset + + o más de muy alta precisión; un contador que a partir de esta señal cuenta + de forma decreciente hasta 0 y, cuando llega, provoca una interrupción, + y un registro de carga para actualizar el contador. +\end_layout + +\begin_layout Standard +En +\series bold +modo de disparo único +\series default +, el reloj copia al iniciarse el valor del registro de carga en el contador + y, cuando este llega a 0, se detiene hasta ser iniciado de nuevo por el + software, mientras que en +\series bold +modo de onda cuadrada +\series default +, cuando llega a 0, el registro de carga se copia automáticamente al contador, + generando interrupciones periódicas llamadas +\series bold +marcas +\series default + o +\series bold +tics de reloj +\series default +. + Los chips suelen contener 2 o 3 relojes programables independientes, así + como otras opciones como contar en forma ascendente o desactivar las interrupci +ones. +\end_layout + +\begin_layout Standard +El +\series bold +manejador del reloj +\series default + se encarga de: +\end_layout + +\begin_layout Itemize +Controlar la hora del día, incrementando un contador en cada marca del reloj + registrando el tiempo transcurrido desde, por ejemplo, el inicio del año + 1970 como se hace en UNIX, momento conocido como +\emph on +The Epoch +\emph default + (La Época +\begin_inset Foot +status open + +\begin_layout Plain Layout +¿A que al traducirlo pierde toda la gracia? +\end_layout + +\end_inset + +). + El contador se puede implementar, por ejemplo, como: +\end_layout + +\begin_deeper +\begin_layout Itemize +Contador de marcas. + Si es de +\begin_inset Formula $\unit[64]{bits}$ +\end_inset + + a +\begin_inset Formula $\unit[60]{Hz}$ +\end_inset + +, puede registrar más de +\begin_inset Formula $\unit[9800]{m.a.}$ +\end_inset + +. +\end_layout + +\begin_layout Itemize +Contador de segundos y otro de marcas hasta llegar al segundo. + Si son de +\begin_inset Formula $\unit[32]{bits}$ +\end_inset + + desde +\emph on +The Epoch +\emph default +, el desbordamiento ocurre en 2106 si se guarda como entero sin signo o + 2038 si se guarda con signo. +\end_layout + +\begin_layout Itemize +Instante de arranque en segundos y contador de marcas desde el arranque. + Si el contador es de +\begin_inset Formula $\unit[32]{bits}$ +\end_inset + + a +\begin_inset Formula $\unit[60]{Hz}$ +\end_inset + +, habrá que reiniciar tras algo más de 2 años y 3 meses. +\end_layout + +\begin_layout Standard +Para obtener la fecha al arrancar, el sistema operativo puede pedirla al + usuario o tomarla del +\series bold +reloj de tiempo real +\series default + de la placa base, un pequeño circuito integrado con una pequeña batería + que mantiene la hora incluso con la máquina apagada. +\end_layout + +\end_deeper +\begin_layout Itemize +Controlar el tiempo de ejecución de los procesos, con un contador con el + valor del +\emph on +quantum +\emph default + del proceso en marcas del reloj para llamar al planificador cuando el contador + llegue a 0. +\end_layout + +\begin_layout Itemize +Contabilizar el uso de CPU. + Una forma es iniciar un segundo reloj cada vez que se asigne la CPU a un + proceso y leer el valor del contador cuando el proceso deje la CPU para + añadir el tiempo a un campo en la entrada de la tabla de procesos. + El reloj debe parar cuando la CPU atienda una interrupción. + Otra forma más sencilla es incrementar un campo en la tabla de procesos + por cada marca de reloj, pero esta es menos exacta porque, por ejemplo, + un proceso puede pasar a usar la CPU justo tras producirse una marca y + dejarla justo antes de la siguiente y esto no contaría. +\end_layout + +\begin_layout Itemize + +\series bold +Alarmas +\series default +. + Un proceso en UNIX puede ejecutar la llamada +\family typewriter +alarm +\family default + para pedir al sistema operativo que le avise tras un cierto tiempo enviándole + una señal +\family typewriter +SIGALRM +\family default +. + Si el manejador de reloj tiene relojes físicos suficientes, se puede usar + uno para cada solicitud, pero como esto es improbable se simular relojes + virtuales. +\begin_inset Newline newline +\end_inset + +Una forma es tener una tabla con el tiempo de señalización de cada alarma + y una variable que indica el tiempo en marcas hasta la próxima señal, de + modo que al actualizar la hora del día se decrementa esta variable y, si + llega a 0, se envía la señal al proceso, se busca la siguiente alarma y + se actualiza la variable. + Otra forma es tener una lista ligada de alarmas según tiempo de ocurrencias + en que cada elemento indica el número de marcas de reloj a esperar tras + la siguiente señal. +\end_layout + +\begin_layout Itemize + +\series bold +Cronómetros guardianes +\series default +. + Son alarmas establecidas por el propio sistema operativo. + Por ejemplo, para acceder a un DVD hay que activar el motor del lector + y esperar a la velocidad adecuada, por lo que es buena idea dejar el motor + encendido por un tiempo por si hay más operaciones de E/S y detenerlo si + pasa un tiempo sin que haya. + Funcionan como alarmas pero, en vez de provocar una señal, llaman a un + procedimiento proporcionado por quien hizo la llamada dado que en el núcleo + no hay señales. +\end_layout + +\end_body +\end_document diff --git a/iso/na.lyx b/iso/na.lyx new file mode 100644 index 0000000..bbe948a --- /dev/null +++ b/iso/na.lyx @@ -0,0 +1,7090 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +En UNIX/Linux existen tres grandes familias de intérpretes de órdenes o + +\emph on +shells +\emph default +: +\family typewriter +sh +\family default +, +\family typewriter +csh +\family default + y +\family typewriter +ksh +\family default +. + Nos centraremos en +\family typewriter +bash +\family default +, el Bourne-Again Shell, un +\emph on +shell +\emph default + libre de la familia de +\family typewriter +sh +\family default +. + Podemos acceder a este: +\end_layout + +\begin_layout Itemize +Directamente, si el sistema arranca en modo texto. +\end_layout + +\begin_layout Itemize +El sistema suele tener 12 terminales virtuales. + El modo gráfico suele usar las dos primeras, por lo que podemos acceder + a modo texto pulsando +\family typewriter +C-M-F +\emph on + +\begin_inset Formula $i$ +\end_inset + + +\family default +\emph default + con +\begin_inset Formula $i=3,\dots,12$ +\end_inset + + y volver al modo gráfico con +\family typewriter +C-M-F1 +\family default + o +\family typewriter +C-M-F2 +\family default + dependiendo del sistema. +\end_layout + +\begin_layout Itemize +También, desde el modo gráfico, podemos usar un programa de simulación del + terminal, que permite ejecutar órdenes desde el entorno de ventanas. + Destacan +\family typewriter +konsole +\family default + de KDE y +\family typewriter +gnome-terminal +\family default + de GNOME. +\end_layout + +\begin_layout Standard + +\family typewriter +bash +\family default + es programable a partir de ficheros de texto con listas de órdenes, llamados + +\series bold +guiones +\emph on +shell +\series default +\emph default + ( +\emph on +shell scripts +\emph default +) o +\series bold +\emph on +scripts +\series default +\emph default +. +\end_layout + +\begin_layout Standard +En general, las órdenes que aceptan varias opciones a la vez de una sola + letra permiten escribir, por ejemplo, +\family typewriter +-abcd +\family default + en vez de +\family typewriter +-a -b -c -d +\family default +, y esto también vale si la última orden requiere un argumento. + Todos los procesos, cuando finalizan, devuelven un +\series bold +código de salida +\series default + ( +\emph on +exit code +\emph default +) o +\series bold +estado de salida +\series default + ( +\emph on +exit status +\emph default +) al proceso padre, que generalmente es 0 cuando la ejecución es correcta + y un valor entre 1 y 255 cuando hay un error. + +\end_layout + +\begin_layout Standard +Ejecutar +\family typewriter +\emph on +comando +\emph default + --help +\family default + en general muestra una breve ayuda sobre una orden externa. + Otras fuentes son la ayuda de +\family typewriter +bash +\family default +, la de +\family typewriter +man +\family default +, la documentación de las distribuciones, sitios como FAQs, foros, etc., + y proyectos de documentación libre como TLDP. +\begin_inset Foot +status open + +\begin_layout Plain Layout +De aquí en adelante buscad en todos estos sitios antes de preguntarme a + mí. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Las órdenes se ejecutan siempre desde el +\series bold +directorio actual +\series default + en el que nos encontremos. + Cada usuario tiene un +\series bold +directorio personal +\series default +, que suele ser +\family typewriter +/home/ +\emph on +usuario +\family default +\emph default +, siendo +\family typewriter +\emph on +usuario +\family default +\emph default + el nombre del usuario. +\end_layout + +\begin_layout Standard +Los ficheros y directorios tienen una serie de permisos para el propietario + (o usuario), el grupo y el resto de usuarios. + Para cada uno de estos se definen los siguientes permisos: +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular +<lyxtabular version="3" rows="4" columns="3"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top" width="20text%"> +<column alignment="center" valignment="top" width="30text%"> +<column alignment="center" valignment="top" width="40text%"> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Permiso +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Fichero +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Directorio +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Lectura ( +\family typewriter +r +\family default +) +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Leer el contenido. +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Obtener la lista de entradas. + No es necesario para acceder a ellas si conocemos su nombre. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Escritura ( +\family typewriter +w +\family default +) +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Modificar el contenido. +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Crear, borrar o modificar entradas. +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Ejecución ( +\family typewriter +x +\family default +) +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Ejecutar el fichero. +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Acceder al nodo-i de las entradas para acceder a subdirectorios o ficheros + u obtener los metadatos de estos. +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Standard +Además de los permisos especiales: +\end_layout + +\begin_layout Itemize + +\family typewriter +t +\family default + ( +\emph on +sticky bit +\emph default +): En un directorio, un usuario con permiso de lectura puede crear ficheros, + pero sólo puede borrar los que le pertenecen. +\end_layout + +\begin_layout Itemize + +\family typewriter +u+s +\family default + (suid): En un ejecutable, el UID cambia al del propietario al ejecutarlo. +\end_layout + +\begin_layout Itemize + +\family typewriter +g+s +\family default + (sgid): En un ejecutable, el GID cambia al del grupo del fichero al ejecutarlo. + En un directorio, los ficheros creados dentro pertenecen al grupo del directori +o, y no (ne +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ce +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +sa +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ria +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +men +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +te) al grupo activo de quien lo crea. +\end_layout + +\begin_layout Standard +Los permisos se representan en notación estándar como la cadena +\family typewriter +rwxrwxrwx +\family default +, con 3 grupos para usuario, grupo y otros, respectivamente, donde se sustituyen + los caracteres de los permisos que no están por +\family typewriter +- +\family default +. + La +\family typewriter +x +\family default + de usuario o grupo, respectivamente, cambia a una +\family typewriter +s +\family default + si está activo el suid o el sgid. + La +\family typewriter +x +\family default + de otros cambia a una +\family typewriter +t +\family default + si está activo el +\emph on +sticky bit +\emph default +. + También se puede representar en octal, considerando en esta cadena que + un permiso que se da es un 1 y uno que no es un 0, y convirtiendo el número + binario resultante a octal. +\end_layout + +\begin_layout Standard +A continuación vemos versiones reducidas y traducidas de las páginas +\family typewriter +man +\family default + (del manual) de los principales comandos, que definen un subconjunto de + la funcionalidad de estos en la implementación de GNU. +\end_layout + +\begin_layout Section + +\family typewriter +bash +\end_layout + +\begin_layout Standard +Si bien veremos que el +\emph on +shell +\emph default + permite crear variables, estas son variables locales, que son heredadas + por los hijos del +\emph on +shell +\emph default + (si bien al modificarlas estos no se actualizan en el proceso padre ni + al revés) pero desaparecen en cuanto estos llaman a +\family typewriter +exec +\family default +. + No obstante, cada proceso en UNIX incluye un +\series bold +entorno +\series default + con una serie de +\series bold +variables de entorno +\series default +, que se heredan de padres a hijos en +\family typewriter +fork +\family default +, no se borran al usar +\family typewriter +exec +\family default + y los procesos pueden crear, modificar o borrar. + Por ejemplo, +\family typewriter +LOGNAME +\family default + contiene el nombre del usuario que ha iniciado sesión. +\end_layout + +\begin_layout Standard +Los procesos disponen por defecto de tres descriptores de fichero: +\end_layout + +\begin_layout Itemize + +\series bold +Entrada estándar +\series default + (0): Para recibir datos de entrada. + Normalmente es el teclado. +\end_layout + +\begin_layout Itemize + +\series bold +Salida estándar +\series default + (1): Para mostrar resultados. + Normalmente la pantalla. +\end_layout + +\begin_layout Itemize + +\series bold +Salida estándar de error +\series default + (2): Para mostrar mensajes de error. + Normalmente la pantalla. +\end_layout + +\begin_layout Standard +Estos se pueden redireccionar para almacenar datos de salida o recibir datos + de entrada de un fichero, o comunicar unos procesos con otros +\end_layout + +\begin_layout Subsection* + +\family typewriter +bash +\family default + — +\emph on +GNU Bourne-Again SHell +\end_layout + +\begin_layout Subsubsection* +SINOPSIS +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +bash +\series default + [opciones] [comando | archivo] +\end_layout + +\begin_layout Subsubsection* +OPCIONES +\end_layout + +\begin_layout Standard +Todas las opciones de un caracter documentadas en la descripción del comando + interno +\family typewriter +\series bold +set +\family default +\series default + pueden usarse como opciones al invocar el +\emph on +shell +\emph default +. +\end_layout + +\begin_layout Subsubsection* +ARGUMENTOS +\end_layout + +\begin_layout Standard +Si quedan argumentos tras las +\family typewriter +\emph on +opciones +\family default +\emph default +, el primero de estos se entiende como el nombre de un fichero con comandos + +\emph on +shell +\emph default +, que guarda en el parámetro +\family typewriter +\series bold +$0 +\family default +\series default +, y el resto de argumentos los guarda en los parámetros posicionales, en + orden creciente. + Entonces +\family typewriter +\series bold +bash +\family default +\series default + lee y ejecuta los comandos de este archivo y termina su ejecución. + El estado de salida de +\family typewriter +\series bold +bash +\family default +\series default + es el del último comando ejecutado en el +\emph on +script +\emph default +. +\end_layout + +\begin_layout Subsubsection* +INVOCACIÓN +\end_layout + +\begin_layout Standard +Cuando +\family typewriter +\series bold +bash +\family default +\series default + se invoca como +\emph on +shell +\emph default + de inicio de sesión interactivo, ejecuta los comandos de +\family typewriter +~/.bash_profile +\family default +, si existe. + Cuando un +\emph on +shell +\emph default + de inicio de sesión interactivo termina, ejecuta los comandos de +\family typewriter +~/.bash_logout +\family default +. + Cuando se inicia un +\emph on +shell +\emph default + interactivo que no es de inicio de sesión, +\family typewriter +\series bold +bash +\family default +\series default + ejecuta los comandos de +\family typewriter +~/.bashrc +\family default +, si existe. +\end_layout + +\begin_layout Subsubsection* +DEFINICIONES +\end_layout + +\begin_layout Description +Blanco Espacio o tabulador. +\end_layout + +\begin_layout Description +Palabra Secuencia de caracteres interpretada como una unidad por el +\emph on +shell +\emph default +. +\end_layout + +\begin_layout Description +Nombre Palabra con solo caracteres alfanuméricos y barras bajas que no comienza + por un número. +\end_layout + +\begin_layout Description +Metacaracter Caracter que, si no está entre comillas, separa palabras. + Uno de +\family typewriter +| +\family default +, +\family typewriter +& +\family default +, +\family typewriter +; +\family default +, +\family typewriter +( +\family default +, +\family typewriter +) +\family default +, +\family typewriter +< +\family default +, +\family typewriter +> +\family default +, espacio, tabulador y salto de línea. +\end_layout + +\begin_layout Description +Operador +\begin_inset space ~ +\end_inset + +de +\begin_inset space ~ +\end_inset + +control Palabra que realiza una función de control. + Una de +\family typewriter +|| +\family default +, +\family typewriter +& +\family default +, +\family typewriter +&& +\family default +, +\family typewriter +; +\family default +, +\family typewriter +;; +\family default +, +\family typewriter +;& +\family default +, +\family typewriter +;;& +\family default +, +\family typewriter +( +\family default +, +\family typewriter +) +\family default +, +\family typewriter +| +\family default +, +\family typewriter +|& +\family default + y salto de línea. +\end_layout + +\begin_layout Subsubsection* +GRAMÁTICA DEL SHELL +\end_layout + +\begin_layout Paragraph* +Comandos simples +\end_layout + +\begin_layout Standard +Secuencia opcional de asignaciones de variables seguida de una lista de + palabras separadas por blancos, seguida de redirecciones, y terminada por + un operador de control. + La primera palabra indica el comando a ejecutar, pasado como argumento + 0, y el resto son los argumentos a dicho comando. +\end_layout + +\begin_layout Paragraph* +Tuberías, +\emph on +pipelines +\emph default + o +\emph on +pipes +\end_layout + +\begin_layout Standard +Formadas por uno o varios comandos simples separados por +\family typewriter +\series bold +| +\family default +\series default +, para conectar la salida estándar del de la izquierda con la entrada estándar + de la siguiente, o por +\family typewriter +|& +\family default +, abreviación para +\family typewriter +2>&1| +\family default +, y que se ejecutan en paralelo en sus respectivos procesos. +\end_layout + +\begin_layout Paragraph* +Listas +\end_layout + +\begin_layout Standard +Formadas por una o más tuberías separadas por +\family typewriter +; +\family default +, +\family typewriter +& +\family default +, +\family typewriter +&& +\family default + o +\family typewriter +|| +\family default +, y terminadas opcionalmente por +\family typewriter +; +\family default +, +\family typewriter +& +\family default + o un salto de línea. + +\family typewriter +\series bold +&& +\family default +\series default + y +\family typewriter +\series bold +|| +\family default +\series default + tienen igual precedencia, seguidos por +\family typewriter +\series bold +; +\family default +\series default + y +\family typewriter +\series bold +& +\family default +\series default +, de igual precedencia. + Una secuencia de uno o más saltos de línea puede aparecer en una lista + en lugar de un +\family typewriter +; +\family default + para delimitar comandos. +\end_layout + +\begin_layout Standard +Si un comando termina con +\family typewriter +\series bold +& +\family default +\series default +, se ejecuta en segundo plano en una +\emph on +subshell +\emph default +. + Comandos separados por +\family typewriter +\series bold +; +\family default +\series default + se ejecutan secuencialmente. +\end_layout + +\begin_layout Standard +Las listas Y (AND) y O (OR) son secuencias de una o más tuberías separadas + por +\family typewriter +\series bold +&& +\family default +\series default + o +\family typewriter +\series bold +|| +\family default +\series default +, respectivamente. + Una lista AND tiene forma +\family typewriter +\emph on +comando1 +\emph default + +\series bold +&& +\series default + +\emph on +comando2 +\family default +\emph default +, y en esta +\family typewriter +\emph on +comando2 +\family default +\emph default + se ejecuta si y sólo si +\family typewriter +\emph on +comando1 +\family default +\emph default + devuelve 0. + Una lista OR tiene forma +\family typewriter +\emph on +comando1 +\emph default + +\series bold +|| +\series default + +\emph on +comando2 +\family default +\emph default +, y en esta +\family typewriter +\emph on +comando2 +\family default +\emph default + se ejecuta si y sólo si +\family typewriter +\emph on +comando1 +\family default +\emph default + devuelve un valor distinto de 0. + El estado de salida de las listas Y y O es el del último comando ejecutado + en la lista. +\end_layout + +\begin_layout Subsubsection* +Comandos compuestos +\end_layout + +\begin_layout Standard +En la mayoría de los siguientes casos los +\family typewriter +; +\family default + pueden sustituirse por uno o más saltos de línea. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +( +\emph on +lista +\emph default +) +\family default + La +\family typewriter +\emph on +lista +\family default +\emph default + se ejecuta en un +\emph on +subshell +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +{ +\begin_inset space ~ +\end_inset + + +\emph on +lista +\emph default +; +\begin_inset space ~ +\end_inset + +} +\family default + La +\family typewriter +\emph on +lista +\family default +\emph default + se ejecuta en el +\emph on +shell +\emph default + actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +if +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista +\emph default +; +\begin_inset space ~ +\end_inset + + +\series bold +then +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista +\emph default +; +\begin_inset space ~ +\end_inset + +[ +\begin_inset space ~ +\end_inset + + +\series bold +elif +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista +\emph default +; +\begin_inset space ~ +\end_inset + + +\series bold +then +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista +\emph default +; +\begin_inset space ~ +\end_inset + +] +\begin_inset space ~ +\end_inset + +... +\begin_inset space ~ +\end_inset + +[ +\begin_inset space ~ +\end_inset + + +\series bold +else +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista +\emph default +; +\begin_inset space ~ +\end_inset + +] +\begin_inset space ~ +\end_inset + + +\series bold +fi +\family default +\series default + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + Ejecuta la +\family typewriter +\emph on +lista +\family default +\emph default + en +\family typewriter +\series bold +if +\family default +\series default + y, si devuelve cero, ejecuta la +\family typewriter +\emph on +lista +\family default +\emph default + en +\family typewriter +\series bold +then +\family default +\series default +. + De lo contrario evalúa la +\family typewriter +\emph on +lista +\family default +\emph default + de cada +\family typewriter +\series bold +elif +\family default +\series default + y, si devuelve cero, ejecuta la +\family typewriter +\emph on +lista +\family default +\emph default + en el +\family typewriter +\series bold +then +\family default +\series default + correspondiente y termina el comando, y si esto no ocurre, se ejecuta la + +\family typewriter +\emph on +lista +\family default +\emph default + en +\family typewriter +\series bold +else +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +case +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +palabra +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +in +\series default + +\begin_inset space ~ +\end_inset + +[ +\begin_inset space ~ +\end_inset + + +\emph on +patrón +\emph default + +\begin_inset space ~ +\end_inset + +[ +\begin_inset space ~ +\end_inset + + +\series bold +| +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +patrón +\emph default + +\begin_inset space ~ +\end_inset + +] +\begin_inset space ~ +\end_inset + +... +\begin_inset space ~ +\end_inset + +) +\begin_inset space ~ +\end_inset + + +\emph on +lista +\emph default + +\begin_inset space ~ +\end_inset + +;; +\begin_inset space ~ +\end_inset + +] +\begin_inset space ~ +\end_inset + +... +\begin_inset space ~ +\end_inset + + +\series bold +esac +\family default +\series default + Busca el primer +\family typewriter +\emph on +patrón +\family default +\emph default + que coincida (según +\begin_inset Quotes fld +\end_inset + +Expansión de nombres de archivo +\begin_inset Quotes frd +\end_inset + + pero sin considerar +\family typewriter +/ +\family default + de manera especial) con el valor de la +\family typewriter +\emph on +palabra +\family default +\emph default + una vez expandida y ejecuta la +\family typewriter +\emph on +lista +\family default +\emph default + correspondiente. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +while +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista1 +\emph default +; +\begin_inset space ~ +\end_inset + + +\series bold +do +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista2 +\emph default +; +\begin_inset space ~ +\end_inset + + +\series bold +done +\family default +\series default + Ejecuta +\family typewriter +\emph on +lista1 +\family default +\emph default + y, si devuelve 0, ejecuta +\family typewriter +\emph on +lista2 +\family default +\emph default + y repite esta acción. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +for +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +nombre +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +in +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +palabra +\emph default + +\begin_inset space ~ +\end_inset + +... +\begin_inset space ~ +\end_inset + +; +\begin_inset space ~ +\end_inset + + +\series bold +do +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista +\emph default + +\begin_inset space ~ +\end_inset + +; +\begin_inset space ~ +\end_inset + + +\series bold +done +\family default +\series default + Una vez expandida la lista de +\family typewriter +\emph on +palabra +\family default +\emph default +s, para cada una, ejecuta +\family typewriter +\emph on +lista +\family default +\emph default + con la variable +\family typewriter +\emph on +nombre +\family default +\emph default + establecida a dicha palabra, en orden. +\end_layout + +\begin_layout Paragraph* +Definiciones de funciones +\end_layout + +\begin_layout Standard +Una función +\emph on +shell +\emph default + es un objeto que se llama como un comando simple y ejecuta un comando compuesto + con un nuevo conjunto de parámetros posicionales. + Se declaran como: +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +function +\series default + +\emph on +nombre +\emph default + +\emph on +comando_compuesto +\end_layout + +\begin_layout Subsubsection* +PARÁMETROS +\end_layout + +\begin_layout Standard +Un parámetro es una entidad que almacena valores, y puede ser un nombre, + un número o uno de los caracteres en +\begin_inset Quotes fld +\end_inset + +Parámetros especiales +\begin_inset Quotes frd +\end_inset + +. + Si es un nombre se le llama +\series bold +variable +\series default +, y puede ser asignado mediante la sentencia +\family typewriter +nombre=[ +\emph on +valor +\emph default +] +\family default +. + No puede haber espacios entre el +\family typewriter +\emph on +nombre +\family default +\emph default +, el signo +\family typewriter += +\family default + y el +\family typewriter +\emph on +valor +\family default +\emph default +. +\end_layout + +\begin_layout Paragraph* +Parámetros posicionales +\end_layout + +\begin_layout Standard +Se denotan por un número positivo distinto de 0 en decimal. +\end_layout + +\begin_layout Paragraph* +Parámetros especiales +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +@ +\family default +\series default + Todos los parámetros posicionales, en orden creciente. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +# +\family default +\series default + Número de parámetros posicionales, en decimal. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +? +\family default +\series default + Estado de salida de la tubería ejecutada más recientemente en primer plano. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +$ +\family default +\series default + PID del +\emph on +shell +\emph default + actual. + Si se ejecuta en un +\emph on +subshell +\emph default + con +\family typewriter +() +\family default +, no devuelve el PID del +\emph on +subshell +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +! +\family default +\series default + PID del último trabajo puesto a ejecutar en segundo plano. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +0 +\family default +\series default + Nombre con el que se ha invocado al +\emph on +script +\emph default +. +\end_layout + +\begin_layout Paragraph* +Variables de shell +\end_layout + +\begin_layout Description + +\family typewriter +PWD +\family default + El directorio actual, variable establecida por el +\emph on +shell +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +HOME +\family default +\series default + Directorio personal del usuario actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +PATH +\family default +\series default + Lista de directorios separados por +\family typewriter +: +\family default + en los que el +\emph on +shell +\emph default + busca comandos. +\end_layout + +\begin_layout Subsubsection* +EXPANSIÓN +\end_layout + +\begin_layout Standard +Una barra invertida ( +\family typewriter + +\backslash + +\family default +) anula el significado especial del caracter siguiente. + Encerrar ca +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +rac +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +te +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +res entre comillas simples ( +\family typewriter +' +\family default +) preserva el valor literal de todos, incluso de +\family typewriter + +\backslash + +\family default +, anulando la expansión y la separación de palabras. + Encerrarlos entre comillas dobles ( +\family typewriter +" +\family default +) anula toda expansión salvo la expansión de parámetros, la sustitución + de comandos y el significado de +\family typewriter + +\backslash + +\family default + cuando el siguiente caracter es +\family typewriter +$ +\family default +, +\family typewriter +` +\family default +, +\family typewriter +" +\family default + o un salto de línea. +\end_layout + +\begin_layout Paragraph* +Expansión de llaves +\end_layout + +\begin_layout Standard +Una palabra que contenga +\family typewriter +{ +\emph on +arg1 +\emph default +, +\emph on +arg2 +\emph default +, +\family default +... +\family typewriter +} +\family default + es sustituida (recursivamente) por varias palabras resultado de sustituir + dicha expresión por cada una de las palabras entre llaves. +\end_layout + +\begin_layout Paragraph* +Expansión de tilde +\end_layout + +\begin_layout Standard +En una palabra no entrecomillada, si empieza por +\family typewriter +\series bold +~ +\family default +\series default + seguido de +\family typewriter +\series bold +/ +\family default +\series default +, o si este es el único caracter de la palabra, este es sustituido por el + valor del parámetro +\family typewriter +\series bold +HOME +\family default +\series default +. +\end_layout + +\begin_layout Paragraph* +Expansión de parámetros +\end_layout + +\begin_layout Standard + +\family typewriter +${ +\emph on +parámetro +\emph default +} +\family default + es sustituido por el valor del +\family typewriter +\emph on +parámetro +\family default +\emph default +. + Las llaves son opcionales y sirven para delimitar el parámetro (de lo contrario + se considera que es el nombre más largo formado por caracteres consecutivos + después del +\family typewriter +$ +\family default + o, si no hay ninguno, por el primer caracter). + Si el primer caracter del +\family typewriter +\emph on +parámetro +\family default +\emph default + es +\family typewriter +\series bold +! +\family default +\series default +, el valor de la variable formada por el resto del +\family typewriter +\emph on +parámetro +\family default +\emph default + se usa como nombre del parámetro y es expandido en lugar del propio parámetro. +\end_layout + +\begin_layout Paragraph* +Sustitución de comandos +\end_layout + +\begin_layout Standard + +\family typewriter +$( +\emph on +comando +\emph default +) +\family default + o +\family typewriter +` +\emph on +comando +\emph default +` +\family default + ejecuta el +\family typewriter +\emph on +comando +\family default +\emph default + en una +\emph on +subshell +\emph default + y es sustituido por la salida del comando. + Sin comillas, el intérprete entiende los saltos de línea dentro de la salida + como separadores de palabras. +\end_layout + +\begin_layout Subsubsection* +Expansión aritmética +\end_layout + +\begin_layout Standard + +\family typewriter +$(( +\emph on +expresión +\emph default +)) +\family default + se sustituye por el resultado de evaluar la +\family typewriter +\emph on +expresión +\family default +\emph default + aritmética (ver +\begin_inset Quotes fld +\end_inset + +Evaluación aritmética +\begin_inset Quotes frd +\end_inset + +). + +\end_layout + +\begin_layout Paragraph* +División de palabras +\end_layout + +\begin_layout Standard +Se preservan los argumentos nulos +\family typewriter +"" +\family default + y +\family typewriter +'' +\family default +, pero no los que resultan de una expansión de un parámetro sin valor. +\end_layout + +\begin_layout Paragraph* +Expansión de rutas de archivo +\end_layout + +\begin_layout Standard +Cuando una palabra contiene +\family typewriter +* +\family default +, +\family typewriter +? +\family default + o +\family typewriter +[ +\family default +, el intérprete lo sustituye por una lista de nombres de archivo que cumplan + el patrón indicado. + El caracter +\family typewriter +. + +\family default + al principio de un nombre o inmediatamente detrás de una +\family typewriter +/ +\family default + debe reconocerse explícitamente en el patrón. + En este, la mayoria de caracteres se reconocen a sí mismo, +\family typewriter +* +\family default + reconoce cero o más caracteres cualesquiera, +\family typewriter +? +\family default + un caracter cualquiera, y +\family typewriter +[ +\family default +... +\family typewriter +] +\family default + indica cualquiera de los caracteres entre corchetes, salvo porque si el + primer caracter es +\family typewriter +! +\family default +, el significado pasa a ser cualquier caracter no indicado tras el +\family typewriter +! +\family default +, pudiendo en ambos casos indicar rangos como +\family typewriter +\emph on +a +\emph default +- +\emph on +z +\family default +\emph default +, +\end_layout + +\begin_layout Paragraph +Eliminación de comillas +\end_layout + +\begin_layout Standard +Una vez realizadas todas las expansiones se eliminan todas las ocurrencias + no entrecomilladas de los caracteres +\family typewriter + +\backslash + +\family default +, +\family typewriter +' +\family default + y +\family typewriter +" +\family default + que no fueran generadas por dichas expansiones. +\end_layout + +\begin_layout Subsubsection* +REDIRECCIÓN +\end_layout + +\begin_layout Standard +Estos operadores pueden aparecer detrás de un comando para redirigir su + entrada y salida. +\end_layout + +\begin_layout Paragraph* +Redirección de entrada +\end_layout + +\begin_layout Standard +Con +\family typewriter +[ +\emph on +n +\emph default +]< +\emph on +fichero +\family default +\emph default + para redirigir la entrada del descriptor +\family typewriter +\emph on +n +\family default +\emph default + (o 0) desde +\family typewriter +\emph on +fichero +\family default +\emph default +. +\end_layout + +\begin_layout Paragraph* +Redirección de salida +\end_layout + +\begin_layout Standard +Con +\family typewriter +[ +\emph on +n +\emph default +]> +\emph on +fichero +\family default +\emph default + para redirigir la salida del descriptor +\family typewriter +\emph on +n +\family default +\emph default + (o 1) al +\family typewriter +\emph on +fichero +\family default +\emph default +, truncándolo si ya existía. +\end_layout + +\begin_layout Paragraph* +Anexado de salida redirigida +\end_layout + +\begin_layout Standard +Con +\family typewriter +[ +\emph on +n +\emph default +]>> +\emph on +fichero +\family default +\emph default +, similar a lo anterior pero si el +\family typewriter +\emph on +fichero +\family default +\emph default + existe añade los nuevos datos al final. +\end_layout + +\begin_layout Paragraph* +Duplicado de descriptores de archivo +\end_layout + +\begin_layout Standard +Con +\family typewriter +[ +\emph on +n +\emph default +]>& +\emph on +m +\family default +\emph default + para duplicar la salida del descriptor +\family typewriter +\emph on +n +\family default +\emph default + (o 1) al descriptor +\family typewriter +\emph on +m +\family default +\emph default +. +\end_layout + +\begin_layout Subsubsection* +ALIAS +\end_layout + +\begin_layout Standard +Permiten que una cadena sea sustituida por una palabra cuando se usa como + la primera de un comando simple. + Si esta primera palabra no está entre comillas, se comprueba para ver si + es un alias, en cuyo caso se reemplaza por el texto del alias. +\end_layout + +\begin_layout Subsubsection* +EVALUACIÓN ARITMÉTICA +\end_layout + +\begin_layout Standard +Las expresiones entre paréntesis (que no tienen que ir precedidos por +\family typewriter + +\backslash + +\family default +) se evalúan primero. + De mayor a menor prioridad: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +- +\begin_inset space ~ +\end_inset + ++ +\family default + Menos y más unarios. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +** +\family default + Exponencial. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +* +\begin_inset space ~ +\end_inset + +/ +\begin_inset space ~ +\end_inset + +% +\family default + Multiplicación, división y resto. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter ++ +\begin_inset space ~ +\end_inset + +- +\family default + Suma y resta. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter += +\family default + Asignación (a la izquierda está el nombre de una variable). +\end_layout + +\begin_layout Standard +La expansión de parámetros se realiza antes de evaluar la expresión, y los + valores de parámetros se fuerzan a un entero. + Las constantes que empiezan por +\family typewriter +0 +\family default + se interpretan en octal, mientras que las que empiezan por +\family typewriter +0x +\family default + o +\family typewriter +0X +\family default + se interpretan como hexadecimal. + No debe haber espacio entre operandos y operadores. +\end_layout + +\begin_layout Subsubsection* +EJECUCIÓN DE COMANDOS +\end_layout + +\begin_layout Standard +Si el nombre del comando no contiene +\family typewriter +/ +\family default +, si es el nombre de una función la ejecuta, o si es el nombre de un comando + interno, y de lo contrario busca en los directorios en +\family typewriter +\series bold +PATH +\family default +\series default + uno que contenga un ejecutable con el nombre del comando. + Si contiene +\family typewriter +/ +\family default +, lo interpreta como una ruta a un ejecutable. + La ejecución de un fichero ejecutable se realiza mediante un +\family typewriter +fork +\family default + tras el cual el proceso hijo hace un +\family typewriter +exec +\family default + y el padre, salvo que el proceso se deba ejecutar en segundo plano, espera + a que termine el hijo con +\family typewriter +wait +\family default +. +\end_layout + +\begin_layout Subsubsection* +PROMPTS +\end_layout + +\begin_layout Standard +El intérprete suele mostrar un prompt como +\family typewriter +[ +\emph on +usuario +\emph default +@ +\emph on +nombremáquina +\emph default + +\emph on +directorio +\emph default +] $ +\family default +, donde +\family typewriter +\emph on +usuario +\family default +\emph default + es el nombre del usuario conectado al sistema, +\family typewriter +\emph on +nombremáquina +\family default +\emph default + es el nombre de la máquina y +\family typewriter +\emph on +directorio +\family default +\emph default + es el nombre del directorio actual, o +\family typewriter +~ +\family default + para el directorio personal del usuario. +\end_layout + +\begin_layout Subsubsection* +COMANDOS INTERNOS DEL SHELL +\end_layout + +\begin_layout Standard +Muchos de estos también son externos pero han sido incorporados al código + de +\family typewriter +bash +\family default + para acelerar su ejecución. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +alias +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +nombre +\emph default += +\emph on +valor +\family default +\emph default + Establece un alias con el +\family typewriter +\emph on +nombre +\family default +\emph default + y +\family typewriter +\emph on +valor +\family default +\emph default + dados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +break +\family default +\series default + Sale de un bucle +\family typewriter +\series bold +for +\family default +\series default + o +\family typewriter +\series bold +while +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +cd +\series default + +\begin_inset space ~ +\end_inset + +[ +\emph on +dir +\emph default +] +\series bold + +\family default +\series default +Cambia el directorio actual al último en que habíamos estado si +\family typewriter +\emph on +dir +\family default +\emph default + es +\family typewriter +- +\family default +, al directorio +\family typewriter +\emph on +dir +\family default +\emph default + en caso contrario, o al directorio personal si +\family typewriter +\emph on +dir +\family default +\emph default + no se especifica. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +continue +\family default +\series default + Continúa un bucle +\family typewriter +\series bold +for +\family default +\series default + o +\family typewriter +\series bold +while +\family default +\series default + por la siguiente iteración. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +echo +\series default + +\begin_inset space ~ +\end_inset + +[ +\emph on +opción +\emph default +]... + [ +\emph on +arg +\emph default +]... + +\family default + Imprime los +\family typewriter +\emph on +arg +\family default +\emph default +umentos por la salida estándar, separados por espacio y seguidos de un salto + de línea. + Con +\family typewriter +\series bold +-n +\family default +\series default +, no se imprime el salto de línea al final. + Con +\family typewriter +\series bold +-e +\family default +\series default +, interpreta las secuencias: +\end_layout + +\begin_deeper +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold + +\backslash +b +\family default +\series default + Retrocede una posición. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold + +\backslash +f +\family default +\series default + Alimentación de página. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold + +\backslash +n +\family default +\series default + Salto de línea. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold + +\backslash +t +\family default +\series default + Tabulador horizontal. +\end_layout + +\end_deeper +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +exit +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +n +\family default +\emph default + Provoca que el +\emph on +shell +\emph default + termine su ejecución con un estado de salida de +\family typewriter +\emph on +n +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +export +\series default + +\begin_inset space ~ +\end_inset + +[ +\emph on +nombre +\emph default +[= +\emph on +palabra +\emph default +]] +\family default + El +\family typewriter +\emph on +nombre +\family default +\emph default + dado se convierte en variable de entorno. + Si se proporciona una +\family typewriter +\emph on +palabra +\family default +\emph default +, se asigna como valor a la variable. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +help +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +comando +\family default +\emph default + Muestra ayuda detallada de un +\family typewriter +\emph on +comando +\family default +\emph default + interno. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +let +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +expr +\emph default +... + +\family default + Evalúa una lista de +\family typewriter +\emph on +expr +\family default +\emph default +esiones aritméticas. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +printf +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +formato +\emph default + +\begin_inset space ~ +\end_inset + +[ +\emph on +arg +\emph default +]... + +\family default + Imprime los +\family typewriter +\emph on +arg +\family default +\emph default +umentos por la salida estándar según un +\family typewriter +\emph on +formato +\family default +\emph default +, al estilo de C. + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +pwd +\family default +\series default + Imprime la ruta absoluta del directorio actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +read +\series default + +\begin_inset space ~ +\end_inset + +[ +\emph on +nombre +\emph default +] +\family default + Lee una línea de la entrada estándar y la asigna como valor de +\family typewriter +\emph on +nombre +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +set +\series default + +\begin_inset space ~ +\end_inset + +[ +\emph on +opción +\emph default +]... + +\family default + Sin opciones, imprime el nombre y el valor de todas las variables del +\emph on +shell +\emph default + (incluyendo las de entorno). + Opciones: +\end_layout + +\begin_deeper +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-u +\family default +\series default + Trata las variables no asignadas como errores en la expansión, mostrando + un mensaje de error. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\family default +\series default + Muestra las líneas de entrada de órdenes conforme se leen. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-x +\family default +\series default + Tras expandir cada comando simple, +\family typewriter +\series bold +for +\family default +\series default + o +\family typewriter +\series bold +case +\family default +\series default +, muestra el comando y sus argumentos expandidos. +\end_layout + +\end_deeper +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +shift +\family default +\series default + Los parámetros posicionales desde el 2 cambian su número a uno menos, y + el re +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +pre +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +sen +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ta +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +do por el número +\family typewriter +$# +\family default + se desestablece. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +test +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +expr +\family default +\emph default + Funciona como la orden externa +\family typewriter +test +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +[ +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +expr +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +] +\family default +\series default + Ídem. +\end_layout + +\begin_layout Subsection* + +\family typewriter +env +\end_layout + +\begin_layout Standard +Imprime el nombre y el valor de las variables de entorno. +\end_layout + +\begin_layout Section +Ficheros y directorios +\end_layout + +\begin_layout Subsection* + +\family typewriter +ls [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Lista información sobre los +\family typewriter +\emph on +FICHERO +\family default +\emph default +s (por defecto, el directorio actual). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-l +\family default +\series default + Lista en formato largo. + Cada línea se corresponde con una entrada. + El primer ca +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +rac +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ter es +\family typewriter +d +\family default + para un directorio, +\family typewriter +- +\family default + para un fichero regular, +\family typewriter +l +\family default + para un enlace simbólico, +\family typewriter +b +\family default + para un fichero especial de bloques, etc. + A continuación, los permisos en notación estándar, el número de enlaces + físicos que tiene la entrada, el usuario y el grupo al que pertenece, el + tamaño del fichero en bytes, su fecha y hora de última modificación y finalment +e su nombre. + Si no se especifica se usa el formato corto, que solo muestra el nombre. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-R +\family default +\series default + Lista también los subdirectorios de forma recursiva. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-a +\family default +\series default + No omite los ficheros y directorios +\begin_inset Quotes fld +\end_inset + +ocultos +\begin_inset Quotes frd +\end_inset + + (los que empiezan por +\family typewriter +. +\family default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-S +\family default +\series default + Ordena por tamaño, empezando por el fichero más grande. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-t +\family default +\series default + Ordena por tiempo de modificación, empezando por la entrada modificada + más recientemente. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Invierte el orden del listado. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\family default +\series default + Lista los directorios que se pasan como parámetros y no su contenido. +\end_layout + +\begin_layout Standard +Si hay dos opciones contradictorias, predomina la última. +\end_layout + +\begin_layout Subsection* + +\family typewriter +touch [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +FICHERO +\emph default +... +\end_layout + +\begin_layout Standard +Cambia el tiempo de modificación de cada +\family typewriter +\emph on +FICHERO +\family default +\emph default + al actual. + Un +\family typewriter +\emph on +FICHERO +\family default +\emph default + que no existe es creado vacío. +\end_layout + +\begin_layout Subsection* + +\family typewriter +cp +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +cp +\series default + [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +-T +\emph default +] +\emph on +ORIGEN DESTINO +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +cp +\series default + [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +ORIGEN +\emph default +... + +\emph on +DIRECTORIO +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +cp +\series default + [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +-t DIRECTORIO ORIGEN +\emph default +... +\end_layout + +\begin_layout Standard +Copia +\family typewriter +\emph on +ORIGEN +\family default +\emph default + a +\family typewriter +\emph on +DESTINO +\family default +\emph default +, o múltiples +\family typewriter +\emph on +ORÍGEN +\family default +\emph default +es a un +\family typewriter +\emph on +DIRECTORIO +\family default +\emph default + existente. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Copia directorios recursivamente. + Usado para copiar directorios. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\family default +\series default + Pide confirmación antes de sobrescribir. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-a +\family default +\series default + Equivale a +\family typewriter +-dR --preserve=all +\family default +, que conserva todos los atributos posibles de los +\family typewriter +\emph on +ORÍGEN +\family default +\emph default +es. + Sin esto, los elementos copiados tienen como usuario y grupo a quien hace + la copia, como tiempos asociados los de cuando la copia termina, los permisos + dependen de la configuración del sistema y usuario, etc. +\end_layout + +\begin_layout Subsection* + +\family typewriter +mv +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +mv +\series default + [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +-T +\emph default +] +\emph on +ORIGEN DESTINO +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +mv +\series default + [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +ORIGEN +\emph default +... + +\emph on +DIRECTORIO +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +mv +\series default + [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +-t DIRECTORIO ORIGEN +\emph default +... +\end_layout + +\begin_layout Standard +Cambia el nombre de +\family typewriter +\emph on +ORIGEN +\family default +\emph default + a +\family typewriter +\emph on +DESTINO +\family default +\emph default +, o mueve +\family typewriter +\emph on +ORÍGEN +\family default +\emph default +es a +\family typewriter +\emph on +DIRECTORIO +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\family default +\series default + Pide confirmación antes de sobrescribir. +\end_layout + +\begin_layout Subsection* + +\family typewriter +rm [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Borra (desenlaza) los +\family typewriter +\emph on +FICHERO +\family default +\emph default +s. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\family default +\series default + Pide confirmación antes de borrar cada entrada. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Elimina directorios y sus contenidos recursivamente. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-f +\family default +\series default + Nunca pide confirmación. +\end_layout + +\begin_layout Subsection* + +\family typewriter +mkdir [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +DIRECTORIO +\emph default +... +\end_layout + +\begin_layout Standard +Crea los +\family typewriter +\emph on +DIRECTORIO +\family default +\emph default +s, si no existen ya. +\end_layout + +\begin_layout Subsection* + +\family typewriter +rmdir [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +DIRECTORIO +\emph default +... +\end_layout + +\begin_layout Standard +Elimina los +\family typewriter +\emph on +DIRECTORIO +\family default +\emph default +s, si están vacíos. +\end_layout + +\begin_layout Subsection* + +\family typewriter +cat [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Concatena +\family typewriter +\emph on +FICHERO +\family default +\emph default +s a la salida estándar. +\end_layout + +\begin_layout Subsection* + +\family typewriter +less [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Muestra el contenido de los +\family typewriter +\emph on +FICHERO +\family default +\emph default +s (o de la entrada estándar) página a página, pudiendo avanzar y retroceder. +\end_layout + +\begin_layout Subsubsection* +COMANDOS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +/ +\emph on +patrón +\family default +\emph default + Busca hacia delante una línea que contenga el +\family typewriter +\emph on +patrón +\family default +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +chown [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +PROPIETARIO +\emph default +][ +\emph on +: +\emph default +[ +\emph on +GRUPO +\emph default +]] +\emph on +FICHERO +\emph default +... +\end_layout + +\begin_layout Standard +Cambia el usuario y/o grupo de cada fichero dado. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-R +\family default +\series default + Opera en ficheros y directorios recursivamente. +\end_layout + +\begin_layout Subsection* + +\family typewriter +chgrp [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +GRUPO FICHERO +\emph default +... +\end_layout + +\begin_layout Standard +Cambia el grupo de cada +\family typewriter +\emph on +FICHERO +\family default +\emph default + a +\family typewriter +\emph on +GRUPO +\family default +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +chmod [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +MODO FICHERO +\emph default +... +\end_layout + +\begin_layout Standard +Establece los permisos de los +\family typewriter +\emph on +FICHERO +\family default +\emph default +s a los indicados en +\family typewriter +\emph on +MODO +\family default +\emph default +, que puede ser una representación simbólica de los cambios o un número + en octal. +\end_layout + +\begin_layout Standard +La representación simbólica tiene formato +\family typewriter +[ +\series bold +ugo +\series default +...][[ +\series bold +-+ +\series default +][ +\emph on +perms +\emph default +...]...] +\family default +, donde +\family typewriter +\emph on +perms +\family default +\emph default + es 0 o más letras de +\family typewriter +\series bold +rwxXst +\family default +\series default + o una sola letra del conjunto +\family typewriter +\series bold +ugo +\family default +\series default +. + La combinación de las letras +\family typewriter +\series bold +ugo +\family default +\series default + controla qué permisos cambian: los de usuario ( +\family typewriter +\series bold +u +\family default +\series default +), grupo ( +\family typewriter +\series bold +g +\family default +\series default +) u otros ( +\family typewriter +\series bold +o +\family default +\series default +). + El operador +\family typewriter +\series bold ++ +\family default +\series default + causa que los bits seleccionados se añadan a los existentes, y +\family typewriter +\series bold +- +\family default +\series default + causa que se eliminen. + Las letras +\family typewriter +\series bold +rwxXst +\family default +\series default + seleccionan los bits de modo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +find [ +\emph on +punto-de-inicio +\emph default +]... + [expresión] +\end_layout + +\begin_layout Standard +Busca en los árboles de directorios a partir de cada +\family typewriter +punto-de-inicio +\family default + dado (por defecto +\family typewriter +. +\family default +) evaluando la +\family typewriter +expresión +\family default +, de izquierda a derecha, de acuerdo a las reglas de precedencia, hasta + que se conoce el resultado. +\end_layout + +\begin_layout Subsubsection* +EXPRESIÓN +\end_layout + +\begin_layout Standard +Está compuesta por una secuencia de: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +Tests Devuelven verdadero o falso normalmente según alguna propiedad del + fichero. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +Acciones Tienen efectos secundarios y devuelven verdadero o falso normalmente + según si tienen éxito o no. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +Opciones +\begin_inset space ~ +\end_inset + +globales Afectan a la operación de los tests y acciones en cualquier parte + de la línea de comandos. + Siempre devuelven verdadero. + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +Operadores Unen los otros elementos dentro de la expresión. +\end_layout + +\begin_layout Subsubsection* +OPCIONES GLOBALES +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-depth +\family default +\series default + Procesa el contenido de cada directorio antes del directorio en sí. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-maxdepth +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +N +\family default +\emph default + Desciende un máximo de +\family typewriter +\emph on +N +\family default +\emph default + (entero no negativo) niveles. + Así, si +\family typewriter +\emph on +N +\family default +\emph default + es 0, solo se procesan los +\family typewriter +punto +\family default +s +\family typewriter +-de-inicio +\family default +. +\end_layout + +\begin_layout Subsubsection* +TESTS +\end_layout + +\begin_layout Standard +Los argumentos numéricos (indicados como +\family typewriter +\emph on +n +\family default +\emph default +) pueden ser especificados como +\family typewriter +\emph on ++n +\family default +\emph default + para mayor que +\family typewriter +\emph on +n +\family default +\emph default +, +\family typewriter +\emph on +-n +\family default +\emph default + para menor que +\family typewriter +\emph on +n +\family default +\emph default + o +\family typewriter +\emph on +n +\family default +\emph default + para exactamente +\family typewriter +\emph on +n +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-empty +\family default +\series default + El fichero o directorio es vacío. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-name +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +patrón +\emph default + +\family default +El nombre coincide con el patrón, el cual reconoce +\family typewriter +* +\family default +, +\family typewriter +? +\family default + y +\family typewriter +[ +\family default + igual que +\family typewriter +bash +\family default + pero no excluye del reconocimiento un +\family typewriter +. + +\family default + al comienzo del nombre de archivo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-iname +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +patrón +\family default +\emph default + Como +\family typewriter +-name +\family default +, pero sin distinguir mayúsculas de minúsculas. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-size +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +n +\emph default +[cwbkMG] +\family default +El tamaño del fichero es, redondeando al alza a la unidad especificada, + +\family typewriter +\emph on +n +\family default +\emph default +. + La unidad puede ser: +\family typewriter +c +\family default + para bytes, +\family typewriter +w +\family default + para palabras de 2 bytes, +\family typewriter +b +\family default + para bloques de 512 bytes (por defecto), +\family typewriter +k +\family default + para kiBs, +\family typewriter +M +\family default + para MiBs y +\family typewriter +G +\family default + para GiBs. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-mtime +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +n +\emph default + +\family default +El archivo fue modificado por última vez hace +\family typewriter +\emph on +n +\family default +\emph default + días, redondeando a la baja. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-atime +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +n +\emph default + +\family default +Igual pero para el último acceso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-ctime +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +n +\emph default + +\family default +Igual pero para el último cambio de estado (ubicación y metadatos). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-newer +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +fichero +\emph default + +\family default +El fichero ha sido modificado más recientemente que el fichero dado. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-type +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +c +\emph default + +\family default +El fichero es de tipo +\family typewriter +\emph on +c +\family default +\emph default +, que es +\family typewriter +d +\family default + para directorios, +\family typewriter +f +\family default + para ficheros ordinarios, +\family typewriter +l +\family default + para enlaces simbólicos, etc. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-perm +\series default + +\begin_inset space ~ +\end_inset + +[-|/] +\emph on +mode +\emph default + +\family default +El fichero tiene los permisos indicados (si no hay un prefijo), al menos + estos permisos ( +\family typewriter +- +\family default +) y alguno de estos ( +\family typewriter +/ +\family default +). +\end_layout + +\begin_layout Subsubsection* +ACCIONES +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-print +\family default +\series default + Imprime la ruta de archivo completa seguida de un salto de línea y devuelve + verdadero. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-exec +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +comando +\emph default + +\family default +Ejecuta un comando, formado por todos los argumentos que siguen a +\family typewriter +-exec +\family default + hasta encontrar un argumento +\begin_inset Quotes fld +\end_inset + + +\family typewriter +; +\family default + +\begin_inset Quotes frd +\end_inset + + (exclusive), sustituyendo en este la cadena +\family typewriter +{} +\family default + por el nombre del archivo. + Devuelve verdadero si y sólo si el comando devuelve 0. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-ok +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +comando +\emph default + +\family default +Como +\family typewriter +-exec +\family default + pero pregunta primero al usuario si desea ejecutar el comando, y si no + acepta, devuelve falso. + La entrada de dicho comando se redirige desde +\family typewriter +/dev/null +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-printf +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +formato +\family default +\emph default + Imprime +\family typewriter +\emph on +formato +\family default +\emph default + interpretando secuencias de escape con +\family typewriter + +\backslash + +\family default + como en C y directivas +\family typewriter +% +\family default +: +\family typewriter +%p +\family default +indica el nombre del fichero, +\family typewriter + %s +\family default + su tamaño, +\family typewriter +%u +\family default + el nombre de su pro +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +pie +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ta +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +rio, etc. +\end_layout + +\begin_layout Subsubsection* +OPERADORES +\end_layout + +\begin_layout Standard +De mayor a menor prioridad: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +( +\begin_inset space ~ +\end_inset + + +\emph on +expr +\emph default + +\begin_inset space ~ +\end_inset + +) +\family default + Fuerza prioridad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +! +\begin_inset space ~ +\end_inset + + +\emph on +expr +\family default +\emph default + Cierto si +\family typewriter +\emph on +expr +\family default +\emph default + es falso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +expr1 +\begin_inset space ~ +\end_inset + +expr2 +\family default +\emph default + Conjunción. + +\family typewriter +\emph on +expr2 +\family default +\emph default + no es evaluada si +\family typewriter +\emph on +expr1 +\family default +\emph default + devuelve falso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +expr1 +\emph default + +\begin_inset space ~ +\end_inset + +-a +\begin_inset space ~ +\end_inset + + +\emph on +expr2 +\family default +\emph default + Igual que +\family typewriter +\emph on +expr1 expr2 +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +expr1 +\emph default + +\begin_inset space ~ +\end_inset + +-o +\begin_inset space ~ +\end_inset + + +\emph on +expr2 +\family default +\emph default + Disyunción. + +\family typewriter +\emph on +expr2 +\family default +\emph default + no es evaluada si +\family typewriter +\emph on +expr1 +\family default +\emph default + devuelve verdadero. +\end_layout + +\begin_layout Subsection* + +\family typewriter +mktemp +\end_layout + +\begin_layout Standard +Crea un fichero temporal de forma segura e imprime su nombre. +\end_layout + +\begin_layout Subsection* + +\family typewriter +dd [ +\emph on +OPERANDO +\emph default +]... +\end_layout + +\begin_layout Standard +Copia un fichero, convirtiendo y formateando según los operandos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +bs= +\series default +\emph on +BYTES +\family default +\emph default + Lee y escribe hasta +\family typewriter +\emph on +BYTES +\family default +\emph default + bytes a la vez. + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +count +\series default += +\emph on +N +\family default +\emph default + Copia sólo +\family typewriter +\emph on +N +\family default +\emph default + bloques de la entrada. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +if= +\series default +\emph on +FICHERO +\family default +\emph default + Lee del +\family typewriter +\emph on +FICHERO +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +of= +\series default +\emph on +FICHERO +\family default +\emph default + Escribe al +\family typewriter +\emph on +FICHERO +\family default +\emph default +. +\end_layout + +\begin_layout Standard + +\family typewriter +\emph on +BYTES +\family default +\emph default + y +\family typewriter +\emph on +N +\family default +\emph default + pueden ir seguidos de sufijos multiplicativos: +\begin_inset Formula $\mathtt{M}=1024\cdot1024$ +\end_inset + +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +/dev/zero +\end_layout + +\begin_layout Standard +Las lecturas desde este fichero especial siempre devuelven bytes que contienen + 0. +\end_layout + +\begin_layout Section +Ayuda +\end_layout + +\begin_layout Subsection* + +\family typewriter +apropos [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +palabra-clave +\emph default +... +\end_layout + +\begin_layout Standard +Busca la +\family typewriter +\emph on +palabra-clave +\family default +\emph default + en las descripciones de las páginas del manual. +\end_layout + +\begin_layout Subsection* + +\family typewriter +whatis [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +nombre +\emph default +... +\end_layout + +\begin_layout Standard +Busca entre los nombres de las páginas del manual aquellos que se asemejen + al +\family typewriter +\emph on +nombre +\family default +\emph default + dado. +\end_layout + +\begin_layout Subsection* + +\family typewriter +man +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +man +\series default + [ +\series bold +-a +\series default +] [ +\series bold +-S +\series default + +\emph on +lista +\emph default +] [[ +\emph on +sección +\emph default +] +\emph on +página +\emph default +... + ]... +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +man -k +\series default + +\emph on +palabra-clave +\emph default +... +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +man -f +\series default + +\emph on +página +\emph default +... +\end_layout + +\begin_layout Subsubsection* +DESCRIPCIÓN +\end_layout + +\begin_layout Standard +Muestra la +\family typewriter +\emph on +página +\family default +\emph default + indicada en la +\family typewriter +\emph on +sección +\family default +\emph default + indicada (si no se especifica, va buscándola en las secciones en un cierto + orden) dentro del manual del sistema. + Las +\family typewriter +\emph on +página +\family default +\emph default +s están ordenadas en +\family typewriter +\emph on +seccion +\family default +\emph default +es para programación, administración del sistema, funciones de biblioteca + de C, ficheros de configuración, etc. + El número de +\family typewriter +\emph on +sección +\family default +\emph default + aparece, junto con el nombre de la +\family typewriter +\emph on +página +\family default +\emph default +, en la primera línea de esta. +\end_layout + +\begin_layout Subsubsection* +OPCIONES +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-a +\family default +\series default + No termina la búsqueda en la primera página, sino que muestra todas las + coincidentes. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-S +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +lista +\family default +\emph default + +\family typewriter +\emph on +lista +\family default +\emph default + es una lista de números de sección separadas por +\family typewriter +: +\family default + que sobrescribe el orden en que se buscan las páginas (puede especificarse + una sola sección). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-k +\family default +\series default + Equivale a +\family typewriter +apropos +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-f +\family default +\series default + Equivale a +\family typewriter +whatis +\family default +. +\end_layout + +\begin_layout Subsubsection* +FICHEROS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +/etc/man.db.conf +\family default + Configuración de +\family typewriter +man +\family default +. +\end_layout + +\begin_layout Section +Filtros +\end_layout + +\begin_layout Standard +Son programas que reciben información por la entrada estándar, la procesan + y muestran el resultado por su salida estándar. +\end_layout + +\begin_layout Subsection* + +\family typewriter +grep [ +\emph on +OPCIÓN +\emph default +]... + PATRÓN [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Busca un +\family typewriter +\emph on +PATRÓN +\family default +\emph default + en cada +\family typewriter +\emph on +FICHERO +\family default +\emph default + (o en la entrada estándar). +\end_layout + +\begin_layout Paragraph* +Control de reconocimiento +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\family default +\series default + Ignora diferencias entre mayúsculas y minúsculas +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\family default +\series default + Invierte el sentido del reconocimiento, seleccionando sólo las líneas que + no coinciden. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-w +\family default +\series default + Selecciona solo las líneas que contienen el patrón como palabra completa, + esto es, al principio de la línea o precedido por un caracter no alfabético, + y al final de la línea o seguido de un caracter no alfabético. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-x +\family default +\series default + Selecciona sólo las líneas que coinciden completamente con el patrón. +\end_layout + +\begin_layout Subsubsection* +Control de salida general +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-c +\family default +\series default + No muestra las líneas coincidentes sino su número. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-l +\family default +\series default + No muestras las líneas coincidentes sino los archivos en los que hay alguna. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-o +\family default +\series default + Muestra solo las partes coincidentes no vacías de cada línea, con cada + parte en una línea separada. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-q +\family default +\series default + No imprime nada a la salida estándar. +\end_layout + +\begin_layout Paragraph +Control de los prefijos de línea en la salida +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-h +\family default +\series default + Suprime el nombre de archivo como prefijo de cada línea. + Esto es por defecto cuando sólo hay un +\family typewriter +\emph on +FICHERO +\family default +\emph default + (o sólo la entrada estándar). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\family default +\series default + Prefija cada línea con su número dentro del fichero, siendo la primera + la 1. +\end_layout + +\begin_layout Subsubsection* +EXPRESIONES REGULARES +\end_layout + +\begin_layout Standard +Una expresión regular es un patrón que describe un conjunto de cadenas de + caracteres. + La mayoría de caracteres son expresiones que se reconocen a sí mismas. + Un caracter con significado especial debe ser precedido por +\family typewriter + +\backslash + +\family default + para que tenga este comportamiento. + El +\family typewriter +. + +\family default + reconoce un único caracter cualquiera. +\end_layout + +\begin_layout Paragraph* +Clases de caracteres y expresiones entre corchetes +\end_layout + +\begin_layout Standard +La sintaxis +\family typewriter +[ +\family default +... +\family typewriter +] +\family default + indica un caracter cualquiera entre los corchetes, salvo si el primero + es ^, que entonces es un caracter cualquiera que no este entre dicho +\family typewriter +^ +\family default + y el +\family typewriter +] +\family default +, exclusive. + En ambos casos se pueden usar rangos como +\family typewriter +\emph on +a +\emph default +- +\emph on +z +\family default +\emph default +, que indican todos los caracteres entre +\family typewriter +\emph on +a +\family default +\emph default + y +\family typewriter +\emph on +z +\family default +\emph default +, inclusive. +\end_layout + +\begin_layout Paragraph* +Posicionamiento +\end_layout + +\begin_layout Standard + +\family typewriter +^ +\family default + y +\family typewriter +$ +\family default + se refieren respectivamente a una cadena vacía al principio o al final + de una línea. +\end_layout + +\begin_layout Paragraph +Repetición +\end_layout + +\begin_layout Standard +Una expresión puede ir seguida por +\family typewriter +* +\family default + para indicar que esta se puede repetir cero o más veces, por +\family typewriter + +\backslash ++ +\family default + indicando que se puede repetir una o más veces o por +\family typewriter + +\backslash +{ +\emph on +n +\emph default +, +\emph on +m +\emph default +} +\family default + para indicar que se puede repetir entre +\family typewriter +\emph on +n +\family default +\emph default + y +\family typewriter +\emph on +m +\family default +\emph default + veces, inclusive. +\end_layout + +\begin_layout Subsubsection* +Concatenación +\end_layout + +\begin_layout Standard +Dos expresiones regulares se pueden concatenar para formar una expresión + que reconoce a cualquier cadena formada por la concatenación de dos subcadenas + reconocidas respectivamente por estas subexpresiones. +\end_layout + +\begin_layout Subsubsection* +ESTADO DE SALIDA +\end_layout + +\begin_layout Standard +0 si alguna línea coincide, 1 si no coincide, y 2 si hay un error y no se + ha especificado +\family typewriter +-q +\family default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +sort [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Concatena los +\family typewriter +\emph on +FICHERO +\family default +\emph default +s (o lee de la entrada estándar) e imprime por la salida estándar el resultado + de ordenarlos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\family default +\series default + Ordena numéricamente (por defecto lo hace alfabéticamente), incluyendo + números negativos y con decimales, considerando que un número termina cuando + aparece el primer caracter no numérico, incluyendo espacios. + El separador decimal es +\family typewriter +. + +\family default + en inglés y +\family typewriter +, +\family default + en español. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Invierte el resultado de las comparaciones. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-k +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +KEYDEF +\family default +\emph default + Ordena según una clave dada por +\family typewriter +\emph on +KEYDEF +\family default +\emph default +. + Se puede especificar varias veces para indicar una lista de claves de las + que cada una se comprueba en caso de empate en la anterior. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-t +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +SEP +\family default +\emph default + Usa el caracter +\family typewriter +\emph on +SEP +\family default +\emph default + como separador de campos. +\end_layout + +\begin_layout Standard + +\family typewriter +\emph on +KEYDEF +\family default +\emph default + tiene formato +\family typewriter +F[.C][OPTS][,F[.C][OPTS]] +\family default + para las posiciones de inicio y final, donde +\family typewriter +F +\family default + es un número de campo y +\family typewriter +C +\family default + una posición de caracter en el campo, ambos empezando por 1, y la posición + de final por defecto es el final de línea. + Si no se ha especificado +\family typewriter +-t +\family default +, los caracteres de un campo se cuentan desde el principio del espacio en + blanco precedente, y +\family typewriter +OPTS +\family default + es una o más +\family typewriter +\emph on +OPCION +\family default +\emph default +es de una letra que sobrescriben las opciones de orden global para dicha + clave. +\end_layout + +\begin_layout Subsection* + +\family typewriter +tr [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +CONJUNTO1 +\emph default + [ +\emph on +CONJUNTO2 +\emph default +] +\end_layout + +\begin_layout Standard +Sustituye, elimina repeticiones o elimina caracteres de la entrada estándar, + escribiendo a la salida estándar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-c +\family default +\series default + Usa el complemento de +\family typewriter +\emph on +CONJUNTO1 +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\family default +\series default + Elimina caracteres de +\family typewriter +\emph on +CONJUNTO1 +\family default +\emph default +, no sustituye. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-s +\family default +\series default + Reemplaza secuencias de caracteres que aparecen en el último +\family typewriter +\emph on +CONJUNTO +\family default +\emph default + dado por una sola ocurrencia. +\end_layout + +\begin_layout Standard +Los +\family typewriter +\emph on +CONJUNTO +\family default +\emph default +s se especifican como secuencias de caracteres. + La mayoría se representan a sí mismos. + Secuencias interpretadas: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter + +\backslash +n +\family default + Salto de línea. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter + +\backslash +t +\family default + Tabulador. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +a +\emph default +- +\emph on +z +\family default +\emph default + Todos los caracteres desde +\family typewriter +\emph on +a +\family default +\emph default + hasta +\family typewriter +\emph on +z +\family default +\emph default + en orden ascendente. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +[ +\emph on +c +\emph default +* +\emph on +n +\emph default +] +\emph on +n +\family default +\emph default + copias de +\family typewriter +\emph on +c +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +[:alnum:] +\family default + Todas las letras y dígitos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +[:blank:] +\family default + Todos los caracteres de espaciado horizontal. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +[:digit:] +\family default + Todos los dígitos. +\end_layout + +\begin_layout Subsection* + +\family typewriter +cut +\emph on +OPCIÓN +\emph default +... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Imprime las partes seleccionadas de líneas de cada +\family typewriter +\emph on +FICHERO +\family default +\emph default +, o de la entrada estándar, a la salida estándar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-c +\series default +\emph on + +\begin_inset space ~ +\end_inset + +LISTA +\family default +\emph default + Selecciona solo estos caracteres. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +DELIM +\family default +\emph default + Usa +\family typewriter +\emph on +DELIM +\family default +\emph default + en vez de el tabulador como delimitador de campos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-f +\series default +\emph on + +\begin_inset space ~ +\end_inset + +LISTA +\family default +\emph default + Selecciona sólo estos campos; imprimiendo también por defecto cualquier + línea que no contenga delimitador. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--complement +\family default +\series default + Imprime el complemento de los caracteres o campos seleccionados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-s +\family default +\series default + No imprime líneas que no contengan delimitadores. +\end_layout + +\begin_layout Standard +Usar +\family typewriter +-c +\family default + o +\family typewriter +-f +\family default +, pero no ambos. + Cada +\family typewriter +\emph on +LISTA +\family default +\emph default + contiene un rango, o varios separados por comas. + Cada rango puede ser: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +n +\family default +\emph default + Caracter o campo +\family typewriter +\emph on +n +\family default +\emph default +-ésimo, contando desde 1. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +n +\family default +\emph default +- +\family typewriter +\emph on +m +\family default +\emph default + Del caracter o campo +\family typewriter +\emph on +n +\family default +\emph default +-ésimo al +\family typewriter +\emph on +m +\family default +\emph default +-ésimo, inclusive. +\end_layout + +\begin_layout Standard +Nótese que los campos vacíos también cuentan, por lo que a veces es necesario + usar +\family typewriter +tr +\family default + para eliminar repeticiones de +\family typewriter +\emph on +DELIM +\family default +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +uniq [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +ENTRADA +\emph default + [ +\emph on +SALIDA +\emph default +]] +\end_layout + +\begin_layout Standard +Filtra lineas adyacentes coincidentes de +\family typewriter +\emph on +ENTRADA +\family default +\emph default + (o la entrada estándar), escribiendo a +\family typewriter +\emph on +SALIDA +\family default +\emph default + (o la salida estándar). + Sin opciones, las líneas coincidentes (iguales) se eliminan a partir de + la segunda. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-c +\family default +\series default + Añade antes de cada línea el número de ocurrencias. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\family default +\series default + Sólo imprime líneas duplicadas, una por grupo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-D +\family default +\series default + Imprime todas las líneas duplicadas. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\family default +\series default + No distingue mayúsculas de minúsculas al comparar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-s +\begin_inset space ~ +\end_inset + + +\series default +\emph on +n +\family default +\emph default + No compara los +\family typewriter +\emph on +n +\family default +\emph default + primeros caracteres. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-w +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +n +\family default +\emph default + Sólo compara los +\family typewriter +\emph on +n +\family default +\emph default + primeros caracteres. +\end_layout + +\begin_layout Subsection* + +\family typewriter +head [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Imprime las primeras 10 líneas del +\family typewriter +\emph on +FICHERO +\family default +\emph default + (o la entrada estándar) a la salida estándar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +- +\series default +\emph on +n +\family default +\emph default + Imprime las primeras +\family typewriter +\emph on +n +\family default +\emph default + líneas en vez de las primeras 10. +\end_layout + +\begin_layout Subsection* + +\family typewriter +tail [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Imprime las últimas 10 líneas del +\family typewriter +\emph on +FICHERO +\family default +\emph default + (o la entrada estándar) a la salida estándar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\series default +\emph on ++n +\family default +\emph default + Imprime empezando por la línea +\family typewriter +\emph on +n +\family default +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +column [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Formatea su entrada en múltiples columnas. + Modos: +\end_layout + +\begin_layout Paragraph* +Tabla +\end_layout + +\begin_layout Standard +Determina el número de columnas de la entrada y crea una tabla. + Este modo se activa con la opción +\family typewriter +\series bold +-t +\family default +\series default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +wc [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Imprime el número de saltos de línea, palabras y bytes del +\family typewriter +\emph on +FICHERO +\family default +\emph default + (o la salida estándar). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-l +\family default +\series default + Imprime el número de saltos de línea. +\end_layout + +\begin_layout Subsection* + +\family typewriter +tee [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Copia la entrada estándar a cada +\family typewriter +\emph on +FICHERO +\family default +\emph default +, y también a la salida estándar. +\end_layout + +\begin_layout Section + +\emph on +Scripting +\end_layout + +\begin_layout Subsection* + +\family typewriter +seq +\emph on +PRIMERO INCREMENTO ÚLTIMO +\end_layout + +\begin_layout Standard +Imprime los números de +\family typewriter +\emph on +PRIMERO +\family default +\emph default + a +\family typewriter +\emph on +ÚLTIMO +\family default +\emph default +, inclusive, en pasos de +\family typewriter +\emph on +INCREMENTO +\family default +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +echo [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +CADENA +\emph default +]... +\end_layout + +\begin_layout Standard +Muestra las +\family typewriter +\emph on +CADENA +\family default +\emph default +s de caracteres por la salida estándar. +\end_layout + +\begin_layout Subsection* + +\family typewriter +test +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +test +\series default + +\emph on +EXPRESIÓN +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +[ +\series default + +\emph on +EXPRESIÓN +\emph default + ] +\end_layout + +\begin_layout Standard +Termina con el estado determinado por la +\family typewriter +\emph on +EXPRESIÓN +\family default +\emph default +, devolviendo 0 si esta es verdadera y 1 si es falsa. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +( +\begin_inset space ~ +\end_inset + + +\emph on +EXPR +\emph default + +\begin_inset space ~ +\end_inset + +) +\family default + Fuerza precedencia. + Devuelve lo que devuelva la expresión. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +! +\begin_inset space ~ +\end_inset + + +\emph on +EXPR +\family default +\emph default + +\begin_inset Quotes fld +\end_inset + +No +\begin_inset Quotes frd +\end_inset + + lógico. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +EXPR1 +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +-a +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +EXPR2 +\family default +\emph default + +\begin_inset Quotes fld +\end_inset + +Y +\begin_inset Quotes frd +\end_inset + + lógico. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +EXPR1 +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +-o +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +EXPR2 +\family default +\emph default + +\begin_inset Quotes fld +\end_inset + +O +\begin_inset Quotes frd +\end_inset + + lógico. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +INT1 +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +-eq +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +INT2 +\family default +\emph default + Los enteros son iguales. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +INT1 +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +-ne +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +INT2 +\family default +\emph default + Los enteros son distintos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +INT1 +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +-lt +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +INT2 +\family default +\emph default + +\family typewriter +\emph on +INT1 +\family default +\emph default + +\begin_inset Formula $<$ +\end_inset + + +\family typewriter +\emph on +INT2 +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +INT1 +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +-le +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +INT2 +\family default +\emph default + +\family typewriter +\emph on +INT1 +\family default +\emph default + +\begin_inset Formula $\leq$ +\end_inset + + +\family typewriter +\emph on +INT2 +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +INT1 +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +-gt +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +INT2 +\family default +\emph default + +\family typewriter +\emph on +INT1 +\family default +\emph default + +\begin_inset Formula $>$ +\end_inset + + +\family typewriter +\emph on +INT2 +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +INT1 +\emph default + +\begin_inset space ~ +\end_inset + + +\series bold +-ge +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +INT2 +\family default +\emph default + +\family typewriter +\emph on +INT1 +\family default +\emph default + +\begin_inset Formula $\geq$ +\end_inset + + +\family typewriter +\emph on +INT2 +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-z +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +STR +\family default +\emph default + La cadena es vacía. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +STR +\family default +\emph default + La cadena no es vacía. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +STR1 +\emph default + +\begin_inset space ~ +\end_inset + += +\begin_inset space ~ +\end_inset + + +\emph on +STR2 +\family default +\emph default + Las cadenas son iguales. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +STR1 +\emph default + +\begin_inset space ~ +\end_inset + +!= +\begin_inset space ~ +\end_inset + + +\emph on +STR2 +\family default +\emph default + Las cadenas son distintas. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +STR1 +\emph default + +\begin_inset space ~ +\end_inset + +< +\begin_inset space ~ +\end_inset + + +\emph on +STR2 +\family default +\emph default + +\family typewriter +\emph on +STR1 +\family default +\emph default + +\begin_inset Formula $<$ +\end_inset + + +\family typewriter +\emph on +STR2 +\family default +\emph default +, en orden lexicográfico. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +STR1 +\emph default + +\begin_inset space ~ +\end_inset + +> +\begin_inset space ~ +\end_inset + + +\emph on +STR2 +\family default +\emph default + +\family typewriter +\emph on +STR1 +\family default +\emph default + +\begin_inset Formula $>$ +\end_inset + + +\family typewriter +\emph on +STR2 +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-e +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + El +\family typewriter +\emph on +FICHERO +\family default +\emph default + existe. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + Existe y se tiene permiso de lectura. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-w +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + Existe y se tiene permiso de escritura. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-x +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + Existe y se tiene permiso de ejecución. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-f +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + Existe y es regular. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + Existe y es un directorio. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-s +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + Existe y no es vacío. +\end_layout + +\begin_layout Subsection* + +\family typewriter +true +\end_layout + +\begin_layout Standard +Devuelve 0. +\end_layout + +\begin_layout Subsection* + +\family typewriter +false +\end_layout + +\begin_layout Standard +Devuelve 1. +\end_layout + +\end_body +\end_document diff --git a/iso/nb.lyx b/iso/nb.lyx new file mode 100644 index 0000000..e73ce7c --- /dev/null +++ b/iso/nb.lyx @@ -0,0 +1,1092 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Administración de paquetes +\end_layout + +\begin_layout Standard +Muchos programas Linux se distribuyen como código fuente, que el usuario + construye, junto con las páginas de manual, ficheros de configuración, + etc., si bien la mayoría del software se distribuye en +\series bold +paquetes +\series default + precompilados y listos para instalar. +\end_layout + +\begin_layout Standard +El sistema de paquetes de Fedora es RPM ( +\emph on +Red Hat Package Manager +\emph default +), en el que los paquetes se llaman como +\family typewriter +\emph on +nombre +\emph default +- +\emph on +versión +\emph default +- +\emph on +revisión +\emph default +.[ +\emph on +arquitectura +\emph default +| +\series bold +src +\series default +| +\series bold +noarch +\series default +].rpm +\family default +. + La arquitectura es +\family typewriter +i386 +\family default + para Intel x86 (IA-32) y compatibles, +\family typewriter +i586 +\family default + para Pentium y posteriores, +\family typewriter +i686 +\family default + para Pentium II y posteriores, +\family typewriter +x86_64 +\family default + para IA-64 (Intel/AMD de 64 bits), etc. + Los paquetes +\family typewriter +src +\family default + son los fuentes, a compilar por +\family typewriter +rpmbuild +\family default +, y los +\family typewriter +noarch +\family default + son independientes de la arquitectura. + El sistema gestiona una base de datos de paquetes instalados con información + de su estado y ficheros. + Podemos referirnos a paquetes instalados simplemente por su +\family typewriter +\emph on +nombre +\family default +\emph default +. + Puede haber dependencias entre paquetes, de modo que para instalar uno + sea necesario tener otro, que no se puede desinstalar sin desinstalar el + primero (ni causar errores). +\end_layout + +\begin_layout Standard +Podemos usar +\family typewriter +rpm +\family default +, que da error al instalar o eliminar si las dependencias no se satisfacen, + o +\family typewriter +dnf +\family default +, que resuelve automáticamente las dependencias y descarga los paquetes + de repositorios. +\end_layout + +\begin_layout Subsection* + +\family typewriter +rpm +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE INSTALACIÓN Y ACTUALIZACIÓN +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +rpm -i +\series default + +\emph on +FICHERO +\family default +\emph default + instala un paquete. +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +rpm -U +\series default + +\emph on +FICHERO +\family default +\emph default + actualiza a una nueva versión (los ficheros de configuración modificados + de la versión anterior se guardan como +\family typewriter +\emph on +nombre_fichero +\emph default +.rpmsave +\family default +, y si el fichero ha cambiado de formato y no puede ser adaptado a partir + de las modificaciones del anterior, se deja el fichero antiguo y se crea + uno nuevo +\family typewriter +\emph on +nombre_fichero +\emph default +.rpmnew +\family default +). +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE ELIMINACIÓN +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +rpm -e +\series default + +\emph on +NOMBRE +\family default +\emph default + elimina un paquete. +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE CONSULTA +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +rpm -q +\series default + {[ +\emph on +OPCIÓN_SELECCIÓN +\emph default +]...|[ +\emph on +OPCIÓN_CONSULTA +\emph default +]... + +\emph on +PAQUETE +\emph default +...} +\end_layout + +\begin_layout Paragraph* +Opciones de selección +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-f +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + Paquete al que pertenece el +\family typewriter +\emph on +FICHERO +\family default +\emph default +. +\end_layout + +\begin_layout Paragraph* +Opciones de consulta +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\family default +\series default + Información del paquete. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-l +\family default +\series default + Listado de ficheros en el paquete. +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE VERIFICACIÓN +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +rpm -V +\series default + +\emph on +PAQUETE +\end_layout + +\begin_layout Subsection* + +\family typewriter +dnf [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +COMANDO +\emph default +] [ +\emph on +ARGUMENTO +\emph default +]... +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-h +\family default +\series default + Muestra la ayuda. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dnf +\begin_inset space ~ +\end_inset + +check-update +\family default +\series default + Comprueba si hay actualizaciones. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dnf +\begin_inset space ~ +\end_inset + +download +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +PAQUETE +\emph default +... + +\family default + Descarga la última versión de los paquetes indicados, sin llegar a instalarlos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dnf +\begin_inset space ~ +\end_inset + +erase +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +PAQUETE +\emph default +... + +\family default + Alias obsoleto para +\family typewriter +\series bold +remove +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dnf +\begin_inset space ~ +\end_inset + +install +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +PAQUETE +\emph default +... + +\family default + Se asegura de que los paquetes dados y sus dependencias están ins +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ta +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +la +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +dos. + (Para instalar el repositorio +\family typewriter +rpmfusion +\family default +, parte libre pero con más paquetes que la instalación por defecto, usar + +\family typewriter +dnf install http://download1.rpmfusion. +\begin_inset Newline newline +\end_inset + +org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm +\family default +. + +\begin_inset Newline newline +\end_inset + +También se pueden instalar paquetes de los repositorios y paquetes previamente + descargados.) +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dnf +\begin_inset space ~ +\end_inset + +remove +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +PAQUETE +\emph default +... + +\family default + Elimina los paquetes indicados junto con cualquiera que dependa de estos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dnf +\begin_inset space ~ +\end_inset + +update +\family default +\series default + Alias obsoleto para +\family typewriter +\series bold +upgrade +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dnf +\begin_inset space ~ +\end_inset + +upgrade +\family default +\series default + Actualiza cada paquete a la última versión disponible y resoluble. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dnf +\begin_inset space ~ +\end_inset + +upgrade +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +PAQUETE +\emph default +... + +\family default + Actualiza cada paquete indicado a la última versión. + Actualiza dependencias según sea necesario. +\end_layout + +\begin_layout Subsubsection* +FICHEROS +\end_layout + +\begin_layout Paragraph* +Configuración principal +\end_layout + +\begin_layout Standard + +\family typewriter +/etc/dnf/dnf.conf +\end_layout + +\begin_layout Paragraph* +Repositorio +\end_layout + +\begin_layout Standard + +\family typewriter +/etc/yum.repos.d/ +\family default + (Contiene ficheros +\family typewriter +.repo +\family default +, que se dividen en tres secciones: una para paquetes normales, otra para + paquetes de depuración y otra para paquetes fuentes, y que informa a +\family typewriter +dnf +\family default + de dónde encontrar la lista de espejos para cada sección, de donde descargar + los paquetes. + +\family typewriter +fedora.repo +\family default + contiene información para la instalación base, y +\begin_inset Newline newline +\end_inset + + +\family typewriter +fedora-updates.repo +\family default + contiene la información para localizar los paquetes a actualizar.) +\end_layout + +\begin_layout Section +Módulos del núcleo +\end_layout + +\begin_layout Standard +Aunque Linux tiene una arquitectura monolítica, su diseño es modular, y + hay porciones ( +\series bold +módulos +\series default +) que se pueden cargar o descargar en caliente, que proporcionan soporte + para distintos sistemas de ficheros, periféricos y protocolos de red, y + que se suelen guardar con extensión +\family typewriter +.ko.xz +\family default + en +\family typewriter +/lib/modules/ +\emph on +versión +\family default +\emph default +, según la +\family typewriter +\emph on +versión +\family default +\emph default + de Linux, con los siguientes subdirectorios entre otros: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +drivers +\family default +\series default + Gestión de dispositivos hardware. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +fs +\family default +\series default + Sistemas de ficheros. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +net +\family default +\series default + Protocolos de red. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +sound +\family default +\series default + Tarjetas de sonido. +\end_layout + +\begin_layout Standard +Para que un módulo se pueda usar, el núcleo debe tener exportadas todas + las funciones que este usa. + Algunas están en otros módulos, por lo que existen dependencias entre módulos + descritas en +\family typewriter +/lib/modules/ +\emph on +versión +\emph default +/modules.dep +\family default +. + Los módulos se pueden cargar en cualquier momento, aunque suelen cargarlos + el +\emph on +script +\emph default + +\family typewriter +init +\family default + del disco RAM (para acceder al sistema de ficheros raíz), los servicios + de +\family typewriter +systemd +\family default + al iniciarse o +\family typewriter +udev +\family default + al detectar un nuevo dispositivo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lsmod +\end_layout + +\begin_layout Standard +Formatea el contenido de +\family typewriter +/proc/modules +\family default +, mostrando los módulos del núcleo cargados (nombre, tamaño, contador de + usos y módulos que lo usan). +\end_layout + +\begin_layout Subsection* + +\family typewriter +modinfo +\emph on +NOMBRE_MÓDULO +\emph default +... +\end_layout + +\begin_layout Standard +Extrae información sobre los módulos dados (fichero, autor, descripción, + licencia, dependencias, parámetros, etc.) +\end_layout + +\begin_layout Subsection* + +\family typewriter +insmod +\emph on +FICHERO_MÓDULO +\end_layout + +\begin_layout Standard +Inserta un módulo en el núcleo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +rmmod +\emph on +NOMBRE_MÓDULO +\end_layout + +\begin_layout Standard +Elimina un módulo del núcleo (si no se está usando). +\end_layout + +\begin_layout Subsection* + +\family typewriter +modprobe +\emph on +NOMBRE_MÓDULO +\end_layout + +\begin_layout Standard +Añade o elimina un módulo del núcleo (junto a los módulos de los que depende). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Elimina en vez de insertar. + Si los módulos de los que este depende tampoco se están usando, +\family typewriter +\series bold +modprobe +\family default +\series default + intentará eliminarlos también. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--show-depends +\family default +\series default + Lista las dependencias de un módulo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/modprobe.d/ +\end_layout + +\begin_layout Standard +Configuración para +\family typewriter +modprobe +\family default +. + Los ficheros bajo el directorio con extensión +\family typewriter +.conf +\family default + especifican opciones. +\end_layout + +\begin_layout Subsubsection* +COMANDOS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +alias +\begin_inset space ~ +\end_inset + + +\emph on +alias +\begin_inset space ~ +\end_inset + +nombre_módulo +\family default +\emph default + Da un nombre alternativo a un módulo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +blacklist +\begin_inset space ~ +\end_inset + + +\emph on +nombre-módulo +\family default +\emph default + Los módulos pueden contener sus propios alias. + +\family typewriter +\series bold +blacklist +\family default +\series default + indica que todos los alias internos del módulo deben ser ignorados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +install +\begin_inset space ~ +\end_inset + + +\emph on +nombre_módulo +\begin_inset space ~ +\end_inset + +comando +\emph default +... + +\family default + Ejecuta un comando en vez de insertar el módulo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +options +\begin_inset space ~ +\end_inset + + +\emph on +nombre_módulo +\begin_inset space ~ +\end_inset + +opción +\emph default +... + +\family default + Añade opciones al módulo cada vez que se inserta en el núcleo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +remove +\begin_inset space ~ +\end_inset + + +\emph on +nombre_módulo +\begin_inset space ~ +\end_inset + +comando +\emph default +... + +\family default + Como +\family typewriter +\series bold +install +\family default +\series default + pero se invoca al ejecutar +\family typewriter +modprobe -r +\family default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +depmod +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +Crea una lista de dependencias entre módulos bajo +\family typewriter +/lib/modules/ +\emph on +versión +\family default +\emph default + (la versión del núcleo actual). + Esta lista es escrita a +\family typewriter +modules.dep +\family default +. + Finalmente, genera un fichero +\family typewriter +modules. +\emph on +dispositivo +\family default +\emph default + si los módulos proporcionan nombres de dispositivo que deben añadirse a + +\family typewriter +/dev +\family default + en el arranque ( +\family typewriter +modules.usbmap +\family default +, +\family typewriter +modules.pcimap +\family default +, etc., que sirven para indicar los módulos a cargar cuando se conecta un + dispositivo, pero que no se usan actualmente). +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/iso/nc.lyx b/iso/nc.lyx new file mode 100644 index 0000000..24c6cfc --- /dev/null +++ b/iso/nc.lyx @@ -0,0 +1,1408 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +Internamente los usuarios se identifican por un número, el UID, que es 0 + para el su +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +per +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +u +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +sua +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +rio, y que en general está en el rango 1–999 para las cuentas del sistema + y es mayor o igual a 1000 para usuarios normales. + Una cuenta del sistema ejecuta programas o posee ficheros para ciertos + servicios, pero no está asociada a una persona. + Por ejemplo, la cuenta +\family typewriter +apache +\family default + ejecuta servicios para un servidor Web, el demonio +\family typewriter +httpd +\family default + de Apache. +\end_layout + +\begin_layout Standard +Los usuarios también tienen un nombre de usuario, contraseña, un directorio + personal y una +\emph on +shell +\emph default +, programa que se ejecuta al iniciar sesión. + Se puede indicar que esta sea un ejecutable específico, no necesariamente + una +\emph on +shell +\emph default +, convirtiendo la cuenta en una +\series bold +cuenta restringida +\series default +, pues el usuario solo puede ejecutar este fichero y al finalizar su ejecución + sale del sistema. +\end_layout + +\begin_layout Standard +Cuando un usuario crea un fichero, su grupo propietario es el grupo activo + del usuario (generalmente su grupo primario), pero al determinar los permisos + que tiene un usuario sobre un fichero, se usan todos los grupos a los que + pertenece. +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/passwd +\end_layout + +\begin_layout Standard +Fichero de texto que describe las cuentas de usuario del sistema. + Debe ser legible por todos los usuarios pero escribible sólo para el superusuar +io. + +\end_layout + +\begin_layout Standard +Tradicionalmente no había problema con este permiso general de lectura. + Hoy en día se usa el caracter +\family typewriter +x +\family default + en la celda de contraseña para indicar que las contraseñas están en +\family typewriter +/etc/shadow +\family default +, que sólo puede ser leída por el superusuario. + +\end_layout + +\begin_layout Standard +Cada línea del fichero describe un sólo usuario, y contiene los siguientes + campos: +\end_layout + +\begin_layout Quotation + +\family typewriter +nombre:contraseña:UID:GID:GECOS:directorio:shell +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +nombre +\family default +\emph default + Nombre de usuario. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +contraseña +\family default +\emph default + Contraseña encriptada del usuario, +\family typewriter +* +\family default + o +\family typewriter +x +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +UID +\family default +\emph default + El UID. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +GID +\family default +\emph default + ID numérico del grupo primario del usuario. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +GECOS +\family default +\emph default + Opcional, con propósito informativo. + Normalmente contiene el nombre completo del usuario. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +directorio +\family default +\emph default + Directorio personal del usuario, donde se le posiciona tras iniciar sesión. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +shell +\family default +\emph default + Programa a ejecutar al iniciar sesión. +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/shells +\end_layout + +\begin_layout Standard +Fichero de texto que contiene las rutas absolutas de los +\emph on +shells +\emph default + de inicio de sesión válidos. +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/shadow +\end_layout + +\begin_layout Standard +Fichero que contiene la información de las contraseñas de los usuarios e + información opcional de caducidad. + Debe no ser legible para usuarios normales por seguridad. + Hay una entrada por línea, con formato: +\end_layout + +\begin_layout Quotation + +\family typewriter +nombre:contraseña:último_cambio:vida_mínima:vida_máxima:periodo_alerta: +\begin_inset Newline newline +\end_inset + +periodo_inactividad:fecha_expiración:reservado +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +nombre +\family default +\emph default + Nombre de usuario. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +contraseña +\family default +\emph default + Contraseña encriptada. + Si contiene algo que no es una contraseña encriptada válida, como +\family typewriter +!! +\family default + o +\family typewriter +* +\family default +, el usuario no podrá usar una contraseña Unix para iniciar sesión. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +último_cambio +\family default +\emph default + Fecha del último cambio de contraseña. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +vida_mínima +\family default +\emph default + Número de días que el usuario debe esperar antes de poder cambiar nuevamente + su contraseña. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +vida_máxima +\family default +\emph default + Número de días tras el cual el usuario deberá cambiar su contraseña. + Tras esto la contraseña podría seguir siendo válida, pero se pedirá al + usuario una nueva contraseña la próxima vez que inicie sesión. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +periodo_alerta +\family default +\emph default + Número de días antes de que la contraseña expire durante los cuales se + avisará al usuario. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +periodo_inactividad +\family default +\emph default + Número de días después de que la contraseña expire durante los que esta + seguirá siendo válida. + Tras este tiempo el usuario no podrá iniciar sesión. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +fecha_expiración +\family default +\emph default + Fecha en la que la cuenta expira, tras la cual el usuario no podrá iniciar + sesión. +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/group +\end_layout + +\begin_layout Standard +Fichero de texto que define los grupos del sistema. + Hay una entrada por línea, con formato: +\end_layout + +\begin_layout Quotation + +\family typewriter +nombre:contraseña:GID:lista_de_usuarios +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/gshadow +\end_layout + +\begin_layout Standard +Información de seguridad de los grupos. + Debe no ser legible por usuarios normales por seguridad. + Hay una entrada por línea, con formato: +\end_layout + +\begin_layout Quotation + +\family typewriter +nombre:contraseña:administradores:miembros +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/issue +\end_layout + +\begin_layout Standard +Fichero de texto con un mensaje a imprimir antes de pedir el nombre de usuario + en un inicio de sesión por terminal. + Puede contener secuencias +\family typewriter +\series bold +@ +\series default +\emph on +caracter +\family default +\emph default + o +\family typewriter +\series bold + +\backslash + +\series default +\emph on +caracter +\family default +\emph default + si la terminal lo soporta (por ejemplo, +\family typewriter + +\backslash +l +\family default + se sustituye po el nombre de la terminal: +\family typewriter +tty1 +\family default +, +\family typewriter +tty2 +\family default +, etc.). +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/motd +\end_layout + +\begin_layout Standard +Fichero de texto a mostrar tras un inicio de sesión por terminal exitoso + y antes de ejecutar el +\emph on +shell +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +nologin +\end_layout + +\begin_layout Standard +Muestra un mensaje de que una cuenta no está disponible y termina. + Usado como campo +\family typewriter +\emph on +shell +\family default +\emph default + en +\family typewriter +/etc/passwd +\family default + para denegar el inicio de sesión a una cuenta. +\end_layout + +\begin_layout Subsection* + +\family typewriter +id +\emph on +USUARIO +\end_layout + +\begin_layout Standard +Muestra la información de usuario y grupos para el +\family typewriter +\emph on +USUARIO +\family default +\emph default + indicado. +\end_layout + +\begin_layout Subsection* + +\family typewriter +groups +\emph on +USUARIO +\emph default +... +\end_layout + +\begin_layout Standard +Muestra los grupos a los que pertenece cada +\family typewriter +\emph on +USUARIO +\family default +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +newgrp +\emph on +GRUPO +\end_layout + +\begin_layout Standard +Inicia sesión en un nuevo grupo. + Si el usuario no es +\family typewriter +root +\family default +, se le pedirá una contraseña si este no tiene o no es miembro del grupo + y el grupo tiene contraseña. + Al usuario se le denegará el acceso si la contraseña de grupo es vacía + y el usuario no es miembro. +\end_layout + +\begin_layout Subsection* + +\family typewriter +who +\end_layout + +\begin_layout Standard +Muestra información sobre los usuarios con sesiones abiertas. +\end_layout + +\begin_layout Subsection* + +\family typewriter +su [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +USUARIO +\emph default +] +\end_layout + +\begin_layout Standard +Ejecuta un nuevo +\emph on +shell +\emph default + con los ID de usuario y grupo indicados (por defecto +\family typewriter +root +\family default +). + Cambia las variables de entorno +\family typewriter +\series bold +HOME +\family default +\series default + y +\family typewriter +\series bold +SHELL +\family default +\series default + (más +\family typewriter +\series bold +USER +\family default +\series default + y +\family typewriter +\series bold +LOGNAME +\family default +\series default + si el +\family typewriter +\emph on +USUARIO +\family default +\emph default + no es +\family typewriter +root +\family default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +- +\family default +\series default +, +\begin_inset space ~ +\end_inset + + +\family typewriter +\series bold +-l +\family default +\series default + Inicia el +\emph on +shell +\emph default + como uno de inicio de sesión con un entorno similar a un inicio de sesión + real. +\end_layout + +\begin_layout Subsection* + +\family typewriter +whoami +\end_layout + +\begin_layout Standard +Imprime el nombre de usuario asociado con el ID efectivo de usuario (EUID) + actual. +\end_layout + +\begin_layout Subsection* + +\family typewriter +useradd [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +USUARIO +\end_layout + +\begin_layout Standard +Crea una nueva cuenta de usuario usando los valores especificados más los + valores por defecto del sistema. + Por defecto la contraseña de este está desactivada. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +DIRECTORIO +\family default +\emph default + Indica el +\family typewriter +\emph on +DIRECTORIO +\family default +\emph default + personal del usuario. + Por defecto, aunque depende de la configuración, se crea un directorio + con ruta +\family typewriter +/home/ +\emph on +USUARIO +\family default +\emph default + y se copia dentro de este el contenido de +\family typewriter +/etc/skel +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-g +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +GRUPO +\family default +\emph default + El nombre o número del grupo primario del usuario, que debe existir. + Si no se especifica, dependiendo de la configuración, se creará un nuevo + grupo con el mismo nombre que el usuario o se le asignará un grupo por + defecto. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-G +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +GRUPO1 +\emph default +[ +\emph on +,GRUPO2,... +\emph default +[ +\emph on +,GRUPON +\emph default +]]] +\family default + Lista de grupos adicionales de los que el usuario también es miembro. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-m +\family default +\series default + Crea el directorio personal del usuario si no existe ya. + Por defecto, la creación de este depende de la configuración. +\end_layout + +\begin_layout Subsubsection* +FICHEROS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +/etc/default/useradd +\family default + Valores por defecto para la nueva cuenta. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +/etc/login.defs +\family default + Configuración adicional. +\end_layout + +\begin_layout Subsection* + +\family typewriter +usermod [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +USUARIO +\end_layout + +\begin_layout Standard +Modifica los ficheros de la cuenta del +\family typewriter +\emph on +USUARIO +\family default +\emph default + para reflejar los cambios especificados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-c +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +COMENTARIO +\family default +\emph default + El nuevo valor del campo de comentario del fichero de contraseña para el + usuario. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-g +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +GRUPO +\family default +\emph default + Nombre o número del nuevo grupo primario del usuario, que debe existir. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-G +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +GRUPO1 +\emph default +[ +\emph on +,GRUPO2,... +\emph default +[ +\emph on +,GRUPON +\emph default +]]] +\family default + Lista de grupos adicionales del que el usuario también es miembro. + Si el usuario es miembro del algún grupo que no está en la lista, será + eliminado del grupo, salvo si se añade la opción +\family typewriter +\series bold +-a +\family default +\series default + que añade al usuario esta lista en vez de sustituir. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-s +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +SHELL +\family default +\emph default + El nombre de la nueva +\emph on +shell +\emph default + inicial del usuario. +\end_layout + +\begin_layout Subsection* + +\family typewriter +userdel +\emph on +USUARIO +\end_layout + +\begin_layout Standard +Borra del sistema todas las entradas de usuario que hacen referencia al + +\family typewriter +\emph on +USUARIO +\family default +\emph default + dado, que debe existir. + Por defecto no borra el directorio personal. +\end_layout + +\begin_layout Subsection* + +\family typewriter +groupadd +\emph on +GRUPO +\end_layout + +\begin_layout Standard +Crea un nuevo grupo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +groupdel +\emph on +GRUPO +\end_layout + +\begin_layout Standard +Borra del sistema todas las entradas de grupo que hacen referencia al +\family typewriter +\emph on +GRUPO +\family default +\emph default + dado, que debe existir. +\end_layout + +\begin_layout Subsection* + +\family typewriter +gpasswd [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +GRUPO +\end_layout + +\begin_layout Standard +Administra +\family typewriter +/etc/group +\family default + y +\family typewriter +/etc/gshadow +\family default +. + Cada grupo puede tener administradores, miembros y una contraseña. +\end_layout + +\begin_layout Standard +Salvo por las opciones +\family typewriter +\series bold +-A +\family default +\series default + y +\family typewriter +\series bold +-M +\family default +\series default +, las opciones no pueden combinarse. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-a +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +USUARIO +\family default +\emph default + Añade el +\family typewriter +\emph on +USUARIO +\family default +\emph default + al +\family typewriter +\emph on +GRUPO +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +USUARIO +\family default +\emph default + Elimina al +\family typewriter +\emph on +USUARIO +\family default +\emph default + del +\family typewriter +\emph on +GRUPO +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-A +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +USUARIO +\emph default +,... + +\family default + Establece la lista de administradores. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-M +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +USUARIO +\emph default +,... + +\family default + Establece la lista de miembros. +\end_layout + +\begin_layout Subsection* + +\family typewriter +passwd [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +USUARIO +\emph default +] +\end_layout + +\begin_layout Standard +Actualiza la información de autenticación del +\family typewriter +\emph on +USUARIO +\family default +\emph default +. + Por defecto cambia su contraseña. + Sólo +\family typewriter +root +\family default + puede especificar el +\family typewriter +\emph on +USUARIO +\family default +\emph default +; si no se especifica, se cambia la contraseña propia. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-l +\family default +\series default + Bloquea la contraseña del usuario. + Sólo para +\family typewriter +root +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--stdin +\family default +\series default + La contraseña se lee de la entrada estándar, que puede ser una tubería. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-u +\family default +\series default + Desbloquea la contraseña del usuario. + Sólo para +\family typewriter +root +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-e +\family default +\series default + El usuario será forzado a cambiar la contraseñá en el siguiente intento + de inicio de sesión. + Sólo para +\family typewriter +root +\family default +. +\end_layout + +\begin_layout Standard +Este comando fuerza algunos requisitos de seguridad en la nueva contraseña + (longitud mínima, etc.). +\end_layout + +\begin_layout Subsection* + +\family typewriter +chage [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +USUARIO +\end_layout + +\begin_layout Standard +Cambia el número de días entre cambios de contraseña y la fecha de último + cambio para el +\family typewriter +\emph on +USUARIO +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-E +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FECHA +\family default +\emph default + Establece la fecha de expiración de la cuenta, con formato +\family typewriter +YYYY-MM-DD +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-I +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +DÍAS +\family default +\emph default + Establece el número de días de inactividad tras la expiración de una contraseña + durante los cuales el usuario todavía puede iniciar sesión. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-M +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +DÍAS +\family default +\emph default + Establece el máximo de días durante los que una contraseña es válida. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-W +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +DÍAS +\family default +\emph default + Establece el número de días antes de la expiración de una contraseña en + los que el usuario es avisado de ello. +\end_layout + +\begin_layout Subsubsection* +NOTA +\end_layout + +\begin_layout Standard +Este programa requiere de un fichero +\family typewriter +/etc/shadow +\family default +, y sólo puede usarlo +\family typewriter +root +\family default +s. +\end_layout + +\end_body +\end_document diff --git a/iso/nd.lyx b/iso/nd.lyx new file mode 100644 index 0000000..e9870bb --- /dev/null +++ b/iso/nd.lyx @@ -0,0 +1,4024 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Particionamiento estándar +\end_layout + +\begin_layout Standard +Existen dos formatos principales para el particionamiento de discos: +\end_layout + +\begin_layout Itemize + +\series bold +Particionamiento DOS +\series default + o +\series bold +MBR +\series default +: El formato original de MS-DOS. + Permite hasta 4 +\series bold +particiones principales +\series default + definidas en el primer sector del disco, el MBR ( +\emph on +Master Boot Record +\emph default +), junto con el código de arranque. + Una de estas puede ser una +\series bold +partición extendida +\series default +, dentro de la cual podemos crear +\series bold +particiones lógicas +\series default + o +\series bold +secundarias +\series default +. + En Linux, las particiones primarias tienen números del 1 al 4 y las lógicas + comienzan por el 5. +\begin_inset Newline newline +\end_inset + +Los números de los sectores en el disco, llamados +\series bold +LBA +\series default + ( +\emph on +Logical Block Address +\emph default +), se almacenan en 32 bytes, por lo que si los sectores son de +\begin_inset Formula $\unit[512]{B}$ +\end_inset + + (lo normal), el tamaño máximo particionable es de +\begin_inset Formula $\unit[2]{TiB}$ +\end_inset + +. +\begin_inset Newline newline +\end_inset + +Las particiones tienen un tipo que indica qué va a contener o para qué se + va a usar, con propósito únicamente informativo. + Algunos tipos son +\family typewriter +0x82 +\family default + (Linux swap), +\family typewriter +0x83 +\family default + (Linux) o +\family typewriter +0x8e +\family default + (Linux LVM). +\end_layout + +\begin_layout Itemize + +\series bold +Particionamiento GPT +\series default + ( +\emph on +GUID Partition Table +\emph default +): Usa LBAs de 64 bits, luego el tamaño máximo con bloques de +\begin_inset Formula $\unit[512]{B}$ +\end_inset + + es de +\begin_inset Formula $\unit[8]{ZiB}$ +\end_inset + +. + Permite un número prácticamente ilimitado de particiones, aunque los sistemas + operativos suelen limitarlo a 128 para mantener la tabla de particiones + de un tamaño razonable ( +\begin_inset Formula $\unit[16]{KiB}$ +\end_inset + +). + Esta tabla abarca el sector 1 del disco y sucesivos y tiene una suma de + verificación CRC32 para verificar su integridad y una copia de respaldo + en los últimos sectores del disco. + Por compatibilidad, el sector 0 almacena una tabla de particiones DOS con + una única partición de tipo +\family typewriter +0xEE +\family default + (GPT) llamada +\series bold + partición MBR de protección +\series default +, tan grande como sea posible para intentar cubrir todo el disco. +\begin_inset Newline newline +\end_inset + +Cada partición disco y cada partición tiene un +\series bold +GUID +\series default + ( +\emph on +Globally Unique Identifier +\emph default +), un número de 128 bits con formato +\family typewriter +XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX +\family default + (cada +\family typewriter +X +\family default + es una cifra hexadecimal) que lo identifica unívocamente. + Desaparece la distinción entre particiones primarias, lógicas y extendidas. +\end_layout + +\begin_layout Standard +Normalmente la primera partición comienza en el sector 2048, usando el hueco + que queda para el gestor de arranque. +\end_layout + +\begin_layout Subsection* + +\family typewriter +fdisk +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +fdisk +\series default + [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +DISPOSITIVO +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +fdisk -l +\series default + [ +\emph on +DISPOSITIVO +\emph default +]... +\end_layout + +\begin_layout Standard +Programa interactivo para la creación y manipulación de tablas de particiones + que entiende, entre otros, los formatos MBR y GPT. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-l +\family default +\series default + Lista las tablas de particiones para los +\family typewriter +\emph on +DISPOSITIVO +\family default +\emph default +s especificados y termina. +\end_layout + +\begin_layout Subsubsection* +ÓRDENES +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +p +\family default +\series default + Muestra la tabla de particiones. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +n +\family default +\series default + Crea una nueva partición. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +d +\family default +\series default + Elimina una partición. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +w +\family default +\series default + Guarda en disco la tabla de particiones resultante. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +q +\family default +\series default + Sale sin guardar los cambios. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +m +\family default +\series default + Muestra una ayuda con todas las órdenes. +\end_layout + +\begin_layout Subsubsection* +TAMAÑOS +\end_layout + +\begin_layout Standard +El diálogo de último sector acepta un tamaño de partición según el número + de sectores o la notación +\family typewriter ++<TAMAÑO>{K,B,M,G,...} +\family default +. + Si el tamaño lleva delante +\family typewriter ++ +\family default + se interpreta como relativo al primer sector de la partición. + En este caso el tamaño se espera en bytes y puede ir seguido de sufijos + multiplicativos +\begin_inset Formula $\mathtt{K}=1024$ +\end_inset + +, +\begin_inset Formula $\mathtt{M}=1024^{2}$ +\end_inset + +, etc. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lsblk [ +\emph on +OPCIÓN +\emph default +]... +\end_layout + +\begin_layout Standard +Muestra información de todos los dispositivos de bloques disponibles en + forma de árbol por defecto. + La salida está sujeta a cambios, pero actualmente muestra las columnas + +\family typewriter +NAME +\family default + (nombre), +\family typewriter +SIZE +\family default + (tamaño) y +\family typewriter +TYPE +\family default + (tipo: disco, partición o volumen lógico), entre otras. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-f +\family default +\series default + Muestra información sobre los sistemas de ficheros: columnas +\family typewriter +NAME +\family default +, +\family typewriter +FSTYPE +\family default + (tipo de sistema de ficheros), +\family typewriter +LABEL +\family default + (etiqueta), +\family typewriter +UUID +\family default + (identificador) y +\family typewriter +MOUNTPOINT +\family default + (punto de montaje). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-p +\family default +\series default + Muestra rutas de fichero (absolutas) completas. +\end_layout + +\begin_layout Section +LVM +\end_layout + +\begin_layout Standard +Un +\series bold +gestor de volúmenes lógicos +\series default + (LVM, +\emph on +Logical Volume Manager +\emph default +) es un sistema que +\begin_inset Quotes fld +\end_inset + +virtualiza +\begin_inset Quotes frd +\end_inset + + el almacenamiento para crear discos lógicos y proporcionar métodos de asignació +n de espacio más flexibles que las particiones. +\end_layout + +\begin_layout Standard +Nos centraremos en el LVM de Linux, llamado LVM. + Este parte de +\series bold +volúmenes físicos +\series default + (PVs, +\emph on +physical volumes +\emph default +), que pueden ser cualquier dispositivo de bloques y se dividen en +\series bold +extensiones físicas +\series default + (PEs, +\emph on +physical extents +\emph default +) de un tamaño fijo, que en Linux por omisión es de +\begin_inset Formula $\unit[4]{MiB}$ +\end_inset + +. + Estos se agrupan en +\series bold +grupos de volúmenes +\series default + (VGs, +\emph on +volume groups +\emph default +), que agrupan las extensiones físicas para crear encima +\series bold +volúmenes lógicos +\series default + (LVs, +\emph on +logical volumes +\emph default +), que se dividen en +\series bold +extensiones lógicas +\series default + (LEs, +\emph on +logical extents +\emph default +) del mismo tamaño que las extensiones físicas y actúan como cualquier otro + dispositivo de bloques. + Algunos tipos de volúmenes lógicos: +\end_layout + +\begin_layout Itemize + +\series bold +Lineales +\series default +: A cada extensión lógica le corresponde una única extensión física, en + orden lineal. +\end_layout + +\begin_layout Itemize + +\series bold +Repartidos +\series default +: El volumen se divide en porciones fijas con un +\series bold +tamaño de porción +\series default + ( +\emph on +stripe size +\emph default +) generalmente menor que una extensión lógica (por defecto +\begin_inset Formula $\unit[64]{KiB}$ +\end_inset + +), con lo que porciones consecutivas se almacenan en volúmenes físicos de + discos diferentes de forma cíclica. + Esto hace que el rendimiento de E/S sea mayor que el de un único disco + al poder operar en paralelo pero disminuyendo su fiabilidad, pues la probabilid +ad de que falle un volumen repartido es mayor que la de que falle un disco + individual. +\end_layout + +\begin_layout Itemize + +\series bold +Reflejados +\series default +: A cada extensión lógica le corresponde una extensión física en cada uno + de dos o más volúmenes físicos determinados, consiguiendo tolerancia a + fallos en caso de que un volumen físico falle. + En general, las escrituras tardan lo mismo que en un disco físico individual + pero se mejora el rendimiento de lectura. + Esto se implementa mediante volúmenes lógicos internos lineales. +\end_layout + +\begin_layout Itemize + +\series bold +RAID 5 +\series default +: Funcionan como un volumen lógico repartido al que se le añade un volumen + físico adicional, de modo que si tomamos una porción de un volumen físico + y la co +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +rres +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +pon +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +dien +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +te del resto, una de ellas lo que contiene es el resultado de aplicar una + función de paridad sobre el resto. + Esto permite que no se pierdan datos si un volumen físico deja de funcionar, + y al mismo tiempo proporciona un mejor rendimiento. +\end_layout + +\begin_layout Standard +Los volúmenes lógicos pueden aumentar de tamaño aun con sistemas de ficheros + montados, en cuyo caso, si el sistema de ficheros lo permite, se puede + aumentar el tamaño de este. + También pueden reducir su tamaño (salvo los reflejados o RAID 5 en la implement +ación actual), pero en este caso los sistemas de ficheros no pueden reducirse + estando montados. +\end_layout + +\begin_layout Standard +También se pueden añadir volúmenes físicos a un grupo de volúmenes, o eliminarlo +s si no se están usando, en vivo, así como mover extensiones físicas de + un volumen a otro, de modo que si el hardware permite cambiar discos en + caliente, podemos actualizar o reemplazar dispositivos de almacenamiento + sin parar el sistema. +\end_layout + +\begin_layout Subsection* + +\family typewriter +pvcreate +\emph on +VOLUMEN +\emph default +... +\end_layout + +\begin_layout Standard +Inicializa un volumen físico para su uso por LVM. +\end_layout + +\begin_layout Subsection* + +\family typewriter +pvdisplay [ +\emph on +VOLUMEN +\emph default +]... +\end_layout + +\begin_layout Standard +Muestra las propiedades de los volúmenes físicos indicados, o de todos si + no se indica ninguno. +\end_layout + +\begin_layout Subsection* + +\family typewriter +vgcreate +\emph on +NOMBRE_GRUPO VOLUMEN +\emph default +... +\end_layout + +\begin_layout Standard +Crea un nuevo grupo de volúmenes sobre dispositivos de bloques. + Si los dispositivos no habían sido inicializados por +\family typewriter +\series bold +pvcreate +\family default +\series default +, +\family typewriter +vgcreate +\family default + los inicializa. +\end_layout + +\begin_layout Subsection* + +\family typewriter +vgdisplay +\emph on +NOMBRE_GRUPO +\emph default +... +\end_layout + +\begin_layout Standard +Muestra las propiedades de los grupos de volúmenes indicados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--verbose +\family default +\series default + Incrementa la cantidad de salida por cada aparición. + Con una ya muestra los volúmenes físicos que forman parte de cada grupo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lvcreate [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +GRUPO +\end_layout + +\begin_layout Standard +Crea un nuevo volumen lógico en un grupo de volúmenes. + Por defecto crea un LV lineal ( +\family typewriter +linear +\family default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--type +\begin_inset space ~ +\end_inset + +raid5 +\family default +\series default + Crea un volumen RAID 5. + Se debe indicar también la opción +\family typewriter +-i +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +N +\family default +\emph default + Crea un volumen, por defecto repartido ( +\family typewriter +striped +\family default +), entre +\family typewriter +\emph on +N +\family default +\emph default + volúmenes físicos. + Si se crea un volumen RAID 5, este número no incluye el volumen extra requerido + para la paridad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-m +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--mirrors +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +N +\family default +\emph default + Crea un volumen físico reflejado ( +\family typewriter +raid1 +\family default +| +\family typewriter +mirror +\family default +) entre +\family typewriter +\emph on +N +\family default +\emph default + volúmenes físicos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-L +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +tamaño +\emph default +[ +\emph on +UNIDAD +\emph default +] +\family default + Obligatorio; tamaño de la nueva unidad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-I +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +tamaño +\emph default +[ +\emph on +UNIDAD +\emph default +] +\family default + Tamaño de porción en un volumen lógico repartido o RAID 5. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +Nombre +\family default +\emph default + Nombre del nuevo volumen. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lvdisplay [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +VOLUMEN +\emph default +... +\end_layout + +\begin_layout Standard +Muestra las propiedades de los volúmenes lógicos indicados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-m +\family default +\series default +, +\begin_inset space ~ +\end_inset + + +\family typewriter +\series bold +--maps +\family default +\series default + Muestra la correspondencia de extensiones lógicas a volúmenes y extensiones + físicas. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lvextend [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +VOLUMEN +\end_layout + +\begin_layout Standard +Extiende un volumen lógico al tamaño especificado. + Debe indicarse una, y sólo una, de entre +\family typewriter +-l +\family default + y +\family typewriter +-L +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-l +\series default + +\begin_inset space ~ +\end_inset + +[ +\series bold ++ +\series default +] +\emph on +Número +\emph default +[ +\emph on +PORCENTAJE +\emph default +] +\family default + Nuevo tamaño del volumen en extensiones lógicas. + El total de extensiones lógicas será mayor cuando se necesiten datos redundante +s. + El tamaño también se puede indicar como porcentaje. + El sufijo +\family typewriter +\series bold +%VG +\family default +\series default + denota el tamaño total del grupo de volúmenes, y +\family typewriter +\series bold +%FREE +\family default +\series default + el espacio libre en este. + Si se usa el prefijo +\family typewriter +\series bold ++ +\family default +\series default +, el valor no es absoluto sino relativo, y se añade al tamaño actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-L +\series default + +\begin_inset space ~ +\end_inset + +[ +\series bold ++ +\series default +] +\emph on +Tamaño +\emph default +[ +\emph on +UNIDAD +\emph default +] +\family default + Nuevo tamaño del volumen. + Si se usa el prefijo +\family typewriter +\series bold ++ +\family default +\series default +, el valor no es absoluto sino relativo, y se añade al tamaño actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--resizefs +\family default +\series default + Cambia el tamaño del sistema de ficheros subyacente junto al del volumen. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lvreduce [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +VOLUMEN +\end_layout + +\begin_layout Standard +Reduce el tamaño de un volumen lógico. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-L +\series default + +\begin_inset space ~ +\end_inset + +[ +\series bold +- +\series default +] +\emph on +Tamaño +\emph default +[ +\emph on +UNIDAD +\emph default +] +\family default + Nuevo tamaño del volumen. + Si se usa el prefijo +\family typewriter +\series bold +- +\family default +\series default +, el valor no es absoluto sino relativo, y se reduce del tamaño actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--resizefs +\family default +\series default + Cambia el tamaño del sistema de ficheros subyacente junto al del volumen. +\end_layout + +\begin_layout Subsection* + +\family typewriter +vgextend +\end_layout + +\begin_layout Standard +Añade uno o más volúmenes físicos a un grupo de volúmenes. +\end_layout + +\begin_layout Subsection* + +\family typewriter +vgreduce +\end_layout + +\begin_layout Standard +Elimina uno o más volúmenes físicos sin usar de un grupo de volúmenes. +\end_layout + +\begin_layout Subsection* + +\family typewriter +pvmove +\end_layout + +\begin_layout Standard +Mueve extensiones físicas de un volumen físico fuente a uno o más volúmenes + físicos destino. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lvremove +\emph on +VOLUMEN +\emph default +... +\end_layout + +\begin_layout Standard +Elimina uno o más volúmenes lógicos. +\end_layout + +\begin_layout Subsection* + +\family typewriter +vgremove +\emph on +GRUPO +\emph default +... +\end_layout + +\begin_layout Standard +Elimina uno o más grupos de volúmenes. +\end_layout + +\begin_layout Subsection* + +\family typewriter +pvremove +\emph on +VOLUMEN +\emph default +... +\end_layout + +\begin_layout Standard +Borra la etiqueta de un dispositivo para que LVM deje de reconocerlo como + volumen físico. +\end_layout + +\begin_layout Section +Dispositivos de bucle +\end_layout + +\begin_layout Standard +En Linux solo podemos montar dispositivos de bloques, pero existen dispositivos + de bloques llamados +\series bold +\emph on +loop +\series default +\emph default +, normalmente llamados +\family typewriter +/dev/loop0 +\family default +– +\family typewriter +7 +\family default + que representan ficheros regulares, que a su vez suelen crearse como un + fichero grande inicialmente lleno de ceros. +\end_layout + +\begin_layout Subsection* + +\family typewriter +losetup +\end_layout + +\begin_layout Paragraph* +Obtener información +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +losetup +\series default + [ +\emph on +DISPOSITIVO +\emph default +] +\end_layout + +\begin_layout Paragraph* +Desasociar un dispositivo +\emph on +loop +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +losetup -d +\series default + +\emph on +DISPOSITIVO +\emph default +... +\end_layout + +\begin_layout Paragraph* +Desasociar todos los dispositivos +\emph on +loop +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +losetup -D +\end_layout + +\begin_layout Paragraph* +Asociar un dispositivo +\emph on +loop +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +losetup +\series default + [ +\emph on +OPCIÓN +\emph default +]... + +\series bold +-f +\series default +| +\emph on +DISPOSITIVO FICHERO +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-a +\family default +\series default + Muestra el estado de todos los dispositivos +\emph on +loop +\emph default +. + No toda la información está disponible si no se es superusuario. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-f +\family default +\series default + Encuentra el primer dispositivo +\emph on +loop +\emph default + sin usar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-P +\family default +\series default + Fuerza al núcleo a escanear la tabla de particiones del dispositivo +\emph on +loop +\emph default + recién creado. +\end_layout + +\begin_layout Section +Sistemas de ficheros +\end_layout + +\begin_layout Standard +El sistema de ficheros ext2 fue el principal en Linux hasta que apareció + ext3 que, al contrario que ext2, es +\series bold +transaccional +\series default +: añade un registro o +\emph on +journal +\emph default + que permite recuperar rápidamente la consistencia tras una caída del sistema, + algo que en ext2 llevaba mucho tiempo al tener que analizar el sistema + de ficheros por completo. + Actualmente se usa ext4, muy similar a ext3 pero con mejoras que permiten + un menor uso de CPU y mayor rapidez de lectura y escritura. +\end_layout + +\begin_layout Standard +FAT es una familia de sistemas de ficheros introducida a finales de los + 70 por Microsoft. + La versión inicial era muy básica y dio paso a FAT12, ideada para su uso + en disquetes y reemplazada posteriormente por FAT16 para soportar discos + duros de mayor tamaño. + Con Windows 95 surge VFAT, una extensión opcional que permite almacenar + nombres de fichero de hasta 255 caracteres en vez de los 8 para nombre + y 3 de extensión que se permiten desde FAT12. + Una revisión de Windows 95 introduce FAT32, con mayor soporte para discos + duros más grandes, por lo que actualmente este sistema es una de las formas + más sencillas (y limitadas) de compartir ficheros entre Linux y Windows. + El manejador de FAT para Linux más adecuado (en general) es +\family typewriter +vfat +\family default +, que soporta FAT32 con VFAT. + Los ficheros en FAT no tienen propietario, grupo ni permisos asociados. +\end_layout + +\begin_layout Standard +XFS fue creado por Silicon Graphics para IRIX, su implementación de UNIX, + liberado en el año 2000 bajo licencia GPL y posteriormente soportado por + Linux. + NTFS apareció en Windows NT y es el sistema de ficheros por defecto de + esta familia de sistemas operativos. +\end_layout + +\begin_layout Standard +En Linux hay una única jerarquía de directorios, y cada sistema de ficheros + se +\series bold +monta +\series default + en un directorio llamado +\series bold +punto de montaje +\series default +, de forma que, hasta que este se +\series bold +desmonte +\series default +, podemos acceder a los ficheros que contiene a partir de este directorio. + El sistema de ficheros raíz es el que se monta en +\family typewriter +\series bold +/ +\family default +\series default +, el primero en montarse durante el arranque, y no se puede desmontar. + Normalmente solo el superusuario puede montar un sistema de ficheros. + +\end_layout + +\begin_layout Standard +En ocasiones también puede montarlo un usuario normal, pero sin indicar + opciones extra. + Tras montar un sistema de ficheros, el punto de montaje toma los permisos, + propietario y grupo del directorio raíz del sistema de ficheros que se + monta. +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/fstab +\end_layout + +\begin_layout Standard +Contiene información sobre sistemas de ficheros a montar. + Cada sistema de ficheros se des +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +cri +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +be en una línea separada. + Los campos en cada línea se separan con tabulaciones o espacios. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +dispositivo +\family default +\emph default + Dispositivo de bloques a montar. + Se puede usar +\family typewriter +LABEL=<label> +\family default + o +\family typewriter +UUID=<uuid> +\family default + en vez de un nombre de fichero. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +punto_de_montaje +\family default +\emph default + Punto de montaje para el sistema de ficheros. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +tipo +\family default +\emph default + Tipo de sistema de ficheros. + Linux soporta muchos tipos: +\family typewriter +ext3 +\family default +, +\family typewriter +ext4 +\family default +, +\family typewriter +vfat +\family default +, +\family typewriter +iso9660 +\family default +, +\family typewriter +swap +\family default + y muchos más. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +opciones +\family default +\emph default + Opciones de montaje asociadas al sistema de ficheros. + Lista separada por comas. + Contiene al menos el tipo de montaje ( +\family typewriter +\series bold +ro +\family default +\series default + o +\family typewriter +\series bold +rw +\family default +\series default +, que puede estar dentro de +\family typewriter +\series bold +defaults +\family default +\series default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +frecuencia_copia +\family default +\emph default + Usada por +\family typewriter +\series bold +dump +\family default +\series default + para determinar los sistemas de ficheros a los que hacer copia de seguridad. + Por defecto es 0 (no hacer copia). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +comprobación +\family default +\emph default + Usada por +\family typewriter +\series bold +fsck +\family default +\series default + para determinar el orden de comprobación de los sistemas de ficheros al + arrancar (se comprueban primero los que tengan valor 1, después 2, etc.). + El sistema raíz debería indicarse con un valor de 1. + Otros sistemas deberían tener un valor de 2. + Por defecto es 0 (no comprobar). +\end_layout + +\begin_layout Subsection* + +\family typewriter +mkfs [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +DISPOSITIVO +\end_layout + +\begin_layout Standard +Crea un sistema de ficheros Linux en un dispositivo, normalmente una partición + de disco duro. + Actualmente +\family typewriter +\series bold +mkfs +\family default +\series default + es sólo una fachada sobre los creadores de sistemas de ficheros ( +\family typewriter +\series bold +mkfs. +\series default +\emph on +tipo +\family default +\emph default +) disponibles en Linux. + El creador específico al sistema de ficheros se busca solo mediante la + variable de entorno +\family typewriter +PATH +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-t +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +tipo +\family default +\emph default + Especifica el +\family typewriter +\emph on +tipo +\family default +\emph default + del sistema de ficheros a crear. +\end_layout + +\begin_layout Subsection* + +\family typewriter +mke2fs [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +DISPOSITIVO +\end_layout + +\begin_layout Standard +Crea un sistema de ficheros ext2, ext3 o ext4. + Si se ejecuta como +\family typewriter +\series bold +mkfs.XXX +\family default +\series default +, se entiende que el tipo concreto es +\family typewriter +\emph on +XXX +\family default +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +e2label +\emph on +DISPOSITIVO +\emph default + [ +\emph on +ETIQUETA +\emph default +] +\end_layout + +\begin_layout Standard +Cambia la etiqueta de un sistema de ficheros ext2, ext3 o ext4. +\end_layout + +\begin_layout Subsection* + +\family typewriter +fatlabel +\end_layout + +\begin_layout Standard +Establece u obtiene la etiqueta de un sistema de ficheros MS-DOS. +\end_layout + +\begin_layout Subsection* + +\family typewriter +blkid +\end_layout + +\begin_layout Standard +Determina el tipo de contenido de un dispositivo de bloques, así como los + atributos a partir de los metadatos de contenido (como celdas +\family typewriter +LABEL +\family default + o +\family typewriter +UUID +\family default +). +\end_layout + +\begin_layout Subsection* + +\family typewriter +mount +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +mount +\series default + [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +DISPOSITIVO +\emph default +| +\emph on +DIRECTORIO +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +mount +\series default + [ +\series bold +-t +\series default + +\emph on +tipo +\emph default +] [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +DISPOSITIVO DIRECTORIO +\end_layout + +\begin_layout Standard +Monta un sistema de ficheros. + Si solo se indica el directorio o el dispositivo, +\family typewriter +\series bold +mount +\family default +\series default + busca un punto de montaje (y si no lo encuentra, un dispositivo) en el + fichero +\family typewriter +/etc/fstab +\family default +. +\end_layout + +\begin_layout Paragraph* +Listado de montajes +\end_layout + +\begin_layout Standard +El siguiente comando lista todos los sistemas de ficheros montados (o de + tipo +\family typewriter +\emph on +tipo +\family default +\emph default +): +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +mount +\series default + [ +\series bold +-l +\series default +] [ +\series bold +-t +\series default + +\emph on +tipo +\emph default +] +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE LÍNEA DE COMANDOS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-o +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +opciones +\family default +\emph default + Opciones de montaje, lista separada por comas. + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Sinónimo de +\family typewriter +\series bold +-o ro +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-t +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +tipo +\family default +\emph default + Tipo del sistema de ficheros. +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE MONTAJE INDEPENDIENTES DEL SISTEMA DE FICHEROS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +auto +\family default +\series default + Puede ser montado con la opción +\family typewriter +\series bold +-a +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +noauto +\family default +\series default + Sólo puede ser montado de forma explícita. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +defaults +\family default +\series default + Usa las opciones por defecto: +\family typewriter +\series bold +rw +\family default +\series default +, +\family typewriter +\series bold +suid +\family default +\series default +, +\family typewriter +\series bold +dev +\family default +\series default +, +\family typewriter +\series bold +exec +\family default +\series default +, +\family typewriter +\series bold +auto +\family default +\series default +, +\family typewriter +\series bold +nouser +\family default +\series default + y +\family typewriter +\series bold +async +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +nodev +\family default +\series default + No interpreta los dispositivos especiales de caracteres y bloques en el + sistema de ficheros. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +exec +\family default +\series default + Permite la ejecución de ficheros. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +noexec +\family default +\series default + No la permite. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +remount +\family default +\series default + Intenta volver a montar un sistema de ficheros ya montado. + Se usa normalmente para cambiar las opciones de montaje. + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +ro +\family default +\series default + Monta el sistema de ficheros para solo lectura. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +rw +\family default +\series default + Monta el sistema de ficheros para lectura y escritura. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +users +\family default +\series default + Permite a cualquier usuario montar y desmontar el sistema de ficheros. + Implica +\family typewriter +\series bold +noexec +\family default +\series default +, +\family typewriter +\series bold +nosuid +\family default +\series default + y +\family typewriter +\series bold +nodev +\family default +\series default + (salvo que lo sobrescriban opciones posteriores). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +suid +\family default +\series default + Permitir el efecto de los bits SUID o SGID. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +nosuid +\family default +\series default + No permitirlo. +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE MONTAJE ESPECÍFICAS AL SISTEMA DE FICHEROS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +grpquota +\series default +| +\series bold +usrquota +\family default +\series default + Aceptadas pero ignoradas. + (Las utilidades de cuotas podrían reaccionar a estas cadenas en +\family typewriter +\emph on +/etc/fstab +\family default +\emph default +. + Concretamente, activan las cuotas de grupo y usuario, respectivamente, + si el sistema de ficheros soporta un mecanismo de cuotas.) +\end_layout + +\begin_layout Paragraph* +Opciones de montaje para FAT +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +uid= +\series default +\emph on +valor +\family default +\emph default + +\begin_inset space ~ +\end_inset + +y +\begin_inset space ~ +\end_inset + + +\family typewriter +\series bold +gid= +\series default +\emph on +valor +\family default +\emph default + Establecen el propietario y grupo de todos los ficheros. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +umask= +\series default +\emph on +valor +\family default +\emph default + Establece la máscara-u (máscara de permisos que +\series bold +no +\series default + están presentes). + El valor se da en octal. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +dmask= +\series default +\emph on +valor +\family default +\emph default + Establece una máscara-u solo en directorios. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +fmask= +\series default +\emph on +valor +\family default +\emph default + Establece una máscara-u solo en ficheros. +\end_layout + +\begin_layout Subsection* + +\family typewriter +umount { +\emph on +DIRECTORIO +\emph default +| +\emph on +DISPOSITIVO +\emph default +} +\end_layout + +\begin_layout Standard +Desmonta un sistema de ficheros. + No se puede desmontar cuando está +\begin_inset Quotes fld +\end_inset + +ocupado +\begin_inset Quotes frd +\end_inset + + ( +\emph on +busy +\emph default +). +\end_layout + +\begin_layout Subsection* + +\family typewriter +findmnt [ +\emph on +PUNTO_MONTAJE +\emph default +] +\end_layout + +\begin_layout Standard +Lista todos los sistemas de ficheros o busca uno. + Por defecto imprime todos los sistemas de ficheros en formato similar a + un árbol. +\end_layout + +\begin_layout Subsection* + +\family typewriter +fuser [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +NOMBRE +\emph default +... +\end_layout + +\begin_layout Standard +Muestra los PIDs de procesos que usan los ficheros o sistemas de ficheros + especificados. + En el modo por defecto, a cada nombre de fichero le sigue una letra indicando + cada tipo de acceso: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +c +\family default +\series default + Directorio actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +e +\family default +\series default + Ejecutable siendo ejecutado. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +f +\family default +\series default + Fichero abierto. +\end_layout + +\begin_layout Standard +\begin_inset Separator plain +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-m +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +NOMBRE +\family default +\emph default + +\family typewriter +\emph on +NOMBRE +\family default +\emph default + especifica un fichero montado en un sistema de ficheros o dispositivo de + bloques montado. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\family default +\series default + Muestra una salida detallada. + Los campos +\family typewriter +PID +\family default +, +\family typewriter +USER +\family default + y +\family typewriter +COMMAND +\family default + son similares a los de +\family typewriter +\series bold +ps +\family default +\series default +. + +\family typewriter +ACCESS +\family default + muestra cómo el proceso accede al fichero. + También se muestra cuándo un fichero particular es accedido como punto + de montaje. +\end_layout + +\begin_layout Subsection* + +\family typewriter +df [ +\emph on +OPCIÓN +\emph default +]... +\end_layout + +\begin_layout Standard +Muestra el espacio disponible en todos los sistemas de ficheros actualmente + montados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-h +\family default +\series default + Muestra los tamaños en potencias de 1024 (p. + ej., +\family typewriter +1023M +\family default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\family default +\series default + Muestra información de uso sobre los nodos-i en vez de sobre los bloques. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-T +\family default +\series default + Imprime el tipo del sistema de ficheros. +\end_layout + +\begin_layout Subsection* + +\family typewriter +du [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +FICHERO +\emph default +]... +\end_layout + +\begin_layout Standard +Muestra un resumen de uso de disco en los +\family typewriter +\emph on +FICHERO +\family default +\emph default +s, recursivamente en caso de directorios. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-a +\family default +\series default + Muestra el uso de espacio para todos los ficheros, no solo directorios. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-h +\family default +\series default + Mostrar los tamaños en formato legible para humanos (p. + ej., +\family typewriter +1K +\family default +, +\family typewriter +234M +\family default +, +\family typewriter +2G +\family default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-s +\family default +\series default + Mostrar sólo el total para cada argumento. +\end_layout + +\begin_layout Standard +Los valores mostrados están en unidades de 1024 bytes (o 512 si se establece + +\family typewriter +POSIXLY_CORRECT +\family default +). +\end_layout + +\begin_layout Section +Cuotas de disco +\end_layout + +\begin_layout Standard +Algunos sistemas de ficheros soportan +\series bold +cuotas +\series default +, permitiendo establecer límites sobre la cantidad de espacio que puede + usar cada usuario. + En el caso de ext2, ext3 y ext4, cada usuario tiene límites en el número + de bloques y el de nodos-i, de dos tipos: +\end_layout + +\begin_layout Itemize + +\series bold +Límite duro +\series default + ( +\emph on +hard limit +\emph default +): No se puede sobrepasar. +\end_layout + +\begin_layout Itemize + +\series bold +Límite blando +\series default + ( +\emph on +soft limit +\emph default +): Inferior al duro, se puede sobrepasar durante cierto +\series bold +periodo de gracia +\series default +, en el que se informa al usuario. +\end_layout + +\begin_layout Standard +En Linux, las cuotas se deben activar explícitamente. +\end_layout + +\begin_layout Subsection* + +\family typewriter +quotacheck -nm +\emph on +SISTEMA_DE_FICHEROS +\emph default +... +\end_layout + +\begin_layout Standard +Examina cada sistema de ficheros (indicado por el punto de montaje), crea + una tabla con el uso de disco actual y la compara con la contenida en el + fichero de cuotas de disco del sistema de ficheros. + Si se encuentran inconsistencias, tanto el fichero como la copia en el + sistema de las cuotas incorrectas se actualizan. + +\family typewriter +\series bold +quotacheck +\family default +\series default + espera que cada sistema de ficheros a comprobar tenga ficheros de cuota + llamados +\family typewriter +[a]quota.user +\family default + y +\family typewriter +[a]quota.group +\family default + en la raíz. + Si un fichero no está presente, +\family typewriter +\series bold +quotacheck +\family default +\series default + lo crea. +\end_layout + +\begin_layout Subsection* + +\family typewriter +quotaon +\emph on +SISTEMA_FICHEROS +\emph default +... +\end_layout + +\begin_layout Standard +Anuncia al sistema que las cuotas de disco deben ser activadas en uno o + más sistemas de ficheros (indicados por el punto de montaje). + Los ficheros de cuota deben estar presentes en el directorio raíz del sistema + de ficheros. +\end_layout + +\begin_layout Subsection* + +\family typewriter +setquota +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +setquota +\series default + +\series bold +-u +\series default + +\emph on +NOMBRE LÍMITE_BLANDO_BLOQUES LÍMITE_DURO_BLOQUES LÍMITE_BLANDO_NODOS_I LÍMITE_DU +RO_NODOS_I SISTEMA_DE_FICHEROS +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +setquota -t +\series default + +\emph on +PERIODO_GRACIA_BLOQUES PERIODO_GRACIA_NODOS_I SISTEMA_DE_FICHEROS +\end_layout + +\begin_layout Standard +Editor de cuotas. +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-u +\family default +\series default + Establece cuotas para el usuario nombrado. +\end_layout + +\begin_layout Subsection* + +\family typewriter +repquota +\emph on +SISTEMA_DE_FICHEROS +\end_layout + +\begin_layout Standard +Imprime un resumen de los usos de disco y las cuotas para los sistemas de + ficheros indicados. +\end_layout + +\begin_layout Subsection* + +\family typewriter +quota +\end_layout + +\begin_layout Standard +Imprime el uso de disco y los límites del usuario. +\end_layout + +\begin_layout Section +Copias de seguridad +\end_layout + +\begin_layout Standard +Es responsabilidad del administrador que las copias de seguridad de los + sistemas de ficheros se hagan en el momento oportuno y estén en un lugar + seguro, para evitar la posible pérdida de datos. + Tipos de copia: +\end_layout + +\begin_layout Itemize + +\series bold +Completa +\series default +: Tardan mucho en realizarse y la recuperación de un único fichero puede + no ser inmediata, por lo que sólo están justificadas si los ficheros cambian + mucho y son vitales para el trabajo de mucha gente o ante grandes cambios + como nuevo software, sistema operativo, etc. +\end_layout + +\begin_layout Itemize + +\series bold +Diferencial +\series default +: Sólo se copian los ficheros creados o modificados después de la última + copia completa. +\end_layout + +\begin_layout Itemize + +\series bold +Incremental +\series default +: Sólo se copian los ficheros creados o modificados desde la última copia + de seguridad, por lo que ocupan menos que las diferenciales. + Muchas veces se hace una copia completa con poca frecuencia seguida de + copias incrementales con mucha frecuencia, incluso a diario. +\end_layout + +\begin_layout Subsection* + +\family typewriter +tar +\emph on +OPCIÓN +\emph default +... + [ +\emph on +ARGUMENTO +\emph default +]... +\end_layout + +\begin_layout Standard +Almacena múltiples ficheros en uno solo (un +\series bold +archivo +\series default +), y manipula dichos archivos. +\end_layout + +\begin_layout Standard +En +\series bold +estilo tradicional +\series default +, el primer argumento es un clúster de opciones y el resto son argumentos + a aquellas opciones que lo requieran. + En +\series bold +estilo UNIX +\series default +, a cada opción le precede un guión. + Si una opción toma un argumento, este lo sigue, bien como palabra separada + en la línea del comando o inmediatamente detrás de la opción. + Cualquier número de parámetros que no tome argumentos puede juntarse tras + un solo guión. + En +\series bold +estilo GNU +\series default +, cada opción comienza con dos guiones y tiene un nombre descriptivo. + Los tres estilos pueden mezclarse. +\end_layout + +\begin_layout Subsubsection* +OPCIONES +\end_layout + +\begin_layout Paragraph* +Modo de operación +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-c +\family default +\series default + Crea un nuevo archivo. + Los argumentos indican los nombres de los ficheros a archivar. + Los directorios se archivan recursivamente. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Añade fichero al final de un archivo. + Los argumentos tienen el mismo significado que para +\family typewriter +\series bold +-c +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-t +\family default +\series default + Lista el contenido de un archivo. + Los argumentos son opcionales. + Cuando aparecen, son los nombres de los miembros a listar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-x +\family default +\series default + Extrae ficheros de un archivo. + Los argumentos son opcionales. + Cuando aparecen, son los nombres de los miembros del archivo a extraer. +\end_layout + +\begin_layout Paragraph* +Tratamiento de atributos de fichero +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-p +\family default +\series default + Extrae información sobre permisos de fichero. +\end_layout + +\begin_layout Paragraph* +Selección y cambio de dispositivo +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-f +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +ARCHIVO +\family default +\emph default + Usa el fichero o dispositivo de archivo indicado. +\end_layout + +\begin_layout Subsubsection* +Opciones de compresión +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-z +\family default +\series default + Filtra el archivo a través de +\family typewriter +\series bold +gzip +\family default +\series default +. +\end_layout + +\begin_layout Paragraph* +Selección de ficheros local +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-h +\family default +\series default + Sigue enlaces simbólicos; archiva los ficheros a los que apuntan. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-N +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--after-date +\series default += +\emph on +FECHA +\family default +\emph default + Sólo almacena ficheros posteriores a +\family typewriter +\emph on +FECHA +\family default +\emph default +. + Si +\family typewriter +\emph on +FECHA +\family default +\emph default + empieza por +\family typewriter +\series bold +/ +\family default +\series default + o +\family typewriter +\series bold +. + +\family default +\series default + se toma como un nombre de fichero; la fecha de creación de este fichero + se usa como fecha. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-P +\family default +\series default + No elimina las barras al principio de nombres de fichero al crear archivos + (los guarda con ruta absoluta). +\end_layout + +\begin_layout Paragraph* +Salida informativa +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\family default +\series default + Lista los ficheros procesados. +\end_layout + +\begin_layout Subsection* + +\family typewriter +cpio +\end_layout + +\begin_layout Standard +En modo copia hacia fuera, lee una lista de nombres de fichero, uno por + línea, de la entrada estándar, y escribe el archivo en la salida estándar. + En modo copia hacia dentro, lee un archivo de la entrada estándar. +\end_layout + +\begin_layout Paragraph* +Modo principal de operación +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-i +\family default +\series default + Extrae ficheros de un archivo (copia hacia dentro). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-o +\family default +\series default + Crea un archivo (copia hacia fuera). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-t +\family default +\series default + Imprime una tabla de contenidos de la entrada. +\end_layout + +\begin_layout Subsubsection* +Modificadores de operación para ambos modos +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\family default +\series default + Lista los ficheros procesados, o con +\family typewriter +\series bold +-t +\family default +\series default +, proporciona un listado estilo +\family typewriter +\series bold +ls -l +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-F +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +ARCHIVO +\family default +\emph default + Usa este +\family typewriter +\emph on +ARCHIVO +\family default +\emph default + en vez de la entrada o salida estándar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--no-absolute-filenames +\family default +\series default + Crea todos los ficheros relativos al directorio actual. +\end_layout + +\begin_layout Paragraph* +Modificadores de operación para copia hacia fuera +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-a +\family default +\series default + Resetea los tiempos de acceso de los ficheros tras leerlos. +\end_layout + +\begin_layout Paragraph* +Modificadores de operación para copia hacia dentro +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\family default +\series default + Crea directorios cuando se necesite. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-m +\family default +\series default + Presenta las fechas de modificación previas al crear ficheros. +\end_layout + +\begin_layout Subsection* + +\family typewriter +rsync [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +FUENTE +\emph default + +\emph on +DESTINO +\end_layout + +\begin_layout Standard +Puede copiar localmente o hacia/desde otro ordenador sobre una +\emph on +shell +\emph default + remota (demonio +\family typewriter +sshd +\family default +). + Usa un algoritmo que reduce la cantidad de datos enviados por red enviando + solo la diferencia entre los archivos fuente y los existentes en el destino. + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\family default +\series default + Un solo +\family typewriter +\series bold +-v +\family default +\series default + te dará información sobre qué ficheros están siendo transferidos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-a +\family default +\series default + Recursión y preservar casi todo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--backup +\family default +\series default + Los ficheros de destino preexistentes cambian de nombre. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--backup-dir= +\series default +\emph on +DIR +\family default +\emph default + Combinado con +\family typewriter +\series bold +--backup +\family default +\series default +, guarda las copias de seguridad en el directorio especificado del destino. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\family default +\series default + Ejecución de prueba que no realiza ningún cambio (y produce en general + la misma salida que una ejecución real). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--delete +\family default +\series default + Borrar ficheros del lado receptor que no están en la fuente. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-z +\family default +\series default + Comprime los datos de los ficheros conforme se envían al destino, reduciendo + la cantidad de datos transmitidos. +\end_layout + +\begin_layout Section + +\family typewriter +proc +\family default + y +\family typewriter +sysfs +\end_layout + +\begin_layout Standard + +\family typewriter +proc +\family default + (montado en +\family typewriter +/proc +\family default +) y +\family typewriter +sysfs +\family default + (montado en +\family typewriter +/sys +\family default +) +\family typewriter + +\family default +son sistemas de ficheros virtuales (no se almacenan en ningún disco) que + nos permiten acceder a la información del núcleo sobre dispositivos hardware + disponibles, buses, módulos, etc. + En +\family typewriter +/proc +\family default +, tenemos: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +devices +\family default + Dispositivos de bloques y caracteres actualmente configurados (cuyos módulos + están cargados). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +interrupts +\family default + Interrupciones tratadas y dispositivos asociados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +iomem +\family default + Rangos de memoria para E/S mapeada a memoria. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +ioports +\family default + Puertos registrados para E/S no mapeada a memoria. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +modules +\family default + Lista de módulos del núcleo cargados. +\end_layout + +\begin_layout Standard +La información más completa se encuentra en +\family typewriter +/sys +\family default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lshw +\end_layout + +\begin_layout Standard +Extrae información detallada sobre la configuración hardware. + Configuración de memoria, versión de CPU, configuración de caché, buses, + etc. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lsusb +\end_layout + +\begin_layout Standard +Muestra información sobre los buses USB y dispositivos conectados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\family default +\series default + Muestra información detallada sobre los dispositivos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-d +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FABRICANTE +\emph default +: +\emph on +PRODUCTO +\family default +\emph default + Sólo muestra el dispositivo con el ID de fabricante y de producto indicados + en hexadecimal. +\end_layout + +\begin_layout Subsection* + +\family typewriter +lspci +\end_layout + +\begin_layout Standard +Muestra información sobre los buses PCI y dispositivos conectados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-v +\family default +\series default + Muestra información detallada. +\end_layout + +\begin_layout Section +Planificación de E/S en discos +\end_layout + +\begin_layout Standard +La escritura a disco pasa por una +\series bold +caché de disco +\series default + en RAM, y los bloques modificados son realmente escritos por demonios del + núcleo. + Para bloques que no están en la caché, existen 3 planificadores: +\end_layout + +\begin_layout Itemize + +\series bold +CFQ +\series default + ( +\emph on +Completely Fair Queuing +\emph default +): Va asignando el disco a cada proceso durante cierto tiempo, en el cual + solo se sirven peticiones de este proceso, siguiendo básicamente un algoritmo + SCAN. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Deadline +\series default +\emph default +: Asigna plazos de tiempo a cada petición, de forma que si hay peticiones + con plazos incumplidos, estas son atendidas mediante FCFS y, de lo contrario, + aplica un algoritmo SCAN. +\end_layout + +\begin_layout Itemize + +\series bold +NOOP +\series default + ( +\emph on +no-operation +\emph default +): FCFS. +\end_layout + +\begin_layout Standard +Para discos duros, CFQ proporciona mejor rendimiento en general, por lo + que es el +\series bold +planificador por omisión +\series default +; +\emph on +deadline +\emph default + funciona mejor para bases de datos, y NOOP es el peor. + Para SSDs y ciertos dispositivos inteligentes como sistemas RAID por hardware, + el mejor es NOOP, pues el resto introducen pequeños retrasos que sólo tienen + sentido para discos duros. +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +Podemos obtener el planificador para un disco leyendo de +\family typewriter +/sys/block/ +\emph on +nombre_disco +\emph default +/queue/scheduler +\family default + (siendo +\family typewriter +\emph on +nombre_disco +\family default +\emph default +, por ejemplo, +\family typewriter +sda +\family default +), que nos muestra todos los planificadores con el actual entre corchetes, + y podemos cambiarlo +\begin_inset Quotes fld +\end_inset + +sobreescribiéndolo +\begin_inset Quotes frd +\end_inset + + con el nombre del planificador que queremos ( +\family typewriter +noop +\family default +, +\family typewriter +deadline +\family default + o +\family typewriter +cfq +\family default +). + El parámetro del núcleo +\family typewriter +elevator= +\emph on +planificador +\family default +\emph default + establece el planificador por omisión. +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +En CFQ, los procesos tienen prioridades de E/S. +\end_layout + +\begin_layout Subsection* + +\family typewriter +ionice [ +\emph on +OPCIÓN +\emph default +]... + [-p +\begin_inset space ~ +\end_inset + + +\emph on +PID +\emph default +| +\emph on +COMANDO +\emph default +...] +\end_layout + +\begin_layout Standard +Establece u obtiene la clase de E/S y prioridad para un proceso. + Sin parámetros o sólo con +\family typewriter +\series bold +-p +\family default +\series default +, obtiene la clase de planificación y prioridad de E/S para el proceso. + Si se da un +\family typewriter +\emph on +COMANDO +\family default +\emph default +, ejecuta el comando con los parámetros dados. + Si no se especifica una +\family typewriter +\emph on +clase +\family default +\emph default +, se ejecuta con clase de prioridad +\begin_inset Quotes fld +\end_inset + +mejor esfuerzo +\begin_inset Quotes frd +\end_inset + +. + El nivel de prioridad por defecto es 4. +\end_layout + +\begin_layout Standard +Un proceso puede estar en tres clases de planificación E/S: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\series bold +Desocupado +\series default + +\begin_inset space ~ +\end_inset + +( +\emph on +idle +\emph default +) Sólo obtiene el disco cuando ningún otro programa lo ha pedido durante + un cierto periodo de gracia. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\series bold +Mejor +\begin_inset space ~ +\end_inset + +esfuerzo +\series default + +\begin_inset space ~ +\end_inset + +( +\emph on +best-effort +\emph default +) Toma un argumento de prioridad de 0–7, con menor número para mayor prioridad. + Los procesos con igual prioridad se sirven en +\emph on +round-robin +\emph default +. + Un proceso que no ha pedido una prioridad de E/S hereda su clase de planificaci +ón de CPU. + Su prioridad se deriva del nivel +\emph on +nice +\emph default + de CPU ( +\begin_inset Formula $\left\lfloor \frac{\text{valor nice}+20}{5}\right\rfloor $ +\end_inset + +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\series bold +Tiempo +\begin_inset space ~ +\end_inset + +real +\series default + +\begin_inset space ~ +\end_inset + +( +\emph on +realtime +\emph default +) Se le da primer acceso al disco, independientemente del resto del sistema. + Se definen 8 niveles de prioridad (0–7) según lo grande que es la porción + de tiempo que recibirá un proceso. + No permitida para usuarios no +\family typewriter +root +\family default +. +\end_layout + +\begin_layout Standard +\begin_inset Separator plain +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-c +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--class +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +CLASE +\family default +\emph default + Número de la clase; +\family typewriter +\series bold +0 +\family default +\series default + para ninguna, +\family typewriter +\series bold +1 +\family default +\series default + para tiempo real, +\family typewriter +\series bold +2 +\family default +\series default + para mejor esfuerzo, +\family typewriter +\series bold +3 +\family default +\series default + para desocupado. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--classdata +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +NIVEL +\family default +\emph default + Para tiempo real y mejor esfuerzo, nivel de prioridad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-p +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--pid +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +PID +\family default +\emph default + ID del proceso del que obtener o establecer los parámetros. +\end_layout + +\begin_layout Subsection* + +\family typewriter +iotop +\end_layout + +\begin_layout Standard +Muestra una tabla de uso de E/S actual de los procesos o hilos. + (Las columnas son: identificador de hilo +\family typewriter +TID +\family default +, clase/nivel de prioridad +\family typewriter +PRIO +\family default +, propietario +\family typewriter +USER +\family default +, tasa de transferencia de lectura +\family typewriter +DISK READ +\family default +, de escritura +\family typewriter +DISK WRITE +\family default +, porcentaje de tiempo de espera en fallos de página +\family typewriter +SWAPIN +\family default +, porcentaje de tiempo de espera a peticiones de E/S a disco +\family typewriter +IO +\family default + y línea de órdenes +\family typewriter +COMMAND +\family default +.) +\end_layout + +\begin_layout Standard +Use las flechas izquierda y derecha para cambiar la ordenación, +\family typewriter +r +\family default + para invertir el orden (se indica +\family typewriter +< +\family default + o +\family typewriter +> +\family default + en la columna en la que se ordena para orden ascendente o descendente, + respectivamente). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-P +\family default +\series default + Solo muestra procesos. +\end_layout + +\begin_layout Subsection* + +\family typewriter +sync +\end_layout + +\begin_layout Standard +Sincroniza las escrituras a caché a almacenamiento permanente. +\end_layout + +\end_body +\end_document diff --git a/iso/ne.lyx b/iso/ne.lyx new file mode 100644 index 0000000..7cfa928 --- /dev/null +++ b/iso/ne.lyx @@ -0,0 +1,1997 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +Gestión de procesos +\end_layout + +\begin_layout Standard +Linux realiza planificación por prioridades dinámicas, con una +\series bold +prioridad base +\series default + o valor +\emph on +nice +\emph default + que va de +\begin_inset Formula $-20$ +\end_inset + + (máxima) a 20 (mínima), donde 19 o 20 indica que al proceso solo se le + da la CPU cuando nadie más la quiera. + Por defecto cada proceso hereda la prioridad base de su padre, y sólo +\family typewriter +root +\family default + puede aumentar la prioridad e un proceso. + La prioridad dinámica se calcula según la prioridad base dependiendo del + consumo de CPU realizado, ejecución de código en el núcleo, etc. +\end_layout + +\begin_layout Standard +Un proceso pueden recibir señales como STOP (19) que lo detiene, CONT (18) + que lo reanuda, KILL (9) que lo elimina (salvo si es zombie o bloqueado + por E/S) o TERM (15) que le notifica de que debe terminar. + Los procesos pueden +\series bold +capturar +\series default + algunas señales, como TERM pero no KILL, cambiando su comportamiento por + defecto al recibirlas. +\end_layout + +\begin_layout Subsection* + +\family typewriter +ps +\end_layout + +\begin_layout Standard +Muestra información sobre procesos activos. + Acepta varios tipos de opciones: +\end_layout + +\begin_layout Enumerate +Opciones UNIX, que pueden ser agrupadas y deben ser precedidas por un guion. +\end_layout + +\begin_layout Enumerate +Opciones BSD, que pueden ser agrupadas y no deben ser usadas con guion. +\end_layout + +\begin_layout Enumerate +Opciones largas GNU, precedidas por dos guiones. +\end_layout + +\begin_layout Standard +Pueden mezclarse opciones de distintos tipos, pero puede haber conflictos. + Por defecto, +\family typewriter +\series bold +ps +\family default +\series default + selecciona los procesos con igual EUID que el usuario actual y asociados + a terminal. +\end_layout + +\begin_layout Subsubsection* +SELECCIÓN SIMPLE DE PROCESOS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +a +\family default +\series default + Quita la restricción +\begin_inset Quotes fld +\end_inset + +sólo tus procesos +\begin_inset Quotes frd +\end_inset + +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +x +\family default +\series default + Quita la restricción +\begin_inset Quotes fld +\end_inset + +debe tener una terminal +\begin_inset Quotes frd +\end_inset + +. +\end_layout + +\begin_layout Subsubsection* +CONTROL DE FORMATO DE SALIDA +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +l +\family default +\series default + Formato largo de BSD (con campos como +\family typewriter +ppid +\family default +, +\family typewriter +uid +\family default +, +\family typewriter +pri +\family default +, +\family typewriter +ni +\family default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +o +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +formato +\family default +\emph default + Idéntico a +\family typewriter +\series bold +-o +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-o +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +formato +\family default +\emph default + Formato definido por el usuario en forma de lista separada por comas, una + forma de especificar columnas de salida (ver +\family typewriter +\series bold +ESPECIFICADORES DE FORMATO ESTÁNDARES +\family default +\series default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +u +\family default +\series default + Formato orientado a usuario ( +\family typewriter +user,pid,%cpu,%mem,vsz,rss,stat,tty +\family default +). +\end_layout + +\begin_layout Subsubsection* +CÓDIGOS DE ESTADO DE PROCESOS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +D +\family default + Bloqueo ininterrumpible (normalmente E/S). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +R +\family default + En cola de ejecución. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +S +\family default + Bloqueo interrumpible (esperando un evento). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +T +\family default + Parado. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +Z +\family default + Zombie, terminado pero no recogido por su padre. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +< +\family default + Alta prioridad ( +\emph on +not nice +\emph default +, +\begin_inset Formula $<0$ +\end_inset + +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +N +\family default + Baja prioridad ( +\emph on +nice +\emph default +, +\begin_inset Formula $>0$ +\end_inset + +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +s +\family default + Líder de sesión. + (Una sesión está asociada a un grupo de procesos y el primero de ellos + es el líder. + Por ejemplo, si se crean desde una terminal, el líder es el de la terminal + en sí misma.) +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter ++ +\family default + En primer plano. +\end_layout + +\begin_layout Subsubsection* +ESPECIFICADORES DE FORMATO ESTÁNDARES +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +%cpu +\family default +\series default + Tiempo de CPU usado entre tiempo de ejecución del proceso como porcentaje. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +%mem +\family default +\series default + Tamaño del conjunto residente del proceso entre memoria física, como porcentaje. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +euid +\family default +\series default + ID efectivo de usuario (alias +\family typewriter +\series bold +uid +\family default +\series default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +euser +\family default +\series default + Nombre de usuario efectivo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +ni +\family default +\series default + Valor +\emph on +nice +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +pid +\family default +\series default + ID del proceso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +ppid +\family default +\series default + ID del proceso padre. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +pri +\family default +\series default + Prioridad del proceso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +rss +\family default +\series default + Tamaño del conjunto residente, la memoria física usada (en KiB). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +stat +\family default +\series default + Estado del proceso. + Ver +\family typewriter +\series bold +CÓDIGOS DE ESTADO DE PROCESOS +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +time +\family default +\series default + Tiempo acumulativo de CPU en segundos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +tty +\family default +\series default + Terminal. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +uid +\family default +\series default + Ver +\family typewriter +\series bold +euid +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +user +\family default +\series default + Ver +\family typewriter +\series bold +euser +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +vsz +\family default +\series default + Tamaño de memoria virtual en kiB. +\end_layout + +\begin_layout Subsection* + +\family typewriter +pstree +\end_layout + +\begin_layout Standard +Muestra los procesos en ejecución como un árbol. + La raíz del árbol es +\family typewriter +\series bold +init +\family default +\series default +. + +\family typewriter +\series bold +pstree +\family default +\series default + une ramas idénticas poniéndolas entre corchetes y añadiendo un prefijo + con el número de repeticiones. + Los hilos hijos de un proceso se encuentran bajo el proceso padre con el + nombre del proceso entre llaves. +\end_layout + +\begin_layout Subsection* + +\family typewriter +top +\begin_inset Foot +status open + +\begin_layout Plain Layout +Debido a la complejidad de la página +\family typewriter +man +\family default +, se ha optado por no basarse en ella. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Muestra la actividad del procesador y procesos con una interfaz interactiva + que se actualiza cada cierto tiempo (normalmente cada 3 segundos). + Las 5 primeras líneas contienen: +\end_layout + +\begin_layout Enumerate + +\family typewriter +top - +\emph on +hh +\emph default +: +\emph on +mm +\emph default +: +\emph on +ss +\emph default + up +\emph on +DD +\emph default + days, +\emph on +HH +\emph default +: +\emph on +MM +\emph default +, +\emph on +N +\emph default + users, load average: +\emph on +l1 l5 l15 +\family default +\emph default + +\begin_inset Newline newline +\end_inset + +Hora actual, tiempo en marcha del sistema, número de terminales de usuario + abiertas y carga en los 1, 5 y 15 últimos minutos en tanto por 1, con máximo + igual al número de núcleos de CPU. +\end_layout + +\begin_layout Enumerate + +\family typewriter +Tasks: +\emph on +K +\emph default + total, +\emph on +R +\emph default + running, +\emph on +S +\emph default + sleeping, +\emph on +P +\emph default + stopped, +\emph on +Z +\emph default + zombie +\family default + +\begin_inset Newline newline +\end_inset + +Número de procesos total, en ejecución, durmiendo, parados y zombis. +\end_layout + +\begin_layout Enumerate + +\family typewriter +%Cpu(s): +\emph on +U +\emph default + us, +\emph on +S +\emph default + sy, +\emph on +C +\emph default + ni, +\emph on +I +\emph default + id, +\emph on +W +\emph default + wa, +\emph on +H +\emph default + hi, +\emph on +E +\emph default + si, +\emph on +T +\emph default + st +\family default + +\begin_inset Newline newline +\end_inset + +Porcentaje de CPU para modo usuario, modo núcleo (no incluye tratamiento + de interrupciones), usuario +\emph on +not nice +\emph default + (prioridad +\begin_inset Formula $>0$ +\end_inset + +), ociosa ( +\emph on +idle +\emph default +), ociosa esperando E/S, tratando interrupciones hardware, tratando interrupcion +es software y espera involuntaria ( +\emph on +stolen +\emph default +; en una máquina virtual, el tiempo usado por la máquina real u otras virtuales + que no dependen de esta; en una máquina real debería ser 0). +\end_layout + +\begin_layout Enumerate + +\family typewriter +KiB Mem : +\emph on +t +\emph default + total, +\emph on +f +\emph default + free, +\emph on +u +\emph default + used, +\emph on +b +\emph default + buff/cache +\family default + +\begin_inset Newline newline +\end_inset + +Memoria total disponible, usada, totalmente libre y usada en +\emph on +buffers +\emph default +/cachés. +\end_layout + +\begin_layout Enumerate + +\family typewriter +KiB Swap: +\emph on +T +\emph default + total, +\emph on +F +\emph default + free, +\emph on +U +\emph default + used. + +\emph on +A +\emph default + avail Mem +\family default + +\begin_inset Newline newline +\end_inset + +Memoria de intercambio total disponible, usada, libre y estimación de la + que se podría usar (incluyendo la libre, que no se usa en absoluto). +\end_layout + +\begin_layout Standard +A continuación una lista de procesos, con las siguientes columnas: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +PID +\family default + ID del proceso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +USER +\family default + Usuario. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +PR +\family default + Prioridad dinámica. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +NI +\family default + Prioridad base ( +\emph on +nice +\emph default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +VIRT +\family default + +\family typewriter +VSZ +\family default + de +\family typewriter +ps +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +RES +\family default + +\family typewriter +RSS +\family default + de +\family typewriter +ps +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +SHR +\family default + Memoria que podría ser compartida con otros procesos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +S +\family default + Estado del proceso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +%CPU +\family default + Porcentaje de CPU usado en el intervalo de actualización. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +%MEM +\family default + Porcentaje de RAM usado. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +TIME+ +\family default + +\family typewriter +TIME +\family default + de +\family typewriter +ps +\family default +. +\end_layout + +\begin_layout Standard +Comandos interactivos: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +k +\family default + Envía una señal a un proceso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +n +\family default + Cambia el número de procesos mostrados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +q +\family default + Sale. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +r +\family default + Cambia la prioridad de un proceso. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +M +\family default + Ordena según +\family typewriter +%MEM +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +N +\family default + Según +\family typewriter +PID +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +P +\family default + Según +\family typewriter +%CPU +\family default + (por defecto). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +T +\family default + Según tiempo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +nice [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +COMANDO +\emph default +... +\end_layout + +\begin_layout Standard +Ejecuta el +\family typewriter +\emph on +COMANDO +\family default +\emph default + con el valor +\emph on +nice +\emph default + ajustado. + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +N +\family default +\emph default + Añade +\family typewriter +\emph on +N +\family default +\emph default + al valor +\emph on +nice +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +renice +\emph on +PRIORIDAD PID +\end_layout + +\begin_layout Standard +Altera la prioridad de un proceso. +\end_layout + +\begin_layout Subsection* + +\family typewriter +kill [- +\emph on +SEÑAL +\emph default +] +\emph on +PID +\emph default +... +\end_layout + +\begin_layout Standard +Envía la +\family typewriter +\emph on +SEÑAL +\family default +\emph default + indicada a los procesos. + Si no se especifica la señal, se envía TERM. +\end_layout + +\begin_layout Subsection* + +\family typewriter +killall [- +\emph on +SEÑAL +\emph default +] +\emph on +NOMBRE +\end_layout + +\begin_layout Standard +Envía una señal a todos los procesos ejecutando el comando especificado. + Si no se especifica la señal, se envía TERM. +\end_layout + +\begin_layout Section +Programación de tareas +\end_layout + +\begin_layout Subsection* + +\family typewriter +at [ +\emph on +OPCIÓN +\emph default +]... + +\emph on +TIEMPO +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +at +\family default +\series default + ejecuta comandos en una fecha especificada (de esto se encarga +\family typewriter +atd.service +\family default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +atq +\family default +\series default + lista los trabajos pendientes. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +atrm +\family default +\series default + elimina trabajos. +\end_layout + +\begin_layout Standard +Acepta tiempos de la forma +\family typewriter +\series bold +HH:MM +\family default +\series default + para ejecutar un trabajo a un tiempo específico del día. + Los comandos se leen de la entrada estándar o del fichero especificado. +\end_layout + +\begin_layout Subsection* + +\family typewriter +cron +\end_layout + +\begin_layout Standard +Demonio para ejecutar comandos programados ( +\family typewriter +crond.service +\family default +). +\end_layout + +\begin_layout Subsubsection* +FICHEROS +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +/etc/cron.d/ +\family default + +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +Directorio con ficheros +\family typewriter +cronjob +\family default + para distintos usuarios. + (El fichero +\family typewriter +crontab +\family default + +\family typewriter +/etc/cron.d/0hourly +\family default + está preparado para ejecutar cada hora las tareas en +\family typewriter +/etc/cron.hourly/ +\family default +, de las que ejecuta +\family typewriter +anacron +\family default +.) +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Subsection* + +\family typewriter +crontab(5) +\end_layout + +\begin_layout Standard +Un fichero +\family typewriter +crontab +\family default + contiene instrucciones para el demonio +\family typewriter +\series bold +cron +\family default +\series default +. + Cada línea tiene cinco celdas de fecha y hora seguidas de un comando. + Los comandos se ejecutan cuando las celdas +\begin_inset Quotes fld +\end_inset + +minuto +\begin_inset Quotes frd +\end_inset + +, +\begin_inset Quotes fld +\end_inset + +hora +\begin_inset Quotes frd +\end_inset + + y +\begin_inset Quotes fld +\end_inset + +mes +\begin_inset Quotes frd +\end_inset + + coinciden con la fecha actual +\series bold +y +\series default + al menos +\begin_inset Quotes fld +\end_inset + +día del mes +\begin_inset Quotes frd +\end_inset + + o +\begin_inset Quotes fld +\end_inset + +día de la semana +\begin_inset Quotes frd +\end_inset + + coinciden con la fecha actual. + Las celdas son: +\end_layout + +\begin_layout Standard +\begin_inset Tabular +<lyxtabular version="3" rows="5" columns="2"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top"> +<column alignment="center" valignment="top"> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Minuto +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0–59 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Hora +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0–23 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Día del mes +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1–31 +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Mes +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +1–12 (o nombres) +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Día de la semana +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +0–7 (0 o 7 es domingo, o nombres) +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Standard +Una celda puede contener un asterisco ( +\family typewriter +* +\family default +), que siempre significa +\family typewriter +\emph on +primero +\emph default +- +\emph on +último +\family default +\emph default +. + Se permiten rangos de números. + Los rangos son dos números separados por un guion. + El rango es inclusive. +\end_layout + +\begin_layout Standard +Se permiten conjuntos de números (o rangos) separados por comas. + Añadir +\begin_inset Quotes fld +\end_inset + + +\family typewriter +/ +\emph on +número +\family default +\emph default + +\begin_inset Quotes frd +\end_inset + + detrás de un rango especifica saltos del valor del número. +\end_layout + +\begin_layout Subsection* + +\family typewriter +crontab [ +\emph on +OPCIÓN +\emph default +]... +\end_layout + +\begin_layout Standard +Mantiene ficheros +\family typewriter +crontab +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-l +\family default +\series default + Muestra el +\family typewriter +crontab +\family default + actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Elimina el +\family typewriter +crontab +\family default + actual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-e +\family default +\series default + Edita el +\family typewriter +crontab +\family default + actual usando el editor. +\end_layout + +\begin_layout Subsection* + +\family typewriter +anacron +\end_layout + +\begin_layout Standard +Ejecuta comandos periódicamente. + No asume que la máquina se ejecute continuamente. + (Por defecto está configurado para ejecutar, diaria, semanal y mensualmente, + respectivamente, los trabajos en +\family typewriter +/etc/cron.daily/ +\family default +, +\family typewriter +/etc/cron.weekly/ +\family default + y +\family typewriter +/etc/cron.monthly/ +\family default +.) Si un trabajo no se ha ejecutado en +\family typewriter +\series bold +n +\family default +\series default + días (el periodo) o más, +\family typewriter +\series bold +anacron +\family default +\series default + ejecuta el trabajo. +\end_layout + +\begin_layout Section +Memoria virtual +\end_layout + +\begin_layout Standard +Linux puede usar un +\series bold +fichero de paginación +\series default + o una +\series bold +partición de intercambio +\series default + ( +\emph on +swap +\emph default +) para la memoria virtual, que funciona por paginación, si bien se prefiere + una partición porque no sufre fragmentación y se puede situar en la parte + más rápida de un disco duro (los cilindros exteriores). + El tamaño de la partición depende de factores como la memoria requerida + por los trabajos, tamaño de los programas, número de trabajos simultáneos, + demanda del sistema, etc. + Además, para hibernar se necesita tanto espacio de intercambio como total + de memoria usada. + Al montar un espacio de intercambio, la opción +\family typewriter +pri= +\emph on +valor +\family default +\emph default +, que podemos poner en +\family typewriter +/etc/fstab +\family default +, establece la prioridad, siendo mayor cuanto mayor es el número. +\end_layout + +\begin_layout Subsection* + +\family typewriter +free +\end_layout + +\begin_layout Standard +Muestra el total de memoria física y de intercambio libre y usada en el + sistema. + Las columnas son: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +total +\family default +\series default + Total de memoria instalada (física y de intercambio). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +used +\family default +\series default + Memoria usada (física y de intercambio, +\begin_inset Formula $\mathtt{total}-\mathtt{free}-\mathtt{buff/cache}$ +\end_inset + +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +free +\family default +\series default + Memoria no usada (física y de intercambio). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +shared +\family default +\series default + (Física) +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +buff/cache +\family default +\series default + Suma de +\family typewriter +\series bold +buffers +\family default +\series default + y +\family typewriter +\series bold +cache +\family default +\series default + (física). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +available +\family default +\series default + Estimación de memoria disponible para nuevos procesos (física). +\end_layout + +\begin_layout Subsection* + +\family typewriter +vmstat [ +\emph on +PERIODO +\emph default + [ +\emph on +NÚMERO +\emph default +]] +\end_layout + +\begin_layout Standard +Muestra estadísticas de memoria virtual. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +PERIODO +\family default +\emph default + El periodo entre actualizaciones en segundos. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\emph on +NÚMERO +\family default +\emph default + Número de actualizaciones. +\end_layout + +\begin_layout Subsubsection* +DESCRIPCIÓN DE LAS CELDAS +\end_layout + +\begin_layout Paragraph* +Memoria (en KiBs) +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +swpd +\family default + Memoria virtual usada. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +free +\family default + Memoria sin usar. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +buff +\family default + Memoria usada como +\emph on +buffers +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +cache +\family default + Memoria usada como caché. +\end_layout + +\begin_layout Paragraph* +Espacio de intercambio ( +\emph on +swap +\emph default +) +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +si +\family default + Memoria traída del disco (/s). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +so +\family default + Memoria llevada al disco (/s). +\end_layout + +\begin_layout Paragraph* +E/S +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +bi +\family default + Bloques recibidos de un dispositivo de bloques (bloques/s). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +bo +\family default + Bloques enviados a un dispositivo de bloques (bloques/s). +\end_layout + +\begin_layout Paragraph* +Sistema +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +in +\family default + Interrupciones por segundo, incluyendo el reloj. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +cs +\family default + Cambios de contexto por segundo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +mkswap +\emph on +FICHERO +\end_layout + +\begin_layout Standard +Crea un área de intercambio Linux en un dispositivo o fichero. +\end_layout + +\begin_layout Subsection* + +\family typewriter +swapon +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +swapon +\series default + +\emph on +FICHERO +\emph default +... +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +swapoff +\series default + +\emph on +FICHERO +\emph default +... +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +swapon +\family default +\series default + especifica un dispositivo (o fichero) para intercambio. + +\family typewriter +\series bold +swapoff +\family default +\series default + desactiva el uso como área de intercambio. +\end_layout + +\end_body +\end_document diff --git a/iso/nf.lyx b/iso/nf.lyx new file mode 100644 index 0000000..995eae4 --- /dev/null +++ b/iso/nf.lyx @@ -0,0 +1,2949 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +El +\emph on +firmware +\end_layout + +\begin_layout Standard +Cuando se pulsa el botón de encendido, se generan señales eléctricas que + hacen que en los registros del procesador y de otros componentes se carguen + valores predeterminados. + En el procesador, el contador de programa se carga con la dirección del + +\series bold +\emph on +firmware +\series default +\emph default +, un trozo de código almacenado normalmente en memoria no volátil de lectura + y escritura (EEPROM, flash, etc.) que se encarga, entre otras cosas, de + preparar el hardware. +\begin_inset Foot +status open + +\begin_layout Plain Layout +También suelen ocurrir más cosas, como un +\emph on +Baseboard Management Controller +\emph default + (BMC) o un +\emph on +Intel Management Engine +\emph default + (IME). + Este último componente se encarga (v. + CVE-2017-5689 y otros) de que la NSA (que lo tiene desactivado por petición + especial) y otros puedan espiarte. +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Los principales tipos de +\emph on +firmware +\emph default + son BIOS, que suele aparecer en ordenadores anteriores a 2010, y UEFI, + que aparece en los más recientes +\begin_inset Foot +status open + +\begin_layout Plain Layout +Y lo jode todo. +\end_layout + +\end_inset + +. + Este busca en los dispositivos de almacenamiento un +\series bold +cargador +\series default + o +\series bold +gestor de arranque +\series default +. + Si no lo encuentra, muestra un error. + Si lo encuentra, lo copia en memoria y lo ejecuta, y este pasa a leer de + disco el sistema operativo y, posiblemente, otros componentes necesarios + para que este arranque, para finalmente pasarle el control. +\end_layout + +\begin_layout Standard +En los sistemas BIOS, el +\emph on +firmware +\emph default + detecta los dispositivos de almacenamiento y toma el primero según una + secuencia de arranque dada, copia su sector 0 (el MBR) a disco y pasa el + control a lo que acaba de leer. + Si este no tiene código de arranque, toma elfich +\end_layout + +\begin_layout Standard +En los UEFI se usa particionamiento GPT, y la +\series bold +partición del sistema de UEFI +\series default +, que en Linux suele montarse en +\family typewriter +/boot/efi +\family default + y que contiene un sistema de ficheros FAT y GUID +\family typewriter +C12A7328-F81F-11D2-BA4B-00A0C93EC93B +\family default +, contiene directorios por cada sistema operativo con todo lo necesario + para la puesta en marcha: Windows usa +\family typewriter +/EFI/Microsoft +\family default + y Fedora usa +\family typewriter +/EFI/fedora +\family default +. + También suele haber un +\series bold +módulo de soporte de compatibilidad +\series default + ( +\emph on +Compatibility Support Module +\emph default +, CSM), que simula un entorno BIOS para poder arrancar sistemas operativos + sin soporte UEFI. + El +\emph on +firmware +\emph default + almacena una entrada apuntando a cada fichero de arranque. + El +\emph on +firmware +\emph default + busca en cada sistema de almacenamiento disponible con partición del sistema + UEFI, en orden configurable, un gestor de arranque funcional, de entre + los dados por una lista ordenada. +\end_layout + +\begin_layout Standard +En 2011, con la versión 2.3.1 de la especificación UEFI aparece +\emph on +Secure Boot +\emph default +, que sólo permite arrancar a software firmado con una clave reconocida + por el +\emph on +firmware +\emph default +. + En los equipos certificados para Windows 8, las claves son proporcionadas + por Microsoft y no son públicas. + Dos opciones son desactivar +\emph on +Secure Boot +\emph default + en la configuración o usar un cargador firmado con una clave de Microsoft. +\end_layout + +\begin_layout Section +GRUB 2 +\end_layout + +\begin_layout Standard +El +\emph on +GRand Unified Bootloader +\emph default + versión 2 es un gestor de arranque que normalmente se usa para cargar el + núcleo de Linux, si bien puede cargar otros sistemas operativos. +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +En BIOS, consta de 3 fases dadas por +\series bold +imágenes +\series default +, que en Fedora se almacenan en +\family typewriter +/usr/lib/grub/i386-pc +\family default + y en +\family typewriter +/boot/grub2/i386-pc +\family default +. + Algunas son: +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +boot.img +\family default +\series default + Se escribe en el MBR, ocupa +\begin_inset Formula $\unit[512]{B}$ +\end_inset + + y se encarga de cargar y ejecutar la segunda fase. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +diskboot.img +\family default +\series default + Segunda fase y primer sector de la imagen +\emph on +core +\emph default +, se encarga de cargar y ejecutar el resto de la imagen +\emph on +core +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +cdboot.img +\family default +\series default + Como +\family typewriter +diskboot.img +\family default + pero para CD/DVD. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +kernel.img +\family default +\series default + Contiene utilidades en tiempo de ejecución básicas de GRUB 2, y en general + se integra en la imagen +\emph on +core +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +core.img +\family default +\series default + Imagen principal, construida dinámicamente a partir de +\family typewriter +diskboot.img +\family default +/ +\family typewriter +cdboot.img +\family default +, +\family typewriter +kernel.img +\family default + y una lista de módulos. + Normalmente contiene módulos suficientes para acceder a la configuración + y el resto de módulos (ficheros +\family typewriter +.mod +\family default +) en el sistema de ficheros. +\end_layout + +\begin_layout Standard +Las imágenes +\family typewriter +*boot.img +\family default + no entienden ningún sistema de ficheros, por lo que las dos últimas fases + se copian a la zona del disco detrás del MBR y antes de la primera partición, + y se almacena el sector de comienzo de cada imagen y su tamaño. +\end_layout + +\begin_layout Standard +En UEFI, el código de GRUB 2 se encuentra en +\family typewriter +grubx64.efi +\family default +, con formato Windows PE, y generalmente contiene todo lo necesario, si + bien sigue siendo posible cargar módulos dinámicamente. + Fedora usa el fichero +\family typewriter +sham.efi +\family default +, firmado por Microsoft, que se encarga de instalar una clave propia y ejecutar + GRUB 2, que, al igual que el núcleo de Linux, estará firmado por esta clave. +\end_layout + +\begin_layout Standard +GRUB 2 tiene 3 interfaces: +\end_layout + +\begin_layout Itemize +Menú: Permite elegir el sistema operativo entre varias opciones. +\end_layout + +\begin_layout Itemize +Editor: Permite editar una entrada de menú, y se accede seleccionando la + entrada y pulsando +\family typewriter +e +\family default +. + Podemos usar +\family typewriter +F10 +\family default + para arrancar con los cambios o +\family typewriter +Esc +\family default + para descartarlos y volver al menú. +\end_layout + +\begin_layout Itemize +Línea de órdenes: Permite ejecutar órdenes de GRUB 2, y se accede pulsando + +\family typewriter +c +\family default + desde el menú o +\family typewriter +F2 +\family default + desde el editor. +\end_layout + +\begin_layout Standard +Los dispositivos se identifican como +\end_layout + +\begin_layout Quotation +{ +\family typewriter +\emph on +tipo de dispositivo +\family default +\emph default +}{ +\family typewriter +\emph on +número de dispositivo BIOS +\family default +} +\family typewriter +\emph default +, +\family default +[ +\family typewriter +\emph on +particionamiento +\family default +\emph default +] +\begin_inset Newline newline +\end_inset + +{ +\family typewriter +\emph on +número de partición +\family default +\emph default +} +\end_layout + +\begin_layout Standard +Los números de dispositivo empiezan por 0 y los de partición por 1, y los + discos duros se denotan +\family typewriter +hd +\family default +. + Por ejemplo, +\family typewriter +hd0,1 +\family default + es la primera partición del primer disco duro, y escribimos +\family typewriter +hd0,msdos1 +\family default + si queremos indicar además que el tipo de particiones es MS-DOS. + También podemos especificar un fichero como +\family typewriter +\emph on +dispositivo +\emph default +/ +\emph on +ruta +\family default +\emph default +, donde la +\family typewriter +\emph on +ruta +\family default +\emph default + parte de la raíz del +\family typewriter +\emph on +dispositivo +\family default +\emph default +. +\end_layout + +\begin_layout Standard +Fedora almacena la configuración de GRUB 2 en +\family typewriter +/boot/grub2/grub.cfg +\family default +. + Esta se genera a partir de ficheros en +\family typewriter +/etc/grub.d +\family default +, que se ejecutan en orden alfabético si tienen permisos de ejecución, y + en Fedora son: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +00_header +\family default +\series default + Configura el modo gráfico, la entrada por defecto, la pausa antes de arrancar + esta, etc., configuración que normalmente procede de +\family typewriter +/etc/default/grub +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +10_linux +\family default +\series default + Identifica los núcleos de Linux instalados en el dispositivo de arranque + (normalmente montado en +\family typewriter +/boot +\family default +) y les crea entradas. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +30_os-prober +\family default +\series default + Usa +\family typewriter +os-probler +\family default + para buscar e instalar otras distribuciones de Linux y otros sistemas operativo +s, y se puede deshabilitar en +\family typewriter +/etc/default/grub +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +40_custom +\family default +\series default + Se usa para añadir entradas personalizadas, pues su segunda línea es +\family typewriter +exec tail -n +3 $0 +\family default +. +\end_layout + +\begin_layout Standard +Los ejecutables, normalmente guiones +\emph on +shell +\emph default +, imprimen su trozo de configuración en la salida estándar, y +\family typewriter +grub2-mkconfig +\family default + añade +\family typewriter +### BEGIN +\emph on +ruta +\emph default + ### +\family default + antes de la salida del guión con la +\family typewriter +\emph on +ruta +\family default +\emph default + dada y +\family typewriter +### END +\emph on +ruta +\emph default + ### +\family default + al final. +\end_layout + +\begin_layout Standard + +\family typewriter +/etc/default/grub +\family default + especifica opciones, en formato +\family typewriter +\emph on +CLAVE +\emph default += +\emph on +valor +\family default +\emph default +, que establecen cómo estos guiones generan las entradas de menú: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +GRUB_DEFAULT +\family default +\series default + Fija la entrada por defecto: un número (empezando por 0), el nombre de + la entrada entre comillas o +\family typewriter +saved +\family default +, que permite que +\family typewriter +grub2-set-default +\family default + y +\family typewriter +grub2-reboot +\family default + establezcan la entrada por defecto. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +GRUB_SAVEDEFAULT +\family default +\series default + +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +Si está definida y vale +\family typewriter +true +\family default +, cada vez que se seleccione una entrada del menú, se convierte en la entrada + por defecto. + Para que funcione debe ser +\family typewriter +GRUB_DEFAULT=saved +\family default +. +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +GRUB_TIMEOUT +\family default +\series default + Plazo en segundos para seleccionar una entrada de menú antes de arrancar + la entrada por defecto. + Si vale +\family typewriter +-1 +\family default +, el plazo nunca expira. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +GRUB_CMDLINE_LINUX +\family default +\series default + El contenido de esta opción se añade al final de los parámetros del núcleo + de Linux. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +GRUB_DISABLE_RECOVERY +\family default +\series default + Si vale +\family typewriter +true +\family default +, evita que, para cada núcleo de Linux instalado, aparezca una segunda entrada + en la que al núcleo se le pasan parámetros para una posible recuperación + del sistema. +\end_layout + +\begin_layout Standard +En +\family typewriter +grub.cfg +\family default +, las entradas tienen la forma +\family typewriter +menuentry ' +\emph on +Nombre +\emph default +' [ +\emph on +OPCIÓN +\emph default +]... + { +\emph on +COMANDO +\emph default +... + } +\family default +, donde algunas opciones son: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--class +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +clase +\family default +\emph default + Permite agrupar las entradas en clases. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--unrestricted +\family default +\series default + Cuando la seguridad está activada, esta opción se puede arrancar sin restriccio +nes. +\end_layout + +\begin_layout Standard +Los comandos se separan por saltos de línea: +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +insmod +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +módulo +\family default +\emph default + Carga un módulo de GRUB 2, para ampliar su seguridad. + Algunos son +\family typewriter +gzio +\family default + (para descomprimir +\family typewriter +gzip +\family default +), +\family typewriter +part_msdos +\family default + (para acceder a particiones MS-DOS), +\family typewriter +ext2 +\family default + (para leer sistemas de ficheros ext2/3/4), +\family typewriter +chain +\family default + (para cargar otros gestores de arranque, +\emph on +Chain-loading +\emph default +), +\family typewriter +ntfs +\family default + y otros para entender XFS, FAT, etc. + Si GRUB 2 puede acceder al fichero de configuración, muy probablemente + ya tenga cargados +\family typewriter +part_msdos +\family default + y +\family typewriter +ext2 +\family default +, necesarios para acceder al fichero. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +set +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +nombre +\emph default +=' +\emph on +valor +\emph default +' +\family default + Establece una opción. + La opción +\family typewriter +root +\family default + indica la partición con los ficheros de arranque: el núcleo de Linux ( +\family typewriter +vmlinuz +\family default +) y su disco RAM ( +\family typewriter +initramfs +\family default +). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +search +\begin_inset space ~ +\end_inset + +--no-floppy +\begin_inset space ~ +\end_inset + +--fs-uuid +\begin_inset space ~ +\end_inset + +--set=root +\series default + +\begin_inset space ~ +\end_inset + +... + +\family default + Busca en todos los discos, salvo disquetes, una partición con un sistema + de ficheros con cierto UUID, y si la encuentra la establece como de arranque. + Se usa ante posible fallo de la anterior, pues la partición de arranque + puede cambiar de nombre, por ejemplo, si se inserta un nuevo disco. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +linux +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +linux16 +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +linuxefi +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +RUTA +\emph default + +\begin_inset space ~ +\end_inset + +[ +\emph on +OPCIÓN +\emph default +]... + +\family default + Indica la ruta del núcleo de Linux en la partición +\family typewriter +root +\family default + y las opciones que se le pasarán para el arranque. + Por ejemplo, +\family typewriter +mem= +\emph on +N +\family default +\emph default + indica al núcleo que sólo ha de usar cierta cantidad de RAM, donde +\family typewriter +\emph on +N +\family default +\emph default + puede tener prefijos como +\family typewriter +G +\family default + para GiB. + Otros parámetros son para el proceso de inicio (el primero en ejecutarse), + que los recibe a través del núcleo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +initrd +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +initrd16 +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +initrdefi +\family default +\series default + Indica la ruta del disco RAM de Linux en la partición +\family typewriter +root +\family default +, un disco que se carga en RAM y que Linux monta tras inicializarse a sí + mismo, y es de donde obtiene lo necesario para montar el sistema de ficheros + raíz. + Una vez este se monta, el disco RAM no es necesario y se elimina. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +chainloader +\begin_inset space ~ +\end_inset + ++1 +\family default +\series default + Carga y ejecuta el primer sector de una partición; usado normalmente para + cargar Windows, el cual no reconoce otros sistemas operativos instalados + y al ins +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ta +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +lar +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +se en sistemas BIOS, modificará el MBR con su propio gestor de arranque + que no da opción a arrancar Linux. +\end_layout + +\begin_layout Standard +La seguridad de GRUB 2 se activa con +\family typewriter +grub2-setpassword +\family default +, que pide una contraseña y hace que, a partir del siguiente arranque, para + modificar una entrada sea necesario introducir el nombre de usuario +\family typewriter +root +\family default + y la contraseña dada. +\end_layout + +\begin_layout Subsection* + +\family typewriter +grub2-install +\emph on +DISPOSITIVO +\end_layout + +\begin_layout Standard +Instala GRUB en un dispositivo. + Esto incluye copiar las imágenes de GRUB en el directorio destino (en Fedora, + +\family typewriter +/boot/grub2 +\family default +) e instalar GRUB en un sector de arranque. +\end_layout + +\begin_layout Subsection* + +\family typewriter +grub2-mkconfig +\end_layout + +\begin_layout Standard +Genera un fichero de configuración de GRUB. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-o +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +FICHERO +\family default +\emph default + Escribe la salida generada al +\family typewriter +\emph on +FICHERO +\family default +\emph default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +grub2-set-default +\emph on +ENTRADA +\end_layout + +\begin_layout Standard +Establece la entrada por defecto del menú de GRUB. + Sólo funciona para ficheros de con +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +fi +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +gu +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ra +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ción de GRUB creados con +\family typewriter +GRUB_DEFAULT=saved +\family default + en +\family typewriter +/etc/default/grub +\family default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +grub2-reboot +\emph on +ENTRADA +\end_layout + +\begin_layout Standard +Como +\family typewriter +grub2-set-default +\family default +, pero sólo para el siguiente arranque. +\end_layout + +\begin_layout Subsection* + +\family typewriter +grub2-setpassword +\end_layout + +\begin_layout Standard +Genera el fichero con la contraseña cifrada de GRUB. +\end_layout + +\begin_layout Section +Parámetros del núcleo de Linux +\end_layout + +\begin_layout Subsection* + +\family typewriter +kernel-command-line +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +root= +\family default +\series default + Sistema de ficheros raíz. +\end_layout + +\begin_layout Subsection* + +\family typewriter +dracut.cmdline +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +init= +\family default +\series default + Ruta del programa de inicio a ejecutar tras terminar con el disco RAM. +\end_layout + +\begin_layout Section +Arranque de Linux +\end_layout + +\begin_layout Standard +En Fedora y otras muchas distribuciones, el arranque y parada lo realiza + +\family typewriter +systemd +\family default +, el primer proceso en modo usuario tras terminar con el disco RAM, y que + tiene PID 1. +\end_layout + +\begin_layout Standard +Reemplaza al demonio +\family typewriter +init +\family default + de los sistemas UNIX System V, que se basaba en guiones +\emph on +shell +\emph default +, y aprovecha muchas características de Linux como +\emph on +cgroups +\emph default +, +\emph on +namespaces +\emph default +, etc. + Fedora 15 fue una de las primeras distribuciones en usar +\family typewriter +systemd +\family default +, que por entonces convivía con un gran número de guiones de System V. + Ventajas de +\family typewriter +systemd +\family default +: +\end_layout + +\begin_layout Itemize +El arranque y parada pasa a ser en paralelo, aprovechando los sistemas multinúcl +eo. +\end_layout + +\begin_layout Itemize +La mayoría de dependencias pasan a establecerse automáticamente. +\end_layout + +\begin_layout Itemize +Los +\emph on +cgroups +\emph default + ( +\emph on +control groups +\emph default +, grupos de control) permiten limitar, contabilizar y aislar el uso de recursos + por parte de un grupo de procesos. + Como un proceso hijo pertenece obligatoriamente al mismo +\emph on +cgroup +\emph default + que su proceso padre (salvo procesos privilegiados), es posible usar esto + para asegurarse de que los servicios realmente terminan. +\end_layout + +\begin_layout Itemize +Permite ejecutar servicios bajo demanda (cuando se necesiten), si bien algunos + servicios están activos siempre para dar una respuesta rápida. +\end_layout + +\begin_layout Itemize +Permite montar sistemas de ficheros solo cuando se necesitan, comprobar + su consistencia y activar sus cuotas de disco. + Para ello usa +\family typewriter +autofs +\family default +, que permite montar sistemas de ficheros bajo demanda (por ejemplo, al + acceder a un CD, DVD, +\emph on +pendrive +\emph default + o sistema de ficheros remoto) y desmontarlo si lleva un tiempo sin usarse. + Se debe añadir +\family typewriter +x-systemd.automount +\family default + en las opciones de +\family typewriter +/etc/fstab +\family default + (y generalmente también +\family typewriter +noauto +\family default +) para activar esta opción. +\end_layout + +\begin_layout Standard +Para más información, ver +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +http:// 0pointer.de/blog/projects/systemd.html +\end_layout + +\end_inset + +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +systemd +\end_layout + +\begin_layout Standard +Proporciona un sistema de dependencias entre +\series bold +unidades +\series default + de 11 tipos: +\end_layout + +\begin_layout Enumerate + +\series bold +Unidades de servicio +\series default + ( +\emph on +service +\emph default +), que comienzan y controlan los demonios y procesos de los que consisten. + +\family typewriter +cups.service +\family default + controla el demonio de impresión, y +\family typewriter +avahi.service +\family default + permite el acceso a ciertos servicios de red. +\end_layout + +\begin_layout Enumerate + +\series bold +Unidades de objetivo +\series default + o +\series bold +destino +\series default + ( +\emph on +target +\emph default +): Para agrupar unidades, o proveer puntos de sincronización durante el + arranque y parada, incluyendo el estado final. + Cuando se llega a +\family typewriter +graphical.target +\family default +, el objetivo por defecto en Fedora, el sistema queda en modo multiusuario + con entorno gráfico. +\end_layout + +\begin_layout Standard +La mayoría de dependencias las crea y mantiene +\family typewriter +systemd +\family default + automáticamente. +\end_layout + +\begin_layout Subsubsection* +LÍNEA DE COMANDO DEL NÚCLEO +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +systemd.unit= +\series default +\emph on +UNIDAD +\family default +\emph default + Para arrancar a una unidad distinta. +\end_layout + +\begin_layout Subsection* + +\family typewriter +systemd.unit +\end_layout + +\begin_layout Standard + +\family typewriter +/etc/systemd/system/* +\end_layout + +\begin_layout Standard + +\family typewriter +/lib/systemd/system/* +\end_layout + +\begin_layout Standard +Esta página lista las opciones de configuración comunes a todos los tipos + de unidades. +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE SECCIÓN +\family typewriter +[UNIT] +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +Requires= +\family default +\series default + Si esta unidad se activa, las unidades listadas aquí se activarán también. + Si una de las otras falla, y hay una dependencia de orden +\family typewriter +After= +\family default + en la unidad fallida, esta unidad no se iniciará. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +Wants= +\family default +\series default + Las unidades listadas en esta opción se iniciarán si se inicia esta. + Su inverso es +\family typewriter +\series bold +WantedBy= +\family default +\series default +. + Si una unidad +\family typewriter +foo +\family default + contiene una opción +\family typewriter +WantedBy=bar +\family default +, activar +\family typewriter +foo +\family default + creará un enlace simbólico en el directorio +\family typewriter +bar.wants +\family default + para expresar esta dependencia. + Si contiene +\family typewriter +Wants=bar +\family default +, el enlace se crea en +\family typewriter +foo.wants +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +Conflicts= +\family default +\series default + Configura dependencias negativas. + Si una unidad tiene +\family typewriter +Conflicts= +\family default + sobre otra, empezar la primera detendrá la segunda y viceversa. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +Before= +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +After= +\family default +\series default + Si una unidad +\family typewriter +foo +\family default + contiene una opción +\family typewriter +Before=bar +\family default + y ambas se inician, el inicio de +\family typewriter +bar +\family default + esperará a que +\family typewriter +foo +\family default + haya terminado de iniciarse. + +\family typewriter +After= +\family default + es el inverso de +\family typewriter +Before= +\family default +. +\end_layout + +\begin_layout Subsubsection* +OPCIONES DE SECCIÓN +\family typewriter +[INSTALL] +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +WantedBy= +\family default +\series default + Se crea un enlace simbólico en el directorio +\family typewriter +.wants/ +\family default + de cada unidad listada. + Esto crea una dependencia de tipo +\family typewriter +Wants= +\family default + de la unidad listada a la actual. +\end_layout + +\begin_layout Subsection* + +\family typewriter +systemd.service +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +Unidad de servicio. + Las siguientes dependencias se añaden salvo que se establezca +\family typewriter +\series bold +DefaultDependencies=no +\family default +\series default +: +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Itemize +Dependencia de tipo +\family typewriter +After= +\family default + con +\family typewriter +basic.target +\family default +, así como de tipo +\family typewriter +Conflicts= +\family default + y +\family typewriter +Before= +\family default + con +\family typewriter +shutdown.target +\family default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +systemd.special +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +default.target +\family default + +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +begin{sloppypar} +\end_layout + +\end_inset + +El que se inicia en el arranque. + Normalmente un enlace simbólico a +\family typewriter +multi-user.target +\family default + o +\family typewriter +graphical.target +\family default +. +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +end{sloppypar} +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +emergency.target +\family default + Inicia una +\emph on +shell +\emph default + de emergencia. + No toma ningún servicio o punto de montaje ( +\family typewriter +/ +\family default + está en sólo lectura). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +graphical.target +\family default + Inicio de sesión gráfico. + Toma +\family typewriter +multi-user.target +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +multi-user.target +\family default + Establece un sistema multiusuario (no gráfico). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +poweroff.target +\family default + Apaga el sistema. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +reboot.target +\family default + Reinicia el sistema. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +rescue.target +\family default + Toma el sistema base (incluyendo puntos de montaje) y lanza una +\emph on +shell +\emph default + de rescate. + Para administrar el sistema en modo de un usuario sin servicios en ejecución, + salvo los más básicos (tampoco la conexión de red). +\end_layout + +\begin_layout Subsection* + +\family typewriter +systemd-analyze +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +systemd-analyze critical-chain +\family default +\series default + imprime un árbol de la cadena de unidades con tiempo crítico. + El tiempo tras el cual la unidad está activa se imprime tras el caracter + +\begin_inset Quotes fld +\end_inset + + +\family typewriter +@ +\family default + +\begin_inset Quotes frd +\end_inset + +. +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +systemd-analyze plot +\family default +\series default + imprime un gráfico SVG con detalles de qué servicios se han i +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +ni +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +cia +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +- +\end_layout + +\end_inset + +do en qué tiempo. +\end_layout + +\begin_layout Subsection* + +\family typewriter +systemctl [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +COMANDO +\emph default +] [ +\emph on +UNIDAD +\emph default +]... +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-t +\series default +, +\begin_inset space ~ +\end_inset + + +\series bold +--type= +\series default +\emph on +TIPO +\family default +\emph default + Al listar las unidades, limitarse a ciertos tipos de unidad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-p +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +Propiedad +\family default +\emph default + Al mostrar las propiedades de una unidad con +\family typewriter +\series bold +show +\family default +\series default +, limitarse a la indicada. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--kill-who= +\series default +\emph on +PROCESO +\family default +\emph default + Al usarse con +\family typewriter +\series bold +kill +\family default +\series default +, elige a qué procesos enviar una señal. + +\family typewriter +\series bold +main +\family default +\series default + la envía sólo al proceso principal. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-s +\family default +\series default + Al usarse con +\family typewriter +\series bold +kill +\family default +\series default +, elige la señal a enviar a los procesos. + Por defecto es +\family typewriter +\series bold +SIGTERM +\family default +\series default +, que avisa a los procesos de que deben terminar. + +\family typewriter +\series bold +SIGKILL +\family default +\series default + fuerza la terminación. + +\family typewriter +\series bold +SIGHUP +\family default +\series default + (o +\family typewriter +\series bold +HUP +\family default +\series default +), al enviarse a +\family typewriter +crond.service +\family default +, le indica que debe releer su configuración. +\end_layout + +\begin_layout Subsubsection* +COMANDOS +\end_layout + +\begin_layout Paragraph* +Comandos de unidad +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +list-units +\family default +\series default + Lista las unidades que tiene +\family typewriter +systemd +\family default + en memoria. + Comando por defecto. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +start +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Inicia una unidad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +stop +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Detiene una unidad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +isolate +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Inicia la unidad especificada y sus dependencias y detiene todas las demás. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +kill +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Envía una señal a procesos de una unidad (por defecto a todos). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +status +\series default + +\begin_inset space ~ +\end_inset + +[ +\emph on +UNIDAD +\emph default +] +\family default + Muestra información de estado resumida sobre una unidad, o sobre el sistema + si no especifica la unidad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +show +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Muestra las propiedades de una unidad. +\end_layout + +\begin_layout Paragraph* +Comandos de ficheros de unidad +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +enable +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Habilita una unidad. + La añade en varios sitios sugeridos (por ejemplo, para que se inicie al + arrancar). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +disable +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Deshabilita una unidad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +is-enabled +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Comprueba si una unidad está habilitada. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +mask +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Enmascara una unidad, haciendo imposible iniciarla. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +unmask +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\family default +\emph default + Desenmascara una unidad. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +get-default +\family default +\series default + Devuelve el objetivo de arranque por defecto. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +set-default +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +OBJETIVO +\family default +\emph default + Establece el objetivo de arranque por defecto. +\end_layout + +\begin_layout Paragraph* +Comandos de sistema +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +rescue +\family default +\series default + Entra en modo rescate. + Equivale a +\family typewriter +\series bold +systemctl isolate rescue.target +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +halt +\family default +\series default + Para el sistema. + Es casi equivalente a +\family typewriter +\series bold +systemctl start halt.target +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +poweroff +\family default +\series default + Apaga el sistema. + Es casi equivalente a +\family typewriter +\series bold +systemctl start poweroff.target +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +reboot +\family default +\series default + Reinicia el sistema. + Es casi equivalente a +\family typewriter +\series bold +systemctl start reboot.target +\family default +\series default +. +\end_layout + +\begin_layout Subsection* + +\family typewriter +/etc/nologin +\end_layout + +\begin_layout Standard +Si existe y es legible, +\family typewriter +\series bold +login +\family default +\series default + solo permitirá el acceso a +\family typewriter +root +\family default +. + Se borra automáticamente al reiniciar el sistema. +\end_layout + +\begin_layout Subsection* + +\family typewriter +journalctl [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +PATRÓN +\emph default +]... +\end_layout + +\begin_layout Standard +Muestra el contenido del registro de +\family typewriter +\series bold +systemd +\family default +\series default +. + Sin parámetros, muestra todo el registro, empezando por la entrada más + antigua (cuando se arrancó por primera vez, si bien la cantidad de mensajes + que se pueden guardar está limitada para no ocupar mucho espacio). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-n +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +N +\family default +\emph default + Muestra los eventos más recientes y limita el número de eventos mostrados. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-b +\begin_inset space ~ +\end_inset + +[ +\series default +\emph on +ID +\emph default +] +\series bold +[ +\series default +\emph on +±desplazamiento +\emph default +] +\family default + Muestra los mensajes de un arranque específico. + Si se omite el ID, un +\family typewriter +\emph on +desplazamiento +\family default +\emph default + menor o igual a 0 mostrará los arranques desde el final del registro. + Si se indica el +\family typewriter +\emph on +ID +\family default +\emph default +, puede ser seguido opcionalmente por el +\family typewriter +\emph on +desplazamiento +\family default +\emph default +. + Valores negativos significan arranques anteriores y positivos significan + posteriores. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +--list-boots +\family default +\series default + Muestra una lista de todos los arranques (relativo al actual), sus IDs + y las fechas del primer y último mensaje del arranque. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-k +\family default +\series default + Muestra sólo mensajes del núcleo. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-u +\series default + +\begin_inset space ~ +\end_inset + + +\emph on +UNIDAD +\emph default +| +\emph on +PATRÓN +\family default +\emph default + Muestra los mensajes para la +\family typewriter +\emph on +UNIDAD +\family default +\emph default + dado, o para cada unidad que coincide con el +\family typewriter +\emph on +PATRÓN +\family default +\emph default +. +\end_layout + +\begin_layout Section +Dependencias automáticas +\end_layout + +\begin_layout Standard +Hay varias formas de establecer dependencias entre unidades aparte de las + descritas: +\end_layout + +\begin_layout Itemize +Un +\emph on +socket +\emph default + tipo UNIX es un canal de comunicación entre dos procesos en el que un proceso + envía información por un extremo y el otro la extrae por el otro. + Al igual que una tubería, tiene una capacidad máxima, con lo que si un + proceso intenta leer de un +\emph on +socket +\emph default + vacío o escribe en uno lleno, se bloquea. + Si dos servicios se comunican por un +\emph on +socket +\emph default +, +\family typewriter +systemd +\family default + crea el +\emph on +socket +\emph default + y luego lanza los dos servicios en paralelo, pasándoles como parámetro + el +\emph on +socket +\emph default + creado a través del cual se sincronizarán. +\end_layout + +\begin_layout Itemize +La sincronización por mensajes de D-Bus funciona de forma similar, pero + el servicio que depende de otro espera a que en el bus aparezca el proveedor + que necesita, que será ofrecido por el otro servicio, y D-Bus proporciona + la funcionalidad necesaria para esto. +\end_layout + +\begin_layout Section + +\family typewriter +udev +\end_layout + +\begin_layout Standard +El +\emph on +userspace device manager +\emph default + es un servicio (demonio +\family typewriter +systemd-udevd +\family default +) que, cuando se conecta o desconecta un dispositivo, recibe un evento del + núcleo, usa información de +\family typewriter +/sys +\family default + para ver si el +\emph on +driver +\emph default + proporciona un fichero +\family typewriter +dev +\family default + con los números mayor y menor del fichero especial a crear y usa +\series bold +ficheros de reglas +\series default + ( +\emph on +rules +\emph default +) en +\family typewriter +/lib/udev/rules.d/ +\family default + y +\family typewriter +/etc/udev/rules.d/ +\family default + para: +\end_layout + +\begin_layout Itemize +Crear el fichero especial de dispositivo en +\family typewriter +/dev +\family default + y los enlaces simbólicos al mismo. +\end_layout + +\begin_layout Itemize +Establecer los permisos y propietarios de este fichero. +\end_layout + +\begin_layout Itemize +Si es necesario, cargar los módulos y +\emph on +firmware +\emph default + para poder usarlo. +\end_layout + +\begin_layout Itemize +Si alguna regla lo indica, ejecutar los programas especificados para inicializar + el dispositivo. +\end_layout + +\begin_layout Section +Parada de Linux +\end_layout + +\begin_layout Standard +Se notifica a los usuarios, se envía la señal +\family typewriter +SIGTERM +\family default + a los procesos, se paran los demonios, se echa del sistema a los usuarios + que quedan conectados, se envía la señal +\family typewriter +KILL +\family default + a los procesos que queden en ejecución, se sincronizan los discos, se desmontan + los sistemas de ficheros y, según el tipo de parada, se apaga o se reinicia + el sistema. +\end_layout + +\begin_layout Subsection* + +\family typewriter +halt +\end_layout + +\begin_layout Standard + +\family typewriter +\series bold +halt +\family default +\series default +, +\family typewriter +\series bold +poweroff +\family default +\series default +, +\family typewriter +\series bold +reboot +\family default +\series default + pueden usarse para detener, apagar o reiniciar la máquina (respectivamente). +\end_layout + +\begin_layout Subsection* + +\family typewriter +shutdown [ +\emph on +OPCIÓN +\emph default +]... + [ +\emph on +TIEMPO +\emph default +] [ +\emph on +MENSAJE +\emph default +]... +\end_layout + +\begin_layout Standard +Detiene, apaga o reinicia la máquina. +\end_layout + +\begin_layout Standard +El tiempo puede estar en formato +\family typewriter +\emph on +hh +\emph default +: +\emph on +mm +\family default +\emph default + indicando el tiempo en el que ejecutar el apagado, en formato de 24 horas. + La sintaxis +\family typewriter ++ +\emph on +m +\family default +\emph default + se refiere al número indicado de minutos desde ahora. + +\family typewriter +now +\family default + es un alias para +\family typewriter ++0 +\family default +. + Si no especifica el tiempo, se usa +\family typewriter ++1 +\family default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-H +\family default +\series default + Detiene la máquina. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-P +\family default +\series default + Apaga (por defecto). +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-r +\family default +\series default + Reinicia. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-h +\family default +\series default + Equivale a +\family typewriter +\series bold +-P +\family default +\series default + salvo que se indique +\family typewriter +\series bold +-h +\family default +\series default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-k +\family default +\series default + Sólo escribe el +\family typewriter +\emph on +MENSAJE +\family default +\emph default +. +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +\family typewriter +\series bold +-c +\family default +\series default + Cancela un apagado en curso (sólo si no ha empezado). +\end_layout + +\end_body +\end_document diff --git a/iso/pegado1.png b/iso/pegado1.png Binary files differnew file mode 100644 index 0000000..9777ab4 --- /dev/null +++ b/iso/pegado1.png diff --git a/iso/pegado2.png b/iso/pegado2.png Binary files differnew file mode 100644 index 0000000..102d7ff --- /dev/null +++ b/iso/pegado2.png diff --git a/iso/pegado3.png b/iso/pegado3.png Binary files differnew file mode 100644 index 0000000..7a56db9 --- /dev/null +++ b/iso/pegado3.png diff --git a/iso/pegado4.png b/iso/pegado4.png Binary files differnew file mode 100644 index 0000000..def351a --- /dev/null +++ b/iso/pegado4.png diff --git a/iso/pegado5.png b/iso/pegado5.png Binary files differnew file mode 100644 index 0000000..90b02cf --- /dev/null +++ b/iso/pegado5.png diff --git a/iso/pegado6.png b/iso/pegado6.png Binary files differnew file mode 100644 index 0000000..080769f --- /dev/null +++ b/iso/pegado6.png |
