Windows Internals Seventh Edition Part 1
ویرایش هفتم کتاب Windows Internals، برای حرفه ایهای کامپیوتر پیشرفته (توسعه دهندگان، محققان امنیتی و مدیران سیستم) در نظر گرفته شده است که میخواهند بفهمند اجزای اصلی سیستم عاملهای ویندوز 10 و ویندوز سرور 2016 مایکروسافت چگونه در داخل کار میکنند. با استفاده از این دانش، هنگامی که توسعه دهندگان برنامههای مخصوص پلتفرم ویندوز میسازند، بهتر میتوانند منطق پشت انتخابهای طراحی را درک کنند. چنین دانشی، همچنین میتواند به توسعه دهندگان در دیباگ کردن مسائل پیچیده کمک کند. مدیران سیستم نیز میتوانند از این اطلاعات بهره مند شوند، زیرا فهم این که سیستم عامل در زیر کاپوت چگونه عمل میکند، درک کارایی عملکرد سیستم را تسهیل و در هنگام به وجود آمدن مشکلات، روند اشکال زدایی مشکلات سیستم را به شدت آسانتر میکند. محققان امنیتی میتوانند بفهمند که چگونه برنامههای نرم افزاری و سیستم عامل میتوانند اشتباه رفتار کرده و مورد سوء استفاده قرار گیرند و باعث رفتار نامطلوب شوند، در عین این حال که ویژگیهای امنیتی که ویندوز مدرن در برابر این چنین سناریو هایی ارائه میدهد را درک میکنند. پس از مطالعه این کتاب، شما باید درک بهتری از نحوهی عملکرد ویندوز داشته باشید و این که چرا این گونه رفتار میکند.
تاریخچهی کتاب
این ویرایش هفتم کتابی است که در اصل به نام Inside Windows NT ( انتشارات مایکروسافت، 1992)، به نویسندگی Helen Custer (قبل از انتشار اولیه Microsoft Windows NT 3.1) بود. کتاب Inside Windows NT اولین کتابی تا آن زمان بود که دربارهی Windows NT منتشر شده بود و دیدگاه هایی کلیدی از معماری و طراحی سیستم ارائه داد. ویرایش دوم کتاب Inside Windows NT ( انتشارات مایکروسافت، 1998) توسط David Solomon نوشته شده بود. ویرایش جدید این کتاب، نسخهی قبلی کتاب را برای پوشش Windows NT 4.0 به روز شده بود و سطح فنی آن به میزان قابل توجهی افزایش پیدا کرده بود.
کتاب Inside Windows 2000، ویرایش سوم ( انتشارات مایکروسافت، 2000) توسط David Solomon و Mark Russinovich نوشته شده بود. به این کتاب موضوعات جدیدی اضافه شده بود از قبیل startup و shutdown، service internals، registry internals، درایورهای فایل سیستم و شبکه. همچنین تغییرات کرنل در ویندوز 2000 مثل Windows Driver Model (WDM)، Plug and Play، مدیریت نیرو، Windows Management Instrumentation (WMI)، رمزنگاری، the job object و سرویسهای ترمینال را پوشش داد.
کتاب Windows Internals، ویرایش چهارم ( انتشارات مایکروسافت، 2004) به روز رسانی برای Windows XP و Windows Server 2003 بود و محتوای بیشتری با تمرکز بر روی کمک به متخصصین IT اضافه نمود تا از دانششان مربوط به داخل ویندوز بهره برند، مثل استفاده از ابزارهای کلیدی از SysInternals ویندوز و تجزیه و تحلیل crash dump ها.
ویرایش پنجم کتاب Windows Internals ( انتشارات مایکروسافت، 2009)، آپدیتی برای ویندوز ویستا و ویندوز سرور 2008 بود. Mark Russinovich شغلی تمام وقت در مایکروسافت پیدا کرده بود (اکنون پست CTO قسمت Azure را عهده دار است) و همچنین همکار نویسنده ای به نام Alex Ionescu به آن اضافه شده بود. محتوای جدید آن شامل image loader، امکانات user-mode debugging، Advanced Local Procedure Call (ALPC) و Hyper-V میشد.
نسخه بعدی کتاب یعنی Windows Internals، ویرایش ششم ( انتشارات مایکروسافت، 2012)، کاملا به روز شده بود تا تغییرات زیاد کرنل در ویندوز 7 و ویندوز سرور 2008 R2 را بیان کند؛ همچنین به همراه تعدادی زیادی آزمایش عملی جدید برای نشان دادن تغییرات در ابزارات بود.
تغییرات ویرایش هفتم
از آخرین به روز رسانی این کتاب، ویندوز از میان چندین نسخه گذشته است تا به ویندوز 10 و ویندوز سرور 2016 رسیده است. خود ویندوز 10، که در حال حاضر نام اصلی ویندوز است، از زمان انتشار اولیهی آن برای تولید (RTM) ،چندین نسخه از آن منتشر شده است. هر کدام از آن ها، با یک شماره نسخه چهار رقمی برچسب گذاری شده اند که نشان دهندهی سال و ماه زمان انتشار آن نسخه است؛ مثل ویندوز 10 نسخه 1703 که در ماه مارچ 2017 تکمیل شده است. این بدان معنی است که ویندوز از زمان ویندوز 7، از حداقل 6 نسخه عبور کرده است.
با شروع از ویندوز 8، مایکروسافت یک روند همگرایی سیستم عامل را آغاز کرد که هم از دیدگاه توسعه و هم برای تیم مهندسی ویندوز سودمند بود. ویندوز 8 و ویندوز فون 8 دارای کرنلهای همگرا شده بودند، به همراه همگرایی برنامههای مدرن که در ویندوز 8.1 و ویندوز فون 8.1 ارائه شدند. این داستان همگرایی با آمدن ویندوز 10 تکمیل شد که بر روی دسکتاپ ها، لپتاپ ها، سرور ها، XBOX One، تلفن ها(Windows Mobile 10)، HoloLens و دستگاههای مختلف اینترنت اشیا (IoT) اجرا میشد.
با تکمیل این وحدت بزرگ، زمان برای ویرایش جدیدی از این سری مناسب بود که اکنون در نهایت میتوانست به تقریبا نیم دهه تغییرات، در آن چه در حال حاضر یک معماری کرنل پایدارتر به پیش میرود دست یابد.
به این ترتیب، نسخهی جدید این کتاب، ویژگیهای ویندوز از ویندوز 8 تا ویندوز 10 نسخهی 1703 را پوشش داده است. علاوه بر این، در این ویرایش به نویسندهی همکار جدیدمون Pavel Yosifovich خوش آمد میگوییم.
آزمایشهای عملی
حتی بدون دسترسی به سورس کد ویندوز، هنوز هم شما میتوانید دربارهی داخل ویندوز از طریق kernel debugger، ابزارهایی از SysInternals و ابزارهایی که مخصوص این کتاب توسعه داده شده اند اطلاعات جمع آوری کنید. هنگامی که یک ابزار را میتوان برای نمایش یا نشان دادن برخی از جنبههای رفتار داخلی ویندوز استفاده کرد، مراحلی که خودتان برای امتحان ابزار انجام میدهید در قسمتی مخصوص به نام EXPERIMENTS فهرست شده اند. اینها در سرتاسر کتاب ظاهر شده اند و ما شما را تشویق میکنیم که در هنگام خواندن کتاب آنها را نیز امتحان کنید. دیدن اثبات قابل دیدن از این که ویندوز چگونه در داخل کار میکند در شما تاثیر بیشتری خواهد گذاشت نسبت به وقتی که فقط دربارهی آن بخوانید.
سرفصلهای پوشش داده نشده
ویندوز سیستم عاملی بزرگ و پیچیده است. این کتاب همهی چیزهای مرتبط به داخل ویندوز را پوشش نداده، اما در عوض بر روی اجزای پایه ای سیستم تمرکز کرده است. برای مثال این کتاب COM+، زیر ساخت برنامه نویسی شی گرا توزیع شده، یا دات نت فریمورک مایکروسافت و اساس برنامههای کد مدیریت شده را توضیح نداده است. به این علت که، این کتاب در مورد داخل است و کتاب کاربر، برنامه نویسان یا مدیران سیستم نیست، نحوه استفاده، برنامه نویسی یا پیکر بندی ویندوز را توضیح نمیدهد.
یک هشدار
چون این کتاب رفتار مستند نشده معماری داخلی و عملیات سیستم عامل ویندوز( مثل ساختار و توابغ داخلی کرنل) را توضیح میدهد، این محتوا در بین انتشار نسخهها مشمول تغییرات میشود.
توسط عبارت مشمول تغییرات، ما الزاما منظورمان این نبوده است که جزئیاتی که در این کتاب شرح داده میشود در بین انتشار نسخهها تغییر خواهد کرد، اما شما نیز نمیتوانید بر روی آنها حساب باز کزده که تغییر نخواهند. هر نرم افزاری که از این اینترفیسهای مستند نشده یا دانش داخلی مربوط به سیستم عامل استفاده میکند، ممکن است در نسخههای آینده ویندوز کار نکند. حتی بدتر از این، نرم افزاری که در مد کرنل اجرا میشود( مثل درایورهای دستگاه ها) و از آن اینترفیسهای مستند نشده استفاده میکند ممکن است وقتی که بر روی نسخهی جدیدتری از ویندوز اجرا شود سبب کرش سیستم شود که و باعث از دست رفتن دادههای کاربران شود.
به طور خلاصه، شما هیچگاه نباید از قابلیتهای داخلی ویندوز، کلیدهای رجیستری، توابع، API، یا سایر جزئیات مستند نشده ذکر شده در این کتاب، به هنگام توسعه هر نرم افزاری که برای سیستمهای end-user طراحی شده اند یا برای هر هدف دیگری به غیر از تحقیق و مستند سازی استفاده کنید. ابتدا همیشه به شبکه توسعه نرم افزار مایکروسافت (MSDN) برای مستندات رسمی دربارهی یک موضوع خاص مراجعه کنید.
پیش فرضها در مورد شما
این کتاب فرض کرده است که خواننده با کار کردن با ویندوز در سطح کاربر حرفه ای راحت است و فهمی پایه ای از سیستم عامل و مفاهیم سخت افزار دارد مثل رجیسترهای CPU، حافظه، پروسسها و ترد ها. همچنین درکی اساسی از تابع ها، اشاره گرها و ساختارهای زبانهای برنامه نویسی C مانند، در بعضی از بخشها سودمند است.
سازمان دهی این کتاب
این کتاب به دو بخش تقسیم شده است ( همانند ویرایش ششم)، و بخش اول آن نیز در دستان شماست.
فصل 1، مفاهیم و ابزار ها: مقدمه ای کلی برای مفاهیم داخلی ویندوز ارائه میدهد و ابزارهای اصلی که در این کتاب استفاده شده اند را معرفی کند. ضروری است که ابتدا این فصل مطالعه شود چرا که پیش زمینهی لازم برای بقیهی کتاب را ارائه کرده است.
فصل 2، معماری سیستم: در این فصل معماری و اجزای اصلی که ویندوز را تشکیل میدهند نشان داده شده و آنها را مورد بحث قرار داده است. تعدادی از این مفاهیم در فصلهای بعدی به صورت دقیقتر توضیح داده شده اند.
فصل 3، پروسسها و جاب ها: جزئیات این که پروسسها در ویندوز چگونه پیاده سازی شده اند و راههای مختلف کنترل کردن آنها در این فصل آورده شده است. جابها نیز به عنوان وسیله ای برای کنترل کردن مجموعه ای پروسسها و فعال سازی پشتیبانی Windows Container مورد بحث قرار گرفته اند.
فصل 4، ترد ها: جزئیات این که تردها در ویندوز چگونه مدیریت، زمان بندی و پردازش میشوند.
فصل 5، مدیریت حافظه: نشان میدهد که چگونه مدیر حافظه از حافظه فیزیکی و مجازی استفاده میکند و روشهای مختلفی که حافظه میتواند دستکاری شود تا توسط فرآیندها و درایورها مورد استفاده قرار گیرد.
فصل 6، سیستم I/O: نشان میدهد که چگونه سیستم I/O در ویندوز کار میکند و با درایورهای دستگاهها یکپارچه میشود تا میکانیزمها را برای کار کردن با I/Oهای جانبی ارائه دهد.
فصل 7، امنیت: جزئیات مکانیزمهای مختلف امنیتی تعبیه شده در ویندوز، شامل سیستم رفع اشکالات که اکنون جزئی از سیستم مبارزه با اکسپلویت است.