Category Archives: نرم‌افزار

نیازمندی های سیستمی System Requirements

نیازمندی های سیستمی یا System Requirements چیست؟

نیازمندی های سیستمی (System Requirements) به پیش نیازهایی گفته می‌شود که یک سیستم برای استفاده از یک قطعه سخت افزاری یا اجرای نرم افزاری مشخص به آن‌ها نیاز دارد.

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

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

انواع نیازمندی های سیستمی

معمولا برای محصولات نرم افزاری یا سخت افزاری معتبر دو مجموعه پیش نیاز سیستمی زیر معرفی می‌شود:

  • نیازمندی های سیستمی حداقلی یا کمینه (Minimum System Requirements): این مجموعه حداقل پیش نیازهای سخت افزاری و نرم افزاری را مشخص می‌کند که بدون داشتن آن‌ها اجرای نرم افزار یا استفاده از محصول سخت افزاری موردنظر امکان‌پذیر نیست.
  • نیازمندی های سیستمی پیشنهادی (Recommended System Requirements): این مجموعه شامل پیش نیازهایی است که نسبت به مجموعه اول دارای سطح بالاتری هستند و برای اجرای ایده آل، روان و بهینه نرم افزار یا رسیدن به عملکرد مورد انتظار از سخت افزار مربوطه لازم هستند. با برآورده شدن این نیازمندی ها، می‌توانید مطمئن باشید محصول موردنظر بدون هیچ مشکلی و همانطور که از آن انتظار می‌رود روی سیستم شما کار خواهد کرد.

معمولا پیش نیازهای فوق (به خصوص گروه اول) روی بسته بندی محصولات نرم افزاری و سخت افزاری قابل مشاهده هستند. البته در مورد نرم افزارها به هنگام دانلود یا خرید آنلاین، این اطلاعات در صفحه وب مربوطه اعلام می‌شود.

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

برای مثال پیش نیازهایی که برای یک نرم افزار ذکر می‌شود معمولا شامل توان پردازشی مورد نیاز (مدل پردازنده و فرکانس کلاک آن)، مموری، فضای ذخیره سازی ثانویه (مانند فضای خالی موردنیاز روی هارد دیسک)، ابزارهای جانبی (نظیر درایو DVD-ROM)، سیستم عامل (مانند ویندوز، لینوکس و …) و پلتفرم اجرای نرم افزار (نظیر دات نت)، API ها (نظیر DirectX) و … می‌باشد. البته یک نرم افزار ممکن است برای عملکرد مناسب به موارد دیگری نظیر ارتباط اینترنتی و رزولوشن قابل قبول صفحه نمایش نیز احتیاج داشته باشد.

یک نمونه واقعی

برای اینکه با مفهوم پیش نیازهای سیستمی و نحوه نگارش آن‌ها بیشتر آشنا شوید موضوع را با یک مثال واقعی ادامه می‌دهیم. مطابق آنچه در وبسایت سازنده بازی FIFA 19 اعلام شده است برای اجرای این بازی روی رایانه های شخصی به حداقل پیش نیازهای زیر نیاز دارید:

MINIMUM System Requirements:

OS: Windows 7/8.1/10 - 64-Bit 

CPU: Core i3-2100 @ 3.1GHz or AMD Phenom II X4 965 @ 3.4 GHz 

RAM: 8 GB 

DISC DRIVE: DVD ROM drive required for installation only 

HARD DRIVE: At least 50 GB of free space 

VIDEO: NVIDIA GTX 460 1GB or AMD Radeon R7 260 

DirectX: DirectX 11 compatible

INPUT: Keyboard and mouse, dual analog controller 

ONLINE CONNECTION REQUIREMENTS: Internet connection required to install and play.

اطلاعات فوق به این معنی است که برای اجرای این بازی لازم است از رایانه ای مجهز به نسخه 64 بیتی سیستم عامل های ویندوز 7، ویندوز 8.1 یا ویندوز 10 استفاده کنید. همین‌طور به پردازنده Core i3-2100 با فرکانس 3.1GHz یا AMD Phenom II X4 965 با فرکانس 3.4GHz و یا پردازنده ای قدرتمندتر در کنار حداقل 8 گیگابایت RAM نیاز دارید. برای نصب بازی از روی DVD به DVD ROM و 50 گیگابایت فضای خالی روی هارد دیسک هم احتیاج خواهید داشت. همچنین لازم است رایانه شما به کارت گرافیک های NVIDIA GTX 460 1GB یا AMD Radeon R7 260 یا قوی‌تر از آن مجهز باشد.

نصب بودن DirectX 11 و داشتن دستگاه های ورودی ماوس و صفحه کلید یا گیم پد برای انجام بازی ضروری است و حین نصب و انجام بازی نیز به ارتباط اینترنتی نیاز خواهید داشت. در صورتی که سیستم شما دارای این پیش نیازهای حداقلی نباشد به طور کلی قادر به اجرای این بازی نخواهید بود.

در تصویر زیر نیز می‌توانید هر دو مجموعه پیش نیازهای سیستمی را برای بازی PES 2018 مشاهده کنید:

نیازمندی های سیستمی System Requirements
نیازمندی های حداقلی و پیشنهادی برای بازی PES 2018

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

سندباکس یا جعبه شنی Sandbox

سندباکس یا Sandbox چیست؟

سندباکس (Sandbox) به محیطی گفته می‌شود که معمولا به منظور تست بخش‌های جدید یک نرم افزار یا اجرای ایمن نرم افزارها بدون اینکه محیط اصلی تحت تأثیر آن قرار بگیرد به کار می‌رود. این واژه در زبان فارسی به معنای جعبه شنی است.

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

سندباکس و توسعه نرم افزار

در حوزه توسعه نرم افزار، سندباکس محیطی مجزا از محیط در حال عملیات است که از آن برای بررسی، تست و مانیتور کردن کدها یا بخش‌های جدید در حال توسعه استفاده می‌شود. اجرا در جعبه شنی، محیط اصلی (نظیر سرورهایی که در حال ارائه خدمات هستند) و داده های مرتبط با آن را از تغییراتی که ممکن است به درستی کار نکند یا خطرآفرین باشد محافظت می‌کند.

با توجه به اینکه لازم است تغییرات روی محیطی مشابه با محیط اصلی تست و بررسی شود بنابراین در سندباکس می‌بایست حداقل ویژگی‌های لازم برای تست صحیح نرم افزار مهیا شده باشد. برای مثال دسترسی به نسخه‌ای از داده ها یا سرویس های وب مشابه با همان چیزی که سیستم اصلی با آن‌ها کار می‌کند الزامی است.

در نهایت پس از اینکه تست ها به صورت موفقیت آمیز روی سندباکس انجام شد نسخه جدید یا تغییرات به صورت عمومی منتشر می‌شود.

سندباکس و امنیت

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

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

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

ماشین های مجازی با شبیه سازی یک سیستم رایانه ای به عنوان یکی از راهکارهای رایج برای ایجاد سندباکس به شمار می‌رود.

سایر کاربردها

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

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

در برخی از سایت های ویکی (از جمله ویکیپدیا) نیز مدلی از جعبه شنی وجود دارد که به کاربر اجازه می‌دهد برای آشنایی با قابلیت های سایت به جای دستکاری محتواهای منتشر شده از این محیط استفاده کنند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

سازگاری رو به عقب Backward Compatibility

سازگاری رو به عقب یا Backward Compatibility چیست؟

سازگاری رو به عقب (Backward Compatibility) یا سازگاری رو به پایین (Downward Compatibility) عنوان خاصیتی در یک سیستم، محصول یا فناوری است که امکان کار کردن و تعامل با نسخه‌های قدیمی‌تر (یا استفاده از واسط ها، ورودی ها و داده هایی که برای این نسخه‌ها طراحی شده است) را فراهم می‌کند.

به عنوان مثال نرم افزار واژه پردازی که قادر است اسناد ذخیره شده توسط نسخه های پیشین خود را باز کند و آن‌ها را ویرایش کند یک نرم افزار سازگار رو به عقب (Backward Compatible) به شمار می‌رود. به عنوان نمونه‌ای دیگر، کنسول بازی PlayStation 2 قادر به اجرای بازی های ساخته شده برای کنسول PlayStation می‌باشد و همین‌طور مدل‌های ابتدایی کنسول Wii از شرکت نینتندو با بازی ها و اغلب لوازم جانبی کنسول قدیمی‌تر GameCube از همین شرکت سازگار است.

سازگاری رو به عقب Backward Compatibility
سازگاری کنسول Wii با گیم پد کنسول قدیمی‌تر GameCube

ویژگی مرتبط دیگری موسوم به سازگاری رو به جلو (Forward Compatibility) یا رو به بالا (Upward Compatibility) نیز وجود دارد که تقریبا معادل با همین اصطلاح اما از سوی دیگر است. به عبارت بهتر، در طراحی محصولاتی که قرار است از سازگاری رو به جلو برخوردار باشند سعی می‌شود با در نظر گرفتن تمهیداتی، امکان سازگاری آن‌ها با محصولات و سیستم های آینده فراهم شود.

مزایا و معایب

محصولات و سیستم های سازگار رو به عقب نه تنها شانس موفقیت بالاتری در جذب مشتری جدید خواهند داشت بلکه می‌توانند مشتریان فعلی محصول قدیمی را به سمت استفاده از محصول جدید تشویق کنند.

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

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

اسکرین شات Screenshot

اسکرین شات یا Screenshot چیست؟

اسکرین شات (Screenshot) به تصویری گفته می‌شود که از محتویات موجود در صفحه نمایش رایانه، گوشی هوشمند، تلویزیون و … تهیه می‌شود. برخی اوقات از عبارت Screen Capture به عنوان معادلی برای این اصطلاح استفاده می‌شود.

اسکرین شات ها به ویژه با گسترش سیستم عامل های مجهز به واسط کاربری گرافیکی رواج پیدا کردند. امروزه این تصاویر معمولا به صورت نرم افزاری با کمک قابلیت‌های پیشفرضی که در سیستم عامل درنظر گرفته شده یا با استفاده از برنامه هایی که برای همین منظور طراحی شده‌اند تهیه می‌شوند. تصویر حاصل در اغلب موارد یا به صورت خودکار با فرمت های رایج فایل‌های تصویری (نظیر JPG و PNG) در مسیری مشخص ذخیره می‌شود و یا در کلیپ بورد قرار می‌گیرد.

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

توجه داشته باشید Screenshot ها ممکن است از تمام صفحه یا صرفا بخشی از صفحه (نظیر محتویات یک پنجره) ایجاد شوند.

اسکرین شات Screenshot
یک Screenshot تمام صفحه از سیستم عامل ویندوز 7

کاربردهای اسکرین شات

اسکرین شات ها معمولا برای نگه داری و ذخیره محتوایی که کاربر روی صفحه نمایش دستگاه خود مشاهده می‌کند و همین‌طور به اشتراک گذاری محتوای صفحه با دیگران به کار می‌رود. به عنوان مثال ممکن است برای آموزش نحوه ثبت نام در یک سایت از تعدادی تصویر حاوی صفحه اصلی سایت استفاده شود که در آن با شماره‌هایی ترتیب مراحل ثبت نام نمایش داده شده است.

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

نحوه گرفتن اسکرین شات

با توجه به کاربرد رایج اسکرین شات ها، در اغلب سیستم عامل ها امکانات پیشفرضی برای ثبت آسان این تصاویر در نظر گرفته شده است. با اینحال بسته به سیستم عامل ها و دستگاه‌های مختلف، این عمل با شیوه‌های متفاوتی انجام می‌شود. به عنوان مثال در دستگاه های مجهز به سیستم عامل اندروید معمولا با پایین نگه داشتن دکمه Power و دکمه کاهش صدا (به مدت چند ثانیه) تصویری از محتوای صفحه تهیه و در فولدر Screenshot ذخیره می‌شود. این درحالیست که در دستگاه های iPhoneX اپل برای این منظور لازم است کلید سمت راست همراه با کلید افزایش صدا فشرده شود.

در سیستم عامل ویندوز ساده‌ترین و فراگیرترین روش برای تهیه اسکرین شات استفاده از کلید Print Screen است. با فشردن این کلید تصویری حاوی محتوای کنونی صفحه در کلیپ بورد قرار می‌گیرد و کاربر می‌تواند به دلخواه خود آن را در یک نرم افزار ویرایش تصویر، واژه پرداز و … Paste کرده و حاصل را ویرایش یا ذخیره نماید. علاوه بر این می‌توانید از ترکیب کلیدهای Alt + Print Screen برای تهیه تصویر از پنجره فعال کمک بگیرید. در بسیاری از توزیع‌های رایج لینوکس هم روشی مشابه با ویندوز برای ایجاد اسکرین شات ها به کار می‌رود اما در macOS از ترکیب Cmd + Shift + 3 برای این منظور استفاده می‌شود.

لازم به ذکر است در برخی موارد امکان تهیه اسکرین شات به صورت دیجیتال با روش‌های معمولی وجود ندارد. نرم افزارها یا بازی هایی که در آن‌ها از Hardware Overlay استفاده می‌شود و همین طور اپلیکیشن های اندرویدی که اجازه ثبت اسکرین شات از آن‌ها داده نشده است از جمله این موارد استثنا به شمار می‌روند.

نرم افزارهای ثبت Screenshot

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

ویندوز

  • ShareX
  • PickPick
  • LightShot
  • Greenshot
  • Snagit
  • Snipping Tool (که به صورت پیشفرض از نسخه ویستا به بعد همراه با سیستم عامل ویندوز عرضه می‌شود)

لینوکس

  • Shutter
  • ImageMagick
  • Gnome Screenshot

مک او اس

  • LightShot
  • Snagit
  • Skitch
  • Monosnap

اندروید

  • Screenshot Touch
  • Screen Master
  • Super Screenshot

در کنار مواردی که به آن اشاره شد برخی از نرم افزارها از قابلیت های اختصاصی برای ایجاد Screenshot برخوردار هستند. برای مثال مرورگرهای وب رایج قادرند با کمک افزونه ها یا به صورت داخلی از محتوای صفحات وب تصویر تهیه کنند. نرم افزار ویرایش تصویر GIMP و اغلب برنامه های Microsoft Office نیز امکان گرفتن Screenshot از پنجره‌های مختلف را برای استفاده در داخل نرم افزار و اسناد گوناگون فراهم می‌کنند.

فیلمبرداری از صفحه

فیلمبرداری یا ضبط ویدیو از محتوای صفحه (Screen Recording) که به اسکرین کست (Screencast) نیز مشهور است معمولا توسط نرم افزارهای ویژه‌ای انجام می‌‌شود که امکان ضبط همزمان صدا را نیز برای کاربر فراهم می‌کنند. از کاربردهای رایج فیلمبرداری از محتوای صفحه می‌توان به تهیه آموزش ویدئویی برای نرم افزارهای رایانه ای اشاره کرد.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

پچ یا وصله Patch

وصله یا Patch چیست؟

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

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

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

وصله های امنیتی (Security Patches) از جمله مهم ترین انواع وصله هایی هستند که برای رفع آسیب پذیری های امنیتی (به خصوص در مورد سیستم عامل ها) منتشر می‌شود.

پچ - وصله - بروزرسانی Patch - Update
پچ ها برای بروزرسانی، تعمیر یا بهبود نرم افزارهای رایانه ای منتشر می‌شوند.

بروزرسانی و اعمال پچ ها

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

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

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

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

یوتیلیتی – نرم افزار سودمند Utility Software

یوتیلیتی یا نرم افزار سودمند Utility Software چیست؟

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

تعدادی از نرم افزارهای سودمند پرکاربرد و اصلی همراه با اغلب سیستم عامل های امروزی عرضه می‌شود. با این حال کاربر می‌تواند برای دسترسی به امکانات بیشتر، از نرم افزارهای شخص ثالث و تخصصی‌تر استفاده کند.

مثال هایی از نرم افزارهای سودمند

یوتیلیتی ها در حوزه‌های مختلفی از امنیت گرفته تا مدیریت فایل و دیسک، افزایش کارایی سیستم و … مورد استفاده قرار می‌گیرند. از جمله انواع نرم افزارهای سودمند می‌توان به ضد بدافزارها (برای مقابله با ویروس ها، تروجان ها و …)، نرم افزارهای مدیریت کلیپ بورد، ابزارهای پاک سازی رجیستری، نرم افزارهای مدیریت شبکه، نرم افزارهای نظارت سیستمی (برای پایش کارایی سیستم)، نرم افزارهای بررسی سلامت سخت افزار، ویرایشگرهای دیسک، ابزارهای نرم افزاری تعمیر دیسک و رفع قطعه قطعه شدگی دیسک (Disk Defragmenter)، نرم افزارهای ایجاد آرشیو، فشرده سازی و رمزنگاری فایل ها، نرم افزارهای تهیه بک آپ و نرم افزارهای مدیریت فایل اشاره کرد.

نرم افزار سودمند - یوتیلیتی - Utility Software
محیط نرم افزار پیش فرض برای رفع قطعه قطعه شدگی درایوهای دیسک در سیستم عامل ویندوز 10 – منظور از قطعه قطعه شدگی، پراکندگی مکانی فایل ها روی دیسک است که منجر به کاهش سرعت دسترسی به فایل ها می‌شود. این نرم افزار، نمونه‌ای از نرم افزارهای یوتیلیتی به شمار می‌رود.

یوتیلیتی ها و اپلیکیشن ها

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

فایل آرشیو Archive File

فایل آرشیو یا Archive File چیست؟

فایل آرشیو (Archive File) فایلی است که از یک یا چند فایل رایانه ای تشکیل شده است. معمولا از این نوع فایل ها برای ذخیره سازی تعدادی فایل مختلف در قالب فایلی واحد یا به منظور فشرده سازی فایل‌ها استفاده می‌شود. آرشیو کردن فایل ها باعث تسهیل انتقال، به اشتراک گذاری و نگه داری آن‌ها می‌شود.

فایل های آرشیو علاوه بر فایل هایی که در خود جای داده‌اند معمولا شامل فراداده هایی در مورد ساختار دایرکتوری ها، اطلاعات لازم برای شناسایی و تصحیح خطا و … نیز می‌باشند.

از جمله مهم‌ترین و رایج‌ترین پسوندهای فایل آرشیو می‌توان به zip و rar و tar و 7z و iso اشاره کرد. برای ایجاد و ویرایش فایل های آرشیو از برنامه هایی موسوم به File Archiver استفاده می‌شود که معمولا به صورت پیشفرض نمونه‌هایی از آن‌ها در سیستم عامل های مختلف وجود دارد. WinRAR و 7-Zip و WinZip از جمله مشهورترین این نرم افزارها هستند.

کاربردهای رایج فایل های آرشیو

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

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

همچنین بسیاری از نرم افزارها در قالب یک فایل آرشیوی توزیع می‌شوند. این فایل ها که با نام پکیج (Package) شناخته می‌شوند ممکن است شامل سورس کد یا فایل اجرایی نرم افزار باشند. از جمله این نوع فایل ها می‌توان به فایل های با فرمت APK (برای اندروید) و JAR (برای جاوا) اشاره کرد.

علاوه بر مواردی که به آن اشاره شد بسته به فرمت آرشیو، ممکن است از آن برای رمزنگاری فایل ها، تقسیم فایل های بزرگ به تعدادی فایل کوچک‌تر و ایجاد Disk Image (نظیر فایل هایی با فرمت ISO) نیز استفاده شود.

فایل آرشیو Archive File
یک فایل آرشیو با فرمت zip (سمت چپ) که حاوی پنج فایل با پسوند jpg است (سمت راست).

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپیدیا

نرم افزار کراس پلتفرم Cross-Platform Software

نرم افزار کراس پلتفرم یا Cross-Platform Software چیست؟

نرم افزار کراس پلتفرم (Cross-Platform Software) به نرم افزاری گفته می‌شود که برای چند پلتفرم رایانشی پیاده سازی شده است. به عبارت بهتر کراس پلتفرم ها نرم افزارهایی هستند که روی چند محیط یا بستر رایانشی شامل سخت افزارها یا سیستم عامل های مشخص و مختلف قابل اجرا هستند. به عنوان مثال دو سیستم رایانه ای، یکی با معماری x86 که روی آن سیستم عامل ویندوز نصب شده است و دیگری یک رایانه مک با سیستم عامل مکینتاش می‌توانند پلتفرم هایی برای اجرای یک نرم افزار کراس پلتفرم باشند. به این نرم افزارها، نرم افزارهای چند پلتفرمی یا چند سکویی (Multi-Platform) و مستقل از پلتفرم (Platform-Independent) نیز گفته می‌شود.

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

نرم افزار کراس پلتفرم یا چند پلتفرمی Cross-Platform Software
یک نرم افزار کراس پلتفرم نرم افزاری است که روی چند پلتفرم مختلف قابل اجراست.

انواع نرم افزارهای چند پلتفرمی

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

در دسته دوم، نرم افزار بدون نیاز به آماده سازی خاصی روی پلتفرم های مختلف به صورت مستقیم قابل اجرا خواهد بود. به عنوان نمونه‌های رایجی از این دسته می‌توان به نرم افزارهایی اشاره کرد که سورس کد آن‌ها به یک زبان تفسیری نوشته شده است و مفسرهای آن‌ها روی تعداد قابل توجهی از پلتفرم های مرسوم به صورت پیش فرض یا متداول در دسترس است. همچنین برنامه هایی در قالب بایت کدهای از پیش کامپایل شده که اجزای استانداردی به منظور اجرای آنها روی پلتفرم های مختلف موجود است در همین دسته قرار می‌گیرند (نظیر ماشین مجازی Java Virtual Machine برای برنامه های جاوا).

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

توسعه نرم افزار کراس پلتفرم

معمولا ساخت نرم افزارهای چند پلتفرمی در مقایسه با نرم افزارهای تک پلتفرمی زمانبرتر و دشوارتر است چرا که سیستم عامل ها و معماری های مختلف سخت افزاری دارای واسط های برنامه نویسی کاربردی (API) مختلف و ساختارهای مخصوص به خودشان هستند. بنابراین برنامه ای که برای یک سیستم عامل یا معماری رایانه ای به خصوص توسعه یافته است روی سایر پلتفرم ها به طور معمول قابل اجرا نخواهد بود.

از آنجایی که توسعه یک نرم افزار چند پلتفرمی از طریق نوشتن سورس کدهای مختلف برای هر پلتفرم به افزایش هزینه‌ها و زمان موردنیاز برای توسعه منجر خواهد شد لذا توسعه دهندگان به دنبال روش‌های ساده‌تری برای ایجاد این نوع نرم افزارها هستند. تجرید پلتفرم (Platform Abstraction) از جمله این روش‌هاست که کمک می‌کند برنامه حاصل بدون توجه به اینکه روی چه معماری رایانه ای یا سیستم عاملی قرار گرفته است قابل اجرا باشد (درست نظیر برنامه هایی که روی یک Java Virtual Machine اجرا می‌شوند). “یک بار بنویس، همه جا اجرا کن” (Write Once, Run Anywhere) مفهومی محبوب در میان توسعه دهندگان نرم افزارهای کراس پلتفرم است که در همین راستا رایج شده است و اجازه می‌دهد کد نوشته شده روی هر پلتفرمی اجرا شود. البته ممکن است در توسعه بخش‌هایی از این نوع برنامه ها برای پلتفرم های مختلف از ویژگی‌های خاص آن پلتفرم نیز استفاده شود که در هر حال در مقایسه با کدنویسی های مجزا برای پلتفرم های مختلف آسان‌تر خواهد بود.

علاوه بر این، ابزارهای توسعه کراس پلتفرم نیز به منظور تسهیل ساخت نرم افزارهای چند پلتفرمی در دسترس توسعه دهندگان قرار دارد. از جمله این ابزارها می‌توان به فون گپ (PhoneGap)، زامارین (Xamarin)، اپسلریتر (Appcelerator)، الکترون (Electron) و 8th اشاره کرد.

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

پلتفرم رایانشی Computing Platform

پلتفرم رایانشی یا Computing Platform چیست؟

پلتفرم رایانشی (Computing Platform) یا به اختصار پلتفرم به محیطی گفته می‌شود که یک نرم افزار در آن اجرا می‌شود. این محیط که در واقع نقش فونداسیون یا بستر را برای اجرای نرم افزارها ایفا می‌کند ممکن است سخت افزار، سیستم عامل یا هر نرم افزاری باشد که امکان اجرای نرم افزاری دیگر را فراهم می‌کند. به عنوان مثال یک سیستم رایانه ای با معماری x86 که روی آن سیستم عامل ویندوز نصب شده است یک پلتفرم به شمار می‌رود.

پلتفرم ها را می‌توان به چشم نوعی محدودیت و در عین حال به عنوان یک همیار در فرایند توسعه نرم افزار در نظر گرفت؛ از یک سو پلتفرم های مختلف، قابلیت‌ها و ویژگی‌های متفاوتی دارند که باعث می‌شود تنها نرم افزارهایی روی آن‌ها قابل اجرا باشد که با آن بستر سازگار است. به عنوان مثال سورس کدی که برای اجرا روی یک معماری مشخص کامپایل شده است مبتنی بر مجموعه دستورالعمل های (Instruction set) همان پردازنده خواهد بود و به صورت معمولی قابل اجرا روی معماری های دیگر نخواهد بود.

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

نمونه هایی از انواع پلتفرم ها

جالب است بدانید تنها سیستم عامل ها و سخت افزارهای مختلف نیستند که به عنوان محیطی برای اجرای نرم افزارها شناخته می‌شوند. برای مثال یک مرورگر وب نیز فارغ از اینکه روی چه سیستم عامل یا سخت افزاری در حال اجراست می‌تواند برای وب اپلیکیشن ها و افزونه هایی که روی آن اجرا می‌شوند نقش یک Platform را ایفا کند. ماشین مجازی هم می‌تواند بستری برای اجرای نرم افزارها باشد. به عنوان مثال Java Virtual Machine (به اختصار JVM) محیطی را برای اجرای برنامه های کامپایل شده در قالب Java bytecode فراهم می‌آورد و همین طور نسخه مجازی سازی شده یک سیستم که سیستم عامل ویندوز روی آن نصب شده است اجازه می‌دهد نرم افزارهای ویندوزی را روی یک مک اجرا کنید. پلتفرم های رایانش ابری (Platform as a Service – PaaS) نیز از جمله دیگر نمودهای پلتفرم های رایانه ای به شمار می‌روند.

سیستم عامل های مختلف رایانه ها و دستگاه های همراه نظیر مایکروسافت ویندوز، لینوکس و مک او اس، اندروید و iOS، فریم ورک های نرم افزاری (نظیر دات نت فریم ورک، پلتفرم چندرسانه ای Adobe Flash، پلتفرم جاوا) و معماری های سخت افزاری (نظیر ARM و x86) مثال‌هایی از این Platform ها به شمار می‌رود.

نرم افزارها و محیط اجرای آن‌ها

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

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

در مقابل، برخی از نرم افزارها برای اجرا شدن روی پلت‌فرم های مختلف پیاده سازی شده‌اند. این نرم افزارها به نرم افزارهای کراس پلتفرم یا چندپلتفرمی (Cross-Platform Software) مشهور هستند. نرم افزارهای Cross-Platform معمولا دارای نسخه های کامپایل شده مجزا برای Platform های مختلف می‌باشند و یا به صورت مستقیم و بدون سفارشی سازی روی بسترهای گوناگون رایانه ای قابل اجرا هستند.

پلتفرم Platform
Platform ها پایه و بستر اجرای نرم افزارها هستند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

حالت تاریک Dark mode

حالت تاریک یا Dark mode چیست؟

حالت تاریک (Dark mode) نوعی رنگ بندی (شِمای رنگی) محبوب و پرکاربرد است که در آن متن و المان های واسط کاربری گرافیکی با رنگ‌های نسبتا روشن روی پس زمینه تاریک قرار می‌گیرند. حالت تاریک با عنوان حالت شب (Night mode)، تم تاریک (Dark Theme) و شمای رنگی روشن روی تاریک (Light-on-dark Color Scheme) نیز شناخته می‌شود.

این تم رنگی در نقطه مقابل حالت معمولی (یا شمای رنگی تاریک روی روشن) قرار می‌گیرد که در آن متون و المان ها با رنگ تیره روی پس زمینه روشن (تقریبا سفید) نمایش داده می‌شوند.

مزایای حالت تاریک

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

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

فراگیری و استفاده از تم تاریک

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

حالت تاریک - حالت شب Night Mode - Dark Mode
تم تاریک در محیط Microsoft Visual Studio
حالت تاریک - حالت شب Night Mode - Dark Mode
حالت شب در دو اپلیکیشن ویندوز 10

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

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا