آنچه یاد خواهید گرفت:
مبانی نمایش گرافیکی را درک کنید: نمایش تصویر و رنگ، ترسیم پیکسل، و عملیات پیکسلی
سختافزار گرافیکی را درک کنید: اجزای پایپ لاین نمایش، و سختافزار نمایش و رندر
اجزا و نقش پشته گرافیکی هسته لینوکس را درک کنید: زیرسامانههای TTY، فریمبافر و DRM
اجزا و نقش پشته گرافیکی فضای کاربر لینوکس را درک کنید: DRM از فضای کاربر، Xorg ،Wayland و OpenGL
پیشنیازهای دوره
تجربهی قوی با زبان برنامهنویسی C
تجربهی توسعهی سطح پایین در لینوکس و رابط سختافزار
توضیحات دوره
دستگاههای مدرن مبتنی بر لینوکس به یک پشته گرافیکی شگفتانگیز، غنی و پیچیده متکی هستند؛ پشتهای که از زیرسامانههای سطح پایین هسته تا کتابخانههای پیشرفته رندر در فضای کاربر را در بر میگیرد. این دوره، درک پشته گرافیکی لینوکس، برای این طراحی شده است که به توسعهدهندگان یک دید کامل و سرتاسری از این موضوع بدهد که پیکسلها در نهایت چگونه روی صفحه ظاهر میشوند و هر مؤلفه نرمافزاری و سختافزاری در این میان چه نقشی دارد.
کار را با اصول گرافیک رایانهای آغاز میکنیم: اینکه نور چگونه به پیکسلها نمونهبرداری میشود، رنگها چگونه نمایش و تبدیل میشوند، تصاویر چگونه در حافظه ذخیره میشوند، و عملیاتهایی مانند آلفا بلِندینگ، مقیاسدهی، فیلتر کردن و دیترینگ چگونه کار میکنند. شما درک محکمی از فرمتهای پیکسلی، کدهای FourCC، زیرنمونهبرداری کرومینانس، ترتیب اسکن و محدودیتهای عملی گرافیک رستری به دست خواهید آورد. سپس این مفاهیم را با مثالهای واقعی ترسیم و عملیات پیکسلی به کار میبریم.
در ادامه، دوره به سراغ سختافزار گرافیکی و یکپارچهسازی سیستم میرود. شما پایپ لاینهای گرافیکی، حافظه نمایش، GPUها، DSPها و شتابدهندههای سختافزاری را بررسی خواهید کرد، و همچنین فناوریهای واقعی نمایش مانند LCD، OLED و e-paper را خواهید شناخت. رابطهای نمایش (HDMI ،DisplayPort ،LVDS ،DSI ،VGA و موارد دیگر)، EDID، حالتهای زمانبندی و گلوگاههای عملکردی نیز پوشش داده میشوند تا نهتنها بفهمید چیزها چگونه کار میکنند، بلکه چرا گاهی دچار خطا میشوند یا عملکرد ضعیفی دارند.
در بخش نرمافزار، یاد میگیرید که لینوکس چگونه همه چیز را به هم متصل میکند. بخش هسته، TTYها، ترمینالهای مجازی، فریمبافر (fbdev) و - بهصورت عمیق - زیرسامانه Direct Rendering Manager (DRM) را؛ از جمله KMS ،modesetting اتمیک، مدیریت بافر، اشتراکگذاری zero-copy با dma-buf، اشیای همگامسازی و تکنیکهای اشکالزدایی پوشش میدهد.
در نهایت، پشته فضای کاربر نیز بهصورت دقیق بررسی میشود: معماری X11/Xorg، پروتکلها و compositorهای Wayland، و Mesa 3D همراه با جزئیات داخلی OpenGL ،EGL ،Vulkan و Gallium. با مرور هدایتشدهی مسیرهای واقعی کد در Xorg ،Wayland و Mesa، درک خواهید کرد که دسکتاپهای مدرن لینوکس و سیستمهای تعبیه امروزی چگونه گرافیک را رندر میکنند.
این دوره برای مهندسانی که سیستمهای چندرسانهای یا لینوکس تعبیه میسازند ایدهآل است؛ کسانی که میخواهند فراتر از استفادهی جعبهسیاه بروند و پشته گرافیکی لینوکس را از پیکسل تا پنل بهطور کامل و عمیق مسلط شوند.
این دوره برای چه کسانی مناسب است؟
مهندسان لینوکس تعبیه