16 de octubre de 2005

solaris vs freebsd vs linux

De eso va mas o menos interesante artículo que compara los kernels de solaris, freebsd y linux desde un punto de vista constructivo (que no es poco). Algunas cosas son curiosas

Solaris has support for a "fixed priority" class, a "system class" for system threads (such as page-out threads), an "interactive" class used for threads running in a windowing environment under control of the X server

En Linux, Ingo Molnar propuso cosas parecidas (añadir algo que permitira marcar a las X & friends como "interactivos" para poder tratarlos de manera especial, o poner las X a prioridad -10 para olvidarse de los problemas). Linus lo rechazó frontalmente: In short, you're taking a very NT'ish approach - make certain programs run in the "foreground", and give them a static boost because they are magically more important. And you're ignoring the fact that the heuristics we have now are clearly fundamentally broken in certain circumstances

Esta es la misma la razón por la que de momento Linux no incluye (de momento) la capacidad de cambiar de tipo de scheduler "en vivo" como hacen solaris y otros unix "serios" (que haberlos haylos): En linux se cree que si tienes que recurrir a eso es porque el scheduler principal tiene un bug, y que lo mas logico es arreglar ese bug, no "workaroundear" el problema añadiendo complejidad. Supongo que es ese tipo de actitud la que hace que prefiera linux a los demás.


Linux divides machine-dependent layers from machine-independent layers at a much higher level in the software. On Solaris and FreeBSD, much of the code dealing with, for instance, page fault handling is machine-independent. On Linux, the code to handle page faults is pretty much machine-dependent from the beginning of the fault handling. A consequence of this is that Linux can handle much of the paging code more quickly because there is less data abstraction (layering) in the code. However, the cost is that a change in the underlying hardware or model requires more changes to the code

Igual que esta. Linux tendrá mas codigo dependiente de máquina, pero sacrificar el rendimiento de algo tan importante y tan utilizado por ahorrar esfuerzos a la hora de programar es algo que no va con el "espiritu linux"


Y la mejor de todas: Solaris, FreeBSD, and Linux are obviously benefiting from each other. With Solaris going open source, I expect this to continue at a faster rate.

4 comentarios:

  1. Me encantó esta comparación.
    Básica, simple y deja con muchas ideas muy bien planteadas.

    ResponderEliminar
  2. Anónimo1:49 a. m.

    Me parece que el articulo del que hablas esta barbaro, pero esta en ingles. No se si existirá en castellano, pero basicamente, cualquier cosa, las mas importantes, que me podrias comentar sobre eso te estaria muy agredecido. Particularmente estoy tratando de elegir un sistema para meterme de lleno y es entre esos tres que son libres (aunque no conozco la licencia del solaris).
    Si me podes comentar algo escribime a nikolas.gs@live.com.ar
    Gracias! saludos.

    ResponderEliminar
  3. Hace 4 años q utilizo Linux Red Hat Enterprise 3 con Oracle Standard sobre Sun Amd Opteron y tmb Solaris 10 sobre Sun Amd Opteron, igual cantidad de CPU's y memoria Ram.
    Mi conclusión es q Solaris es mucho más estable y tiene mejor performance con más de 100 usuarios y cerca de 180 sesiones abiertas que Linux.
    Linux es más rápido antes de llegar a estas cifras, luego Solaris (ya está en su salsa) y rinde mucho mejor.
    El diseño de kernel monolítico de Linux contra el diseño de microkernels de Solaris hace que éste último sea superior en rendimiento cuando hay una gran sobrecarga de conexiones y consultas a la base de datos.
    Esto ocurre solo a nivel de Servidores, en el Desktop Linux gana lejos en todo.

    ResponderEliminar
  4. Es curioso que el mismo Linus Torvalds comentara algo similar, pero no es cosa que muchos no hayamos visto antes.
    http://www.vivalinux.com.ar/eventos/el-kernel-inflado-y-enorme

    ResponderEliminar