Приложение А. Библиография
A.1. Аннотированная библиография.
Эта аннотированная библиография охватывает книги по теории
операционных систем так же, как и по разным видам программирования
в среде UNIX. Указанная цена может быть точной, а может и нет, но
будет вполне преемлема для правительственной работы. [Если у вас
есть книга, которая, по-вашему, подходит для библиографии,
напишите ее краткий обзор и пошлите необходимую информацию
(заголовок,автор, издательство, ISBN и приблизительная цена) и
обзор по адресу johnson@sunsite.unc.edu]. Эта версия постепенно
отходит, в то время как появляется настоящая библиография.
Заглавие: The Design of the UNIX Operating System
Автор: Maurice J. Bach
Издательство: Prentice Hall, 1986
ISBN: 0-13-201799-7
Приближенная цена: $65.00
Это одна из книг, которые Linus использовал при разработке
Linux. Это описание структур данных, используемых в ядре System V.
Множество имен важных функций в исходных текстах Linux пришли из
этой книги, и названы по алгоритмам, представленным в ней.
Например, если вы не можете догадаться, что делают функции
getblk(), brelse(), bread(), breada() и bwrite(), глава 3 об'яснит
это очень хорошо.
В то время как большинство алгоритмов схожи или одинаковы,
стоит отметить несколько различий:
* Буферный кеш Linux динамически перераспределяется под другой размер, так
что алгоритм для действий по получению новых буферов немного другой. Поэтому
об'яснение getblk(), приведенное выше, отличается от getblk() в Linux.
* Linux не использует потоков в текущий момент, и, если потоки реализуются
для Linux, желательно, чтобы они имели другую семантику.
* Семантика и структура вызовов драйверов устройств другая. Концепция сходна,
и еще стоит прочитать главу по драйверам устройств, но для подробностей по
драйверам лучшая ссылка - The Linux Kernel Hackers' Gude.
* Алгоритмы распределения памяти немного отличны.
Есть и другие маленькие отличия, но хорошее понимание этой
книги поможет вам разобрать исходные тексты Linux.
Заглавие: Advanced Programming in the UNIX Environment
Автор: W. Richard Stevens
Издательство: Addison Wesley, 1992
ISBN: 0-201-56317-7
Приближенная цена: $50.00
Этот замечательный томик охватывает все тонкости, которые вы
действительно должны знать, чтобы писать настоящие UN*X программы.
Он включает обсуждение различных стандартов релизации UN*X,
включая POSIX, X/Open XPG3и FIPS, и концентрируется на двух
реализациях, SVR4 и предварительный выпуск 4.4 BSD, который
упоминается в книге, как 4.3 + BSD.
Заглавие: Advanced 80386 Programming Techniques
Автор: James L. turley
Издательство: Osborne McGraw-Hill, 1988
ISBN: 0-07-881342-5
Прибл. Цена: $22.95
Эта книга достаточно хорошо охватывает 80386, не затрагивая
других аппаратных средств. В книгу включены примеры кода. Охвачены
все главные возможности, также как и множество основных понятий.
Книга включает следующие главы: Основы, Сегментация памяти, Уровни
привелегий, Замещение страниц, Многозадачность, Связь между
задачами, Обработка сбоев и прерываний, Эмуляция 80286, Эмуляция
8086, Отладка, Математический процессор 80387, Сброс и реальный
режим, Аппаратное обеспечение, и несколько приложений включая
таблицы управления памятью в качестве справочника.
У автора хороший стиль изложения: если у вас технический
склад ума, вы найдете захватывающим чтение этой книги. Сильная
сторона этой книги в том что автор не обьясняет ни как делать что
либо под DOS, ни как обращаться с конкретной аппаратурой.
Фактически единственное место где он упоминает DOS и
PC-совместимое аппаратное обеспечение это во введении где он
обещает больше не упоминать о них.
Заглавие: The C programming Language, second edition.
Автор: Brian W. Kernighan and Dennis M. Ritchie
Издательство: Prentice Hall, 1988
ISBN: 0-13-110362-8
Прибл. Цена: $35.00
Библия по программированию на Си. Включает учебник по Си,
справочник по UN*X интерфейсу, справочник по Си и справочник по
стандартным библиотекам. Программируете на Си, купите эту книгу.
Это просто.
Заглавие: Operating Systems: Design and Implementation
Автор: Andrew S. Tanenbaum
Издательство: Prentice Hall, 1987
ISBN: 0-13-637406-9
Прибл. Цена: $50.00
В то время как эта книга имеет немного упрощенное описание
некоторых тем и опускает некоторые важные моменты, она дает
достаточно четкое представление о том что надо сделать чтобы
написать операционную систему. Пол книги занимает исходный код
клона UN*X называемого Minix, который основывается на микроядре, в
отличии от Linux, который славится монолитным дизайном. Было
сказано что Minix показывает возможность написания UN*X,
основанного на микроядре, но не обьясняется в достаточной степени
зачем нужно это делать.
Певоначально предполагалось что Linux будет доступной заменой
для Minix фактически он первоначально должен был быть совместимым
на уровне двоичного кода с Minix-386. Minix-386 был средой
разработки под которой был раскручен Linux. В Linux нет кода
Minix, но признаки этого наследия проявляются в таких вещах как
файловая система Minix в Linux.
На ранних порах существования Linux, Эндрю Таненбаум начал
жаркую войну с Linus по поводу разработки ОС, которая была
интересной, если не поучительной.
Однако эта книга может оказаться стоящй для тех кто ищет
доступного обьяснения основ ОС, так как в изложении Таненбаума они
остаются наиболее понятными (и более занимательными, если вы не
хотите скучать).
К сжалению упор делается на основы, в то время как такие вещи
как виртуальная память не охвачены вообще.
Заглавие: Modern operating systems
Автор: Andrew S. Tanenbaum
Издательство: Prentice Hall, 1992
ISBN: 0-13-588187-0
Прибл. Цена: $51.75
первая половина книги это перепечатка более ранней Operating
systems, но эта книга включает некоторые вещи не раскрытые в
ранней, включая такие вещи как виртуальная память. Minix не
упоминается, но есть обзор MS-DOS и нескольких других
распостраненных систем. Эта книга вероятно более полезна для тех
кто зочет углубить свои знания, чем более ранняя книга Таненбаума
Operating systems: Design and Implementation. Причину этого можно
видеть в заголовке.. Однако что делает DOS в книге по СОВРЕМЕННЫМ
операционным системам многие не могут понять.
Заглавие: operating Systems
Автор: William Stallings
Издательство: Macmillan, 1992 (800-548-9939)
ISBN: 0-02-415481-4
Прибл. Цена: $??.??
Наиболее полнай текст по операционным системам, эта книга
дает более глубокий подход к темам раскрытым в книге Таненбаума, и
охватывает больше тем, имеет живой стиль мзложения. Эта книга
охватывает все главные темы которые понадобятся вам для написания
операционной системы, и делает это очень доступным образом. Автор
использует примеры из трех главных систем сравнивая и
противопоставляя их: UN*X, OS/2, и MVS. В каждом разделе эти
системы используются для разяснения пунктов и приведения примеров
реализации.
Темы охваченные в Operating Systems включают Нити (Связи),
системы рельного времени, Планировка в Мультипроцессорах,
распределенные системы, миграция процессов, и Безопасность, также
как и стандартные темы как планировка управление памятью. Раздел
по распределенной обработке похоже вполне современен, и я нахожу
его очень полезным.
Заглавие: UNIX Network programming
Автор: W. Richard Stevens
Издательство: Prentice Hall, 1990
ISBN: 0-13-949876-1
Прибл. Цена: $48.75
Эта книга охватывает несколько видов работы в сетях под UN*X,
и содержит очень полезные справки по формам сетевой обработки
которые она непосредственно не охватывает. Она охватывает TCP/IP и
XNS особенно полно, и довольно исчерпывающе описывает как работают
все вызовы. В ней также есть описание и пример кода использующего
TLI System V, и достаточно полное описание IPC System V. Книга
содержит много примеров исходного кода и много полезных процедур.
Один из примеров это код реализующий используемые семафоры,
основанный на частично- фрагментированной реализации которая
применяется в System V.
Заглавие: Programming in the UNIX environment
Автор: Brian W. Kernighan and Robert Pike
Издательство: Prentice Hall, 1984
ISBN: 0-13-937699 (hardcover) 0-13-937681-X (paperback)
Прибл. Цена: $??.??
Нет Аннотации.
Заглавие: Writing UNIX Device drivers
Автор: George Pajari
Издательство: Addison Wesley, 1992
ISBN: 0-201-52374-4
Прибл. Цена: $32.95
Эта книга написана президентом и основателем Driver Design
Labs, компании специалзирующейся на разработке драйверов устройств
для UN*X. Эта книга отличное введение в порой суровый мир
разработки драйверов устройств. Сначало кратко обсуждаются четыре
основные типа драйверов (символьные, блочные, tty, STREAMS).
Приведено множество полных примеров драйверов устройств разных
типов, начиная с простейших и с растущей сложностью. Все примеры
драйверов работают под UN*X на PC-совместимой аппаратуре. Включены
следующие главы:
Character Drivers I: A Test Data Generator Character Drivers II:
An A/D Converter Character Drivers III: A Line Printer Block Drivers I:
A Test Data Generator Block Drivers II:
A RAM Disk Driver Block Drivers III: A SCSI Disk Driver Character
Drivers IV: The Raw Disk Driver Terminal Drivers I: The COM1 Port
Character Drivers V: A Tape Drive STREAMS Drivers I:
A Loop-Back Driver STREAMS Drivers II: The COM1 Port (Revisited) Driver
Installation Zen and the Art of Device Driver Writting.
Хотя множество вызовов используемых в этой книге Linux- не
совместимы, присутствует общая идея, и большинство решений
отображаются непосредственно в Linux.