موضوع مقاله: وصله (رایانش) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # وصله (رایانش) | مقدمه: وصله یا درپه یا پچ مجموعه‌ای از تغییرات در یک برنامهٔ کامپیوتری یا داده‌های پشتیبان آن است که برای بروزرسانی، رفع یا بهبود آن طراحی شده‌است. | ## بخش 1: وصله (رایانش) | این موارد شامل رفع آسیب‌پذیری‌های امنیتی و دیگر اشکالات و بهبود قابلیت استفاده یا عملکرد برنامهٔ مورد نظر است. در برخی موارد، بروزرسانی‌ها می‌توانند به‌طور آگاهانه عملکردها را قطع کنند یا دستگاه را غیرفعال کنند. مدیریت پچ‌ها بخشی از فرایند استفاده از یک استراتژی و برنامه‌ای است که چه پچ‌هایی باید در یک زمان مشخص به سیستم‌ها اعمال شوند. انواع پچ‌های دودویی پچ‌ها برای نرم‌افزارهای اختصاصی معمولاً به صورت پرونده‌های اجرایی به جای کد منبع توزیع می‌شوند. این نوع پچ‌ها برنامه‌های در حال اجرا را تغییر می‌دهند-برنامه‌ای استفاده‌کننده واقعاً آن را اجرا می‌کند-یا با تغییر دادن بخشی از پرونده دودویی برنامه تا خطایی گرفته شود یا به صورت جایگزینی کامل ان پرونده. روی میکرو‌کامپیوترهای ۸ بیتی اولیه مانند Radio Shack TRS-80 سیستم عامل یک ابزار پچ داشت که اطلاعات پچ را از یک پرونده نوشتاری می‌گرفت و تغییرات را روی پرونده قابل اجرا دودویی برنامه هدف اعمال می‌کرد. برنامه نویسانی که در تفسیر BASIC کار می‌کنند، اغلب از دستور POKE استفاده می‌کنند تا به‌طور موقت عملکرد یک سیستم سرویس را تغییر دهند. در این مورد، پچ‌ها معمولاً شامل تفاوت‌های متنی بین دو پرونده کد منبع هستند که diffs نامیده می‌شوند. در این مورد، توسعه دهندگان انتظار دارند که کاربران خود پرونده‌های جدید یا تغییر یافته را کامپایل کنند. پچ‌های بزرگ از آنجا که کلمه پچ برای تغییرات کوچک به کار می‌روند، پچ‌های بزرگ ممکن است از طبقه‌بندی اسمی متفاوتی استفاده کند. از لحاظ تاریخی، تأمین‌کنندگان نرم‌افزار پچ‌ها را بر روی نوار کاغذ یا کارت‌های پانچ ارائه می‌دادند، انتظار می‌رفت گیرنده بخش مشخص شده را قطع کند و بخش پچ‌شده را جایگزین آن کند. با دسترسی به اینترنت به‌طور گسترده، دانلود پچ‌ها از وب‌سایت توسعه‌دهندگان یا از طریق به‌روزرسانی نرم‌افزار خودکار اغلب در دسترس کاربران نهایی قرار می‌گرفت. برنامه‌های کامپیوتری اغلب می‌توانند پچ‌ها را برای به‌روزرسانی یک برنامهٔ خاص هماهنگ کنند. اتوماسیون وظیفهٔ کاربر را ساده می‌کند - آن‌ها فقط نیاز به اجرای یک برنامهٔ به‌روزرسانی دارند، درحالی که این برنامه اطمینان می‌دهد که به روز رسانی هدف کاملاً و درست انجام می‌شود. بسته‌های سرویس برای مایکروسافت ویندوز NT و جانشینان آن و بسیاری از محصولات نرم‌افزاری تجاری، چنین استراتژی‌های خودکاری را اتخاذ می‌کنند. برخی از برنامه‌ها می‌توانند خود را از طریق اینترنت به صورت دستی یا بدون مداخله از طرف کاربران به‌روز کنند. در شرایطی که مدیران سیستم تعدادی از رایانه‌ها را کنترل می‌کنند، این نوع از اتوماسیون به حفظ ثبات کمک می‌کند. بدین ترتیب، تغییرات قابل توجهی به معنای اندازه بزرگتر است، هرچند که این بستگی به این دارد که آیا پچ شامل تمام پرونده‌های یا تنها بخشی از پرونده‌ها را تغییر می‌دهد. به‌طور خاص، پچ‌ها زمانی که تغییرات داده‌های غیر برنامه‌ای مانند داده‌های گرافیکی و صوتی را اضافه یا جایگزین می‌کند، می‌توانند بسیار بزرگ شوند. در مقایسه با نصب اولیه نرم‌افزار، پچ‌ها معمولاً زیاد طول نمی‌کشند تا اعمال شوند. در مورد سیستم‌های عامل و نرم‌افزار سرور سرور، پچ‌ها نقش مهمی را برای حل کردن حفره‌های امنیتی ایفا می‌کنند. | ## بخش 2: وصله (رایانش) | پچ‌ها ممکن است نیاز به استفاده قبلی از پچ‌های دیگر داشته باشند، یا ممکن است به نیازهای پیشین یا همزمان چندین مؤلفه مستقل نرم‌افزار نیاز داشته باشند. به منظور تسهیل به روز رسانی، سیستم عامل اغلب امکانات به روز رسانی خودکار یا نیمه اتوماتیک را فراهم می‌کند. به روز رسانی کاملاً اتوماتیک موفق به کسب محبوبیت گسترده در شرکت‌های بزرگ نشده‌اند، بخشی به دلیل مشکلات فوق، اما همچنین به دلیل اینکه مدیران می‌ترسند که شرکت‌های نرم‌افزاری ممکن است کنترل نامحدود بر روی کامپیوترهاشان بدست بیاورند. استفاده از به روز رسانی کاملاً اتوماتیک در بازار مصرف‌کنندگان بسیار گسترده شده‌است، به‌طور عمده به این نکته اشاره شده‌است که مایکروسافت ویندوز برای آن‌ها پشتیبانی قرار داد و سرویس پک ۲ ویندوز XP (در دسترس در سال ۲۰۰۴) آن‌ها را فعال کرد به صورت پیش فرض اجرا شوند. کاربران محتاط، به ویژه مدیران سیستم، تمایل دارند تا پچ‌های استفاده شده را کنار بگذارند تا بتوانند ثبات تغییرات را تأیید کنند. در مورد پ‌های بزرگ و تغییرات زیاد توسعه دهندگان بخشی از پچ‌ها را به عنوان نسخه بتا در اختیار توسعه دهنده دارای صلاحیت قرار می‌دهند. اعمال پچ‌ها به سیستم عامل چالش‌های خاصی را ایجاد می‌کند، زیرا اغلب شامل تهیه نسخه کاملاً جدید سیستم عامل، به جای ایجاد تفاوت‌هایی نسبت به نسخه‌های قبلی است. این پچ معمولاً شامل یک نسخه سیستم عامل در قالب داده‌های باینری است، همراه با یک برنامه ویژه ارائه شده توسط عرضه‌کننده که جایگزین نسخه قبلی با نسخه جدید می‌شود. هر خطای غیرمنتظره یا وقفه در هنگام بروز رسانی، مانند قطع برق، ممکن است مادربرد را غیرقابل استفاده کند. تولیدکنندگان مادربورد یکسری کارها برای حفاظت از ان می‌کنند تا از آسیب شدید جلوگیری شود. در مورد بروز رسانی فریم ورک یک نسخه از فریم ورک قبلی را به صورت کپی نگهداری می‌کند تا در صورت خراب شدن کپی در حال اجرا از این نسخه استفاده بکند .(معمولاً با استفاده از checksumهایی مانند CRC) بازی‌های ویدئویی بازی‌های ویدئویی پچ‌هایی برای حل مشکلات سازگاری پس از انتشار اولیه خود دریافت می‌کنند درست مانند هر نرم‌افزار دیگری، اما از پچ‌ها می‌توانند برای تغییر قوانین بازی یا الگوریتم‌ها نیز استفاده شود. این پچ‌ها می‌توانند به خاطر یکسری مشکلات در بخش چند نفره بازی که باعث سود غیر منصفانه بعضی از افراد می‌شود انتشار پیدا کنند. این نوع پچ‌ها معمولاً در بازی‌های تیراندازی نخست شخص با قابلیت بازی چند نفره و MMORPGها دیده می‌شود که معمولاً پیچیدگی زیادی دارند و حجم اطلاعات زیادی را در خود جای داده‌اند، این نوع بازی‌ها به حد زیادی به این پچ‌ها که بعد از انتسار اولیه بازی می ایند تکیه کرده‌اند، جایی که این پچ‌ها یکسری محتوا و توانایی‌های جدید در اختیار بازیکنان قرار می‌دهد. از آنجا که تعادل و انصاف برای تمام بازیکنان MMORPG می‌تواند به شدت در مدت زمان کوتاهی توسط سوء استفاده خراب شود، سرورهای MMORPG بعضی اوقات با اخطار کوتاه به منظور اعمال یک پچ مهم برای حل مشکل قطع می‌شوند. در توسعه نرم‌افزار بعضی اوقات پچ‌های اجباری می‌آید که برای رفع مشکلات کتابخانه‌ها یا به همراه بخشی از کد برای برنامه‌هایی که به صورت مکرر استفاده می‌شوند یا صرفاً برای نگهداری ان برنامه می ایند. این اتفاق معمولاً در پروژه‌های نرم‌افزاری بزرگ رخ می‌دهد ولی در پروژه‌های نرم‌افزاری کوچک به ندرت مشاهده می‌شود. در پروژه‌های متن باز، نویسندگان معمولاً پچ‌هایی را دریافت می‌کنند یا بسیاری از افراد پچ‌هایی را منتشر می‌کنند که مشکلات خاصی را مرتفع می‌کنند یا برخی از قابلیت‌های خاص مانند پشتیبانی از زبان‌های محلی که خارج از محدوده محلی پروژه بوده‌است را اضافه می‌کند. به عنوان نمونه، لینوس توروالدز، نویسنده اصلی، از توسعه دهندگان اولیه لینوکس (که برای انتشار کد کاملش منتشر شد)، صدها هزار پچ از بسیاری از برنامه نویسان مختلف دریافت کرد تا بر روی نسخه اصلی خود اعمال کند. برای پچ‌هایی که تکراری هستند، ابزارهایی مانند Coccinelle برای پشتیبانی از نوشتن پچ‌های عمومی وجود دارد و آن‌ها را در مکان‌های مختلف به همان زمان (معمولاً صدها مکان در مورد هسته لینوکس) پیاده می‌کند. پرسش و پاسخ مربوط به سایت رسمی این پروژه بیان می‌کند که نام "آپاچی" از احترام به قبیله بومیان آمریکایی آپاچی انتخاب شده‌است. مایکروسافت یک بار از این اصطلاح استفاده کرد، اما به نفع اصطلاحات جدید متوقف شده‌است: انتشار منتشر عمومی (GDR) و انتشار توزیع محدود (LDR) این اصطلاحات جدید هستند. | ## بخش 3: وصله (رایانش) | بعضی اوقات از ptf به نام ZAP یاد می‌شود که مشتریان ان را به صورت شوخی-جدی هم‌معنی با یک تعمیر موقت ماندگار می‌شناسند زیرا این امکان فراهم است که ptf به عنوان یک بخش ماندگار در پچ باشد. این اقدام اصلاحی از جلوگیری از بهره‌برداری موفق و از بین بردن یا کاهش توانایی تهدید برای بهره‌برداری از یک آسیب‌پذیری خاص در یک دارایی است. مدیریت پچ بخشی از مدیریت آسیب‌پذیری است - تمرین چرخه شناسایی، طبقه‌بندی، اصلاح و کاهش آسیب‌پذیری بخشی از این کار است. در حال حاضر مایکروسافت تکه‌های امنیتی خود را یک بار در ماه منتشر می‌کند و سیستم عامل‌ها و نرم‌افزارهای دیگر تیم‌های امنیتی دارند تا در صورت پیدا شدن آسیب‌پذیری در سریع‌ترین زمان ممکن یک پچ نرم‌افزاری قابل اطمینان درست و منتشر کنند. این پچ‌های امنیتی برای اطمینان از این که فرایند کسب و کار آلوده نمی‌شوند، بسیار مهم هستند. service pack یک بسته سرویس یا SP یا بسته ویژگی (FP) شامل مجموعه‌ای از به روز رسانی‌ها، اصلاحات یا پیشرفت‌هایی است که به یک برنامه نرم‌افزاری تحویل داده شده و در قالب یک بسته قابل نصب به دست مشتری می‌رسد. شرکت‌ها اغلب یک بسته سرویس را هنگامی که تعدادی از پچ‌های انفرادی در یک برنامه مشخص به حد معینی (دلخواه) می‌رسند، منتشر می‌کنند، یا دیده شده‌است که انتشار نرم‌افزار با تعداد محدودی از خطاهای باقی مانده بر اساس بازخورد کاربران و ردیاب‌های اشکال مانند bugzilla تثبیت شده‌است. در برنامه‌های نرم‌افزاری بزرگ مانند آفیس، سیستم عامل‌ها، برنامه‌های پایگاه داده‌ای و مدیریت شبکه معمولاً آماده کردن یک SP در یک یا دو سال نخست مرسوم نیست. نصب یک بسته سرویس آسان‌تر و کمتر خطا از نصب بسیاری از پچ‌های فردی است، حتی هنگامی که چندین کامپیوتر را که در یک شبکه هستند با یک SP به روز رسانی می‌کنید راحتتر است. نمونه ان اصلاحیه‌های امنیتی است که توسط متخصصان امنیت منتشر می‌شود درحالی که پچ رسمی توسط شرکت نرم‌افزاری مدت زمان زیادی طول می‌کشد تا برسد. مثال‌های دیگر ان پچ‌هایی است که از طرف انجمن‌های بازی برای بازی‌هایی که دیگر از طرف سازنده همایت نمی‌شوند، منتشر می‌شود. hot patching هات پچینگ یا پچینگ زنده یا به روز رسانی داینامیک نرم‌افزار به پچ‌هایی گفته می‌شود که بدون خاموش کردن یا راه اندازی دوباره نرم‌افزار روی ان نرم‌افزار نصب می‌شوند. طبیعت این کار با زمان و کار همراه است اما در طولانی مدت صرفه جویی زیادی در زمان و هزینه می‌شود. این به ویژه برای مدیران مهم است که مسئولیت مدیریت تعداد زیادی از رایانه‌ها را دارند، که مخصوصاً برای نصب یک سیستم عامل بر روی هر رایانه، از نسخه اصلی استفاده می‌کنند و پس از اتمام نصب، هر کامپیوتر را بروزرسانی می‌کنند. این زمان بسیار بیشتری را نسبت به شروع با یک منبع به روز (slipstreamed) می‌گیرد و نیاز به دانلود و نصب چند آپدیت که در سیستم‌ها به صورت مجزا وجود ندارد. با این حال، تمام پچ‌ها را نمی‌توان در این روش اعمال کرد و یک ناکارآمدی این است که اگر کشف شود که یک پچ خاصی مسئول مشکلات بعدی است، پچ مورد نظر نمی‌تواند بدون استفاده از یک منبع نصب اصلی که پچی ندارد حذف شود. در سال ۲۰۱۷ پدیده سایبری Petya، گفته شد مشخص شده‌است که نرم‌افزار مالی "MeDoc" در به روز رسانی‌هایش یک بدافزار را انتشار می‌دهد. در بلاگ تور یک متخصص امنیت سایبری به نام mike perry اعلام کرد که بیلدهای قطعی و جدا از هم احتمالاً تنها راه مقابله با این بدافزار که به مراحل ساخت و تولید نرم‌افزار حمله می‌کند تا میلیون‌ها ماشین را در یک آپدیت رسمی آلوده کند، است. سیستم‌های مدیریت به روزرسانی همچنین اجازه می‌دهند تا به روز رسانی‌های امنیتی سریع و گسترده اعمال شوند. به روز رسانی مدیران لینوکس مانند Synaptic اجازه می‌دهد تا کاربران تمام نرم‌افزار نصب شده بر روی دستگاه خود را به روز رسانی کند. | ## جمع‌بندی | برنامه‌هایی مانند synaptic از چکسام‌های رمزگذاری شده‌استفاده می‌کنند تا از پاک بودن برنامه از هر نوع بدافزاری قبل نصب اطمینان حاصل کنند.