لینک کوتاه مطلب : https://hsgar.com/?p=3361

ویکی کریس :: blog/linux/KernelModesettingBackground

روزی روزگاری نه چندان دور زمانی که دایناسورها در زمین پرسه می زدند، نمایشگرهای کامپیوتری بودند CRT ها و اساساً با اسکن یک پرتو یا پرتوهای الکترونی به جلو و عقب بر روی صفحه نمایش عمل می کند. معمولاً رایانه یک جریان آنالوگ از سیگنال‌های تک رنگ یا قرمز، سبز و آبی را به CRT ارسال می‌کرد و CRT تمام کار اسکن پرتو(های) الکترونی را در سراسر نمایشگر انجام می‌داد. در ابتدا، CRT های کامپیوتری تمایل داشتند فقط در یک فرکانس منفرد از این سیگنال ها کار کنند افقی و نرخ اسکن عمودی. همانطور که انقلاب PC در راه بود، CRT های خوب تبدیل شدند چند همگام سازی، به این معنی که آنها می توانستند با نرخ های مختلف اسکن کار کنند. این امر به ویژه برای مقابله با طیف گسترده ای از وضوح و نرخ اسکن که توسط سیستم های گرافیکی مختلف رایانه شخصی استفاده می شد و توسط آنها پشتیبانی می شد، مهم بود.

در دنیای رایانه شخصی، VESA
پایان دادن به تعریف برخی از حالت های بسیار ابتدایی که همه مانیتورهای سازگار با VESA باید از آنها پشتیبانی می کردند، بعنوان بخشی از پسوندهای VESA BIOS
(همچنین). احتمالاً هم سخت‌افزار گرافیکی رایانه شخصی‌تان و هم CRT از حالت‌های بهتر با وضوح بیشتر پشتیبانی می‌کردند، اما برای استفاده از آنها باید اطلاعات مربوط به کارت را می‌دانستید و به طور کلی باید می‌دانستید که از چه زمان‌بندی استفاده کنید. وارد مدل های XFree86، که یک روش کلی برای گفتن اینکه از چه فرکانس های اسکنی می خواهید استفاده کنید بود. این مدل‌ها جایی هستند که «تنظیم حالت» نام خود را از آنجا گرفته است.

در روزهای قدیمی لینوکس، هسته اطلاعات زیادی در مورد گرافیک (حداقل در رایانه های شخصی) نداشت. درعوض، راه‌اندازی و مدیریت سخت‌افزار گرافیکی در حوزه سرور X بود. هسته به آن دسترسی به PCI (یا AGP) منابع و سرور X مستقیماً مقادیر را ذخیره کرده و مطالب را می خواند. بخشی از کاری که سرور X انجام داد این بود که حالت گرافیکی (یعنی وضوح مدل، عمق و فرکانس‌های اسکن) را در ابتدا از مدل‌های صریح و سپس با گذشت زمان از EDID اطلاعات و چیزهای دیگری که نیازی به پیکربندی نداشتید (که عالی بود). این بود تنظیم حالت فضای کاربر. دلایل مختلفی برای انجام این کار در آن زمان وجود داشت (cf) اما دارای اشکالات مختلفی بود، از جمله اینکه سرور X باید از امتیازات قابل توجهی برخوردار باشد.فدورا را در حال حذف آنها رجوع کنید).

(این دوره ای است که در آن سرور X قبل از اینکه بتوانید به یک کنسول متنی بروید، باید از حالت وضوح بالای خود خارج می شد.)

با گذشت زمان، کارت‌های گرافیک PC قادر به انجام کارهای بیشتر و بیشتری شدند که واقعاً باید در هسته انجام می‌شد. آنها ممکن است DMA انجام دهند، وقفه ایجاد کنند، نیاز به مشارکت گسترده با چیزهای سطح هسته داشته باشند و غیره. در نتیجه هسته درایورهای پیچیده (و بزرگ) فزاینده ای برای GPUها ایجاد کرد و آن درایورها قادر به کارهای بیشتر و بیشتری شدند (ر.ک. سیستم DRM هسته). یکی از چیزهایی که از سرور X به درایورهای بسیاری از درایورها منتقل شد، این کار تنظیم حالت گرافیکی، ایجاد تنظیم حالت هسته. زمانی که هسته توانست حالت گرافیکی را تنظیم کند و دریافت کند
EDID اطلاعات از نمایشگرهای متصل، این کار را در هنگام بوت شروع کرد و بهترین وضوح را از بین موارد موجود انتخاب کرد.

تنظیم حالت “صحیح” برای مانیتور اکنون مهمتر از گذشته است، زیرا ما از CRT به LCD تغییر داده ایم. ال سی دی ها بر خلاف CRT ها (کم و بیش)، اساساً نمایشگرهایی با وضوح (و عمق رنگ) ثابت هستند، بنابراین اگر واقعاً می خواهید چیزهای واضحی را روی LCD خود بخوانید، می خواهید آن را با وضوح اصلی خود هدایت کنید. تنظیم حالت هسته لینوکس باعث می‌شود که این امر در اسرع وقت و در بسیاری از موقعیت‌های ممکن اتفاق بیفتد، نه فقط زمانی که سرور X در حال اجرا است.

به طور سنتی، کنسول متنی لینوکس روی رایانه های شخصی واقعاً استفاده زیادی می کرد حالت متن VGA (همچنین). در دنیای مدرن KMS، «کنسول متنی» در واقع یک است کنسول فریم بافر که متن را از طریق عملیات گرافیکی به عنوان بخشی از سیستم DRM. این امکان وجود دارد که امروزه از نوعی کنسول فریم بافر استفاده شود حتی اگر KMS به طور خاص خاموش شده باشد، اگرچه مطمئن نیستم.

(به ویکی‌پدیا نیز مراجعه کنید تنظیم حالت، که سایر یونیکس ها را نیز پوشش می دهد.)

PS: از فدورا 36، فدورا فقط DRM/KMS را در هسته خود دارد. همچنین ببینید اعلام درایور جدید simpledrm، که در مورد چگونگی تنظیم محیط گرافیکی اولیه توسط ‘سیستم افزار’ رایانه شخصی (EFI یا BIOS) بحث می کند.

لینک منبع

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.