Комментарий Льва к 6-му изданию UNIX с исходным кодом - Википедия - Lions Commentary on UNIX 6th Edition, with Source Code
Переиздать | |
Автор | Джон Лайонс |
---|---|
Страна |
|
Язык | Английский; также доступен на китайском и японском языках |
Предмет | Unix Операционная система |
Жанр | Информатика |
Издатель | Университет Нового Южного Уэльса |
Дата публикации | 1976 |
OCLC | 36099640 |
005.43 | |
Класс LC | QA 76.76 .O63 L56 |
Комментарий Льва к 6-му изданию UNIX с исходным кодом к Джон Лайонс (1976) содержит исходный код из 6-е издание Unix ядро плюс комментарий. Его обычно называют Книга львов. Несмотря на свой возраст, он по-прежнему считается отличным комментарием к простому, но качественному коду.
В течение многих лет книга Львов была единственной документацией ядра Unix, доступной за пределами Bell Labs. Хотя лицензия 6-го издания позволяла использовать исходный код в классе, лицензия 7-е издание специально исключено такое использование, поэтому книга распространяется через незаконное копирование на копировальных аппаратах (своего рода самиздат ). Обычно ее считали самой копируемой книгой в Информатика.
Книга была переиздана в 1996 году компанией Peer-To-Peer Communications.[1]
Синопсис
Исходный код операционной системы Unix, уровень шесть - это исходный код ядра, слегка отредактированный Lions для лучшего разделения функций - инициализация системы и управление процессами, прерывания и системные вызовы, базовый ввод-вывод, файловые системы, конвейеры и символьные устройства. Все процедуры и символы перечислены в алфавитном порядке с перекрестными ссылками.
Представленный код будет работать на PDP-11 / 40 с РК-05 дисковод, интерфейс линейного принтера LP-11, устройство записи на бумажную ленту PCL-11 и интерфейс терминала KL-11 или подходящий эмулятор PDP-11, например SIMH.
Комментарий к операционной системе Unix начинается с примечаний по Unix и другой полезной документации (страницы руководства Unix, DEC руководства по аппаратному обеспечению и т. д.), раздел об архитектуре PDP-11 и главу о том, как читать C программы. Далее следует комментарий к источнику, разделенный на те же разделы, что и код. Книга заканчивается предложенными упражнениями для ученика.
Как поясняет Лайонс, этот комментарий дополняет комментарии в источнике. Код можно понять без дополнительных комментариев, и читателю рекомендуется делать это и читать примечания только по мере необходимости. В комментарии также говорится о том, как можно улучшить код.
История
Исходный код и комментарии были первоначально выпущены в мае 1976 года как набор лекционных заметок для Lions's. Информатика курсы (6.602B и 6.657G) на Университет Нового Южного Уэльса Департамент компьютерных наук.
Новости UNIX В марте 1977 г. было объявлено о доступности книги для лицензиатов Unix. Lions не успевала за его популярностью, и к 1978 году он был доступен только в Bell Labs.
Когда AT&T объявил Версия Unix 7 в USENIX в июне 1979 года академическая / исследовательская лицензия больше не разрешала автоматически использование классных комнат. Таким образом, лицензиаты больше не могли использовать заметки Льва для занятий на операционные системы.
Однако тысячи студентов, изучающих информатику, по всему миру распространяют фотокопии. Поскольку они не могли изучать ее на законных основаниях в классе, они иногда собирались в нерабочее время, чтобы обсудить книгу. Многие пионеры Unix и Открытый исходный код имел заветную фотокопию нескольких поколений.[2]
Включены другие последующие эффекты изменения лицензии Эндрю С. Таненбаум создание Minix. Как писал Таненбаум в Операционные системы (1987):
Когда AT&T выпустила Версию 7, она начала понимать, что UNIX является ценным коммерческим продуктом, поэтому выпустила Версию 7 с лицензией, которая запрещала изучение исходного кода на курсах, чтобы не подвергать опасности ее статус коммерческой тайны. Многие университеты согласились, просто отказавшись от изучения UNIX и преподавая только теорию.
Различные люди Unix, особенно Питер Х. Салус, Деннис Ричи и Берни Гудхарт лоббировали различных владельцев Unix (AT&T, Novell, то Операция Санта-Крус ) в течение многих лет, чтобы книга могла быть опубликована официально. В 1996 году Операция Санта-Крус наконец разрешила выпуск исходного кода шестого издания двадцатилетней давности (вместе с исходным кодом других версий "Древний UNIX "), а полный код и версия комментария 1977 г. были опубликованы компанией Peer-To-Peer Communications (ISBN 1-57398-013-7).[1] Переиздание включает комментарии Майкла Тилсона (SCO), Питера Салуса, Денниса Ричи, Кен Томпсон, Питер Коллинсон, Грег Роуз, Майк О'Делл, Берни Гудхарт и Питер Рейнтьес.
«От вас не ждут, что вы это поймете»
Печально известный комментарий программы «Ожидается, что вы этого не поймете» встречается в строке 2238 исходного кода (Комментарий Льва, п. 22) в конце комментария, объясняющего механизм обмена процессами. Это ссылка на строку 325 файла slp.c.[3] Исходный код гласит:[4]
/* * Если новый процесс приостановлен, потому что он был * поменял местами, установить уровень стека на последний вызов * в саву (u_ssav). Это означает, что возврат * который выполняется сразу после вызова aretu * фактически возвращается из последней процедуры, которая выполнила * саву. * * Ожидается, что вы этого не поймете. */ если(rp->p_flag&SSWAP) { rp->p_flag =& ~SSWAP; Арету(ты.u_ssav); }
Основная причина, по которой этот фрагмент кода было трудно понять, заключалась в том, что он зависел от особенностей способа, которым C-компилятор PDP-11 сохраненные регистры в вызовах процедур. Этот код не удался при переносе на другие машины, и его пришлось переработать в Версия 7 Unix.[5] Деннис Ричи позже объяснил смысл этого замечания:[4]
«От вас не ждут, что вы это поймете» - это было замечание в духе «Этого не будет на экзамене», а не как дерзкий вызов.
Смотрите также
xv6, современное воплощение Шестое издание Unix в ANSI C за мультипроцессор x86 и RISC-V системы.
Рекомендации
- ^ а б «Львиный комментарий к UNIX». В архиве из оригинала на 2018-11-16. Получено 2020-01-12.
- ^ "Книга львов". Файл жаргона. 29 декабря 2003 г.. Получено 2020-01-11.
- ^ Кен Томпсон. "unix-история-репо / usr / sys / ken / slp.c". Получено 2018-10-12.
- ^ а б Деннис Ричи. «Странные комментарии и странные дела в Unix». Получено 2015-07-21.
- ^ Johnson, S.C .; Ричи, Д. М. (1978). "Система разделения времени UNIX: переносимость программ C и системы UNIX" (PDF). Технический журнал Bell System. 57 (6): 2021–2048. Дои:10.1002 / j.1538-7305.1978.tb02141.x.
дальнейшее чтение
- Эндрю С. Таненбаум, Операционные системы: разработка и реализация, (Prentice Hall, ISBN 0-13-637331-3, Июнь 1987 г.)
- Code Critic (Рэйчел Чалмерс, Салон, 30 ноября 1999 г.)
- Демон, GNU и пингвин - гл. 6 (Питер Х. Салус, 1979)
- Брайан В. Керниган и Деннис Ричи, Язык программирования C, ISBN 0-13-110362-8
внешняя ссылка
- Полный комментарий в PDF, PostScript, и Латекс форматы
- Полный исходный код список доступен в PDF и HTML форматы.