سختافزار در عمل
Hardware in practiceنرمافزار روی چیزی اجرا میشود. اگر ندانی آن چیز چطور کار میکند، بعضی مسائل هیچوقت برایت معنا نمیدهند: چرا آن حلقه کند است، چرا آن سرور داغ میکند، چرا آن دیسک گلوگاه شده. این مسیر سختافزار را از دید کسی توضیح میدهد که نرمافزار مینویسد.
پیشرفت تو
درصد هر فصل از دو چیز میآید: چقدر از بخشهایش را خواندهای (۵۵٪) و چند تمرینش را تیک زدهای (۴۵٪). همهچیز داخل مرورگر خودت میماند.
فصل
فصلها به هم وابستهاند و ترتیبشان معنا دارد. هر مسیر با پروژههای نهایی تمام میشود: ساده، متوسط، پیچیده.
معماری کلی یک رایانه
مسیر یک دستور، از دکمهٔ روشن تا اجرا.
در نوبت نوشتنCPU: هسته، کش، خط لوله
چرا cache miss گرانتر از یک شاخهٔ اشتباه است.
در نوبت نوشتنحافظه و سلسلهمراتبش
رجیستر تا دیسک، و اختلاف دهمیلیونبرابری تأخیر.
در نوبت نوشتنذخیرهسازی: HDD، SSD، NVMe
چرا تصادفی خواندن روی SSD ارزان است و روی HDD نه.
در نوبت نوشتنمادربرد، چیپست و گذرگاه
PCIe و اینکه پهنای باند کجا تمام میشود.
در نوبت نوشتنGPU و پردازش موازی
چرا کارت گرافیک برای یادگیری ماشین استفاده میشود.
در نوبت نوشتنمنبع تغذیه و توان
وات، راندمان، و محاسبهٔ نیاز واقعی.
در نوبت نوشتنحرارت و خنکسازی
throttling: وقتی سختافزار خودش را کند میکند.
در نوبت نوشتنکارت شبکه و ورودی/خروجی
وقفه، DMA، و اینکه چرا I/O گران است.
در نوبت نوشتنسرور در برابر دسکتاپ
ECC، RAID، افزونگی — چه چیزی واقعاً فرق دارد.
در نوبت نوشتنARM در برابر x86
دو فلسفهٔ طراحی، و اینکه چرا ایمیج داکر تو روی یکی کار نمیکند.
در نوبت نوشتنانتخاب سختافزار برای بار کاری
پایگاهداده، وب، پردازش — هرکدام گلوگاه متفاوتی دارند.
در نوبت نوشتنعیبیابی سختافزاری
تشخیص RAM معیوب، دیسک در حال مرگ، و حرارت.
در نوبت نوشتنپروژهٔ ۱ — تشریح ماشین خودت
هر قطعه را شناسایی و نقشش را مستند کن.
در نوبت نوشتنپروژهٔ سادهپروژهٔ ۲ — پیدا کردن گلوگاه
با اندازهگیری ثابت کن کدام قطعه محدودکننده است.
در نوبت نوشتنپروژهٔ متوسطپروژهٔ ۳ — طراحی یک سرور
برای یک بار کاری مشخص، سختافزار انتخاب و توجیه کن.
در نوبت نوشتنپروژهٔ پیچیده