Diferencia entre Linux y Hurd, desde un punto de vista de usuario / programador (avanzado)

3

He visto que los sistemas que se ejecutan sobre Hurd comienzan a estar disponibles (es decir, Arch Hurd ) y me preguntaba cómo un usuario, de todos modos, puede ser capaz de ver la diferencia.

Linux y BSD deberían ser más o menos lo mismo, porque ambos son kernel monolíticos, por lo que la única diferencia debería ser su API syscall.

NB: cuando escribo Linux, no me refiero a GNU / Linux, ya que supongo que el entorno GNU debería ser el mismo en ambos sistemas.

EDITAR : eliminé la declaración sobre BSD, no sé nada sobre este sistema y ese no es el punto de mi pregunta: $

EDIT 2 : Probemos con otro enfoque: tengo un buen conocimiento de GNU / Linux. ¿Qué sería diferente con GNU / Hurd? por ejemplo,

  • El módulo ciertamente no puede existir con un micro-núcleo, ¿cuál es el equivalente? ¿Cómo se ve un controlador de tarjeta de video?
  • si el núcleo Hurd (Mach) delega tareas centrales a procesos de espacio de usuario, ¿cuáles son?
  • ¿Quién está a cargo de estas tareas centrales? (un equivalente de super- init?)

(pregunta secundaria: ¿esta pregunta pertenece a stackoverflow?)

Kevin
fuente
@Ignacio pero wikipedia enumera xBSD entre el núcleo monolítico ...?
Kevin

Respuestas:

2

Hurd -> Microkernel

mientras

Linux -> kernel monolítico

similar a la diferencia b / w kernel monolítico y Microkernel

1 ) El núcleo monolítico es mucho más antiguo que el Microkernel . Se usa en Unix. Mientras que Idea of ​​microkernel apareció a fines de la década de 1980 .

2 ) el ejemplo de sistemas operativos que tienen núcleos monolíticos son UNIX, LINUX Mientras que los sistemas operativos que tienen Microkernel son QNX, L4, HURD , inicialmente Mach (no mac os x) luego se convertirá en núcleo híbrido, incluso MINIX no es núcleo puro porque el dispositivo El controlador se compila como parte del núcleo.

3 ) El núcleo monolítico es más rápido que el microkernel . Mientras que el primer microkernel Mach es 50% más lento que el kernel monolítico, mientras que la versión posterior como L4 solo es 2% o 4% más lento que el kernel monolítico.

4 ) El núcleo monolítico generalmente es voluminoso . Mientras que el núcleo monolítico puro tiene que ser de tamaño pequeño, incluso debe caber en el caché de primer nivel del procesador (microkernel de primera generación).

5 ) en el controlador del dispositivo del núcleo monolítico residen en el espacio del núcleo . Mientras que en el controlador de dispositivo Microkernel residen en el espacio del usuario .

6 ) dado que el controlador del dispositivo reside en el espacio del kernel, hace que el kernel monolítico sea menos seguro que el microkernel. (Una falla en el controlador puede provocar un bloqueo) Mientras que los Microkernels son más seguros que el kernel monolítico, por lo tanto, se usan en algunos dispositivos militares.

7 ) Los núcleos monolíticos usan señales y zócalos para garantizar IPC, mientras que el enfoque de microkernel utiliza colas de mensajes. 1 generación de microkernel IPC mal implementado por lo que fueron lentos en los cambios de contexto.

8 ) agregar una nueva característica a un sistema monolítico significa volver a compilar todo el kernel mientras que puede agregar nuevas características o parches sin volver a compilar .

Rahul Bhadana
fuente
0

¿Por qué no leer primero qué es HURD? Http://www.gnu.org/software/hurd/hurd/what_is_the_gnu_hurd.html

En resumen (según tengo entendido) HURD es un kernel que se ejecuta sobre un micro kernel MACH que permite actualizaciones incluso del material del kernel HURD sin reiniciar.

Todo eso es agradable y teórico, pero en la práctica lo único que notará es la falta de soporte (controlador) para HURD.

HURD es como BSD y LINUX. . todo casi igual pero diferente. Todos son granos con sus propios pros y contras.

el JinX
fuente
1
"todos más o menos lo mismo pero diferente" no puedo creer que :) Me tiene que ser diferente de alguna manera, en algún nivel!
Kevin
El diseño del microkernel y alguna filosofía, parece.
el JinX