Комментарий к операционной системе UNIX
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2023 г. ) |
![]() Брайан Керниган держит копию Lions's Commentary | |
Автор | Джон Лайонс |
---|---|
Язык | Английский; также доступен на китайском и японском языках |
Предмет | Юникс Операционная система |
Жанр | Информатика |
Издатель | Университет Нового Южного Уэльса |
Дата публикации | 1976 |
Место публикации |
|
ОКЛК | 36099640 |
005.43 | |
Класс ЛК | КА 76.76 .O63 L56 |
Комментарий Джона Лайонса к шестому изданию операционной системы UNIX ( позже переиздан как «Комментарий Лайонса к шестому изданию UNIX»). [ 1 ] [ 2 ] и обычно называемая Львиной книгой ) является весьма влиятельным [ 3 ] Публикация 1976 года, содержащая аналитический комментарий к исходному коду « 6-го издания Unix компьютерной операционной системы резидентное ядро». [ 4 ] (т. е. ядро ) , а также копию, отформатированную и проиндексированную Lions, указанного исходного кода, полученного от авторов в AT&T Bell Labs .
Сама работа Лайонса, являющаяся примером раннего успеха UNIX как переносимого кода для издательской платформы, была набрана с использованием инструментов UNIX на системах, на которых выполнялся код, перенесенный в университете, аналогично тому, который он документировал. [ 5 ]
Обычно считалось, что это самая копируемая книга по информатике . [ нужна ссылка ] Несмотря на свой возраст, книга Лайонса по-прежнему считается отличным комментарием к простому, высококачественному коду.
Последний раз работа Лайонса была переиздана в 1996 году издательством Peer-To-Peer Communications. [ 6 ] и был распространен, воссоздан или реконструирован различными способами в ряде средств массовой информации другими сторонами. [ 5 ]
История
[ редактировать ]

Исходный код и комментарии были напечатаны в виде книги в 1977 году после того, как впервые были собраны в мае 1976 года в виде набора конспектов лекций. [ 4 ] Лайонса на курсы информатики (6.602B и 6.657G, упомянутые во введении к книге) в Университете Нового Южного Уэльса .
UNSW фактически получил исходный код UNIX в 1975 году в ответ на запрос Кена Робинсона в 1974 году Деннису Ритчи из Bell. [ 7 ] Bell Labs была дочерней компанией AT&T, на которую налагались ограничения из-за ее монопольного характера в качестве национального поставщика телекоммуникационной инфраструктуры, и ей не разрешалось вести бизнес в какой-либо другой области. [ нужна ссылка ] и поэтому не имел права получать прибыль от продажи программного обеспечения, [ нужна ссылка ] однако UNIX предоставлялась по лицензии другой дочерней компанией AT&T, Western Electric, по крайней мере, к 1977 году. [ нужны разъяснения ]
Группа пользователей UNIX, UNIX информационный бюллетень USENIX News , в марте 1977 года объявил о доступности книги для лицензиатов UNIX. [ 4 ]
Трудность успевать за популярностью книги привела к тому, что к 1978 году ее можно было приобрести только в AT&T Bell Labs . [ 8 ]
Когда AT&T анонсировала UNIX версии 7 на USENIX в июне 1979 года, академическая/исследовательская лицензия больше не позволяла автоматически использовать ее в классе. Однако тысячи студентов-компьютерщиков по всему миру распространяют фотокопии. Поскольку их не учили этому в классе, они иногда встречались в нерабочее время, чтобы обсудить книгу. Многие пионеры UNIX и открытого исходного кода имели ценные фотокопии нескольких поколений. [ нужна ссылка ]
Другими последствиями изменения лицензии стало Эндрю С. Таненбаумом создание Minix . Как писал Таненбаум в «Операционных системах» (1987):
Когда AT&T выпустила версию 7, она начала понимать, что UNIX является ценным коммерческим продуктом, поэтому выпустила версию 7 с лицензией, которая запрещала изучение исходного кода на курсах, чтобы не ставить под угрозу ее статус коммерческой тайны. Многие университеты подчинились этому, просто отказавшись от изучения UNIX и преподавая только теорию.
Различные представители UNIX, в частности Питер Х. Салус , Деннис Ритчи и Берни Гудхарт, в течение многих лет лоббировали различных владельцев Unix (AT&T, Novell , Santa Cruz Operation ) с целью разрешить официальную публикацию книги. В 1996 году операция Санта-Крус наконец санкционировала выпуск исходного кода 6-го издания двадцатилетней давности (вместе с исходным кодом других версий « Древней UNIX »), и полный код плюс версия комментариев 1977 года были опубликовано Peer-To-Peer Communications ( ISBN 978-1-57398-013-5 ). [ 6 ] Переиздание включает комментарии Майкла Тилсона (ШОС), Питера Салуса, Денниса Ритчи, Кена Томпсона , Питера Коллинсона, Грега Роуза, Майка О'Делла , Берни Гудхарта и Питера Рейнтьеса .
Содержание
[ редактировать ]
Шестой уровень исходного кода операционной системы UNIX — это исходный код ядра, слегка отредактированный Lions для лучшего разделения функций — инициализации системы и управления процессами, прерываний и системных вызовов, базового ввода-вывода, файловых систем, каналов и символьных устройств. Все процедуры и символы перечислены в алфавитном порядке с перекрестными ссылками.
Представленный код будет работать на PDP-11 /40 с дисководом RK05 , интерфейсом линейного принтера LP11, устройством записи на бумажную ленту PCL11 и терминальным интерфейсом KL11 или подходящим эмулятором PDP-11, например SIMH .
Комментарий к операционной системе UNIX начинается с примечаний по UNIX и другой полезной документации (страницы руководства UNIX, руководства по аппаратному обеспечению DEC и т. д.), раздела об архитектуре PDP-11 и главы о том, как читать на языке C. программы Далее следует комментарий к исходному коду, разделенный на те же разделы, что и код. Книга заканчивается предлагаемыми упражнениями для ученика.
Как объясняет Лайонс, этот комментарий дополняет комментарии в источнике. Код можно понять без дополнительных комментариев, и читателю рекомендуется поступать так и читать примечания только по мере необходимости. В комментарии также отмечается, как можно улучшить код.
«От вас не ожидается, что вы это поймете»
[ редактировать ]Печально известный программный комментарий «Вы не должны это понимать» встречается в строке 2238 исходного кода ( Комментарий Львов , стр. 22) в конце комментария, объясняющего механизм обмена процессами. Это относится к строке 325 файла slp.c. [ 9 ] Исходный код гласит: [ 10 ] [ 11 ]
/*
* If the new process paused because it was
* swapped out, set the stack level to the last call
* to savu(u_ssav). This means that the return
* which is executed immediately after the call to aretu
* actually returns from the last routine which did
* the savu.
*
* You are not expected to understand this.
*/
if(rp->p_flag&SSWAP) {
rp->p_flag =& ~SSWAP;
aretu(u.u_ssav);
}
Основная причина, по которой этот фрагмент кода было трудно понять, заключалась в том, что он зависел от особенности способа, которым C-компилятор для PDP-11 сохранял регистры при вызовах процедур. Этот код не удалось перенести на другие машины, и его пришлось переработать в версии 7 UNIX . [ 12 ] Деннис Ритчи позже объяснил смысл этого замечания: [ 10 ]
«От вас не ждут этого понимания» было задумано как замечание в духе «Этого не будет на экзамене», а не как наглый вызов.
См. также
[ редактировать ]- xv6 — современная реализация Unix шестого издания.
Ссылки
[ редактировать ]- ^ Лайонс, Джон (1976–1977). Комментарий к шестому изданию операционной системы UNIX . Университет Нового Южного Уэльса: факультет компьютерных наук. OCLC 494684468 .
- ^ Шестой уровень исходного кода операционной системы Unix . Университет Нового Южного Уэльса: факультет компьютерных наук. 1976–1977. OCLC 494684460 .
- ^ Джонатан Корбет Брайан Керниган о происхождении Unix LWN.net. 17 января 2022 г.
- ^ Перейти обратно: а б с «НОВАЯ КНИГА» . Новости UNIX . УСЕНИКС. Март 1977 года.
- ^ Перейти обратно: а б Лихи, Грег (14 сентября 2015 г.). « Комментарий к шестому изданию операционной системы UNIX » . Грег Лихи, Уоррен Туми.
- ^ Перейти обратно: а б с Лайонс, Джон (1996). Комментарий Львов к шестому изданию UNIX с исходным кодом . Одноранговые коммуникации. ISBN 978-1-57398-013-5 .
- ^ Инженерный факультет UNSW, (декан) (18 сентября 2020 г.). «Вспоминая Кена Робинсона» . Университет Нового Южного Уэльса: Инженерное дело. Архивировано из оригинала 20 октября 2020 г.
- ^ Демон, GNU и Пингвин - Главы 2 и 3 ( Питер Х. Салус )
- ^ Кен Томпсон. "unix-history-repo/usr/sys/ken/slp.c" . Гитхаб . Проверено 12 октября 2018 г.
- ^ Перейти обратно: а б Деннис Ричи (22 июня 2002 г.). «Странные комментарии и странные действия в Unix» . Проверено 14 мая 2021 г.
- ^ https://swtch.com/unix/
- ^ Джонсон, Южная Каролина; Ричи, DM (1978). «Система разделения времени UNIX: переносимость программ C и системы UNIX» (PDF) . Технический журнал Bell System . 57 (6): 2021–2048. дои : 10.1002/j.1538-7305.1978.tb02141.x . S2CID 17510065 . Архивировано (PDF) из оригинала 9 октября 2022 г.
Дальнейшее чтение
[ редактировать ]- Эндрю С. Таненбаум , Операционные системы: проектирование и внедрение , ( Прентис Холл , ISBN 0-13-637331-3 , июнь 1987 г.)
- Брайан В. Керниган и Деннис Ритчи , Язык программирования C , ISBN 0-13-110362-8
Внешние ссылки
[ редактировать ]- [1]
- [2]
- Code Critic (Рэйчел Чалмерс, Салон , 30 ноября 1999 г.)
- Демон, GNU и Пингвин - Гл. 6: 1979 ( Питер Х. Салус )