Articulo de referencia

Un comentario sobre el sistema operativo UNIX

Un comentario sobre la sexta edición del sistema operativo UNIX de John Lions (reeditado posteriormente como Lions' Commentary on UNIX 6th Edition [ 1 ] [ 2 ] y conocido comúnme...

Un comentario sobre la sexta edición del sistema operativo UNIX de John Lions (reeditado posteriormente como Lions' Commentary on UNIX 6th Edition [ 1 ] [ 2 ] y conocido comúnmente como el Libro de Lions ) es una publicación de 1976 de gran influencia [ 3 ] que contiene comentarios analíticos sobre el código fuente del software "núcleo residente" [ 4 ] (es decir, kernel ) del sistema operativo de computadora Unix de sexta edición , además de una copia formateada e indexada por Lions de dicho código fuente obtenido de los autores en AT&T Bell Labs .

El trabajo de Lions, que en sí mismo fue un ejemplo del éxito inicial de UNIX como código portable para una plataforma de publicación, fue compuesto tipográficamente utilizando herramientas UNIX, en sistemas que ejecutaban código portado en la Universidad, similar al que documentaba. [ 5 ]

Se sospecha que es el libro más fotocopiado en ciencias de la computación . [ 6 ] : xi A pesar de su antigüedad, el libro de Lions todavía se considera un excelente comentario sobre código simple y de alta calidad.

La obra de Lions fue reimpresa más recientemente en 1996 por Peer-To-Peer Communications, [ 6 ] y ha sido difundida, recreada o reconstruida de diversas maneras en varios medios por otras partes. [ 5 ]

Historia

John Lions con sus alumnos en 1980.
Una reimpresión japonesa de Un comentario sobre el sistema operativo UNIX , y el código fuente formateado que lo acompaña, con la licencia correspondiente.

El código fuente y los comentarios se imprimieron en forma de libro en 1977, después de haber sido recopilados por primera vez en mayo de 1976, como un conjunto de notas de clase [ 4 ] para los cursos de ciencias de la computación de Lions (6.602B y 6.657G, mencionados en la introducción del libro) en la Universidad de Nueva Gales del Sur .

UNSW obtuvo el código fuente de UNIX en 1975, en respuesta a la consulta que Ken Robinson le hizo a Dennis Ritchie en Bell en 1974. [ 7 ] Bell Labs era una subsidiaria de AT&T; debido al Decreto de Consentimiento de 1956, AT&T no podía operar en ningún otro campo, por lo que no podía vender el software, aunque, paradójicamente, estaba obligada a licenciar sus inventos, como Unix y el transistor. Western Electric , otra subsidiaria de AT&T, administraba las licencias. A partir de 1977, con las licencias v7 y posteriores, AT&T prohibió los comentarios de código para la enseñanza y solo permitió una copia impresa del Comentario de Lions por licencia.

El boletín informativo del grupo de usuarios de UNIX, USENIX , UNIX News , de marzo de 1977, anunció la disponibilidad del libro para los licenciatarios de UNIX. [ 4 ]

La dificultad para seguir el ritmo de la popularidad del libro hizo que, para 1978, solo estuviera disponible a través de AT&T Bell Labs . [ 8 ]

Cuando AT&T anunció UNIX versión 7 en USENIX en junio de 1979, la licencia académica/de investigación ya no permitía automáticamente su uso en el aula. Sin embargo, miles de estudiantes de informática de todo el mundo distribuyeron fotocopias. Como no se impartía en clase, a veces se reunían fuera del horario lectivo para comentar el libro. Muchos pioneros de UNIX y del software libre conservaban una valiosa fotocopia de varias generaciones.

Otros efectos posteriores al cambio de licencia incluyeron la creación de Minix por parte de Andrew S. Tanenbaum . Como Tanenbaum escribió en Operating Systems (1987):

Cuando AT&T lanzó la versión 7, se dio cuenta de que UNIX era un valioso producto comercial, por lo que la distribuyó con una licencia que prohibía el estudio del código fuente en los cursos, para evitar poner en peligro su estatus de secreto comercial. Muchas universidades acataron la medida y simplemente dejaron de estudiar UNIX, impartiendo únicamente la teoría.

Varias personas relacionadas con UNIX, en particular Peter H. Salus , Dennis Ritchie y Berny Goodheart, presionaron durante muchos años a los distintos propietarios de Unix (AT&T, Novell , la Operación Santa Cruz ) para que permitieran la publicación oficial del libro. En 1996, la Operación Santa Cruz finalmente autorizó la publicación del código fuente de la sexta edición, de veinte años de antigüedad (junto con el código fuente de otras versiones de " Ancient UNIX "), y el código completo, junto con la versión de 1977 del comentario, fue publicado por Peer-To-Peer Communications ( ISBN). 978-1-57398-013-5). [ 6 ] La reedición incluye comentarios de Michael Tilson (SCO), Peter Salus, Dennis Ritchie, Ken Thompson , Peter Collinson, Greg Rose, Mike O'Dell , Berny Goodheart y Peter Reintjes .

Contenido

Lions Commentary on UNIX 6th Edition with Source Code 1996 reissue [ 6 ]

El código fuente del sistema operativo UNIX de nivel seis corresponde al núcleo, ligeramente modificado por Lions para separar mejor las funcionalidades  : inicialización del sistema y gestión de procesos, interrupciones y llamadas al sistema, E/S básica, sistemas de archivos, tuberías y dispositivos de caracteres. Todos los procedimientos y símbolos se enumeran alfabéticamente con referencias cruzadas.

Brian Kernighan sosteniendo un ejemplar de Lions's Commentary.

El código presentado se ejecutará en un PDP-11 /40 con unidad de disco RK05 , interfaz de impresora de línea LP11, grabadora de cinta de papel PCL11 e interfaz de terminal KL11, o en un emulador de PDP-11 adecuado, como SIMH .

El libro «Un comentario sobre el sistema operativo UNIX» comienza con notas sobre UNIX y otra documentación útil (las páginas del manual de UNIX, los manuales de hardware de DEC , etc.), una sección sobre la arquitectura del PDP-11 y un capítulo sobre cómo leer programas en C. A continuación, se presenta el comentario del código fuente, dividido en las mismas secciones que el código. El libro finaliza con ejercicios sugeridos para el estudiante.

Como explica Lions, este comentario complementa los comentarios del código fuente. Es posible comprender el código sin el comentario adicional, y se recomienda al lector que lo haga y que solo lea las notas cuando sea necesario. El comentario también señala cómo se podría mejorar el código.

"No se espera que entiendas esto"

El infame comentario del programa "No se espera que entiendas esto" aparece en la línea 2238 del código fuente ( Comentario de Lions , pág.  22) al final de un comentario que explica el mecanismo de intercambio de procesos. Se refiere a la línea 325 del archivo slp.c. [ 9 ] El código fuente dice: [ 10 ] [ 11 ]

/*  * Si el nuevo proceso se pausó porque fue  * intercambiado, establezca el nivel de pila en la última llamada  * a savu(u_ssav). Esto significa que el retorno  * que se ejecuta inmediatamente después de la llamada a aretu  * en realidad regresa de la última rutina que hizo  * el savu.  *  * No se espera que entienda esto.  */ if ( rp -> p_flag & SSWAP ) { rp -> p_flag =& ~ SSWAP ; aretu ( u . u_ssav ); }

Una razón importante por la que este fragmento de código era difícil de entender era que dependía de una peculiaridad de la forma en que el compilador C para el PDP-11 guardaba los registros en las llamadas a procedimientos. Este código falló al portarse a otras máquinas y tuvo que ser rediseñado en la versión 7 de UNIX . [ 12 ] Dennis Ritchie explicó más tarde el significado de esta observación: [ 10 ]

La frase "No se espera que entiendas esto" pretendía ser un comentario en el sentido de "Esto no entrará en el examen", más que un desafío insolente.

Véase también

  • xv6 – Reimplementación moderna de la sexta edición de Unix 

Referencias

  1. Lions, John (1976–1977).Un comentario sobre la sexta edición del sistema operativo UNIX.Universidad de Nueva Gales del Sur: Departamento de Ciencias de la Computación. OCLC 494684468 . {{cite book}}: CS1 mantenimiento: ubicación del editor ( enlace )
  2. código fuente del sistema operativo Unix nivel seisUniversidad de Nueva Gales del Sur: Departamento de Ciencias de la Computación. 1976–1977. OCLC 494684460 . {{cite book}}: CS1 mantenimiento: ubicación del editor ( enlace )
  3. Jonathan Corbet y Brian Kernighan hablan sobre los orígenes de Unix. LWN.net. 17 de enero de 2022.
  4. 1 2 3 "NUEVO LIBRO" . Noticias de UNIX . USENIX. Marzo de 1977.
  5. 1 2 Lehey, Greg (14 de septiembre de 2015). " Comentario sobre la sexta edición del sistema operativo UNIX " . Greg Lehey, Warren Toomey.
  6. 1 2 3 4 Lions, John (1996). Comentario de Lions sobre UNIX, 6.ª edición con código fuente . Comunicaciones punto a punto. ISBN 978-1-57398-013-5.
  7. Facultad de Ingeniería, UNSW, (Decano) (18 de septiembre de 2020). «En memoria de Ken Robinson» . Universidad de Nueva Gales del Sur: Ingeniería. Archivado del original el 20 de octubre de 2020.
  8. El demonio, el GNU y el pingüino - Capítulos 2 y 3 ( Peter H. Salus )
  9. Ken Thompson. "unix-history-repo/usr/sys/ken/slp.c" . GitHub . Consultado el 12 de octubre de 2018 .
  10. 1 2 Dennis Ritchie (22 de junio de 2002). "Comentarios extraños y comportamientos raros en Unix" . Recuperado el 26 de diciembre de 2025 .
  11. "swtch.com" . swtch.com . Archivado del original el 4 de febrero de 2026. Consultado el 12 de mayo de 2026 .
  12. Johnson, SC; Ritchie, DM (1978). "Sistema de tiempo compartido UNIX: Portabilidad de programas C y el sistema UNIX" ( PDF) . Bell System Technical Journal . 57 (6): 2021–2048 . doi : 10.1002/j.1538-7305.1978.tb02141.x . S2CID 17510065. Archivado (PDF) del original el 9 de octubre de 2022. Recuperado el 26 de diciembre de 2025 . 

Lecturas adicionales

  • Crítica del código (Rachel Chalmers, Salon , 30 de noviembre de 1999)
  • El Daemon, el GNU y el Pingüino - Cap. 6: 1979 ( Peter H. Salus )