stringtranslate.com

Un comentario sobre el sistema operativo UNIX

Un comentario sobre el sistema operativo UNIX de sexta edición de John Lions (posteriormente reeditado como Lions' Commentary on UNIX 6th Edition [1] [2] y comúnmente conocido como el Libro de Lions ) es una publicación muy influyente [3] de 1976 que contiene comentarios analíticos sobre el código fuente del software del"núcleo residente" [4] (es decir, kernel ) del sistema operativo informático 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, un ejemplo del éxito temprano de UNIX como código portable para una plataforma de publicación, fue compuesto utilizando herramientas UNIX, en sistemas que ejecutaban código portado en la Universidad, similar al que documentó. [5]

Se consideró comúnmente que era el libro más copiado en informática . [ cita requerida ] 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 por última vez en 1996 por Peer-To-Peer Communications, [6] y ha sido circulada, recreada o reconstruida de diversas maneras en varios medios por otras partes. [5]

Historia

John Lions con sus estudiantes en 1980
Una reimpresión japonesa de John Lions Un comentario sobre el sistema operativo Unix y el código fuente formateado adjunto que muestra una licencia para su uso por parte de ciertos licenciatarios y una directiva para que esos licenciatarios restrinjan su uso por parte de otras partes, código fuente del sistema operativo Unix nivel seis

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

La UNSW había obtenido el código fuente de UNIX en 1975, en respuesta a la consulta de Ken Robinson 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 tenía permitido realizar negocios en ningún otro campo, por lo tanto no podía vender el software, aunque se le exigía, paradójicamente, que licenciara sus inventos, como Unix y el transistor. Western Electric , otra subsidiaria de AT&T, administraba la licencia. 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 del Comentario de los Leones, impresa, por licencia.

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

La dificultad de seguir el ritmo de la popularidad del libro hizo que en 1978 sólo estuviera disponible en AT&T Bell Labs . [8]

Cuando AT&T anunció la versión 7 de UNIX 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 difundieron fotocopias. Como no se les enseñaba en clase, a veces se reunían fuera del horario laboral para comentar el libro. Muchos pioneros de UNIX y del código abierto tenían una valiosa fotocopia de varias generaciones. [ cita requerida ]

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

Cuando AT&T lanzó la versión 7, comenzó a darse cuenta de que UNIX era un producto comercial valioso, por lo que emitió la versión 7 con una licencia que prohibía que el código fuente se estudiara en los cursos, para evitar poner en peligro su condición de secreto comercial. Muchas universidades cumplieron con esta norma simplemente abandonando el estudio de UNIX y enseñando solo teoría.

Varias personas relacionadas con UNIX, en particular Peter H. Salus , Dennis Ritchie y Berny Goodheart, presionaron a los distintos propietarios de Unix (AT&T, Novell , la Operación Santa Cruz ) durante muchos años para que permitieran la publicación oficial del libro. En 1996, la Operación Santa Cruz finalmente autorizó la liberación del código fuente de la sexta edición, que tenía veinte años de antigüedad (junto con el código fuente de otras versiones de " Antiguo UNIX "), y el código completo más 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

Comentario de los Leones sobre UNIX, sexta edición con código fuente , reedición de 1996 [6]

El código fuente del sistema operativo UNIX de nivel seis es el código fuente del núcleo, ligeramente editado por Lions para separar mejor la funcionalidad: inicialización del sistema y gestión de procesos, interrupciones y llamadas del sistema, E/S básica, sistemas de archivos y canales y dispositivos de caracteres. Todos los procedimientos y símbolos se enumeran en orden alfabético con una referencia cruzada.

El código tal como se presenta se ejecutará en una 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 un emulador PDP-11 adecuado, como SIMH .

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 incluye el comentario sobre el código fuente, dividido en las mismas secciones que el código. El libro termina con ejercicios sugeridos para el estudiante.

Como explica Lions, este comentario complementa los comentarios del código fuente. Es posible entender el código sin el comentario adicional, y se recomienda al lector que lo haga y que lea las notas solo 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 ( Lions' Commentary , p. 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 detuvo porque se  * intercambió, 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 retorna desde 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 de las principales razones por las 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 de C para el PDP-11 guardaba los registros en las llamadas a procedimientos. Este código falló cuando se trasladó 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]

"No se espera que entiendas esto" fue pensado como un comentario en el espíritu de "Esto no estará en el examen", más que como un desafío descarado.

Véase también

Referencias

  1. ^ Lions, John (1976–1977). Un comentario sobre el sistema operativo UNIX de sexta edición. Universidad de Nueva Gales del Sur: Departamento de Ciencias de la Computación. OCLC  494684468.
  2. ^ Código fuente del sistema operativo Unix, nivel seis. Universidad de Nueva Gales del Sur: Departamento de Ciencias de la Computación. 1976–1977. OCLC  494684460.
  3. ^ Jonathan Corbet Brian Kernighan sobre los orígenes de Unix LWN.net. 17 de enero de 2022.
  4. ^ abc "NUEVO LIBRO". Noticias de UNIX . USENIX. Marzo de 1977.
  5. ^ ab Lehey, Greg (14 de septiembre de 2015). "Comentario sobre el sistema operativo UNIX de sexta edición". Greg Lehey, Warren Toomey.
  6. ^ abc Lions, John (1996). Comentario de Lions sobre UNIX, sexta edición, con código fuente . Comunicaciones entre pares. ISBN 978-1-57398-013-5.
  7. ^ Facultad de Ingeniería, UNSW, (Decano) (18 de septiembre de 2020). "Recordando a Ken Robinson". Universidad de Nueva Gales del Sur: Ingeniería. Archivado desde el original el 20 de octubre de 2020.
  8. ^ El demonio, el ñu 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. ^ por Dennis Ritchie (22 de junio de 2002). "Comentarios extraños y acciones extrañas en Unix" . Consultado el 14 de mayo de 2021 .
  11. ^ https://swtch.com/unix/ [ URL básica ]
  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) desde el original el 2022-10-09.

Lectura adicional

Enlaces externos