|
|
Glosario
Este glosario es una breve descripción
de algunos acrónimos y términos que puedes escuchar
durante la discusión sobre el linux kernel. Algunos
términos generales tales como UTSL
se incluyen por conveniencia. Algunas de esas definiciones son
problablemente incorrectas en el sentido técnico o inconsistentes.
Incluso la mayoría de ellos estan incompletos.
Este glosario se basa en su mayoria en la arquitectura
x86, ya que no se tiene conocimiento sobre otras arquitecturas.
Donde sea relevante, las definiciones estan basadas en v2.3/2.4.
Definiciones con la palabra "FIXME" aún estan mal, incompletas,
o ambas.
Comentarios/adiciones/corecciones son bienvenidas. Si tienes
problemas entendiendome algo Me gustaria especialmente un mail
(Si tienes problemas, problablemente otros también).
Para otros términos computacionales, El diccionario
gratis en-línea de la computación (http://foldoc.doc.ic.ac.uk/),
el Diccionario de Algoritmos, Estructuras de Datos, y Problemas
(http://hissa.nist.gov/dads/),
El Glosario de la administración de memoria (http://www.xanalys.com/software_tools/mm/glossary/full.html)
y el archivo Jargon (http://www.tuxedo.org/~esr/jargon/
o http://www.jargon.org/)
pueden ser de ayuda.
moz@compsoc.man.ac.uk,
movement.
A B C D
E F G H
I J K L M N
O P Q R S T
U V W X Y Z
|
0-9
|
|
|
- 8259 PIC
- Controlador desactualizado de interrupciones presente
en el hardware Intel.
|
|
|
|
|
|
A
|
|
|
- ABI (Application Binary
Interface)
- Interfaz binaria de aplicación
; la interfaz pasada de estructuras entre procesos
de usuario (y librerias) y el kernel. Para compatibilidad,
es importante que esos restos sean lo más estaticos
posibles (por ejemplo. asegurandose que las variables
y miembros de estructuras tengan el mismo tamaño
en bytes que antes y esten en el mismo orden). Ocasionalmente
es necesario un rompimiento para, una re-compilación
de las fuentes en espacio de usuario (notese que esto
no afecta la compatibilidad de las fuentes; eso va
por aparte).
- ACPI (Advanced Configuration and Power
Interface)
- Configuración avanzada e interfaz
de energía - reemplazo para APM el cual tiene la ventaja
de permitir las facilidades de administración de energía
desde el sistema operativo.
- afinidad de
cache
- Donde el cache de una CPU representa
el conjunto actual de memoria usada por una tarea,
se dice que tiene cache afin con esa tarea. Algo bueno si
la tarea se pone en uso regularmente en esa CPU
este se ejecutará en otro procesador.
Actualmente Linux no soporta esto y los méritos sobre
esto son debatibles.
- AGI (Address Generation Interlocking)
- Entrelazamiento de Generacion de Direcciones.
En x86, cuando la ejecución de una instrucción
requiere la dirección resultante de una instrucción
no-completa, la CPU debe esperar - esto se conoce
como un parada AGI (AGI stall).
- AGP (Accelerated Graphics Port)
- Puerto acelerado para gráficos,
en máquinas x86.
- algoritmo 2Q
- algoritmo MM (administración de memoria)
basado en dos areas, una que se maneja como cola FIFO,
y otra como lista LRU.
- Algoritmo de Nagle
- Algoritmo TCP para reducir el tráfico
de red en una conexión. La máquina local
acumulará paquetes salientes hasta la recepción
de un paquete desde la máquina, y entonces
los paquetes son enviados. De esta forma pequeñas
cantidades de datos salientes son amalgamados dentro
de la mayor carga de paquetes. Si se establece
la opción TCP NODELAY se deshabilita
este comportamiento. FIXME
- algoritmo de una-mano
- Algoritmo VM. Un algoritmo de reloj
de una mano, el cual tiene una "mano de reloj" que
recorre a través de las páginas, realizando
envejecimiento (ageing) y otras actividades. Imagina que una mano
nos proporciona información acerca de la edad de las páginas,
mientras que más tarde la otra decide marcar las páginas
como sin usar.
- algoritmo elevador
- Este algoritmo, se usa con frecuencia en
acceso a discos, mantiene una lista ordenada de peticiones.
Cuando se tiene que satisfacer la petición actual en el disco (ej.
el bloque de disco), se envia la petición
estrictamente siguiente en la lista. Cuando
llega una nueva petición, esta se inserta
en la lista ordenada en la posición (e.j. si
el número del nuevo bloque pedido es menor
que el pedido del que se maneja actualmente, este va antes
en la lista). Cuando se alcanza el final de la lista,
el elevador cambia de dirección, y se revierte
la situación.
- anónimo
- Generalmente, usado para algo que no
tiene asociado el objeto usual. Por ejemplo una dirección
de espacio anónimo no se interesa en espacio
de usuario (porque, no esta en el contexto del proceso).
Algunos comunes son :
- página anónima
- Una página de memoria que
no esta asociada con una archivo en un sistema de
archivos. Esto puede ocurrir con la expansión del
segmento del procesamiento de datos brk(),
segmentos de memoria compartida, o mmap()
con una bandera MAP_ANON o MAP_PRIVATE.
MAP_PRIVATE, aunque esta se mapea en datos
de un archivo, se considera como anónimo por ya que cualquier
cambio no se escribe de vuelta al archivo (cualquier
página sucia (dirty) que tiene que moverse a la
swap si la página esta libre desde la memoria).
- APIC
- Ver APIC local y IO-APIC.
- APIC local
- Controlador de interrupciones en-chip
provisto en los P6 y anteriores CPUs Intel. Linux usa
los registros del interruptor del temporizador si
un APIC local esta diponible para proveer este interruptor
de temporizador (es esto verdad ?). El APIC local
es parte del reemplazo para el viejo-estilo 8259 PIC,
y recibe interrupciones externas a través de
un IO-APIC si hay uno disponible.
- APM (Advanced Power Management)
- Administracion Avanzada de energía,
la administración de energía estándar precedida por
ACPI. APM y SMP no deben mezclarse.
- ARP (Addres Resolution Protocol)
- Es solo un acrónimo para el
Protocolo de Resolución de Dirección
y es como una máquina asocia una dirección
IP con una dirección de hardware (MAC).
- asignador buddy (asignador buddy)
- El esquema de asignación de
memoria que se usa en el kernel. Se mantiene un vector
de listas de páginas libres, ordenadas por
tamaño en el fragmento (chunk) (en potencias de dos).
Cuando se asigna un fragmento (chunk), este se remueve
de la lista relevante. Cuando se libera un fragmento (chunk)
este es devuelto a la vector de páginas libres, esta
ubicado en la lista relevante, comenzando desde el
principio. Si se encuentra fisicamente contigua al
fragmento (chunk) presente, se migran y ubican en la
lista de abajo (por ejemplo donde los fragmentos (chunks) tengan
dos veces el tamaño), y esta operación
filtra el vector. Las regiones se combinan siempre
que sea posible, este diseño ayuda a reducir
la fragmentación de memoria. FIXME
- asignador slab (slab allocator)
- El esquema de asignación de memoria para
el kernel basada en cache usado por kmalloc().
El documento de Bonwick el cual puede encontrarse en ftp://ftp.bitmover.com/pub/slab.ps.
Actualmente cuando se requiere nuevas páginas,
se llama a __get_free_pages(), la cual usa
alloc_pages(), con el asignador buddy estándar.
- ASN.1 (Abstract Syntax Notation)
- Notación Abstracta de Sintaxis, un
protocolo para datos estructurados, se usa, por ejemplo,
en el protocolo de administración Q.3.
- ast
- Profesor Andrew S. Tanenbaum, escritor
de MINIX y de muchos libros esenciales sobre sistemas
operativos
- ATAPI
- Paquete de Interfaz ATA, usado por
la mayoría de CD-ROM, y otros dispositivos.
- atributos extendidos
- También conocidos como archivos multi-parte
o multi-flujo, los archivos con atributos extendidos se
desvian del principio de los archivos siendo un simple
flujo de datos sencillo. Un ejemplo de atributos extendidos
el "fork de recurso" de Macintosh, el cual esta asociado
con un archivo específico (conocido como el "fork
de datos").
|
|
|
|
|
B
|
|
|
- balanceo
- Técnica usada en el código para
VM (memoria virtual), para referirse al balanceo de
varios parametros tales como el número de páginas
actualmente libres, para evitar el desperdicio y otros
artefactos de mala capacidad de memoria. Ver zona, bug de kswapd.
- BAR (Base Adress Register)
- Registros de Dirección Base, para dispostivos
PCI.
- BCD
- Decimal con codificado-binario.
- bigmem
- Ver highmem.
- big lock (gran cierre)
- kernel_lock, cierra el kernel
entero para entrada (no se puede ejecutar ninguna otra tarea
en el código del kernel). Es recursivo por procesos
y dejado automaticamente cuando un proceso desiste
de la CPU, entonces se recupera al despertar, en
contraste a otros spinlocks.
- borrado simple (silly delete)
- El borrado simple en NFS se usa cuando
alguien trata de borrar un archivo que se encuentra
abierto para otros detalles. El borrado se retarda,
y el archivo se renombra por algo a lo largo de
las líneas de .nfsxxxxxxxxx. El último
proceso para cerrar el archivo intentará borrarlo.
- buffer anónimo
- El cache de buffer contiene buffers
de datos en su camino desde/hacia el disco. Un Buffer
anónimo no esta asociado con un archivo. Un
ejemplo de esto son los datos eliminados de un archivo
- este no será escrito a ningún archivo, pero se mantiene
activo hasta que se desecha.
- buffer de ring
- Un buffer de datos el cual es de tamaño
fijo; cuando este se llena, los nuevos datos se ubican
de vuelta al comienzo del buffer, sobreescribiendo
los datos ya existentes, en un "ring".
Se usa comunmente en controladores (drivers) para dispositivos.
- buffer de salto
- Un buffer intermedio. Se usa por ejemplo,
en un "falso" alineamiento a cliente desde recursos
no-alineados.
- brlocks (Big-reader locks)
- se usan cuando hay mucho contenido para
acceso de lectura a un recurso, y muy poco contenido
para escribir (de esta forma el balance se hace hacia
un cierre (lock) muy rápido de lectura, y un cierre (lock) muy
lento de escritura).
- BSP (BootStrap Processor)
- Procesador BootStrap, de la CPU cuando
habilita procesadores en un sistema SMP.
- bss (block storage segment)
- Segmento de almacenamiento de Bloque.
Esta es una sección del mapeo de memoria que contiene
los datos asignados para una imagen binaria en tiempo
de ejecución. También concocido como "Bloque que comienza
por simbolo" y "Almacenamiento basura".
- BTB (Branch Target Buffer)
- Buffer de Rama de Destino - en procesadores
x86, la cache resultante de recientes saltos condicionales.
- BUG()
- Se usa en el código del kernel en pruebas
para condiciones "imposibles". Significa un fállo
del kernel o un fállo del hardware.
- bug de kswapd
- Problemas con el balanceo de VM en kernels posteriores al 2.3.
Las personas en variedad de situaciones encuentran que
el subsistema VM estuvo lejos de ser óptimo, Direccionando
al kernel el demonio de intercambio (swapping) kswapd
tomando una cantidad desordenada de recursos de la
CPU; el thrashing tuvo también un problema común. Se
esta trabajando para corregir estas condiciones.
- bus mastering
- Le da a una targeta en un bus (ej.
ISA,PCI) la posibilidad de lectura/escritura directamente
a la memoria principal. así es como funciona
el DMA en buses PCI.
- byte sex
- Endianness.
|
|
|
|
|
|
C
|
|
|
-
- cabeza de buffer
- Es una estructura que contiene la información
de E/S para algunas páginas en la memoria real. Un
buffer se puede cerrar puede durante E/S, o en otras
muchas condiciones dependiendo de su uso o si esta
libre. Cada buffer esta asociado con una página, pero
cada página puede tener muchos buffers (considere
el floppy en x86, donde el tamaño del bloque
E/S es 512 bytes, pero cada página es comunmente de
4096 bytes).
- cache caliente
- Un cache de quien sus contenidos no
son válidos y son útiles para la siguente tarea que
se ejecutará Este es un importante código de prueba
para ambas circustancias, en el cache frío y en el
cache caliente. 
- cache de buffer (buffer cache)
- El cache de buffer es una tabla de claves (hash table)
de buffers, indexados por dispositivo y número de
bloque. Las listas LRU se mantienen para los buffers
en los varios estados, con listas separadas para buffers
de diferentes tamaños. Con la unificación del
2.3 del buffer y de caches de páginas, cada cabeza
de buffer apunta a parte o todo de una estructura
de página, a través del cual se dispone del
contenido actual del buffer. FIXME
- cache de página
- La página cache, realiza el
proceso de cachear las páginas mapeadas desde
archivos (e.j. mapeo de una imagen ejecutable).
- cache fría
- Una cache del cual su contentenido es
invalido o irrelevante con respecto a algunas tareas
para ser ejecutadas
- cache ping-pong
- Un fenomeno de hardware en sistemas
SMP, en donde dos tareas en diferentes procesadores,
ambas se accesan por la misma memoria física en
una línea de cache. Esto significa como cada tarea
se ejecuta, cuando esta cambia la memoria, debe invalidar
la otra línea de cache relevante del otro procesador
(para asegurar la coherencia de cache). Entonces, cuando
corre la tarea en el otro procesador, este debe re-cargar
la línea de cache (como esta establecida como invalida),
antes de cambiarla. Algo no adecuado
(TM). Una razón común para poner el cierre (lock) en una
línea de cache diferente que los datos en exclusión
mutua debido al cierre (lock): entonces la "otra" tarea
puede arrebatar y dejar pendiente el cierre (lock) sin haber
tenido la necesidad de invalidar la línea de cache
del primer procesador. FIXME
- cambio de contexto
- Se refiere a los campos necesarios
en el procesador cuando el administrador de tareas,
programa un proceso distinto a ejecutarse en el procesador.
Esto involucra la invalidación del TLB, Cargando los
registros con los valores almacenados, etc. Esto tiene
un costo asociado con tal como un switch, por eso
es mejor evitar un contexto no-necesario mientras
sea posible. Notese que la división del modo-kernel
y modo espacio de usuario significan cosas similares,
pero más simple, la operación es necesaria cuando
se mueve una llamada de sistema a través del
modo kernel. Sin embargo esto no se llama cambio de
contexto, como el modo switch no cambia el proceso
actual Ver lazy TLB.
Una buena caracteristica de Linux es que es extremadamente
bajo en contexto y costo en cambio de modo, comparado
con otro sistema operativo como Solaris.
- CAP_*
- Esos son los nombres definidos de las
capacidades para tareas específicas provistas por
el kernel, ejemplo. CAP_SYS_NICE.
- carcel chroot (chroot jail)
- Un proceso bajo el cual el efecto de
una llamada de sistema chroot() esta dentro de una
carcel chroot, y no puede accesar al sistema de archivos
bajo la noción de directorio raíz /.
- cesión
- termino general usado en componentes
conectados-desconfiables. Se da un recurso a una
cesión el cual expira eventualmente. Esto significa
que la conexión puede romperse, sin dejarlo en estado
de cuelgue. NFS, al tener menos condiciones, no tiene el concepto
de cesiones.
- cli/sti
- Instrucciones de lenguaje ensamblador
(assembler) para x86, usadas para deshabilitar o habilitar
interrupciones, respectivamente. En la CPU hay variantes
locales y globales de estas. El código que se ejecuta
con las interrupciones deshabilitadas SERÁ rápido,
por obias razones (esto se llama latencia de
interrupción).
- CML2
- Propósito de Eric Raymond para el reemplazo
para el sistema actual de construcción del Kernel.
Ver http://www.tuxedo.org/~esr/kbuild/.
- coherencia
de cache
- En un sistema SMP, el asegurarse de que la
cache de la memoria local de cada procesador es consistente
con respecto a los valores que se pueden almacenar
en el cache de otros procesadores, evitando problemas
de coherencia tales como la "actualización". Esto
se archiva por el hardware de acuerdo con el sistema
operativo.
- coloración de páginas
- El sistema se asegura que las páginas
virtualmente contiguas no se mapeen a las mismas
líneas de cache, mejorando el rendimiento. FreeBSD
lo hace, pero Linux, despues de algunas discusiones,
no (aún).
debajo de otra tarea. Son notoriamente
dificiles de depurar por que usualmente son marginales
(ocurre usualmente en situaciones patologicas =="muy
raras").
- contención
- Cuando dos tareas requieren un recurso
exclusivo. Puedes escuchar hablar de ello, por ejemplo,
contención de spinlock, en donde una o varias tareas
estan comunmente ocupadas esperando por un spinlock
para convertirse en no-cerradas (unlocked), así es como esta es
tomada por otras tareas.
-
- Este es el código que se ejecuta en
el kernel como respuesta a una interrupción generada,
sin un contexto de proceso. Para trabajo
de mayor consumo de tiempo, se puede añadir una tarea de bottom-half handler para ejecutarse despues de algún tiempo.
- contexto de
proceso
- Código del kernel que se ejecuta en
medio de un proceso de usuario (desde una llamada
de sistema), se dice que tiene un contexto de proceso.
Al código que no esta en contexto de proceso no se le
permite dormir o esperar (Ver contexto de interrupción).
- cookies SYN
- protección en contra de la inundación
de ataques DOS (Den en donde se comparte una página o un recurso
hasta que se logra el intento de escritura. En ese
caso se hace una copia, y la escritura se realiza en
la copia.
- copia cero
- Modelo de trabajo en red donde ningún dato se
copia desde/hasta espacio de usuario durante la transmisión
o recepción de red. Usualmente esto se conoce universalmente
como algo adecuado, pero de hecho esto esta fuera de
tráfico entre el costo de la copia, y el costo de
establecer tablas de páginas etc. tal que el
espacio de usuario puede leer los datos.
- CPL (Concurrent Privilege Level)
- Nivel Actual de Privilegio
- css (code segment storage)
- Segmento de almacenamiento de código.
Este es el mapeo de memoria que contiene el código
ejecutable (texto) para una imagen binaria.
|
|
|
|
|
|
D
|
|
|
- DAG (Directed Acyclic Graph)
- Gráfica Acíclica Dirigida
- dancing makefiles
- Un nuevo Makefile experimental para
la configuración y compilación del kernel,
escrito por Michael Elizabeth Chastain.
- dcache
- El cache de las estructuras dentry. Bajo UNIX una entrada en un directorio
particular debe buscarse linealmente, por eso si
el bloque de disco contiene la lista de entrada de
directorios que esta en el núcleo (in-core), tiene un costo asociado.
El dcache almacena resultados recientes de esas búsquedas
las cuales en general, incrementan esas búsquedas de
disco en un gran factor. Trabajo reciente en el 2.3
usa las dentries para permitir multiples montajes,
union mount, y más.
Usualmente se refiere al cache de datos del hardware
como D-cache.
- deadlock (cierre (lock) por inanición)
- Algún número de situaciones donde
dos o más procesos no pueden proceder por que ambos
estan esperando a que el otro que deje libre el mismo
recurso. FIXME (denme buenas referencias).
- demanda cero
- En demanda de páginación,
cuando la página es vuelta a ceros cuando se
crea (caso común: el segmento .bss de una imagen ejecutable,
la cual es deinicializada en montón (heap) de datos para
el ejecutable). También llamada ZFOD.
- dentry
- entrada de directorio, estructura en el kernel (in-core)
que define los detalles de un archivo: inodo, entrada
de directorio padre, etc. Cacheado en una tabla de claves
(hash table)
indexada por nombre de archivo hashed (hashed file) (Ver dcache).
- descriptor de grupo
- Estructura del sistema de archivos
En-disco, la cual contiene información para un grupo
de bloques, tales como el mapa de bits de inodos y el mapa de bits de bloques.
- dispositivo loopback (loopback device)
- El dispositivo de red falso el cual
representa la interfaz de red del host local, lo.
Esto puede referirse al montaje de archivos loopback.
- DF
- El bit de paquetes IP que indica que
estos no se deben fragmentar. El host remoto devolvera
notificaciones ICMP si de todas formas el paquete tuvo que dividirse
, y se usan en MTU discovery.
- DOD (Dial-On-Demand)
- Llamada en Demanda para conexiones
de red a través de POTS.
- drop behind (dejar tirado)
- En condiciones de flujo de E/S, los datos
que ya se han leido y se han procesado y no se necesitan serlo
de nuevo. Idealmente la VM (Memoria Virtual) deberia reconocer esto
y marcar las páginas usadas como no-necesarias,
por eso ellas podrian descartarse primero. Esta
técnica se llama "dejar tirado".
- dss (Data storage segment)
- Segmento de almacenamiento de datos,
aka sección de datos. Este es el mapeo de memoria
que contiene los datos inicializados para una imagen
binaria.
- dual-issue
- Los procesadores tales como el Pentium
Pro, que puede decodificar y ejecutar dos instrucciones
simultaneamente.
- dupe
- Abrev. fr. duplicación.
- dword
- Double word, 4 bytes en x86.
|
|
|
|
|
|
E
|
|
|
- EA
- Ver atributos extendidos.
- eager coalescing
- Lo que hace actualmente el asignador buddy,
une los bloques adyacentes tan pronto como sea posible.
- EIP (Extended Intruction Pointer)
- Apuntador a instrucción Extendida.
Este registro contiene el valor de la tarea en el
PC, apunta a la siguiente instrucción a
buscarse, decodificarse etc.
- ejecución fuera de orden
- Algunos procesadores (tales como el
Intel Pentium Pro y siguientes) pueden decodificar
y ejecutar más de una instrucción al tiempo
en paralelo. Esto s.pngica que en una secuencia de
instrucciones no es necesario el orden el el cual
se completen estas instrucciones. Ver mb().
- entrada negativa
- Significa que se retorna un error antes
de la entrada esperada desde algún vector o cache.
Una dentry negativa se usa cuando un cliente NFS
trata de operar en un archivo atascado (stale), y en otras situaciones.
Sin la entrada negativa de directorio, se hace una
búsqueda para cada petición. Esto permitiría
un ataque D.O.S (Denegación De Servicios) robandole
tiempo del procesador haciendo búsquedas las cuales
fallarán. Por eso la dentry se mantiene para proveer
una respuesta casi-immediata "archivo atascado (stale)" al cliente.
Ver fs/dcache.c:d_delete(). Aparentemente
no está permitido que las dentries positivas se conviertan
en negativas. Una dentry negativa es aquella con un
campo d_inode NULL.
- EPIC (Explicitly-Parallel Instruction
set Computing)
- Conjunto de instrucciones computacionales
explicitamente paralelas, en la arquitectura un conjunto
de instrucciones en donde toda dependencia para una instrucción
se codifica por sí misma en la instrucción.
Este tiene la potencialidad de ser más rápido
de lo que el compilador puede codificar las dependencias
de los datos en las instrucciones.
- error de bit
- Se usa coloquialmente para expresar
un error de bit simple en algunas Direcciones de memoria.
Debido usualmente a memoria defectuosa (la memoria
ECC puede corregir errores de bit). Usualmente genera
un falso oops, con Direcciones como 0x0008000.
también puede ser visto como valores de algunos pequeños
offsets desde cero, más un error de bit, el cual se
accesa donde el valor se pasa a verificación
NULL debido al error de bit, y entonces el kernel
trata de accesar al miembro de la estructura a través
del apuntador. Direccionandolo al offset.
- Escitura retardada
- Ver write behind (escritura dejada).
- exponential back-off
- Un algoritmo general para trato con
casos de contención por ejemplo, choques en
el bus de red, o contención para un spinlock.
|
|
|
|
|
|
F
|
|
|
- fair scheduler (planificador equitativo)
- Un scheduler el cual asegura la viabilidad
entre usuarios, tal que la cuenta y costo de un proceso
de usuario solo impacta a ese usario, en vez que al
sistema entero como concurrente. Rik van Riel y Borislav
Deianov han desarrollado diferentes parches para implementar
esto.
- fállo mayor
- Un fállo mayor de página ocurre
cuando se hace un intento de accesar a una página
que no estaba actualmente presente en memoria física.
La página deber intercambiarse a la memoria
física por el código que corrige los fallos.
- fállo menor
- Un fállo menor de paginación
ocurre cuando se intenta accesar a una página
presente en memoria física, pero sin los permisos
correctos. Un ejemplo es la primera escritura a la
segunda referencia en una página compartida,
cuando el kernel debe realizar copia-al-escribir y permitir que la tarea actualice
la página copiada.
- falsa compartición
- En caches SMP, cuando se accesan dos partes de
un bloque sencillo, ninguna de las cuales
choca con la otra, el protocolo de coherencia de cache
puede no ser capaz de detectar esto, y marcar el bloque
como "compartido" aún cuando no lo es. A esto se le conoce
como falsa compartición.
- fd (File Descriptor)
- descriptor de archivos
- fixed mmap
- (mmap fíjo). Una petición desde espacio de usuario
para inicio de mmap a una dirección virtual fíja.
Generalmente no útil o garantizado para trabajo;
se cubre una excepción notable por mmaps, donde
una área que ha sido mmaped tiene más adelante mmaps
de diferetes tipos en posiciones fíjas en el mapa.
- FQDN (Fully-Qualified Domain Name)
- Nombre de Dominio Totalmete Calificado,
e.j. martyr.darrenemerson.co.uk.
- fuera de línea de código
- Código que esta ubicado aparte del siguiente
grupo de instrucciones, tales como llamadas a funciones.
|
|
|
|
|
|
H
|
|
|
-
Herencia de Prioridad
-
es una solución
putativa, en donde la tarea de baja prioridad temporalmente
toma la prioridad de otra tarea, habilitando la programación
(scheduling)
y el lanzamiento del cierre (lock). Sin embargo esto puede
aproximar por sí mismo el liderazgo para el deadlock
(FIXME: es esto realmente verdadero ?).
- HID (Human Interface Device)
en IA32. Solo se pueden almacenar cosas certeras
en este espacio (FIXME: solo en espacio de usuario ?
o que ? no bh o un manejador de irq puede usarlo ...)
- hton
- Posiblemente la conversión de intercambio de byte (byte-swapping),
de formato host-endian a network-endian. La red es
big-endian.
|
|
|
|
|
|
I
|
|
|
- IBCS
- Un estándar para interfaces de imagenes
ejecutables (syscalls etc.). Esto es ortogonal a un
estándar de formato de archivo de imagen binaria tal
como el ELF.
- icache
- En la lista de correo del
kernel linux, esto casi siempre se refiere a la cache de inodo,
en vez que a la cache de instrucción del hardware (I-cache).
- IETF (Internet Engineering Task Force)
- Internet Engineering Task Force, el
estándar de la organización para los protocolos
que se usan en internet.
- igualacion TLB
(TLB flushing)
- Banderamiento de parte o todo de la
traducción del buffer lookaside (TLB) de la CPU's
(el cual es un cache indexado de Direcciones virtuales
de direcciones físicas) como inválidas. Dependiendo
del hardware, el TLB entera puede igualarse toda
en una sola vez, o solo una parte.
- IKD (Integrated Kernel Debugger)
- Depurador Integrado al Kernel. Una
versión parchada del kernel que contiene facilidades
adicionales para depuración del kernel.
- ILP (Instruction-Level Parallelism)
- Paralelismo a nivel de Instrucción
, i.e. cuando se ejecuta más de una instrucción
a la vez. Ver dual-issue.
- incestuouso
- Código el cual tiene conocimiento de aquel
que se usa internamente más alla de la API. Esto rompe
la modularidad, incrementa la complejidad y causa
bugs, una meta de diseño es minimizar este
comportamiento.
- insn
- Abrev. fr. "instrucción".
- inodo
- Tal como en UNIX, la estructura que
define un archivo (excepto por el nombre de archivo
el cual es almacenado en la entrada del directorio).
El cache de inodo es una tabla hash cerrada indexada
por un superbloque y un inodo, y es de un solo golpe
cuando falla la búsqueda del dentry.
- interrupción edge-triggered
- La interrupción se lanza
por el surgimiento o caida de la era de la línea de interrupción.
Esto hace difícil compartir líneas de IRQ, con una
era, puede ocurrir mientras ocurra un un ISR que este corriendo, y puede ser facilmente olvidadas;
se usan con frecuencia para permitir interrupciones de
nivel-triggered.
- interrupción de nivel-triggered
- También level-sensitive. Usada
en PCI. La habilidad de PCI's de tener multiples dispositivos
compartiendo una sola línea de interrupción, esto
es posible haciendo uso de las interrupciones de nivel-triggered.
Si las interrupciones fueron edge-triggered, es posible que
algunas de las interrupciones que llegan pueden perderse,
por ejemplo si una segunda interrupción estuvo para
venir mientras el procesador estuvo aún en medio
de el procesamiento de uno previo, el procesador retornara
de servir a la primiera interrupción pero no se percata
de que se ha insertado una segunda interrupción.
Con las interrupciones de nivel-triggered, por contraste,
la línea de interrupción recuerda activarla hasta
que la desactive especificamente un ISR. Esto significa, sin embargo, que si una rutina
buggy olvida re-establecer la línea de interrupción
despues de haber acordado tratar con la interrupción,
entonces la máquinas puede colgarse en un bucle de
interrupciones constantes.
- inversión
de prioridad
- situación en donde las tareas de baja
prioridad mantienen un recurso con una tarea de mayor
alta prioridad esperando. Esto puede ocurrir con tarea
que se ha programado con SCHED_OTHER o SCHED_IDLE,
donde una tarea con una prioridad más alta para scheduling
siempre será programada (scheduled) antes en preferencia. Esto
adelanta a un deadlock como la tarea de baja-prioridad
no puede ser programada (scheduled) para lanzar el cierre (lock), y la tarea
de alta-prioridad no puede continuar sin el cierre (lock) en
el recurso.
- IO-APIC
- Recibe interrupciones externas a la
CPU (e.j. desde un dispositivo) y las enruta a la
CPU través de APIC local.
- iopl (I/O privilege level)
- Llamada de sistema de nivel de privilegio
E/S en x86 en el registro EFLAGS.
- IPI (Inter-processor Interrupt)
- Interruptor Inter-procesador. En máquinas
SMP esto se refiere a una interrupción que se envia
entre procesadores, la cual le indica algún evento del cual
el otro procesador necesita tener algo de cuidado,
por ejemplo smp_invalidate_interrupt, la
cual invalida el TLB del procesador.
- ISO9660
- Formato en-disco generalmente usado en
los CDs. Ver también Joliet.
- ISR (Interrupt Service Routine)
- Rutina de Servicio de Interrupción,
o manejador de interrupción. También en x86,
APICs, Registro En-Servicio (Register In-Sevice),
suficientemente confuso.
|
|
|
|
|
|
J
|
|
|
- jiffy
- Paquete básico del tiempo en kernel,
cerca de 10ms en x86. Relacionado con los HZ, la resolución
básica de un sistema operativo. El interruptor del
temporizador se renueva cada 10ms, el cual entonces
realiza algunas tareas de hardware relacionadas con el temporizador,
y marca un par de bhs listos para correr si son ejecutables.
- Joliet
- extensión de Microsoft al comunmente
usado ISO9660.
- journalling
- Una propiedad del sistema de archivos la cual escribe
todos los cambios a Algún archivo de registro, para
mantener la consistencia del mismo (por ejemplo, la
cuenta de un vinculo de inodo debe ser igual a las
entradas del directorio apuntando a ese inodo). Hay
dos tipos de journaling: FIXME el que solo registra metadatos
tal como cuenta de enlaces, mientras que FIXME registra
ambos, datos y metadatos, escribiendo efectivamente
todo los datos dos veces. ext3, reiserfs y XFS son
todos registradores de meta-datos, el segundo tipo
son extraordinarios como el mismo efecto se puede
archivar usando RAID.
|
|
|
|
|
|
K
|
|
|
- kiobuf
- FIXME
- kiovec
- Permite accesar a la memoria de
espacio de usuario desde otros contextos, tales como
en un bh. También permite a los controladores (drivers)
del kernel establecer el DMA desde un dispositivo
directamente a páginas de espacio de usuario.
- kmalloc
- rutina de asignación de memoria del
kernel. Ver vmalloc.
kmalloc() asegura la contiguidad de direcciones
físicas.
|
|
|
|
|
|
L
|
|
|
- L1
- Ver L2.
- L2
- EL cache L2 (nivel 2) es un cache de
memoria del orden de medio megabyte de tamaño,
ubicado en la tarjeta madre. El cache L1 es mucho
más rápido el cual se encuentra en-CPU, pero correspondientemente
más pequeño. el x86 tiene dos niveles
de cache, algunas arquitecturas tales como el Alpha
AXP tienen adicionalmente un cache L3. Usualmente
esto se refiere la a jerarquia de memoria, la cual va
en algo como (con incremento de latencia y capacidad,
decrementado costos) registros, cache L1 , cache L2,
cache L3, memoria principal, dispositivos de almacenamiento
en masa, red.
- ladrón
de páginas
- Una tarea la cual roba memoria virtual
de un proceso, tomando páginas por sí mismo.
Un ejemplo es kswapd, el cual corre a través
del sistema intercambio (swapping out) de páginas
para mantener un número de páginas freepages.min.
- lazy TLB
- Algunas tareas, tales como tareas del
kernel como kswapd, no tienen un contexto de proceso, el cual
hace la costosa invalidación de el TLB innecesariamente
(como no se usan las tablas de páginas de nivel de usuario).
El miembro de la estructura de la
tarea mm indica la dirección de espacio de
nivel de usuario, el cual será behich NULL
para hilos del kernel. En este caso active_mm
indica el espacio de dirección usado (kernel). Estos
espacios de dirección se conocen también como anónimos.
Notese también que ciertas tareas ocasionalmente pueden
temporalmente dejar el espacio de dirección de nivel
de usuario y también tener una dirección de espacio
anónimo por un corto tiempo.
- ldt (Local Descriptor Table)
- Tabla de Descriptor Local. La ldt es
un tabla de administración de memoria por procesos
la cual se usa en x86. Ver gdt.
- lista de espera
- Una lista enlazada de tareas (procesos
o threads) esperando una condición especifica. Por
ejemplo, una página cerrada (locked) puede tener una
lista de espera con tareas esperando E/S en esa página
para completarse (esto es, !PageLocked(page)).
- LFS (Large File Support)
- Soporte para Archivos Grandes, específicamente
archivos mayores a 2Gb en sistemas de 32-bit.
- LFU (Least Frequently Used)
- El Menos Frecuentemente Usado, otra
técnica MM. La tensión entre recencia y
frecuencia de acceso a un área de memoria es una
de las partes cruciales de cualquier sistema de adminstración
de memoria.
- libc
- Recuerda que al construir el kernel
no se hace uso de libc !.
- línea de cache
- Una sección del cache del hardware,
de aproximadamente 32 bytes de tamaão. Las
estructuras del Kernel estan usualmente diseñadas de
tal forma que todos los miembros que se accesan más comunmente
se acomodan en una línea de cache, lo cual reduce
la polución de cache. Estructuras
tales como esta línea de cache alineada.
- LIP (Loop Initialization Primitive)
- Inicialización Primitiva de Bucle,
esta relacionada con los ID's de los destinos en buses
SCSI.
- livelock
- Cuando las tareas estan peleando por
un recurso exclusivo, pero también estan listas para
ejecutarse. Por ejemplo ambas tareas pueden estar
en un bucle buscando la disponiblidad de un recurso.
- limite de taza
- Para evitar ataques DOS (Denegacion
De Servicios), algunas facilidades tienen niveles
más altos de lo que usualmente pueden lanzar. El
ejemplo más trillado es el logging.
- lista de tareas
- Una lista enlazada de procesos o hilos.
Tareas, por ejemplo, pueden listar en manejadores de bottom-half
esperando para ser ejecutados. Ver lista de espera.
- Lista Negra LUN
- Es una lista negra de dispositivos
SCSI que no manejan adecuadamente suspención con un
otros números distintos de cero de Logical UNit (Unidades
Lógicas). Algunos dispositivos miscelaneos responden
a todas las LUNs, mientras que puedan colgar una LUN
mayor a cero. Las LUNs se usan en cambiadores de CD, entre
otros dispositivos.
- LRU (Least Recently Used)
- El Menos Recientemente Usado. Un
algoritmo de selección en donde se mantiene una lista,
ordenada por el último uso de cada elemento. Usualmente
se usa en algoritmos de reemplazo de páginas.
Ver también El Más Recientemente Usado (Most Recently
Used) y LFU.
- LVM (Logical Volume Manager)
- Administrador de Volumenes Lógicos.
Esto permite que muchas particiones físicas se representen
como un dispositivo por bloque sencillo, en medio
de otras cosas.
|
|
|
|
|
|
|
- manejador de bottom-half
- Conjunto de procesos estándar del kernel
que ejecutan tareas en una lista que se han registrado
con ese tipo manejador de bottom-half para ejecución.
El código se ejecuta y despues vuelve hacia
espacio de usuario al final de la interrupción
del hardware. En el 2.3.43 se implementaron unas soluciones más
generales con softirqs y tasklets.
A veces se abrevia "bh", y no
deberia confundirse con buffer head, el cual también se abrevia "bh".
- mapa de archivos
- El mapeo del contendido de los archivos
dentro de la memoria.
- mapa de bits de bloques
- En sistemas de archivos UNIX, el uso
de los bloques de disco se guarda en el mapa de bits
de bloques, donde cada conjunto de bits indica un
bloque ubicado especificamente.
- mapa de bits de inodos
- En sistemas de archivos clonicos de
UNIX, el uso de los inodos en-disco se graba en
el mapa de bits de inodos, donde cada grupo de bits
indica un nodo especialmente ubicado.
- s de algún
código basicamente se asegura que todas las lecturas
o escrituras de memoria previas se realicen (como
las CPUs usualemente pueden re-ordenar para incrementar
el rendimiento). (FIXME: necesita esto ser más claro?).
- medium-often race
- Un escenario de condición de carrera.
FIXME
- memory rusting
- Nombre para problemas con el código
mm en el v2.1, donde las páginas se quemaban (got rusted)
y quedaban en memoria cuando realmente deberian haberse
enviado a la swap. Fue un problema en máquinas
con poca memoria. Ahora corregido (verdad
?)
- metadato
- Información acerca de un archivo,
tales como permisos, en contraste a los datos actuales
en el archivo.
- MMIO
- E/S de memoria mapeada, es la memoria
de E/S (memoria en dispositivos de hardware) accesible
a través del mapeo de memoria. También
conocido como región de E/S.
- MOESI
- Nombre par un superconjuntos
de protocolos de coherencia de cache. Hay cinco posibles
estados para la línea de cache en los cuales puede estar
en :
| Estado |
Significado |
| Modificado |
Se han cambiado los datos en la línea de cache.
|
| Owned (poseido) |
El propietario del cache tiene
derechos exclusivos a los contenidos de estos
datos. |
| Exclusivo |
La línea de cache no esta presente
en algunos otros caches. |
| Shared(compartido) |
La línea de cache se comparte
con otro cache, pero no necesita escribir
de nuevo a la memoria. |
| Inválido |
la línea de cache es inválida
y no contiene datos útiles. |
Este protocolo esta descrito con más detalle en el libro de Schimmel.
- monotónico
- Termino técnico, muy crudamente
significa "los nuevos datos no afectan los existentes".
Usada para referirse a un amplio rango de varias cosas.
Por ejemplo, un reloj monotónico es aquel el cual
nunca tiene prioridad para el tiempo dado previemente
(eso es, la lectura secuencial del reloj siempre se
incrementa).
- montaje loopback
- Hay dos tipos de montaje llamados montajes
loopback. El primero es el archivo loopback a montar,
donde un archivo sencillo en sistema de archivos por
sí mismo contiene un sistema de archivos que se monta (útil
en la construcción imagenes ISO9660).
El otro tipo, el cual es posible en el 2.4, es un
montaje loopback "verdadero", donde puedes hacer cosas
como
mount -t bind /safebin /chrootjail/bin.
- MSR (Model-Specific Register)
- Registro específico del Modelo. Para
la plataforma x86, son los registros que no estan
garantizados como parte de la Arquitectura Intel (e.j
pueden no estar presentes en futuros modelos de procesadores).
- MSS (Maxium Storage Segment)
- El Máximo tamaño de segmento
es la mayor cantidad de datos que se
pueden transmitir en una sola vez a través
de una interfaz de red.
- mtrr (Memory Type Range Registers)
- Registros del Rango De Tipo de Memoria
- MTU (Maximum Transmission Unit)
- Unidad Máxima de Transmisión
es un parametro que determina el datagrama más grande
que puede transmitirse por una interfaz IP sin
la necesidad que se dividida en unidades más pequeñas.
Son valores tipicos son 1500 bytes para una interfaz
ethernet, o 576 bytes para una interfaz SLIP.
Descubrimiento MTU (MTU discovery) es el proceso de hallar el MTU
un sitio remoto que pueda usarse sin causar fragmentación
innecesaria. Ver DF.
|
|
|
|
|
|
N
|
|
|
- n/w
- Se usa ocasionalmente para "network"
(red).
- nbd (Network Block Device)
- Dispositivo por bloques de red - realiza
un dispositivo por bloques local a un dispositivo
remoto.
- NMI (Non-maskable interrupt)
- interrupción No-Enmascarable - la interrupción
de más alta prioridad que se puede ser (even interrupt
standard h/w interrupt ISRs). La NMI de watchdog es una
facilidad de kernel, que corre sin NMIs, la cual chequea
las CPUs por actividad reciente (en los últimos cinco
minutos), para detectar CPUs permanentemente detenidas.
Los NMIs se dan también por las tarjetas madre en
caso de serios problemas de hardware (tal como RAM
defectuosa).
- nopage
- La rutina que se ejecuta cuando una
direección virtual se ha accesado cuando
la página no esta disponible en memoria real.
Un ejemplo seria una página que se ha enviado
a la swap, de aquí que la operación nopage
necesitaria llevar la página a la memoria real
desde el archivo de intercambio.
- nr_*
- "número de ", e.g. nr_free_pages().
Preferida a la forma "no_" como no ambiguo con el
caso negativo (compara no_free_pages()).
- notificación de directorio
- Provee ganchos (hooks) para la notificación
de tareas cuando el contenido del directorio ha cambiado.
Nota "contenidos" pueden referirse a dentries, los
inodos del archivo, o incluso a los contenidos de
los archivos por ellos mismos (notificación
de archivo).
- ntoh
- Posiblemente la conversió;n
byte-swapping de formato network-endian a formato
host-endian. La red es big-endian.
- NUMA (Non-Uniform Memory Architecture)
- Arquitectura de Memoria No-Uniforme.
Usualmente en un sistema SMP, toda memoria más alla
de los costos de cache una igual cantidad para alcanzar
cada CPU. En sistemas NUMA, se puede accesar a alguna memoria
más rapidamente que a otras partes. Los últimos
kernels tienen soporte NUMA para preferencia del uso
de la memoria que esta "más cercana" a la CPU, mejor
que la memoria distante de mayor-latencia. Ver Documentation/vm/numa
para detalles.
- NVidia
- Produce un módulo propietario de código no-
abierto
para el kernel. Quejas acerca de este módulo, ve
a NVidia; tales quejas no son bienvenidas en el linux kernel.
También puedes ir a #nvidia en irc.openprojects.net
|
|
|
|
|
|
O
|
|
|
- O()
- Notación de la literatura de las Ciencias
la Computación para la complejidad de algoritmos.
Un algoritmo O(1) toma tiempo constante;
un algoritmo O(n) toma tiempo proporcional
a N, el número de datos, y así de los demás. También
usado para complejidad de espacio, el número de "unidades"
usadas en el algoritmo.
- OHCI
- estándar de Compaq para controladores
USB.
- oob (Out-Of-Band)
- En trabajo con redes, datos Fuera De
Banda. FIXME
- oops
- Un oops se genera por algunos errores
del kernel. Esto puede ser causado por un error en
el kernel o un fállo del hardware (especialmente
RAM mala o defectuosa). Usualmente el kernel puede
continuar operando casi correctamente despues de un
oops. Errores más serios o potenciales pueden causar
un kernel panic (las freezes del S/O). Esto se hace
a veces para proteger el sistema de archivos de que
ocurrran futuros daños.
El reporte de oops aparecerá en los registros del
kernel, pero seran útiles solo para desarrolladores
despues de decodificarlo con ksymoops (Ver
Documentation/oops-tracing.txt). Notese también
que con klogd puedes corromper los reportes
de ooops decodificandolos automaticamente. Se recomienda
añadir la opción -x a klogd
al inicio para prevenir que esto pase.
La forma plural es oopsen.
- ordenamiento de procesador
- El orden de lectura y escritura de
memoria desde el punto de vista de la CPU.
|
|
|
|
|
|
P
|
|
|
- PAE36
- Physical Address extensión (Extensión
de Dirección física) extensión de Dirección
física de Intel de 36 bits para highmem.
- page ageing (envejecimiento de páginas)
- Marcar una página como "antigua"
de alguna forma, quiere decir, que esta no se ha
usado ninguna vez. Las páginas antiguas tienen
preferencia para enviarse a la swap (sin embargo esto es
una simplificación del algoritmo de selección para
enviar páginas a la swap), y envejecidas por los hilos
del kernel vía algoritmo de reloj. Confusamente, page->age==0
indica una página vieja infinita (FIXME: verdad
?)
Las pte' | |