4
Jan
2011

Diferencias entre el kernel de Unix y Linux

Unix y Linux son sistemas operativos diferentes y no existe una derivación histórica entre ambos. Dicho de otro modo: no es trazable código de los laboratorios de AT&T en el código de Linux. Existe de todas formas una relación conceptual, funcional y de implementación del estándar POSIX. Para muchos, la historia entre el primer Unix de 1969 y el primer Linux en 1991 ya es conocida.

Voy a reseñar a continuación algunas diferencias de alto nivel entre ambos kernels:

  • si bien los dos son monolíticos, Linux soporta la carga y descarga de módulos dinámicamente (mientras está en ejecución);
  • Linux tiene soporte para multiprocesamiento simétrico (SMP), múltiples procesadores pueden acceder a una única memoria;
  • el kernel de Linux es preemtive, puede sacar a un proceso del procesador para realizar planificación -algunas versiones de Unix tienen esta característica-;
  • Linux no diferencia entre procesos y threads, los threads son tipos de procesos que comparten memoria;
  • Linux provee un modelo orientado a objetos para las clases de dispositivos, eventos hot-pluggable y dispositivos de sistemas de archivos a nivel de espacio de usuario;
  • Linux ignora algunas características de Unix que sus desarrolladores consideran pobremente diseñadas, como los STREAMS, o que no pueden ser implementadas de forma limpia;
  • Linux es libre, con una política en la que cada agregado debe solucionar un problema real, de forma clara y con una sólida implementación.

Basado en Linux Kernel Development 3ra edición (Robert Love).