-
Multitarea: varios programas (realmente procesos)
ejecutándose al mismo tiempo.
-
Multiusuario: varios usuarios en la misma máquina
al mismo tiempo (y sin licencias para todos).
-
Multiplataforma: corre en muchas CPUs distintas,
no sólo Intel.
-
Funciona en modo protegido 386.
-
Tiene protección de la memoria entre procesos, de
manera que uno de ellos no pueda colgar el sistema.
-
Carga de ejecutables por demanda: Linux sólo lee
de disco aquellas partes de un programa que están siendo usadas actualmente.
-
Política de copia en escritura para la compartición
de páginas entre ejecutables: esto significa que varios procesos pueden
usar la misma zona de memoria para ejecutarse. Cuando alguno intenta
escribir en esa memoria, la página (4Kb de memoria) se copia a otro
lugar. Esta política de copia en escritura tiene dos beneficios: aumenta
la velocidad y reduce el uso de memoria.
-
Memoria virtual usando paginación (sin intercambio
de procesos completos) a disco: una partición o un archivo en el sistema
de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio
sobre la marcha (se sigue denominando intercambio, es en realidad
un intercambio de páginas). Un total de 16 zonas de intercambio de
128Mb de tamaño máximo pueden ser usadas en un momento dado con un
límite teórico de 2Gb para intercambio.
-
La memoria se gestiona como un recurso unificado
para los programas de usuario y para el caché de disco, de tal forma
que toda la memoria libre puede ser usada para caché y éste puede
a su vez ser reducido cuando se ejecuten grandes programas.
-
Librerías compartidas de carga dinámica (DLL's) y
librerías estáticas también, por supuesto.
-
Se realizan volcados de estado (core dumps) para
posibilitar los análisis post-mortem, permitiendo el uso de depuradores
sobre los programas no sólo en ejecución sino también tras abortar
éstos por cualquier motivo.
-
Casi totalmente compatible con POSIX, System V y
BSD a nivel fuente.
-
Mediante un módulo de emulación de iBCS2, casi completamente
compatible con SCO, SVR3 y SVR4 a nivel binario.
-
Todo el código fuente está disponible, incluyendo
el núcleo completo y todos los drivers, las herramientas de desarrollo
y todos los programas de usuario; además todo ello se puede distribuir
libremente. Hay algunos programas comerciales que están siendo ofrecidos
para Linux actualmente sin código fuente, pero todo lo que ha sido
gratuito sigue siendo gratuito.
-
Control de tareas POSIX.
-
Pseudo-terminales (pty's).
-
Emulación de 387 en el núcleo, de tal forma que los
programas no tengan que hacer su propia emulación matemática. Cualquier
máquina que ejecute Linux parecerá dotada de coprocesador matemático.
Por supuesto, si tu ordenador ya tiene una FPU (unidad de coma flotante),
será usada en lugar de la emulación, pudiendo incluso compilar tu
propio kernel sin la emulación matemática y conseguir un pequeño ahorro
de memoria.
-
Soporte para muchos teclados nacionales o adaptados
y es bastante fácil añadir nuevos dinámicamente.
-
Consolas virtuales múltiples: varias sesiones de
login a través de la consola entre las que se puede cambiar con las
combinaciones adecuadas de teclas (totalmente independiente del hardware
de vídeo). Se crean dinámicamente y puedes tener hasta 64.
-
Soporte para varios sistemas de archivo comunes,
incluyendo minix-1, Xenix y todos los sistemas de archivo típicos
de System V, y tiene un avanzado sistema de archivos propio con una
capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres
de longitud.
-
Acceso transparente a particiones MS-DOS (o a particiones
OS/2 FAT) mediante un sistema de archivos especial: no necesitas ningún
comando especial para usar la partición MS-DOS, parece un sistema
de archivos normal de Unix (excepto por algunas graciosas restricciones
en los nombres de archivo, permisos, y esas cosas). Las particiones
comprimidas de MS-DOS 6 no son accesibles en este momento, y no se
espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows
95) ha sido añadido al núcleo de desarrollo y estará en la próxima
versión estable.
-
Un sistema de archivos especial llamado UMSDOS que
permite que Linux sea instalado en un sistema de archivos DOS.
-
Soporte en sólo lectura de HPFS-2 del OS/2 2.1
-
Sistema de archivos de CD-ROM que lee todos los formatos
estándar de CD-ROM.
-
TCP/IP, incluyendo ftp, telnet, NFS, etc.
-
Appletalk disponible en el actual núcleo de desarrollo.
-
Software cliente y servidor Netware disponible en
los núcleos de desarrollo.