توسعهدهنده(ها) | مایکروسافت |
---|---|
انتشار اولیه | ۶ آوریل ۱۹۹۲Windows 3.1 | همراه با
سیستمعامل | مایکروسافت ویندوز |
پلتفرم | IA-32, x86-64 and ARM (and historically DEC Alpha, Itanium, MIPS, and PowerPC) |
همراه با | مایکروسافت ویندوز |
نوع | پایگاه داده سلسلهمراتبی |
رجیستری ویندوز (به انگلیسی: Windows Registry) یک پایگاهداده سلسلهمرتبی است، که «تنظیمهای سطح پایین» را برای خود سیستمعامل مایکروسافت ویندوز و نیز برنامههای کاربردی استفادهکننده از رجیستری (یا دفتر ثبت) ذخیرهسازی میکند. هسته، درایور دستگاه، خدمات، مدیر حسابهای امنیتی، و دیگر واسطهای کاربری همهشان امکان استفاده از رجیستری را دارند. رجیستری همچنین امکان دسترسی به شمارندهها را برای رخنمانگاری کارایی سامانه میدهد.[۱][۲]
به زبان دیگر، رجیستری یا ویندوز شامل «اطلاعات، تنظیمات، گزینهها»، و دیگر مقادیر برای برنامهها و سختافزاری است که روی همه نسخههای سیستمعامل مایکروسافت ویندوز نصب شدهاند. برای مثال، موقعی که یک برنامه نصب میشود، یک «زیرکلید» جدید شامل تنظیماتی مثل محل برنامه، ورژن آن، نحوه شروع آن برنامه، و غیره به رجیستری ویندوز اضافه میشود.
رجیستری در ویندوز ۳٫۱ معرفی شد، و در آن زمان رجیستری ویندوز، در اصل فقط اطلاعات پیکربندی را برای مولفههای مبتنی بر COM ذخیره میکرد. اما ویندوز ۹۵ و ویندوز NT استفاده از آن را گسترش دادند و برای منطقیسازی و متمرکزسازی اطلاعات موجود در فایلهای INI که بسیار فراوان هم بودند، آن را به کار بردند. این فایلهای INI اطلاعات پیکربندی را برای برنامههای منفرد (که در مکانهای متنوعی ذخیره شده بودند) نگهداری میکردند.[۳][۴] لزومی ندارد که برنامههای کاربردی ویندوز حتماً از رجیستری ویندوز استفاده کنند. برای مثال، برنامههای کاربردی چارچوب داتنت از فایلهای XML برای پیکربندی استفاده میکنند، درحالیکه برنامههای انتقالپذیر معمولاً فایلهای پیکربندیشان را همراه با اجراپذیرشان ذخیره میکنند.
رجیستری ویندوز جایی است که تنظیمات نرمافزارها و سختافزارها در سیستمعامل ویندوز در آن به ثبت میرسند. در پنجمین ویراست از کتاب «فرهنگ رایانهای مایکروسافت» دربارهٔ رجیستری چنین آمدهاست:
یک پایگاه داده متمرکز با ساختارِ سلسله مراتبی که در ویندوزهای 9x ,CE ,NT و ۲۰۰۰ به کار رفته و از آن برای نگهداری اطلاعات لازم جهت پیکربندی سیستم برای یک یا چند کاربر، برنامههای کاربردی و تجهیزات سختافزاری استفاده میشود. رجیستری، حاوی اطلاعاتی است که ویندوز در حین عمل، بهطور پیوسته و مکرر به آنها رجوع میکند؛ از قبیل [تنظیمات مربوط به] پروندههای هر کاربر، برنامههای کاربردی نصب شده بر روی رایانه، انواع مستنداتی که [هر کاربر] میتواند ایجاد کند، خصلتهای صفحهای پوشهها، آیکونهای برنامهها، سختافزارهای موجود در سیستم، درگاههای مورد استفاده و… رجیستری، جایگزینی است برای فایلهای مبتنی بر متن با پسوند INI در ویندوز 3.x و همچنین فایلهای پیکربندی MS-DOS، مثل autoexec.bat و config.sys. در ضمن، دادههای رجیستری در فایلهای دودویی ذخیره میشوند.
رجیستری، یکی از مهمترین و اصلیترین بخشهای سیستمعامل ویندوز است. این بخش، نقشی کلیدی در پیکربندی و کنترل سیستمعامل ویندوز ایفا کرده و همچون انبارهای است که تنظیمات کلیِ سیستم (اعم از نرمافزاری و سختافزاری) و تنظیمات خاصِ هر کاربر را در خود جای میدهد. نقش این بخش در ویندوز چنان است که تغییر در آن، تأثیرات بنیادینی بر عملکرد کل این سیستمعامل خواهد داشت. به خاطر همین اهمیت و حساسیت، رجیستری از دید و دسترسی کاربران عادی به دور نگاه داشته میشود. اما کاربر خبره میتواند از طریق ابزارهای تعبیه شده در ویندوز - نظیر regedit.exe - مستقیماً در محتوای رجیستری، دخل و تصرف کند.
ام اس داس دادههای پیکربندی خود را از طریق فایلهای confing.sys و autoexec.bat به دست میآورد و در ویندوز ۳٫۰ میکروسافت محدودیتهای confing.sys و autoexec.bat را تا اندازهای با ارائه فایلهای INI برای ذخیرهسازی تنظیمات بر طرف نمود. فایلهای INI فایلهایی متنی هستند که از یک یا چند بخش تشکیل میشوند و یک یا چند مورد از تنظیمات در هر بخش قرار میگیرد. مشکل فایلهای INI آن است که فاقد ساختار سلسله مراتبی میباشند، ذخیرهسازی فایلهای باینری در آن دشوار بوده و هیچ گونه استانداردی برای ذخیرهسازی انواع تنظیمات مشابه ارائه نمیکنند. مشکل بزرگتر فایلهای INI و نگارشهای اولیه ویندوز تعداد زیاد این فایلها در کامپیوترها بود. هر برنامه کاربردی فایلهای INI خاص خود داشت. ویندوز ۳٫۱ رجیستری را به عنوان ابزاری برای ذخیرهسازی تنظیمات OLE (گنجاندن و مرتبط کردن شیئها) معرفی نمود، و ویندوزهای ۹۵ وnt 3.5 نیز آن را به بانک اطلاعاتی پیکربندی گسترش دادند که ویندوز xp و نسخههای جدیدتر ویندوز از آن استفاده میکنند. اگرچه فایلهای INI دیگر به دلیل آن که برنامههای کاربردی روش بسیار بهتری برای ذخبرهسازی تنظیمات دارند، ضروری نیستند، اما هنوز هم تعدادی از آنها را در برخی کامپیوترها خواهید یافت، مثلاً win.ini.
در حالت کلی، دادههای مندرج در رجیستری، در سه وضعیت یا مرحله خوانده میشوند:
البته رجیستری ممکن است در وضعیتهای دیگری هم خوانده شود، مثل زمانی که تغییراتی در یکی از مقادیر یا کلیدهای رجیستری لازم باشد (در ادامه این مقاله، دربارهٔ اصطلاحات کلید و مقدار توضیح داده خواهد شد). برخی از برنامهها هم، مرتباً محتوای رجیستری را بررسی میکنند تا در صورت بروز تغییر در آن، سریعاً پیکربندیهای خود را روزآمد و به هنگام کنند. اما بهطور کلی، در یک سیستم که در حالت بیکاری (Idle) قرار دارد، فعالیتی در رجیستری به چشم نمیخورد.
معمولاً محتوای رجیستری در موارد زیر تغییر میکند:
یکی دیگر از راههای تغییر در رجیستری، ویرایش دستی آن از طریق برنامهٔ Registry Editor است. این برنامه که یکی از ابزارهای سیستمی تعبیهشده در خودِ ویندوز است، امکان ویرایش مستقیمِ رجیستری را برای مدیر سیستم (System Administrator) فراهم میکند. البته باید توجه داشت که عملکرد این ویرایشگر با ویرایشگرهای متن متفاوت است و مثلاً امکان انجام عمل واگرد (Undo) در آن وجود ندارد. به همین دلیل، در بهکارگیری و استفاده از آن باید محتاط بود، چرا که هرگونه دستکاریِ ناشیانه در رجیستری، میتواند به مختل شدن عملکرد کل سیستم بینجامد. از این رو، همیشه توصیه میشود که پیش از شروع عملِ ویرایش، یک کپی پشتیبان از رجیستری تهیه شود.
ساختار رجیستری، شباهت زیادی به ساختارِ منطقیِ یک دیسک دارد؛ رجیستری، شامل چندین کلید (Key) است که مفهوم آنها مشابه دایرکتوری در دیسک بوده و هر کلید هم، شامل چندین مقدار (Value) است که مثل فایلهایی درون دایرکتوریها قرار دارند. مقادیر که در واقع خانههایی برای نگهداری دادهها هستند، از سه مؤلفه تشکیل میشوند: نام، نوع و داده.
هر کلید میتواند شامل تعدادی کلید دیگر هم باشد که در این صورت به آنها زیر-کلید (Sub-key) گفته میشود. زیر-کلیدها هم به نوبهٔ خود میتوانند شامل زیر-کلیدهای دیگری باشد و الخ کلیدهایی که در بالاترین سطح قرار دارند، ریشه (Root) خوانده میشوند؛ بنابراین، بجز ریشهها، تمام کلیدهای دیگر را میتوان زیر-کلید به حساب آورد.
همانطور که از تصویر فوق پیداست، هر زیر-کلید دارای یک مقدار به نام (Default) است که به صورت پیشفرض، دادهای درون آن قرار ندارد (value not set).
ساختار سلسله مراتبی رجیستری، شباهت فراوانی به ساختار «درخت» دارد. در ادبیات علم رایانه، منظور از درخت، نوعی ساختار دادهٔ پویا (دینامیک) است که شرح و وصف آن در مبحث «ساختمان دادهها» ذکر میشود. در اینجا به ذکر همین نکته بسنده میکنیم که رجیستری شامل چندین درخت است که گرههای آنها حاوی کلید و برگهای آنها حامل مقدار هستند.
گفتنی است ساختار اولیهٔ رجیستری که به صورت یک پیشالگو (Prototype) تدوین شده و شامل یک سِری تنظیمات اولیه و پیشفرض است که همراه با خودِ ویندوز و در خلالِ عملیاتِ نصبِ سیستمعامل، بر روی دیسکسخت کپی میشود.
در رجیستری، به صورت از پیش تعریف شده، پنج کلید ریشه وجود دارد. نام کلیدهای ریشه با کلمهٔ HKEY شروع میشود که خلاصهٔ عبارت «Handle to a KEY» است. هر ریشه، یک مجموعهٔ تودرتو (Nested) از کلیدها را در خود جای میدهد. ضمناً تعداد ریشهها، ثابت است؛ بدین معنا که نه میتوان ریشهٔ جدیدی ایجاد کرد و نه ریشهٔ موجودی را حذف کرد.
فهرست کلیدهای ریشه در رجیستری و محتوای آنها:
کلید HKEY_USER حد اقل شامل سه زیر کلید است:
The following table shows other difficulties or limitations caused by using .INI files that are overcome by using the Registry.