LINUX.ORG.RU

Книга «Современные операционные системы. 4-е изд.»

 , , ,

Книга «Современные операционные системы. 4-е изд.»

4

1

Издательский дом «Питер» предлагает вашему вниманию книгу — «Современные операционные системы. 4-е изд.».

По промокоду LinuxORG действует скидка 30 % на все книги издательства.

Также в подарок при покупке бумажной будет её электронная версия.

Предисловие

Четвертое издание этой книги во многом отличается от третьего. Поскольку развитие операционных систем не стоит на месте, приведение материала к современному состоянию потребовало внесения большого количества мелких изменений. Глава, посвященная мультимедийным операционным системам, была перемещена в Интернет, главным образом для освобождения места для нового материала и предотвращения разрастания книги до абсолютно неуправляемого размера. Глава, посвященная Windows Vista, удалена, поскольку Vista не оправдала возлагавшихся на нее компанией Microsoft надежд. Также была удалена глава, посвященная Symbian, поскольку эта система сейчас распространена далеко не так широко, как прежде. Материал о Vista был заменен сведениями о Windows 8, а материал о Symbian — информацией об Android. Кроме этого, появилась совершенно новая глава о виртуализации и облачных вычислениях. Далее приводится краткое описание внесенных изменений.

Глава 1 была существенно переработана и обновлена, но за исключением нового раздела о мобильных компьютерах никакие основные разделы не были добавлены или удалены.

Глава 2 обновлена за счет удаления устаревшего и добавления нового материала. К примеру, был добавлен новый примитив синхронизации фьютекс и раздел о том, как полностью избежать блокировки с помощью чтения — копирования — обновления.

Глава 3 стала более сконцентрированной на современном оборудовании и менее направленной на рассмотрение сегментации и MULTICS.

Из главы 4 убраны упоминания о компакт-дисках, поскольку они уже потеряли свою значимость, а их место заняли более современные решения (флеш-носители). Также к разделу, посвященному RAID-системам, добавлено описание RAID-массива уровня 6.

В главу 5 внесено множество изменений. Из нее убраны описания устаревших устройств, таких как ЭЛТ-дисплеи и приводы компакт-дисков, и добавлены устройства, разраюботанные по новым технологиям, такие как сенсорные экраны.

Глава 6 почти не изменилась. Тема взаимоблокировок, за исключением некоторых новых результатов, остается практически неизменной.

Глава 7 совершенно новая. Она посвящена важным темам виртуализации и облачных вычислений. В качестве тематического исследования к ней добавлен раздел о VMware.

Глава 8 представляет собой обновленную версию предыдущего материала по многопроцессорным системам. Теперь в ней больше внимания уделено мультиядерным и многоядерным системам, важность которых в последние несколько лет постоянно возрастает. Теперь здесь поднят ставший в последнее время более острым вопрос о согласованности данных кэша.

Глава 9 подверглась существенному пересмотру и реорганизации с добавлением большого объема нового материала об использовании ошибок кода, о вредоносных программах и соответствующих мерах защиты. Более подробно рассмотрены такие атаки, как разыменование нулевого указателя и переполнение буферов. Теперь дано подробное описание защитных механизмов, NX-бит и рандомизации адресного пространства, а также способов, с помощью которых злоумышленники пытаются их преодолеть.

Глава 10 претерпела значительные изменения. Был обновлен материал, касающийся Unix и Linux, но главным дополнением можно считать новый довольно объемный раздел, посвященный операционной системе Android, которая часто встречается на смартфонах и планшетных компьютерах.

Глава 11 в третьем издании была посвящена Windows Vista. Теперь она заменена главой, посвященной Windows 8, а точнее Windows 8.1. То есть теперь в главе рассматривается самая актуальная версия.

Глава 12 представляет собой пересмотренную версию главы 13 из прошлого издания.

Глава 13 — это существенно обновленный список предлагаемого к изучению материала. Кроме того, список ссылок пополнился 223 новыми ссылками на работы, опубликованные после выхода третьего издания этой книги.

Кроме всего, по всей книге обновлены разделы, где рассказывается об исследованиях, чтобы отразить все новейшие работы, касающиеся операционных систем. К тому же во все главы добавлены новые вопросы.

Дополнительные материалы для преподавателей (на английском языке) можно найти по адресу www.pearsonhighered.com/tanenbaum. Там есть схемы, выполненные в PowerPoint, программные средства для изучения операционных систем, лабораторные работы для студентов, симуляторы и дополнительные материалы для использования в ходе преподавания курса, посвященного операционным системам. Преподавателям, использующим данную книгу в своем курсе, стоит туда заглянуть.

В работе над четвертым изданием принимали участие множество людей. В первую очередь это профессор Херберт Бос из Свободного университета Амстердама, ставший соавтором книги. Он специалист по безопасности и UNIX и обладает обширными познаниями в области компьютерных систем, поэтому очень хорошо, что он составил мне компанию. Им написано много нового материала, за исключением того, о чем будет упомянуто далее.

Наш редактор Трейси Джонсон (Tracy Johnson) была, как обычно, на высоте, приводя все к общему виду, объединяя материал, сглаживая шероховатости и заставляя выдерживать график работы над проектом. Нам также повезло в том, что к нам вернулась долгое время работавшая с нами ранее литературный редактор Камиль Трентакосте (Camille Trentacoste). Ее обширные познания во многих областях не раз спасали положение. Мы рады снова работать с ней после нескольких лет ее отсутствия. Также замечательно справилась со своей работой по координации усилий привлеченных к работе над книгой людей Кэрол Снайдер (Carole Snyder).

Материал главы 7, касающийся VMware (раздел 7.12), написан Эдуардом Бюньоном (Edouard Bugnion) из Федеральной политехнической школы Лозанны (Швейцария). Эд — один из основателей компании VMware и знаком с этим материалом как никто другой. Мы горячо благодарим его за предоставление нам этого материала.

Ада Гавриловска (Ada Gavrilovska) из Технологического института Джорджии, специалист по внутреннему устройству Linux, обновила главу 10 из третьего издания, которую сама же и написала. Материал по операционной системе Android в главе 10 написан Дианой Хакборн (Dianne Hackborn) из компании Google. Она является одним из ключевых разработчиков Android, ведущей операционной системы для смартфонов,поэтому мы очень благодарны ей за помощь. Теперь материалы главы 10 стали весьма обширными и подробными, и любители UNIX, Linux и Android могут почерпнуть из нее много полезных сведений. Наверное, стоит упомянуть о том, что самая длинная и наиболее технически насыщенная глава книги была написана двумя женщинами. А мы лишь упростили материал.

И конечно же, мы не оставили без внимания Windows. Глава 11 из предыдущего издания книги обновлена Дэйвом Пробертом (Dave Probert) из компании Microsoft. Теперь в ней дается подробное описание операционной системы Windows 8.1. Дэйв очень хорошо разбирается в Windows, и у него достаточно широкий кругозор для того, чтобы показать разницу между теми местами, где специалисты Microsoft все сделали правильно, и теми местами, где они ошиблись. Любителям Windows эта глава, несомненно, понравится.

Вклад всех этих специалистов позволил книге стать значительно лучше. Мы еще раз хотим поблагодарить их за неоценимую помощь.

Нам также повезло с рядом рецензентов, прочитавших подготовленный к печати материал и предложивших новые вопросы для размещения в конце каждой главы. В их числе были Труди Левин (Trudy Levine), Шивакант Мишра (Shivakant Mishra), Кришна Сивалингам (Krishna Sivalingam) и Кен Вонг. Стив Армстронг создал PowerPoint-страницы для преподавателей, использующих в своих учебных курсах материалы книги.

Обычно технические редакторы и корректоры не удостаиваются особых благодарностей, но Боб Ленц (технический редактор) и Джо Раддик (корректор) отнеслись к своей работе с особой тщательностью. В частности, Джо с двадцати метров может заметить разницу между точками прямого и курсивного начертания. И тем не менее авторы несут полную ответственность за любые упущения в данной книге. Читатели, заметившие любые ошибки, могут обратиться к одному из авторов.

И наконец, последними по списку, но не по значимости идут Барбара и Марвин, которые каждый по-своему замечательны. Отличным дополнением нашей семьи стали Даниэль и Матильда, Арон и Натан, замечательные парнишки, и Оливия, просто сокровище. И, разумеется, мне хочется поблагодарить Сюзанну за ее любовь и терпение, не говоря уже о винограде, вишнях, апельсинах и других сельскохозяйственных продуктах.

Эндрю С. Таненбаум (Andrew S. Tanenbaum)

Ниже представлен отрывок из книги.

Взаимоблокировка

В компьютерных системах множество ресурсов, которые одновременно могут использоваться только одним процессом. Стоит лишь вспомнить принтеры, накопители на магнитной ленте для резервного копирования данных компаний и элементы во внутренних системных таблицах. Если два процесса одновременно выводят информацию на принтер, то получается полная тарабарщина. Если два процесса будут использовать один и тот же элемент таблицы файловой системы, то эта система непременно будет повреждена. Поэтому все операционные системы способны временно предоставлять процессу исключительные права доступа к конкретным ресурсам.

При работе многих приложений процессу нужен исключительный доступ не к одному, а сразу к нескольким ресурсам. Предположим, к примеру, что каждый из двух процессов захотел записать отсканированный документ на Blu-ray-диск. Процесс A запрашивает разрешение на использование сканера и получает его. Процесс B запрограмми- рован по-другому: сначала он запрашивает разрешение на использование пишущего привода Blu-ray-дисков и также получает это разрешение. Теперь A запрашивает разрешение на использование пишущего привода Blu-ray-дисков, но запрос отклоняется до тех пор, пока это устройство не будет освобождено процессом B. К сожалению, вместо того чтобы освободить привод, B запрашивает разрешение на использование сканера. И в этот момент оба процесса оказываются заблокированными навсегда. Такая ситуация называется тупиковой ситуацией (тупиком), или взаимоблокировкой (deadlock).

Взаимоблокировки могут случаться и между машинами. К примеру, многие офисы оборудованы локальной сетью, к которой подключено множество компьютеров. Довольно часто такие устройства, как сканеры, пишущие приводы Blu-ray-дисков и DVD, принтеры и приводы накопителей на магнитной ленте, подключены к сети в качестве ресурсов общего пользования, доступных любому пользователю на любой машине. Если эти устройства могут быть дистанционно зарезервированы (например, с домашнего компьютера пользователя), то может возникнуть взаимоблокировка, похожая на только что рассмотренную. При более сложных обстоятельствах во взаимоблокировку могут быть вовлечены три, четыре и более устройств и пользователей.

Взаимоблокировки могут возникать и при массе других обстоятельств. К примеру, в системах управления базами данных, во избежание попадания в состояние состязания программе может понадобиться блокировка нескольких используемых ею записей. Если процесс A блокирует запись R1, а процесс B блокирует запись R2, а затем каждый процесс пытается заблокировать запись другого процесса, то получается та же взаимоблокировка. Таким образом, взаимоблокировки могут появляться при работе как с аппаратными, так и с программными ресурсами.

В данной главе будут рассмотрены разновидности взаимоблокировок, условия их возникновения, а также некоторые пути предотвращения взаимоблокировок или уклонения от их возникновения. Хотя этот материал касается взаимоблокировок в контексте операционных систем, они также случаются в системах управления базами данных и во многих других компьютерных областях, поэтому приводимые здесь сведения применимы к широкому спектру многозадачных систем. На тему взаимоблокировок существует множество научных трудов. Библиографии по этой теме дважды публиковались в Operating Systems Review, и на них стоит обратить внимание в качестве источников справочной информации (Newton, 1979; Zobel, 1983). Хотя этим библиографиям уже много лет, основная часть работ по взаимоблокировкам была завершена до 1980 года, поэтому они все еще не утратили своей актуальности.

Ресурсы

Основная часть взаимоблокировок связана с ресурсами, к которым некоторым процессам были предоставлены исключительные права доступа. К их числу относятся устройства, записи данных, файлы и т. д. Чтобы придать рассмотрению взаимоблокировок как можно более универсальный характер, мы будем называть объекты, к которым предоставляется доступ, ресурсами. Ресурсами могут быть аппаратные устройства (например, привод Blu-ray-дисков) или какая-то часть информации (например, запись базы данных). Обычно у компьютера может быть множество ресурсов, которые могут быть предоставлены процессу. Некоторые ресурсы могут быть доступны в нескольких идентичных экземплярах, например три привода Blu-ray-дисков. Когда доступны несколько копий ресурса, то для удовлетворения любого запроса на ресурс может быть использован один из них. Короче говоря, под ресурсом понимается все, что должно предоставляться, использоваться и через некоторое время высвобождаться, поскольку в один и тот же момент времени может использоваться только одним процессом.

Выгружаемые и невыгружаемые ресурсы

Ресурсы бывают двух видов: выгружаемые и невыгружаемые. К выгружаемым относятся такие ресурсы, которые могут быть безболезненно отобраны у процесса, который ими обладает. Примером такого ресурса может послужить память. Рассмотрим систему, имеющую 1 Гбайт пользовательской памяти, один принтер и два процесса по 1 Гбайт, каждый из которых хочет что-то вывести на печать. Процесс A запрашивает и получает принтер, а затем начинает вычислять значение, предназначенное для вывода на печать. Но до завершения вычисления истекает выделенный ему квант времени, и он выгружается на диск.

Теперь запускается процесс B, безуспешно, как оказывается, пытаясь завладеть принтером. Потенциально возникает ситуация взаимоблокировки, поскольку у процесса A есть принтер, а у процесса B — память и ни один из них не может продолжить свою работу без ресурса, удерживаемого другим процессом.

К счастью, есть возможность отобрать память у процесса B, выгрузив этот процесс на диск, и загрузить оттуда процесс A. Теперь A может возобновить свою работу, выполнить распечатку и высвободить принтер. И никакой взаимоблокировки не возникнет.

А вот невыгружаемый ресурс нельзя отобрать у его текущего владельца, не вызвав потенциально сбоя в вычислениях. Если у процесса, который уже приступил к записи на Blu-ray-диск, внезапно отобрать пишущий привод и отдать его другому процессу, это приведет к порче Blu-ray-диска. Пишущие приводы Blu-ray-дисков нельзя отобрать в произвольный момент.

Выгружаемость ресурса зависит от контекста. На стандартном персональном компьютере память является выгружаемым ресурсом, поскольку страницы всегда могут быть выгружены на диск, чтобы нужный объем свободной памяти был восстановлен. А на смартфоне, не поддерживающем свопинг или страничную организацию памяти, простой выгрузкой взаимоблокировки из-за дефицита памяти избежать не удастся.

Как правило, во взаимоблокировках фигурируют невыгружаемые ресурсы. Обычно потенциальные взаимоблокировки с участием выгружаемых ресурсов могут быть устранены путем перераспределения ресурсов от одного процесса к другому. Поэтому наше внимание будет сконцентрировано на невыгружаемых ресурсах. В наиболее общем виде при использовании ресурса происходит следующая последовательность событий:

  1. Запрос ресурса.
  2. Использование ресурса.
  3. Высвобождение ресурса.

Если во время запроса ресурс недоступен, запрашивающий процесс вынужден перейти к ожиданию. В некоторых операционных системах при отказе в выделении запрошенного ресурса процесс автоматически блокируется, а когда ресурс становится доступен — возобновляется. В других системах отказ в выделении запрашиваемого ресурса сопровождается кодом ошибки, и принятие решения о том, что следует делать, немного подождать или попытаться снова получить ресурс, возлагается на вызывающий процесс.

Процесс, чей запрос на выделение ресурса был только что отклонен, обычно входит в короткий цикл: запрос ресурса, затем приостановка, — после чего повторяет попытку. Хотя этот процесс не заблокирован, но по всем показателям он является фактически заблокированным, поскольку не может выполнять никакой полезной работы. При дальнейшем рассмотрении вопроса мы будем предполагать, что при отказе в выделении запрошенного ресурса процесс впадает в спячку.

Особенности запроса ресурса существенно зависят от используемой системы. В некоторых системах для запроса предоставляется системный вызов request, позволяющий процессам запросить ресурс в явном виде. В других системах единственными ресурсами, о которых знает операционная система, являются специальные файлы, которые в конкретный момент времени могут быть открыты только одним процессом. Они открываются с использованием обычного вызова open. Если файл уже используется, вызывающий процесс блокируется до тех пор, пока файл не будет закрыт текущим владельцем.

Получение ресурса Для некоторых видов ресурсов, таких как записи в базе данных, управление использованием ресурсов зависит от самих пользовательских процессов, а не от системы. Один из способов, позволяющих ввести пользовательское управление ресурсами, заключается в присоединении семафора к каждому из ресурсов.

Все эти семафоры получают исходное значение, равное 1. С таким же успехом могут использоваться и мьютексы. Перечисленные ранее три этапа затем воплощаются в применение к семафору вызова down для получения ресурса, использование ресурса и, в завершение, применение вызова up при высвобождении ресурса. Эти этапы показаны в листинге 6.1, а.

Листинг 6.1. Использование семафоров для защиты: а — одного ресурса; б — двух ресурсов

typedef int semaphore;    typedef int semaphore;
semaphore resource_1;    semaphore resource_1;
semaphore resource_2;
void process_A(void) {   void process_A(void) {
down(&resource_1);    down(&resource_1);
use_resource_1( );    down(&resource_2);
up(&resource_1);    use_both_resources( );
} up(&resource_2);
up(&resource_1);
}
a     б 

Иногда процессы нуждаются в двух и более ресурсах. Их можно получать последовательно, как показано в листинге 6.1, б. Если требуется больше двух ресурсов, их запрашивают непосредственно один за другим.

Пока все идет хорошо. Пока речь идет только об одном процессе, все работает нормально. Конечно, когда используется только один процесс, нет нужды в формальном получении ресурсов, поскольку нет соперничества за обладание ими.

Теперь рассмотрим ситуацию с двумя процессами — A и B — и двумя ресурсами. В листинге 6.2 показаны два сценария: а — оба процесса запрашивают ресурсы в одном и том же порядке; б — запрашивают ресурсы в разном порядке. Разница может показаться несущественной, но это не так.

Листинг 6.2. Код: а — не вызывающий взаимоблокировки; б — в котором кроется потенциальная возможность взаимоблокировки

typedef int semaphore;
semaphore resource_1;   semaphore resource_1;
semaphore resource_2;   semaphore resource_2;
void process_A(void) {    void process_A(void) {
down(&resource_1);    down(&resource_1);
down(&resource_2);    down(&resource_2);
use_both_resources( );    use_both_resources( );
up(&resource_2);    up(&resource_2);
up(&resource_1);   up(&resource_1);
}    }
void process_B(void)    { void process_B(void){
down(&resource_1);   down(&resource_2);
down(&resource_2);    down(&resource_1);
use_both_resources( );    use_both_resources( );
up(&resource_2);    up(&resource_1);
up(&resource_1);     up(&resource_2);
}    }
a    б

В листинге 6.2, а один из процессов запрашивает первый ресурс раньше, чем это делает второй процесс. Затем этот же процесс успешно получает второй ресурс и выполняет свою работу. Если второй процесс попытается получить ресурс 1 до его высвобождения, то он будет просто заблокирован до тех пор, пока ресурс не станет доступен.

В листинге 6.2, б показана другая ситуация. Может случиться, что один из процессов получит оба ресурса и надежно заблокирует другой процесс до тех пор, пока не сделает свою работу. Но может случиться и так, что процесс A получит ресурс 1, а процесс B получит ресурс 2. Каждый из них теперь будет заблокирован при попытке получения второго ресурса. Ни один из процессов не возобновит свою работу. Плохо то, что воз- никнет ситуация взаимоблокировки.

Здесь мы видим, что происходит из-за небольшой разницы в стиле программирования: в зависимости от того, какой из ресурсов будет получен первым, программа либо работает, либо дает трудноопределимый сбой. Поскольку взаимоблокировки могут возникать столь просто, для борьбы с ними были проведены обширные исследования. В этой главе подробно рассматриваются взаимоблокировки и средства борьбы с ними.

Введение во взаимоблокировки

Взаимоблокировкам можно дать следующее формальное определение.

Взаимоблокировка в группе процессов возникает в том случае, если каждый процесс из этой группы ожидает события, наступление которого зависит исключительно от другого процесса из этой же группы.

Поскольку все процессы находятся в состоянии ожидания, ни один из них не станет причиной какого-либо события, которое могло бы возобновить работу другого процесса, принадлежащего к этой группе, и ожидание всех процессов становится бесконечным. В этой модели предполагается, что у процессов есть только один поток, а прерывания, способные возобновить работу заблокированного процесса, отсутствуют. Условие отсутствия прерываний необходимо, чтобы не позволить заблокированному по иным причинам процессу возобновить свою работу, скажем, по аварийному сигналу, после чего вызвать событие, освобождающее другие имеющиеся в группе процессы.

В большинстве случаев событием, наступления которого ожидает каждый процесс, является высвобождение какого-либо ресурса, которым на данный момент владеет другой участник группы. Иными словами, каждый процесс из группы, попавшей в ситуацию взаимоблокировки, ожидает ресурса, которым обладает другой процесс из этой же группы. Ни один из процессов не может работать, ни один из них не может высвободить какой-либо ресурс, и ни один из них не может возобновить свою работу. Количество процессов и количество и вид удерживаемых и запрашиваемых ресурсов не имеет значения. Этот результат сохраняется для любого типа ресурсов, включая аппаратные и программные ресурсы. Этот вид взаимоблокировки называется ресурсной взаимоблокировкой. Наверное, это самый распространенный, но далеко не единственный вид. Сначала мы рассмотрим ресурсную взаимоблокировку, а в конце этой главы вернемся к краткому обзору других видов взаимоблокировки.

Условия возникновения ресурсных взаимоблокировок

Коффман (Coffman et al., 1971) показал, что для возникновения ресурсных взаимоблокировок должны выполняться четыре условия:

  1. Условие взаимного исключения. Каждый ресурс либо выделен в данный момент только одному процессу, либо доступен.
  2. Условие удержания и ожидания. Процессы, удерживающие в данный момент ранее выделенные им ресурсы, могут запрашивать новые ресурсы.
  3. Условие невыгружаемости. Ранее выделенные ресурсы не могут быть принудительно отобраны у процесса. Они должны быть явным образом высвобождены тем процессом, который их удерживает.
  4. Условие циклического ожидания. Должна существовать кольцевая последовательность из двух и более процессов, каждый из которых ожидает высвобождения ресурса, удерживаемого следующим членом последовательности.

Для возникновения ресурсной взаимоблокировки должны соблюдаться все четыре условия. Если одно из них не соблюдается, ресурсная взаимоблокировка невозможна.

Следует заметить, что каждое условие относится к той политике, которой придерживается или не придерживается система. Может ли данный ресурс быть выделен одновременно более чем одному процессу? Может ли процесс удерживать ресурс и запрашивать другой ресурс? Может ли ресурс быть отобран? Может ли получиться циклическое ожидание? Чуть позже мы увидим, как взаимоблокировке может противостоять попытка устранения некоторых из этих условий.

Об авторах

Эндрю С. Таненбаум получил степень бакалавра в Массачусетском технологическом институте и степень доктора философии в Калифорнийском университете в Беркли. В настоящее время он занимает должность профессора информатики в университете Врийе (Vrije) в Амстердаме (Нидерланды). Прежде он был деканом межуниверситетской аспирантуры по компьютерной обработке данных и изображений (Advanced School for Computing and Imaging), где вел исследования в области передовых параллельных систем, распределенных систем и систем обработки изображений. Он также был профессором Королевской Нидерландской академии искусства и наук (Royal Netherlands Academy of Arts and Sciences), что, собственно, и спасло его от превращения в бюрократа. Кроме того, выиграл престижный грант Европейского совета по научным исследованиям (European Research Council Advanced Grant).

В прошлом он вел исследования в области компиляторов, операционных систем, сетевых технологий и распределенных систем. Сейчас в основном сосредоточился на исследованиях в области надежных и безопасных операционных систем. В результате этих исследований появилось более 175 рецензированных статей, опубликованных в журналах и обнародованных на конференциях. Кроме этого, профессор Таненбаум является автором или соавтором пяти книг, которые переведены на 20 языков, от баскского до тайского, и используются в университетах по всему миру. В целом существует 163 варианта изданий его книг (комбинаций язык + издание).

Профессор также разработал значительный объем программного обеспечения, в част-ности MINIX, небольшого клона UNIX. Эта программа стала непосредственным вдохновляющим фактором для создания Linux и той платформой, на которой перво- начально и разработана операционная система Linux. Текущая версия MINIX, которая носит название MINIX 3, в настоящий момент позиционируется как исключительно надежная и безопасная операционная система. Профессор Таненбаум будет считать свою работу завершенной, как только не останется ни одного пользователя, способного замыслить действия, приводящие к выходу операционной системы из строя. MINIX 3 — это развивающийся проект, находящийся в свободном доступе, и вас также приглашают к сотрудничеству по его развитию. Чтобы загрузить свободную копию и разобраться в ее работе, перейдите по адресу www.minix3.org. Загрузить можно версии как для x86, так и для ARM.

Аспиранты профессора Таненбаума, закончив учебу, добились больших успехов. И он ими очень гордится. В этом смысле он чем-то напоминает курицу-наседку.

Таненбаум является членом Ассоциации вычислительной техники (Association for Computing Machinery — ACM), Института инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers — IEEE), Королевской Нидерландской академии искусства и наук. Он удостоен многочисленных научных наград от ACM, IEEE и USENIX. У него имеются две почетные докторские степени. Если вы заинтересовались ученым, зайдите на страницу о нем в «Википедии».

Херберт Бос получил степень магистра в университете Твенте, а степень доктора философии — в компьютерной лаборатории Кембриджского университета (Великобритания). С тех пор он упорно работал над созданием надежных и эффективных архитектур ввода-вывода для операционной системы Linux и проводил исследования систем, основанных на MINIX 3. В настоящее время является профессором кафедры компьютерных наук университета Врийе (Vrije) в Амстердаме (Нидерланды) и занимается вопросами безопасности систем и сетей. Со своими студентами он работает над новыми способами обнаружения и прекращения атак, анализа и расшифровки устройства вредоносных программ, а также фиксации ботов (вредоносных инфраструктур, которыми могут быть охвачены миллионы компьютеров). В 2011 году под свои исследования по расшифровке устройства вредоносных программ он получил начальный грант Европейского совета по научным исследованиям (ERC Starting Grant). Трое из его студентов получили премию имени Роджера Нидхэма (Roger Needham Award) за лучшие кандидатские диссертации по системам.

>>> Можно купить на сайте издательства



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 6)

Также в подарок при покупке бумажной будет её электронная версия.

Продавали электронную - я б купил бы. А так придётся ждать, пока выложат.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Продавали электронную - я б купил бы. А так придётся ждать, пока выложат.

Электронная продается на сайте, по той же ссылке

Victor78
() автор топика

Из главы 4 убраны упоминания о компакт-дисках, поскольку они уже потеряли свою значимость

Если бы это была книга «ПК для чайников», это было бы оправдано, а вот для труда The Профессора немного странновато и огорчительно. Оптические носители и вертушки к ним вполне себе до сих пор продаются, хоть и в качестве «нишевого» решения. А уж сколько их в эксплуатации…

hobbit ★★★★★
()

Я её на первом курсе как-то за неделю прочитал. Не знал, что в библиотеке можно продлевать, думал обязательно вернуть надо :)

Harald ★★★★★
()

Солидный труд. Интересно, как с русским переводом, много ли ошибок.

Legioner ★★★★★
()
Ответ на: комментарий от hobbit

Много чего продаётся и эксплуатируется. А у книги всё же конечный размер.

Legioner ★★★★★
()
Ответ на: комментарий от LamerOk

На складчике эта книга за 50 рублей продавалась в 2015м году. Сейчас можно за 100, если найдется хранитель.

GP
()
Ответ на: комментарий от hobbit

а вот для труда The Профессор

Ну, чувак на острие прогресса. Он, может и костёр спичками уже не умеет разжигать, только лазером. Известно же, что с верху видно всё, что видно.

anonymous
()

В 2 раза дешевле «Библия Linux» :)

Stalin ★★★★★
()
Ответ на: комментарий от anonymous

В чём отличие от 4 издания 2015 года?

Теперь она заменена главой, посвященной Windows 8, а точнее Windows 8.1. То есть теперь в главе рассматривается самая актуальная версия.

Судя по всему, ни в чём.

x-signal ★★
()

Читал издание прошлых лет. Книга годная, перевод норм.

x-signal ★★
()
Ответ на: комментарий от x-signal

Виндоус 8.1 в 2015 уже был вы в книге.

anonymous
()
Ответ на: комментарий от x-signal

Странно, ISBN 978-5-4461-1155-8 от 2015г. (изд. Питер) имеет тоже кол-во страниц как и ISBN 978-5-4461-1155-8 от 2021г - 1120стр.

Так зачем постить в новостях просроченную на 6 лет инфу?

Я понимаю, что «Питер» нагрузил печатный станок старьём и преподносит как «новьё» (в некотором смысле да - обложка не потрёпана, листики не пожелтели, пахнет не пылью, а тип. краской) - нужно отбить себестоимость партии, потому и рекламируем.

Но зачем нас вводить в заблуждение?

Я, к примеру PDFник нашёл на одном из профильных форумов (был там завсегдатаем, до смены проффесии) от 2017 года.

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от GP

ох, тогда актуальность под вопросом. если ее издали в 2014, то писали ее в 2012-2013. я бы поискал что-нибудь свежее, если бы собирался изучать предмет. хотя, на безрыбье и рак соловей. помню в 1999-2000 по крупинкам собирал инфу как под ядро писать. было невероятным чудом купить «Ядро линукс. программирование модулей» Померанц (1999).

ergo ★★★
()
Ответ на: комментарий от drfaust

На Амазоне тоже старьё, видимо отписался дедушка. Но, тем не менее, книга не потеряла актуальность, потому что в ней описываются фундаментальные вещи, которые редко меняются.

x-signal ★★
()

как же мне не нужна эта книга, даже не смог промолчать

bernd ★★★★★
()
Ответ на: комментарий от x-signal

cs:app3e хороша тем, что совмещает теорию с практикой и ориентирована на x86_64, at&t gas и linux. Не спорю, знания по подобной тематике фундаментальны и редко устаревают, но все же приятно взяться за консольку и поиграть с ассемблером напрямую.

x86-
()
Ответ на: комментарий от Harald

Линус читал, насколько я понимаю, другое: «Operating Systems: Design and Implementation». Русский перевод тоже был - «Операционные системы. Разработка и реализация» (Таненбаум, Вудхалл), и его тоже издавал «Питер», но его, увы, сейчас в наличии уже нет.

hobbit ★★★★★
()
Ответ на: комментарий от x-signal

Согласен. Книга знатная.

Я про то, что в «новостях» «старьё». Ну и маркетингу «Питера» надо «шлёпнуть по попе»

drfaust ★★★★★
()

Tanenbaum A.S., Bos H. - Modern Operating Systems, 4th Edition
эта книга лежит на рутрекере. Не 5 издание вышло?

anonymous
()
Ответ на: комментарий от anonymous

«Питер» через ЛОР, и хабр(видел там, когда начал искать по-дешевле) начал рекламировать перевод от 2015 года под соусом 2021 года (раз ISBN совпадают, то и текст и вёрстка будут одинаковы).

А pdf`ки уже давно везде валяются. Не удивлюсь, что то, что сегодня скачал, при копировании из «Загрузки» в «книжницу» - будет дубликат… На ss-совском форуме я такую книгу пропустить не мог (пиши в личку - дам ссылку. Не на Колыму - на книгу)…

drfaust ★★★★★
()
Ответ на: комментарий от zapruder

Не прошло и 7 лет как сделан перевод книги 2014 года!

да, это еще по упоминанию Windows 8 заметно. сейчас понятно, что она точно также не оправдала ожиданий, как и Vista. а вообще Victor78 и издательство Питер делают совершенно не нужное дело. я как-то очень давно взял со скидкой старое издание, заглянул пару раз и так оно место на полке и занимает или я уже отдал кому-то... в общем, в бумажном виде должны издаваться книги, которые не теряют актуальность с годами.

crypt ★★★★★
()

Четвертое издание этой книги во многом отличается от третьего. Поскольку развитие операционных систем не стоит на месте

Будущее, с какого-то момента, будет в некоторой степени отличаться от настоящего. Есть много исторических анекдотов и поучительных историй, доказывающих эту теорию. Вот и все - теперь вы экономист.

constin ★★★★
()
Последнее исправление: constin (всего исправлений: 1)
Ответ на: комментарий от anonymous

Вслух с выражением? )

А в вашей комнате аплодисменты и признательность за простое чтение тех литературы не получить, да?

// Спасибо за инфу про книгу. Прикуплю взамен старой.

anonymous
()

В чём новость? Я эту книгу ещё год назад покупал.

Rodegast ★★★★★
()

На обложке Благовещение в версии царских христиан: крайний справа - ангел в руках у него благая весть о божественном зачатии Христа, по середине - Богородица, крайний слева - Иосиф, царские христиане считали его также божественным.

anonymous
()

Вместо этого талмута, дали бы нормальное пошаговое описания реализации и взаимодействия dts с ядром, что в dts инициализировать что реализовывать в драйвере и т.д. а то одни огрызки.

splinter ★★★★★
()

Эх, если бы только дубинушка Трольвадс послушался мудрого Каа и не стал пилить своё монолитное г****вно!

matumba ★★★★★
()
Ответ на: комментарий от crypt

Разработка и реализация норм, но из-за примеров. Хрен ты сейчас с нуля для обучения студентов современную ось напишешь, разве что фиаско брать за основу.

luke ★★★★★
()

Читал предыдущее издание. Так себе книжка, для начинающих

anonymous
()
Ответ на: комментарий от luke

а, ну да, конечно. в таких книгах в первую очередь важны концепты, а не модные вставки про виндовс. просто я об этом старом издании даже не знал.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от crypt

А про перевод согласен, наверное для школьников норм возможно, но даже студентам лучше читать на английском.

luke ★★★★★
()

а уже есть в .pdf или .djvu в свободном доступе? По описанию хорошая книга, я бы скачал.

bonta ★★★★★
()

«Windows 8.1 - актуальная версия». Интересно, чему еаучит чтение этой доисторической книженции?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.