پروژه‌ای از هک کلاب

Putting the “You” in CPU

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

نوشته لکسی متیک و هک کلاب · ژانویه ۲۰۲۳

از همون اول… ویرایش در گیت‌هاب

من تاحالا کارهای زیادی با کامپیوترها انجام دادم, اما همیشه یه خلأ رو توی دانشم داشتم: دقیقا چه اتفاقی میوفته وقتی یه برنامه رو روی کامپیوتر اجرا می‌کنی؟ من در مورد این خلأ فکر کردم — بیشتر دانش لازم سطح پایین رو داشتم, اما مدام تلاش می‌کردم که چیزهای مختلف رو کنار هم بذارم تا بفهممش. آیا واقعا برنامه‌ها مستقیم روی CPU اجرا می‌شن یا مکانیزم دیگه‌ای در جریانه؟ یا حتی syscallها، من ازشون زیاد استفاده کردم ولی اونا واقعا چطور کار می‌کنن؟ چطوری چند تا برنامه همزمان اجرا میشن؟

A scrawled digital drawing. Someone with long hair is confused as they peer down at a computer ingesting binary. Suddenly, they have an idea! They start researching on a desktop computer with bad posture.

من دیگه طاقت نیوردم و هر چقدر که می‌تونستم شروع به خوندن کردم. اگه قصد رفتن به دانشگاه رو ندارید قرار نیست که منابع جامع زیادی برای درک طرز کار سیستم‌ها پیدا کنید; بنابراین من مجبور بودم طیف وسیعی از منابع متفاوتی رو که گاهی حتی اطلاعات متناقض به همراه داشتن رو بررسی کنم. حالا پس از چند هفته تحقیق و تقریبا ۴۰ صفحه یادداشت، فکر می‌کنم درک خیلی بهتری از نحوه کارکرد کامپیوترها از زمان روشن شدن تا اجرای برنامه‌ها دارم. من واقعا حاضر بودم سر یه مقاله که بهم چیزایی که این مدت یاد گرفتم رو یاد بده آدم بکشم. و الان دارم همون چیزی رو می‌نویسم که حسرتش رو داشتم که کاش یکی برای من نوشته بود.

و می‌دونی چی میگن… وقتی واقعاً یه چیزی رو فهمیدی که بتونی برای یکی دیگه توضیحش بدی.

وقت نداری؟ حس می‌کنی این چیزا رو بلدی؟

فصل ۳ رو بخون، قول می‌دم که قراره چیزای جدیدی یاد بگیری، مگه اینکه یکی مثل لینوس توروالدز باشی!

ادامه به فصل ۱: مقدمات