| grab_vcsa(1) | Linux console vcsa grabber | grab_vcsa(1) |
نام (NAME)
grab_vcsa - ابزار دریافت دسترسی به دستگاههای vcsa در کنسول لینوکس
خلاصه دستور (SYNOPSIS)
grab_vcsa
توضیحات (DESCRIPTION)
کنسول لینوکس امکان دسترسی به بافر تصویری در حالت متنی (دسترسی به بافر ویدئویی) را فراهم میکند. به ازای هر دستگاه tty (/dev/tty0..31) دو دستگاه (/dev/vcs0..31) و (/dev/vcsa0..31) وجود دارند. این دستگاهها دو نمایش متفاوت از محتوای کنسول هستند.
هنگامی که به کنسول لینوکس وارد میشوید، مالکیت دستگاه tty شما به خودتان تغییر مییابد تا بتوانید در آن بخوانید و بنویسید. هنگامی که از سیستم خارج میشوید، این مالکیت از شما پس گرفته میشود. اما چنین رویدادی برای دستگاههای vcs و vcsa رخ نمیدهد؛ به این معنی که نمیتوانید به بافر تصویری tty مربوط به خود دسترسی داشته باشید.
متأسفانه دلایل متعددی برای استفاده از بافر تصویری حالت متنی وجود دارد. برای نمونه، دسترسی به تمام ۲۵۶ نویسهای که کارت گرافیک VGA میتواند نمایش دهد، بدون استفاده از بافر تصویری در حالت متنی امکانپذیر نیست (لینوکس مجموعه نویسههای vt100 را شبیهسازی میکند که شامل تمامی نویسههای VGA نمیشود). این محدودیت آزاردهنده، امکان پورت کردن نرمافزارهایی را که برای مجموعه نویسههای VGA نوشته شدهاند به لینوکس، به شدت محدود میکند.
برنامه grab_vcsa یک برنامه با دسترسی ریشه (setuid root) است که پس از انجام مجموعهای از بررسیهای امنیتی، مالکیت دستگاههای vcs و vcsa را در هنگام فراخوانی به شما تغییر میدهد.
نیازی به بازگرداندن مجدد دسترسیها نیست (این کار بیفایده خواهد بود، زیرا کاربر میتوانست یک برنامه فرضی release_vcsa را پیش از انجام کارش متوقف کند). مجوزها پس از خروج از سیستم به صورت خودکار به وضعیت پیشین بازمیگردند.
برنامه grab_vcsa توسط واحد ویدیویی Free Pascal استفاده میشود. این واحد تصویری به برنامهنویسان اجازه میدهد برنامههایی قابلحمل میان سیستمعاملهای داس (DOS)، لینوکس، FreeBSD، ویندوز، OS/2 و سایر سیستمهای عامل توسعه دهند، در حالی که همچنان میتوانند از در دسترس بودن کل مجموعه نویسههای VGA اطمینان داشته باشند.
کدهای بازگشتی (RETURN CODES)
برنامه grab_vcsa کدهای بازگشتی زیر را تولید میکند:
- 0
- موفقیتآمیز.
- 1
- برنامه بر روی کنسول لینوکس اجرا نشده است.
- 2
- خطا هنگام اجرای دستور stat روی tty.
- 3
- خطا هنگام اجرای دستور chown.
- 4
- خطا هنگام اجرای دستور chmod.
- 4
- شما مالک tty خود نیستید.
نویسنده (AUTHOR)
Daniel Mantione <daniel.mantione@freepascal.org>
| 22 jan 2006 | Free Pascal |