stringtranslate.com

Un comentario sobre el sistema operativo UNIX

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

Un ejemplo del éxito inicial de UNIX como código portátil para una plataforma de publicación, el trabajo de Lions se compuso utilizando herramientas UNIX, en sistemas que ejecutaban código portado en la Universidad, similar al que documentó. [5]

Comúnmente se consideraba el libro más copiado en informática . [ cita necesaria ] 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.

El trabajo de Lions fue reimpreso por última vez en 1996 por Peer-To-Peer Communications, [6] y otros partidos lo han hecho circular, recreado o reconstruido de diversas formas en varios medios. [5]

Historia

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

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

De hecho, la UNSW había obtenido el código fuente de UNIX en 1975, en respuesta a la consulta de Ken Robinson en 1974 a Dennis Ritchie en Bell. [7] Bell Labs era una subsidiaria de AT&T, bajo restricciones debido a su naturaleza monopolística como proveedor nacional de infraestructura de telecomunicaciones, y no se le permitía realizar negocios en ningún otro campo, [ cita necesaria ] y, por lo tanto, no tenía libertad para beneficiarse de la venta. de software, [ cita necesaria ] sin embargo, UNIX estaba siendo proporcionado bajo licencia por otra subsidiaria de AT&T, Western Electric , al menos en 1977. [ aclaración necesaria ]

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

La dificultad para mantener el ritmo de la popularidad del libro significó que en 1978 solo estuviera disponible en 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 el uso en el aula. Sin embargo, miles de estudiantes de informática de todo el mundo difunden fotocopias. Como no se lo enseñaban en clase, a veces se reunían fuera de horario para discutir el libro. Muchos pioneros de UNIX y del código abierto tenían una preciada fotocopia de múltiples generaciones. [ cita necesaria ]

Otros efectos posteriores al cambio de licencia incluyeron que Andrew S. Tanenbaum creara Minix . Como escribió Tanenbaum en Sistemas operativos (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 estudiar el código fuente en los cursos, para evitar poner en peligro su condición de secreto comercial. Muchas universidades cumplieron y simplemente abandonaron el estudio de UNIX y enseñaron sólo teoría.

Varias personas de UNIX, particularmente Peter H. Salus , Dennis Ritchie y Berny Goodheart, presionaron a los distintos propietarios de Unix (AT&T, Novell , Santa Cruz Operation ) durante muchos años para que permitieran que el libro se publicara oficialmente. 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 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 la sexta edición de UNIX con reedición del código fuente de 1996 [6]

El código fuente del sistema operativo UNIX nivel seis es el código fuente del kernel, ligeramente editado por Lions para separar mejor la funcionalidad: inicialización del sistema y gestión de procesos, interrupciones y llamadas al sistema, E/S básicas, sistemas de archivos y canalizaciones y dispositivos de caracteres. Todos los procedimientos y símbolos están listados alfabéticamente con una referencia cruzada.

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 cintas de papel PCL11 e interfaz de terminal KL11, o un emulador de 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, 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 fuente, dividido en las mismas secciones que el código. El libro finaliza con ejercicios sugeridos para el alumno.

Como explica Lions, este comentario complementa los comentarios de la fuente. Es posible comprender el código sin comentarios adicionales, y se recomienda al lector que lo haga y solo lea las notas según sea necesario. El comentario también comenta 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 los Leones , 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 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 realizó  * el savu.  *  *No se espera que usted 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 C del PDP-11 guardaba los registros en las llamadas a procedimientos. Este código falló cuando se transfirió a otras máquinas y tuvo que ser rediseñado en la Versión 7 UNIX . [12] Dennis Ritchie explicó más tarde el significado de esta observación: [10]

"No se espera que entiendas esto" pretendía ser un comentario con el espíritu de "Esto no estará en el examen", más que un desafío descarado.

Ver también

Referencias

  1. ^ Leones, John (1976-1977). Un comentario sobre el sistema operativo UNIX de la sexta edición. Universidad de Nueva Gales del Sur: Departamento de Ciencias de la Computación. OCLC  494684468.
  2. ^ Nivel seis del código fuente del sistema operativo Unix. 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 "LIBRO NUEVO". Noticias UNIX . USENIX. Marzo de 1977.
  5. ^ ab Lehey, Greg (14 de septiembre de 2015). "Comentario sobre el sistema operativo UNIX sexta edición". Greg Lehey, Warren Toomey.
  6. ^ abc Leones, John (1996). "Comentario de los Leones 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 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. ^ ab 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/
  12. ^ Johnson, Carolina del Sur; Ritchie, DM (1978). "Sistema de tiempo compartido UNIX: portabilidad de programas C y el sistema UNIX" (PDF) . Revista técnica del sistema Bell . 57 (6): 2021-2048. doi :10.1002/j.1538-7305.1978.tb02141.x. S2CID  17510065. Archivado (PDF) desde el original el 9 de octubre de 2022.

Otras lecturas

enlaces externos