¿Por qué Linux funciona bien en tantos tipos diferentes de máquinas: computadoras de escritorio, computadoras portátiles, servidores, dispositivos integrados, teléfonos móviles, etc.? ¿Se debe principalmente a que el sistema está abierto, por lo que cualquier parte del mismo puede modificarse para funcionar en diferentes entornos? ¿O hay otras propiedades del kernel y / o sistema Linux que facilitan que este sistema operativo funcione en una gama tan amplia de plataformas?
22
Respuestas:
Si bien la apertura es ciertamente parte de ella, creo que el factor clave es la continua insistencia de Linus Torvald de que todo el trabajo, de grande a pequeño, tiene un lugar en el núcleo principal de Linux, siempre y cuando esté bien hecho. Si en algún momento hubiera decidido trazar una línea y decir "está bien, para ese sofisticado hardware de supercomputadora, necesitamos una bifurcación", entonces podrían haberse desarrollado variantes de sistemas pequeños y de alta gama completamente separadas. Tal como están las cosas, en cambio las personas han hecho el trabajo más duro para hacer que todo juegue relativamente bien.
Y, por lo general, no se permite que los errores que permiten un lado de las cosas en detrimento del otro, de nuevo, obliguen a las personas a resolver problemas de una manera más difícil pero más correcta, lo que suele ser más fácil de seguir. una vez que lo que sea necesario, el kludge se convierte en una nota al pie histórica.
De una entrevista hace varios años :
fuente
Linux escala a muchos tipos diferentes de hardware porque:
fuente
fork
es posible yfork
no se puede hacer de manera razonablemente eficiente en un sistema de memoria no virtual. Si bien los puertos indicados probablemente usan partes del kernel de Linux y pueden ejecutar algún software de Linux, en su mayor parte parece que las API expuestas por estos puertos son diferentes a los núcleos de Linux típicos. (Ejemplo: mapeo de memoria, que obviamente requiere memoria virtual)El kernel de Linux escala bien porque eso es lo que es. El núcleo del núcleo es relativamente pequeño y hace lo que debe hacer. Los controladores de dispositivo son opcionales y pueden dejarse fuera del núcleo para sistemas más pequeños. Más allá de los requisitos mínimos del núcleo, la mayoría de las funcionalidades se implementan como características opcionales.
Eche un vistazo al archivo de configuración instalado junto a la mayoría de los núcleos. Enumerará todas las funciones que se activaron y qué controladores son compatibles.
Los controladores son compatibles ya sea incrustados en el núcleo o como módulos cargables. Esto permite que un núcleo se configure dinámicamente para el hardware en el que se está ejecutando. Este es el enfoque utilizado por muchas distribuciones.
Además de tener las herramientas de compilación, modificar el núcleo para un nuevo hardware es relativamente simple. Para un nuevo procesador, solo el código relacionado debe implementarse como modificaciones a la funcionalidad existente. Los nuevos dispositivos solo requieren un nuevo controlador con los ganchos relevantes. Los nuevos sistemas de archivos también son modificaciones relativamente triviales.
La base del código se ha mantenido bien para mantener esta flexibilidad sin bifurcación externa. La compilación condicional impulsa un núcleo muy flexible que se ha mantenido lo más mínimo posible.
fuente
Me falta la experiencia técnica detallada para respaldar esta respuesta, pero mi experiencia sugiere que Linux escala bien en comparación con otros sistemas operativos que uso con frecuencia (principalmente, Windows). Entonces, tal vez la pregunta sea por qué Windows no escala tan bien como Linux.
Si repetir la pregunta de esa manera aún es útil para usted, sugeriría que las fuerzas del mercado motiven a Microsoft a agregar características y funcionalidades orientadas al hardware más reciente y más capaz, porque venden más copias del sistema operativo principalmente cuando los usuarios finales compran nuevos sistemas. . Entonces, en cualquier momento, encuentro que la última versión de Windows funciona mal en hardware antiguo y menos capaz.
Perdóname si eso simplifica demasiado tu pregunta.
fuente