Historia · Unidad 07 · Lección 2 de 4
Unix, portabilidad y código abierto
Separa influencia, ascendencia del código y compatibilidad, y descubre qué exige mantener software compartido.
Para prepararteHistoria de los sistemas operativos
Después de esta lección puedes
- distinguir la influencia de Unix de la herencia directa de código
- explicar qué cambiaron C y las interfaces portables
- relacionar el software reutilizable con responsables y actualizaciones
Explora las épocas de abajo. En pantallas anchas, desplázate horizontalmente para ver toda la cronología.
-
Un sistema pequeño responde a necesidades prácticas.
Por qué importa Las restricciones y el uso orientan el diseño.
-
Gran parte del sistema deja de depender del ensamblador.
Por qué importa La portabilidad se facilita, pero no es automática.
-
El proyecto propone un sistema compatible con Unix y compartible libremente.
Por qué importa Compatibilidad y libertad no equivalen a heredar código.
-
Aparece un kernel de tipo Unix escrito independientemente.
Por qué importa Puede combinarse con herramientas de otros proyectos.
Dos cocinas pueden seguir recetas parecidas sin tener los mismos equipos ni emplear a los mismos cocineros. Del mismo modo, dos sistemas operativos pueden compartir ideas e interfaces sin compartir cada línea de código. La historia de Unix se entiende mejor separando influencia, ascendencia y compatibilidad.
Un sistema práctico que podía viajar
Unix comenzó en Bell Labs en 1969. Sus primeros pasos respondieron a hardware limitado y necesidades concretas, como programar y procesar textos. El sistema favorecía combinar herramientas mediante interfaces comunes. Así, el entorno resultaba más útil que cualquier comando aislado.
Reescribir gran parte de Unix en C en 1973 cambió el esfuerzo de llevarlo a otro hardware. El ensamblador está muy ligado a un procesador; un lenguaje de mayor nivel expresa más partes del programa sin detallar cada particularidad de la máquina. Pero la portabilidad exige trabajo. Dispositivos, tamaños de datos, compiladores e interfaces pueden necesitar adaptación.
Las historias de Dennis Ritchie presentan esas decisiones como experimentos y respuestas a restricciones reales. Leerlas ayuda a evitar la idea de que los sistemas actuales surgieron de un único plan perfecto.
Familias parecidas, ascendencias diferentes
Unix se difundió mediante investigación, productos comerciales y ramas como BSD. Las licencias, las instituciones y la disponibilidad del código influyeron en esa expansión. Sistemas posteriores adoptaron conceptos familiares de procesos y archivos con motivos e implementaciones diferentes.
El anuncio de GNU de 1983 proponía un sistema compatible con Unix que pudiera compartirse libremente. Linux comenzó en 1991 como un kernel de tipo Unix escrito de forma independiente. No es simplemente la siguiente versión del código original de Unix. Una distribución puede combinar Linux con herramientas GNU y muchos otros proyectos; algunas plataformas basadas en Linux eligen bibliotecas y entornos de aplicaciones muy distintos.
Kernel, distribución y aplicación son capas diferentes. Decir “esto ejecuta Linux” no identifica todos sus programas, políticas de permisos, orígenes de paquetes ni responsables de actualizarlo.
La apertura ofrece posibilidades
Disponer del código puede facilitar aprendizaje, revisión, adaptación y reparaciones independientes. Convertir esas posibilidades en garantías requiere personas y procesos. Un repositorio visible puede recibir pocas revisiones. Una corrección en el código quizá todavía no haya llegado al paquete instalado.
Piensa en una aplicación meteorológica ficticia que usa una biblioteca de imágenes. La pregunta de mantenimiento es concreta: qué versión contiene, quién entrega un paquete corregido y cómo lo recibirá la aplicación. Saber la familia del sistema operativo no responde toda esa cadena.
PrediceDos dispositivos anuncian que usan Linux. ¿Puedes suponer que tienen las mismas utilidades, políticas y fechas de actualización?
No. Pueden compartir familia de kernel y tener versiones, bibliotecas, políticas y responsables distintos. Compara los componentes reales y sus acuerdos de soporte.
Cambiaron las posibilidades de trasladar ideas e implementaciones de software. Persistió la necesidad de saber qué se ejecuta y quién lo mantiene. Por eso importan los inventarios de componentes y las actualizaciones confiables, aunque cualquiera pueda consultar el código.
Compruébate
Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.
Las preguntas de esta lección han cambiado. Tu lectura sigue guardada; repasa las preguntas actualizadas.
-
Dos sistemas ofrecen comandos parecidos. ¿Qué demuestra eso por sí solo?
Ver la respuesta
Respuesta correcta: Parecido de interfaces, no idéntica ascendencia del código. Implementaciones independientes pueden ofrecer comportamientos compatibles.
-
Un programa se reescribe en C. ¿Ya es portable sin más trabajo?
Ver la respuesta
Respuesta correcta: No; pueden quedar supuestos sobre hardware e interfaces del sistema. El lenguaje ayuda, pero el programa completo debe ajustarse al nuevo entorno.
-
Una alerta menciona una biblioteca de una aplicación Linux. ¿Qué debe identificar su responsable?
Ver la respuesta
Respuesta correcta: La versión real de la biblioteca y cómo llegará la actualización a la aplicación. Las aplicaciones dependen de componentes mantenidos por separado.
-
Un proyecto publica su código. ¿Qué falta comprobar al confiar en un paquete instalado?
Ver la respuesta
Respuesta correcta: Su procedencia, mantenimiento y relación con el código revisado. Poder revisar ayuda, pero no demuestra todos los pasos de compilación y mantenimiento.
Pruébalo
- EscribeInventa una aplicación del tiempo con cuatro dependencias: kernel, biblioteca, utilidad de consola y origen de paquetes. Indica quién aporta cada una y quién publicaría una corrección. Explica por qué decir Linux no identifica esos cuatro componentes.