پچ کردن چیست؟

پچ مجموعه‌ای از تغییرات در یک برنامه است که به طور معمول برای این اضافه می‌شود تا اشکالات یک برنامه رفع یا ویژگی جدیدی به آن اضافه شود. مشهور ترین و معروف ترین تعریف از ایجاد آن، استفاده از ابزاری به نام diff که قابل استفاده در سیستم‌های لینوکس و یونیکس خواهد بود، است.پچ ، به عنوان رفع اشکالات سریع نرم افزار، بخشی از کار برنامه نویسی بوده که طراحی شده برای حل مسائل مربوط به عملکرد، بهبود امنیت و اضافه کردن ویژگی های جدید است.

پچ‌ها اغلب در نرم افزارهای متن باز که در یک پروژه‌ی دارای سیستم کنترل نسخه متمرکز(VCS) ساخته شده اند بهتر ارائه می‌شوند چرا که نیازی به طی کردن مراحل قانونی و اجازه گرفتن وجود ندارد. اما در نرم افزارهای متن بسته که از یک سیستم کنترل توزیع نسخه(DVCS) استفاده می‌کنند، ممکن است سخت تر باشد چرا که باید مراحل قانونی طی شود و از سازنده و ارائه دهنده اجازه گرفته شود.

ابتدا بایدسازنده یک پچ را ایجاد و آنرا به پروژه ‌‌بدهد. ادمینپروژه پس از آن می‌تواند تغییرات را بررسی و آنها را به پایه کد اصلی برنامه اعمال کند. ابزارهای مختلف برای کمک به استفاده از آنهادر دسترس هستند. این ابزارها ایجاد و مدیریت پچ‌هایی را که برای خروجی‌ گرفتن و مستند سازی پروژه‌های دارای متن باز نوشته شده‌اند، راحت‌تر و آسان‌تر می‌کند. پچ‌هاو ابزارهای مدیریت آنها کلید اصلی ساخت جامعه و اجتماعی فعال و پویا بین ارائه دهندگان و توسعه دهندگان پروژه‌های دارای متن و منبع آزاد هستند.

در طول زمان، نرم‌افزار با مشكلاتی مواجه خواهد شد. پچ راه حل فوری برای حل این مشکلات است. ادمین‌ها می‌توانند آنهارا از وب سایت سازنده‌ی نرم افزار دانلود کنند. هرچند آنها لزوما بهترین راه حل برای مشکل نیست و توسعه دهندگان محصول اغلب گزینه‌ای کامل‌تر را در هنگام عرضه نرم افزار برای نسخه بعدی خود می‌فرستند.

سازنده‌ یپچ معمولا آن را به عنوان یک جایگزین در کد پلاگین توسعه می‌دهد و در یک فایل ماژول یا دودویی(باینری)توزیع می‌کند. سیستم عامل‌های بزرگتر اغلب یک برنامه‌ی خاص برای کمک به مدیریت و پیگیری نصب و راه اندازی آن ارائه می‌دهند.

هنگامی که یک شرکت تغییراتی را در خروجی پروژه‌ی خودانجام می‌دهد، این کار را با ویرایش فایل‌های موجود در نسخه‌ی‌کنترل سیستم خود انجام می‌دهد. یک نسخه‌ی کنترل سیستم ، تغییرات را در اسناد و کدهای منبع در طول زمان دنبال می‌کند.با استفاده از یک پچ همیشه می توانید نسخه کد منبع را تغییر دهید.

انواع پچ‌های نرم افزاری

آنهامعمولا به سه دسته مجزاو جداگانه تقسیم می‌شوند. با این حال، آنهامی‌توانند دربه بیش از یک رده و تقسیم بندی قرار گیرند. این دسته بندی‌هاشامل رفع اشکال، به روز رسانی‌های امنیتی و به روز رسانی ویژگی‌ها است.

  • رفع اشکال، مشکلات موجود در نرم افزار را حل می‌کند. آنها به نرم افزار کمک می‌کنند تا به راحتی اجرا شود و احتمال وقوع مشکل را کاهش می‌دهند.
  • امنیتی، آدرس‌های ایجاد مشکلات امنیتی برای نرمافزارها را شناسایی کرده و نرم افزار را امن‌تر می‌کند.
  •  ویژگی، قابلیت‌های جدیدی را به نرم افزار اضافه می‌کنند. برای  مثال مایکروسافت دو بار در سال به روز رسانی ویژگی‌های ویندوز را با اضافه کردن قابلیت‌های جدید به سیستم عامل ویندوز 10 انجام می‌دهد.

چرا پچ‌ها مهم هستند

پچ‌های رفع اشکال مهم هستند، زیرا آنها مشکلات عملکردو کارکرد نرم افزارها راحل می‌کنندو به روز رسانی ویژگی‌ها وقابلیت‌های اضافی نرم افزارها را فراهم می‌کنند.

پچ امنیتی بسیار مهم است زیرا به رفع مشکلات امنیتی شناخته شده،مربوط می‌شود. هنگامی که یک عرضه کننده نرم افزاربه روز رسانی امنیتی را منتشر می‌کند، به جامعه‌ی هکر را هشدار می‌دهد که آسیب پذیری در آن نرم افزار وجود دارد. در آن لحظه، هکرها به دنبال نسخه‌‌های خالی از پچ‌های جدید آن نرم افزار می‌گردند تا بتوانند از آنهابهره برداری کنند. هر چه زودتر یک سازمان پچ امنیتیجدید نرم افزاری که از آن استفاده می‌کندرا نصب کند، سریع تر می تواند خود را در برابر آسیب پذیری و حمله‌ی هکرهامحافظت کند.

سیاست‌های مدیریت پچ و نرم افزار‌ اتوماسیون پچ

بسیاری از سازمان‌ها سیاست‌های مدیریت پچ را ارائه می‌دهند که در آن نحوه ارزیابی و اعمال ‌آنهارا تعیین می‌کند. چنین سیاستهایی معمولا مدت زمان اعمال آنها توسط ادمین و چگونگی تست و آزمایش آن تعیین می‌شود.

گزینه‌های متعدد و زیادی برای اتوماسیون مدیریت پچ وجود دارد. برای مثال مایکروسافت یک ابزار رایگان به نام Windows Server Update Services (WSUS) را ارائه کرده که مدیریت آن را برای نرم افزارهای مایکروسافت به صورت خودکار انجام می‌دهد.

بروز رسانی‌های ویندوزمی‌تواند به طور خودکار پچ‌های مربوط به سیستم عامل ویندوز و سایر نرم افزارهای مایکروسافت را دانلود و نصب کند، اما مزایای متفاوتی برای استفاده ازWSUS وجود دارد. به عنوان مثال، WSUS به مدیران اجازه می دهد که نظارت بر ویندوز را بر روی آن اعمال کنند. این ابزار همچنین موجب صرفه جویی در پهنای باند اینترنت می‌شود، زیرا هربار که آنهارا دانلود می‌کند و آنها را در سراسر سازمان توزیع می‌کند، در غیر اینصورت هر کدام از آنها بایدبه صورت جداگانه دانلود شود.

ابزار WSUS تنها قادر به مدیریت پچ های محصولات مایکروسافت است. مایکروسافت و سایرسیستم عامل‌ها ، از جمله SolarWinds Patch Manager و GFI LanGuard گزینه‌های دیگر مدیریت آن را ارائه می‌دهند که می توانند به صورت خودکار نرم افزارهای غیر مایکروسافت را پچ کنند.

نقش ادمین‌ها در توزیع پچ‌ها

ادمین‌ها قبل از اعمال پچ‌ها باید آنها را آزمایش کنند. بخش فناوری اطلاعات مسئول تست آن و پروسه توزیع است. علاوه بر این، ادمین‌ها نیز معمولا با نظارت‌های دوره‌ای خود مشخص می‌کنند که کدام دستگاه نیاز به دریافت پچ‌های جدید دارد.

پچ در دستگاه‌های مختلف

‌پچ‌های نرم افزاری وابسته به پلت‌ فرم هستند. برای مثال، یک نوعی که مربوط به یک برنامه کامپیوتری است، برای استفاده در دستگاهی که با نرم افزار iOSاپل کار می‌کند مناسب نیست. با توجه به انواع مختلف دستگاه‌ها در اکثر سازمان‌ها، از یک ابزار مدیریت خودکار پچ‌های رایانه‌های شخصی و انواع مختلف سیستم عامل‌های موبایل خود استفاده می‌کنند.

منابع:

software Patch/Fix

what is a software patch