Новости

Книга М. Руссиновича і Д. Соломона «Внутрішній устрій Microsoft Windows»

Не так давно вийшло шосте видання книги «Внутрішній устрій Microsoft Windows» (в оригіналі «Windows Internals») таких відомих серед програмістів людей як Марк Руссинович і Девід Соломон Не так давно вийшло шосте видання книги «Внутрішній устрій Microsoft Windows» (в оригіналі «Windows Internals») таких відомих серед програмістів людей як Марк Руссинович і Девід Соломон. Руссиновича ви можете знати в першу чергу як автора багатьох утиліт з сайту Sysinternals , Який кілька років тому перейшов під крило Microsoft.

Дізнавшись, що вийшла нова книга цих авторів про нутрощі Windows, я не замислюючись її купив. Попередні видання цієї серії я не читав, і чекав в першу чергу щось на зразок знаменитої книги Джеффрі Ріхтера «Windows для професіоналів». В результаті виявилося, що книга Руссиновича і Соломона ще глибша, в тому сенсі, що автори залазять настільки глибоко в нутрощі Windows, що стає незрозуміло, як це використовувати в звичайному прикладному програмуванні. Тому ця книга може бути корисна в першу чергу системним програмістам, які працюють в режимі ядра і пишуть драйвери.

Треба сказати, що це книга не по програмуванню, у всьому 800-сторінковому талмуді можна нарахувати від сили три програми, та й то дві з них будуть скриптами на Visual Basic. Автори в першу чергу розповідають про те, що знаходиться під капотом Windows, причому за кількома шарами абстракцій, так що простому смертному програмісту це знати не положено, щоб він не захотів раптом використовувати якісь недокументовані функції, котрі згадуються в книзі. Багато місця приділено тому, як Windows зберігає внутрішнє представлення об'єктів, таких як потоки, процеси, дескриптори безпеки. При звичайному програмуванні до них теж не доберешся, і щоб їх помацати, автори використовують відладчик ядра і деякі утиліти від Sysinternals.

Коротко перерахую основні теми, які зачіпаються до книги. Після введення про опису інструментів, які знадобляться для того, щоб проникнути в кіщащіе нетрі Windows, розповідається про те, як умовно можна поділити Windows на частини, з яких підсистем складається ця операційна система, як відбувається абстракція від заліза, наскільки це можливо. Після цього описується, як Windows взаємодіє з процесором в плані обробки переривань, як працює системний таймер, як влаштовані всередині такі об'єкти синхронізації такі як події, семафори, м'ютекси. Ось ви, наприклад, знали, що м'ютекси на рівні ядра називаються мутантами?

Один з найцікавіших на мій погляд розділів присвячений Wow64 - тієї штуці, яка підміняє шляху для 32-бітних додатків на 64-бітної системі і взагалі забезпечує зворотну сумісність для старих 32-бітних програм. Свого часу, коли я вперше зіткнувся з Wow64 (тоді ще не знав, як називається ця штуковина), вона мене сильно здивувала і спантеличила через те, що 32-бітові та 64-бітові файлові менеджери бачать абсолютно різні шляхи в файлової системі . Читаючи цю книгу, взагалі-то жахаєшся, скільки милиць доводиться робити Microsoft для забезпечення зворотної сумісності. Для користувачів це все чудово, але програмістам, напевно, не позаздриш. На щастя, MS поступово позбавляється від вантажу старих систем. Найбільш помітний приклад - відсутність можливості запускати 16-бітові додатки (написання під DOS і Windows 3.1x) під 64-бітними операційними системами.

Ще один розділ присвячений тому, як Windows запускає додатки або, кажучи, більш загально, запускає процеси. Ця глава може бути корисна і прикладним програмістам, оскільки дуже прискіпливо розглядається процес пошуку файлу потрібної програми по всіх спеціальних папках, а також завантаження dll-ок. До цього я не знав про таку річ як .LOCAL-перенаправлення, що дозволяє завантажувати потрібні dll-ки. Процитую авторів книги:

Механізм .LOCAL-перенаправлення дозволяє додаткам перенаправляти всі завантаження, пов'язані з зазначеним базовим ім'ям DLL, незалежно від того, чи був зазначений повний шлях, на локальну копію DLL в каталозі додатки. Це робиться або шляхом створення копії DLL з таким же базовим ім'ям, за яким слід розширення .local (наприклад, MyLibrary.dll.local), або шляхом створення файлової папки з ім'ям .local в каталозі додатки і приміщення копії локальної DLL-бібліотеки в цю папку (наприклад, C: \ Program Files \ My App \ .LOCAL \ MyLibrary.dll). DLL-бібліотеки, завантаження яких перенаправлено за допомогою механізму .LOCAL, обробляються точно так же, як і ті, для яких використовувався механізм перенаправлення SxS. (Див. Наступний пункт списку.) Завантажувач приймає .LOCAL-перенаправлення завантаження DLL-бібліотек тільки коли виконуваний файл не має пов'язаного з ним або вбудованого, якого зовнішнього маніфесту.

Ще один цікавий розділ присвячений тому, як працює гипервизор Hyper-V. Досить докладно розглядається робота реєстру, розповідається чому він складається з різних файлів, розкиданих по файлової системи, як забезпечується його захист від збоїв і відновлення після них.

Одна з найбільш цікавих глав присвячена процесам і потокам. Для мене найцікавішим там було опис витісняє багатозадачності, як Windows вибирає, який потік повинен виконуватися наступним.

Ще одна велика глава присвячена безпеки операційної системи. І остання глава присвячена мережі. У ній розповідається про роботу RPC, сокетов, іменованих каналів і поштових слотів. Розповідається про службу «Автономні файли» і про те, як працює кешування в цій службі. Та й взагалі ця глава дає зрозуміти, що може Windows 7 робити в мережі, підтримка яких протоколів існує.

Останні два розділи будуть корисні адміністраторам, в них не розповідається докладно, що і як робити для установки різних обмежень для користувачів, але принаймні дозволяє дізнатися, що Windows надає, і як це працює.

Якщо підводити підсумки вище сказаного, варто читати цю книгу - питання складне. Тобто зрозуміло, що від прочитання будь-якої книги є користь, але не факт, що прочитавши її ви відразу ж почнете використовувати нові отримані знання, хоча щось корисне прийміть до відома. Найбільш корисна ця книга буде для тих, хто пише драйвера пристроїв і системним адміністраторам великих корпоративних мереж. Наскільки корисно - теж складне питання, оскільки я не є ні тим, ні іншим. Як я вже говорив, книга в першу чергу описує глибокі нутрощі Windows, програмісти зазвичай працюють на більш високому рівні абстракцій.

Книга досить важка, у всіх сенсах цього слова. 🙂 Тут у мене є ще претензії до редакторів. Мало того, що книгу важко читати через велику кількість різних скорочень (тут вже нікуди не дітися), та ще й багато фраз в тексті побудовані таким чином, що позаздрить сам Лев Толстой, деякі пропозиції доводилося перечитувати по кілька разів, розбираючи в розумі шари дієприкметникових оборотів. Зустрічаються помилки і пару раз неправильні картинки. Хоча це, напевно, неминуче для такої товстої книги.

Загалом, купувати книгу чи ні - вирішуйте самі, її можна знайти без проблем в електронному вигляді, скачати і подивитися, чи підходить вона вам.

Але це тільки перша частина «Внутрішнього пристрою Windows». Цікаво, коли вийде друга.

Ось ви, наприклад, знали, що м'ютекси на рівні ядра називаються мутантами?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: