Es.KernelKewbies


 

> Parches
> Estado actual del kernel
> Encargados del Kernel
> Registros IRC
> Registros de cambios
> Vendedores del kernel
> Libros recomendados
> Documentación
> Proyectos para el kernel
> Enlaces externos
> Lista de correo
> KernelNewbies-es Wiki
> Scripts útiles



<Manual CVS>


<Estadisticas>





 
  

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.







 G


GART (Graphics Aperture Relocation Table)
Para configuraciones AGP, Tabla de Reubicación de Apertura de Gráficos.
gdoc
Sistema de documentacion de fuentes GNOME (similar a javadoc). Disponible vía CVS en gnome. Descripciones de interfaces de controladores (drivers) del kernel, construido desde las fuentes usando gdoc, estan actualmente siendo escritas en 2.3.
gdt (Global Descriptor Table)
Tabla de descripción Global. Algo que hacer con la segmentación de memoria en x86, pienso (FIXME). Ver ldt.
get
En el kernel, usualmente significa "obtener referencia de". Esto puede verse tan simple como el incremento una cuenta de uso, o puede implicar intentar recuperar un objeto desde una cache de algún orden, o asignar memoria del kernel. Ver
Licencia Pública General.
grupo de procesos
Conjunto de procesos de usuarios que comparten el mismo pid de grupo. Unos de esos procesos sera el lider del grupo (el mismo pid que pgid).







 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'