رجیستری ویندوز
رجیستری ویندوز یک است، که «تنظیم‌های » را برای خود سیستم‌عامل مایکروسافت ویندوز و نیز برنامه‌های کاربردی استفاده‌کننده از رجیستری (یا دفتر ثبت) ذخیره‌سازی می‌کند. هسته، درایور دستگاه، ، مدیر حساب‌های امنیتی، و دیگر واسط‌های کاربری همه‌شان امکان استفاده از رجیستری را دارند. رجیستری همچنین امکان دسترسی به ‌ها را برای رخ‌نمانگاری کارایی سامانه می‌دهد.
به زبان دیگر، رجیستری یا ویندوز شامل «اطلاعات، تنظیمات، گزینه‌ها»، و دیگر مقادیر برای برنامه‌ها و سخت‌افزاری است که روی همه نسخه‌های سیستم‌عامل مایکروسافت ویندوز نصب شده‌اند. برای مثال، موقعی که یک برنامه نصب می‌شود، یک «زیرکلید» جدید شامل تنظیماتی مثل محل برنامه، ورژن آن، نحوه شروع آن برنامه، و غیره به رجیستری ویندوز اضافه می‌شود.
رجیستری در معرفی شد، و در آن زمان رجیستری ویندوز، در اصل فقط اطلاعات پیکربندی را برای مولفه‌های مبتنی بر COM ذخیره می‌کرد. اما ویندوز ۹۵ و ویندوز NT استفاده از آن را گسترش دادند و برای منطقی‌سازی و متمرکزسازی اطلاعات موجود در که بسیار فراوان هم بودند، آن را به کار بردند. این فایل‌های INI اطلاعات پیکربندی را برای برنامه‌های منفرد (که در مکان‌های متنوعی ذخیره شده بودند) نگهداری می‌کردند. لزومی ندارد که برنامه‌های کاربردی ویندوز حتماً از رجیستری ویندوز استفاده کنند. برای مثال، برنامه‌های کاربردی چارچوب دات‌نت از فایل‌های XML برای پیکربندی استفاده می‌کنند، درحالیکه برنامه‌های انتقال‌پذیر معمولاً فایل‌های پیکربندی‌شان را همراه با اجراپذیرشان ذخیره می‌کنند.
رجیستری ویندوز جایی است که تنظیمات نرم‌افزارها و سخت‌افزارها در سیستم‌عامل ویندوز در آن به ثبت می‌رسند. در پنجمین ویراست از کتاب «فرهنگ رایانه‌ای مایکروسافت» دربارهٔ رجیستری چنین آمده‌است:
رجیستری، یکی از مهم‌ترین و اصلی‌ترین بخش‌های سیستم‌عامل ویندوز است. این بخش، نقشی کلیدی در پیکربندی و کنترل سیستم‌عامل ویندوز ایفا کرده و همچون انباره‌ای است که تنظیمات کلیِ سیستم (اعم از نرم‌افزاری و سخت‌افزاری) و تنظیمات خاصِ هر کاربر را در خود جای می‌دهد. نقش این بخش در ویندوز چنان است که تغییر در آن، تأثیرات بنیادینی بر عملکرد کل این سیستم‌عامل خواهد داشت. به خاطر همین اهمیت و حساسیت، رجیستری از دید و دسترسی کاربران عادی به دور نگاه داشته می‌شود. اما کاربر خبره می‌تواند از طریق ابزارهای تعبیه شده در ویندوز - نظیر 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 حد اقل شامل سه زیر کلید است: