ابوالفضل کاظمی
ابوالفضل کاظمی
خواندن ۳ دقیقه·۳ سال پیش

مسیر من و Windows Internals و شروع حرکتی که مدت‌ها تو فکرم بود!

اولین آشنایی من با کتاب فوق‌العاده خوب Windows Internals بر می‌گرده به درس سیستم‌عامل و استاد بی‌نظیری که خیلی چیزها ازش یاد گرفتم و تاثیری ماندگار روی من داشت. من سیستم‌عامل رو با دکتر علی داودیان (Ali Davoudian) داشتم. هر جلسه یک پروژه‌ی اختیاری بهمون می‌داد که به صورت عملی بتونیم با مطالبی که درس داده هم تجربه کسب کنیم و دست به آچار بشیم. منم که عاشق برنامه‌نویسی و تست عملی مفاهیم بودم همه‌ی پروژه‌هاش رو بجز آخریش که دستکاری بخشی از کد Minix بود و فرصت نشد برم سراغش، انجام دادم. یکی از چیزهایی که هر از گاهی توی درس بهش اشاره می‌کرد کتاب Windows Internals بود که البته اون موقع ویرایش ۴ام بود و بحث بیشتر حول ویژگی‌های ویندوز XP می‌چرخید. از همون موقع خیلی این کتاب رو دوست داشتم ولی برام سنگین بود و فقط جسته گریخته بخش‌هاییش رو خوندم و مابقی که میشه گفت ۹۰ درصد حجم کتاب رو شامل میشد رها شد. توی این سال‌ها و گذر کتاب از ویرایش ۴ و رسیدن تا ۷امین ویرایش و بجای یک کتاب بودن دو کتاب شدن، همیشه همراه کتاب بودم ولی باز هم جسته گریخته و نه متمرکز. هر از گاهی توی اوقات فراغت یک چرخی میزدم، با ابزارها ور می‌رفتم، یک چیزی یاد می‌گرفتم و لذت می‌بردم.

چندبار تلاش کردم بشینم from cover to cover بخونمش ولی نمیشد. حتی دو، سه سال پیش با دوست و همکارم محمدرضا رمضانی (Mohammad Reza Ramezani) تلاش کردیم جلسات مرور کتاب رو داشته باشیم ولی اونم بعد از چند جلسه به خاطر مشغله کاری و کرونا رها شد. سال گذشته بالاخره تونستم تقریبا جلد اول رو بخونم یک بخش مسیر روی برم. (البته هنوز خیلی مونده تا بتونم ازش امتحان بدم!!!)

یک چیزی که علی‌رغم عالی بودن کتاب برام کم بود این بود که از هر مبحثی علاوه بر بررسی مفاهیم با ابزارها، بشه نمونه کد‌های ساده‌ی مفهومی برای پیاده‌سازی اون بخش و درگیر برنامه نویسی شدن و مفهوم رو hands-on دیدن هم بزنم. یکم اینکار رو پیش بردم و تصمیم گرفتم شروع کنم به پر کردن ویدئو و انتشارشون به صورت آزاد، تا حداقل مسیر بقیه‌ی علاقه‌مندان هموارتر از من باشه. کار پر زحمت و زمان‌بری بود ولی تونستم از فصل نخ‌ها شروع کنم به انجام اینکار. شروع از فصل نخ‌ها هم به دو علت بود. اول اینکه بخش اجرایی کد هست و برنامه‌ای بدون نخ قابل اجرا نیست و این برام یک دلیل منطقی بود! (حداقل توی ویندوز اینطوریه!!) و دوم اینکه محمدرضا هم حرکت خوبی رو سال گذشته شروع کرد و از فصل اول کتاب، شروع کرد به شرح مفاهیم و استفاده از ابزارها. (سایت 7erom) اینطوری کار من و اون، با این امید که بتونیم هردومون این حرکت رو ادامه‌ داده و به سرانجام نیکی برسونیم، تکمیل کننده‌ی هم میشند.

مواردی که من تا الان آماده کرده‌ام و این پست برای اطلاع رسانی شروع انتشارشون هست به شرح زیر هستند:
1.   شروع کار با نخ‌ها توی Windows API به کمک CreateThread و دوستان
2.   استفاده از Thread Pool توی WinAPI و کار با Callbackهای اون
3.   آشنایی با Kernel Development توی ویندوز، نوشتن درایور ساده و تعریف Kernel Thread

لطفا با لایک و انتشار در رسیدن این پست به دست علاقه‌مندان تازه‌کار و هموار کردن مسیرشون کمک کنید. در این حین امید دارم که دوستان با تجربه هم با نقطه نظراتشون و گوش‌زد کردن مشکلات و اشتباهات بتونند در بهتر شدن کیفیت ویدئوها بهم کمک کنند. خوشحال میشم از طریق لینکدین هم باهم در ارتباط باشیم و نقطه نظراتتون رو برام ارسال کنید.

در نهایت برای مشاهده‌ی ویدئوها به لیست پخش زیر مراجعه کنید:
لیست پخش دوره‌ی Windows Internals



windowssystemkernelprogramming
شاید از این پست‌ها خوشتان بیاید