تکنولوژی
تکنولوژیها و روشهای عملی
مهندسان نرمافزار طرفدار تکنولوژیها و روشهای عملی بسیار متفاوت و مختلفی هستند، که با هم ناسازگار هستند. این بحث در سالهای دهه ۶۰ میلادی شروع شد و ممکن است برای همیشه ادامه پیدا کند. مهندسان نرمافزار از تکنولوژیها و روشهای عملی بسیار متنوعی استفاده میکنند.
کسانی که کار عملی میکنند از تکنولوژیهای متنوعی استفاده میکنند: کامپایلرها، منابع کد، پردازشگرهای متن. کسانی که کار عملی میکنند از روشهای عملی بسیار متنوعی استفاده میکنند تا تلاشهایشان را اجرا و هماهنگ کنند: برنامهنویسی در دستههای دونفری، بازبینی کد، و جلسات روزانه. هدف هر مهندس نرمافزار بایستی رسیدن به ایدههای جدید خارج از الگوهای طراحی شده قبلی باشد، که باید شفاف بوده و بهخوبی مستند شده باشد.
با وجود رشد فزاینده اقتصادی و قابلیت تولید فزایندهای که توسط نرمافزار ایجاد شده، هنوز هم بحث و جدلهای ماندگار درباره کیفیت نرمافزار ادامه دارند.
ماهیت مهندسی نرمافزار
دیوید پارناس گفتهاست که مهندسی نرمافزار یک شکل از مهندسی است. استیو مککانل گفتهاست که هنوز اینطور نیست، ولی مهندسی نرمافزار باید یک شکل از مهندسی شود. دونالد کنوت گفتهاست که برنامهنویسی یک هنر است.
دیوان فعالیتهای آماری آمریکا مهندسان نرمافزار را به عنوان زیرگروهی از «متخصصان رایانه»، با فرصتهای شغلیای مانند «دانشمند رایانه»، «برنامه نویس» و «مدیر شبکه» دسته بندی کردهاست. BLS تمام مهندسان دیگر این شاخه علمی، که شامل مهندسان سختافزار رایانه نیز هست، را بهعنوان «مهندسان» دسته بندی میکند.
نرمافزار سیستم
نرمافزار سیستم به نرمافزاری در رایانه گفته میشود که به کارکرد سیستم رایانه یا کاربردهای سطح پایین (یا Low Level) رایانه مربوط باشد. این نرمافزارها به ساختار فیزیکی سختافزار رایانه وابسته هستند و در نوشتن آنها از زبانهای سطح پائین مانند زبان اسمبلی استفاده میشود. سیستمعامل و درایورها از نرمافزارهای سیستم هستند. از جمله زبان هایی که برای نگارش نرمافزارهای سیستمی استفاده میشود، زبان برنامه نویسی C میباشد. کار کردن با سی برای برنامه نویسان راحت تر است و آنان این زبان را به اسمبلی ترجیح میدهند. اگر برای نگارش نرمافزار سیستمی مشکل محدودیت فضای سختافزاری داشته باشیم بهتر است با زبان اسمبلی کار کنیم که حجم آن پایین تر است. نرمافزارهای سیستمی به سختافزار وابسته اند.
در برابر نرمافزار سیستم، نرمافزار کاربردی قرار دارد که برای کاربردهای سطح بالا و غیرسیستمی رایانه است و معمولاً به زبانهای سطح بالا نوشته میشود که از جزئیات سختافزاری سیستم مستقل است.
نرمافزار کاربردی
نرمافزار کاربردی (به انگلیسی: Application software) عبارت است از نرمافزاری که با استفادهٔ مستقیم از منابع و قابلیتهای رایانه کاری را مستقیماً برای کاربر انجام میدهد. باید توجه داشت که این عبارت در مقابل عبارت نرمافزار سیستمی معنی پیدا میکند.
نرمافزار سیستمی در مقابل در پسزمینه عمل میکند و خدماتی را فراهم میکند که دیگر نرمافزارها و یا سیستمعامل میتوانند برای انجام کارهای خود از آن استفاده کنند. اما در عوض معمولاً مستقیماً با کاربر عادی در تماس نیست و خدماتی را به او ارایه نمیدهد.
در عمل بیشتر نرمافزارهایی که کاربران با آنها سر و کار دارند از این دسته محسوب میشوند. برای مثال میتوان به نرمافزارهای رومیزی یعنی واژهپردازها، صفحه گستردهها، نرمافزارهای طراحی گرافیکی، بازیهای رایانهای و امثال آنها اشاره کرد.
بسیاری نرمافزارهای کاربردی، برای توسعهدهندگان ابزار رابط برنامهنویسی کاربردی هم فراهم میکنند تا بتوان از قابلیتهای نرمافزار در نرمافزارهای جدید استفاده کرد. برای مثال نرمافزار ادوبی آکروبات هنگام نصب ایپیآی فراهم میکند که برنامهنویس میتواند با استفاده از آن تواناییهای آکروبات را در برنامهٔ خود به کار گیرد.
برای عنوان نمونههای دیگر میتوان به نرمافزارهای پردازش متن، برگههای گسترده (صفحات گسترده) و نرمافزارهای پخش نوا و نما اشاره کرد.
نرمافزار آزاد
نرمافزار آزاد (به انگلیسی: Free software) نرمافزاری است که بههمراه کد منبع توزیع شده و با قوانینی منتشر میشود که آزادی استفاده، مطالعه، ویرایش و انتشار مجددِ کاربران را تضمین میکند. نرمافزارهای آزاد معمولاً با همکاری برنامهنویسهای داوطلب بهعنوان یک پروژه بهوجود میآیند.
نرمافزارهای آزاد با نرمافزارهای مالکیتی (مانند مایکروسافت ویندوز) که آزادی کاربر در استفاده، مطالعه، ویرایش یا انتشار مجدد را در درجههای مختلف محدود میکنند، متفاوت است. این محدودیتها با در نظر گرفتن مجازاتهایی قانونی برای کاربرانی که قوانین آنها را نقض میکنند، بهوجود میآیند. نرمافزارهای مالکیتی عموماً به صورت بستههای اجراپذیر باینری و بدون دسترسی به کد منبع فروخته میشوند که جلوی ویرایش و وصلهکردن نرمافزار توسط کاربر را میگیرد و او را برای بهروزرسانی و پشتیبانی به شرکت نرمافزاری تولید کننده وابسته میکنند. نرمافزارهای آزاد از نرمافزاریهای رایگان که برای استفاده، از کاربر پولی دریافت نمیکنند، نیز متفاوتاند. این نوع نرمافزارها نیز معمولاً تمامی حقوق نرمافزار را برای تولیدکنندهٔ آن محفوظ داشته و جلوی مهندسی معکوس، ویرایش و یا توزیع مجدد توسط کاربر را میگیرند. بنابراین موضوع اصلی نرمافزار آزاد، موضوع آزادی است و نه قیمت آن: کاربران آزادند که هر چه میخواهند با نرمافزار انجام دهند. این آزادی شامل انتشار مجدد نرمافزار بهصورت رایگان و یا با سود نیز میشود. یعنی نرمافزار آزاد میتواند به صورت رایگان و یا در ازای دریافت مبلغی پول در اختیار کاربر قرار بگیرد.
ریچارد استالمن در سال ۱۹۸۵ در زمانی که در حال آغاز پروژهٔ گنو و بهوجود آوردن بنیاد نرمافزارهای آزاد بود، برای اولین بار از عبارت «نرمافزار آزاد» استفاده کرد. براساس تعریف بنیاد نرمافزارهای آزاد کاربران یک نرمافزارِ آزاد، آزاد هستند؛ چون به اجازه گرفتن نیازی ندارند؛ آنها در انجام کارهای دلخواهشان (مانند حق نشر و کپیبرداری) محدود نیستند؛ نیازی به موافقت با هیچ توافقنامهای ندارند؛ و در همان ابتدا نیز با نداشتن کد منبع محدود نبودهاند.
تعریف
طبق تعریف نرمافزار آزاد توسط بنیاد نرمافزارهای آزاد، هر نرمافزاری که آزادیهای زیر را برای کاربرانش فراهم کند به عنوان یک نرمافزار آزاد شناخته میشود:
کاربران باید اجازه داشته باشند که نرمافزار مورد نظر را برای هر قصد و منظوری اجرا کنند.
کاربران باید اجازه داشته باشند کدهای منبع نرمافزار را مطالعه کرده و آن را مطابق با نیازهای خود تغییر دهند. برای رسیدن به این هدف، کدهای منبع نرمافزار باید در اختیار کاربر قرار گیرد.
کاربران باید اجازه داشته باشند نرمافزار را مجدداً منشتر کرده و در اختیار دیگران قرار دهند. این کار میتواند به صورت رایگان و یا در ازای دریافت مبلغی پول صورت گیرد.
اگر کاربری نرمافزار را تغییر داد، باید اجازه داشته باشد آن را مجدداً منتشر کرده و در اختیار دیگران قرار دهد. برای تغییر دادن نرمافزار، لازم است تا کدهای منبع نرمافزار در اختیار کاربر قرار گیرد.
همچنین موسسه پیشگامان متنباز هم تعریف مشابهی از نرمافزار آزاد ارائه میدهد. طبق تعریف این موسسه، نرمافزار بازمتن تنها به معنی در دسترس ساختن کدمنبع نیست. علاوه بر آن مجوز باید ویژگیهای زیر را هم داشته باشد:
نرمافزار باید قابل توزیع مجدد باشد (چه به صورت رایگان، چه در ازای دریافت مبلغی پول)
نرمافزار باید شامل کد منبع باشد و این کد منبع را باید بتوان تغییر داد و مجدداً منتشر کرد.
مجوز نباید در برابر افراد یا گروه خاصی تبعیض قائل شود.
مجوز نباید کاربر را برای رسیدن به یک هدف خاص محدود کند.
مجوز نباید مختص به یک محصول خاص باشد.
مجوز نباید نرمافزارهای دیگری که به همراه نرمافزار مورد نظر عرضه شدهاند را محدود کرده و تحت تاثیر قرار دهد. برای مثال اگر چند نرمافزار بر روی یک دیسک منتشر شدند، مجوز نباید اصراری بر روی متنبازبودن آنها داشته باشد.
مجوز نباید تکنولوژی خاصی را محدود کند.
تاریخچه
در اوایل، نرمافزارها به صورت آزاد منتشر میشدند و برنامهنویسان و شرکتها آنها را به صورت آزادانه در اختیار یکدیگر قرار میداند. در اوایل، تجارت رایانه بیشتر مبتنی بر سختافزار بود و شرکتها درامد خود را بیشتر از راه تولید سختافزار کسب میکردند و هر شرکت، سختافزاری ناسازگار با دیگر شرکتها تولید میکرد. مشتریان، که بیشتر مهندسان و دانشمندان بودند، تشویق میشدند که نرمافزارهای ارائه شده توسط سختافزار را بهبود بخشیده و حتی آن را در اختیار دیگران هم قرار دهند. از آنجا که در آن زمانها سختافزارهای تولید شده توسط شرکتهای مختلف با یکدیگر ناسازگار بود و سختافزار استانداردی وجود نداشت، و همینطور از آنجا که در آن زمان مفسرها و کامپایلرها هنوز جا نیفتاده بودند (که این برنامهها برنامهها را قابل حملتر میکنند)، شانس کمی وجود داشت که نرمافزار مورد نظر بر روی سختافزار شرکت رقیب هم به خوبی اجرا شود.
رفتهرفته که صنعت رایانه پیشرفت کرد و سختافزارها بیشتر استاندارد شدند و همینطور کامپایلرها و مفسرها پیشرفت کردند، زمینه برای رشد نرمافزارهای انحصاری فراهم شد. با چنین پیشرفتهایی، برنامهها راحتتر از سختافزار یک شرکت به سختافزار شرکت رقیب پورت میشدند و راحت میشد یک نرمافزار را بر روی سختافزارهای مختلفی از شرکتهای مختلف اجرا کرد. بدین ترتیب یک نفر میتوانست نرمافزاری بنویسد که مستقل از سختافزار خاصی عمل کند و بر روی طیف وسیعی از آنها اجرا شود. علاوه بر آن، با استاندارد شدن سختافزارها، تفاوتهای ناچیزی که آنها در کارایی داشتند رفته رفته ناپدید شد. تولید کنندگان به این نتیجه رسیده بودند که باید به نرمافزار هم به چشم یک وسیله فروشی نگاه کنند. شرکتها شروع به فروش نرمافزارهای خود کردند و دست کاربران خود را برای تغییر در نرمافزارها و انتشار مجدد آنها بستند. به گونه ای که در سال ۱۹۶۸ شرکتی به نام ایدیآر (به انگلیسی: ADR) اولین نرمافزار دارای مجوز را عرضه کرد. در سال ۱۹۶۹، شرکت آیبیام به خاطر اینکه به همراه سختافزارهای خود، نرمافزارهای آزاد ارائه میکرد، توسط وزارت دادگستری ایالات متحده آمریکا به از بین بردن کسب و کار و ایجاد یک شرایط ضدرقابتی برای دیگر متهم شد. آیبیام دیگر به همراه سختافزارهای خود نرمافزار ارائه نکرد و بدین ترتیب نرمافزارها و سختافزارها از یکدیگر جدا شدند و فاصله گرفتند.
در سال ۱۹۸۳، ریچارد استالمن از آزمایشگاه هوش مصنوعی و علوم رایانه امآیتی، پروژه گنو را بنیان نهاد. او که از تغییر فرهنگ در صنعت رایانه و کاربرانش ناامید شده بود، قصد داشت سیستمعاملی به نام گنو را به صورت یک نرمافزار آزاد توسعه دهد. در ژانویه ۱۹۸۴ توسعه سیستمعامل گنو آغاز گشت و بنیاد نرمافزارهای آزاد در اکتبر ۱۹۸۵ بنیان نهاده شد. در سال ۱۹۸۹، اولین نسخه از اجازهنامه همگانی گنو منشتر شد. البته جیپیال اولین پروانه نرمافزار آزاد نبود و قبل از آن پروانههای نرمافزار آزاد دیگری مانند پروانه بیاسدی در سال ۱۹۸۸ عرضه شده بودند. تا کنون پروانههای نرمافزار آزاد زیادی توسط افراد و شرکتهای مختلف منتشر شده است که آز این میان میتوان به پروانه امآیتی، پروانه آپاچی، پروانه آیاسسی، پروانه همگانی موزیلا و ... اشاره کرد.
در سال ۱۹۹۷، اریک ریموند مقالهای با نام کلیسای جامع و بازار را منتشر کرد و در آن به بررسی اصول نرمافزارهای آزاد و مزایای آنها پرداخت. این مقاله به شدت مورد توجه قرار گرفت و یکی از دلایلی بود که شرکت ارتباطات نتاسکیپ، کد منبع مرورگر اینترنتی خود را به صورت نرمافزار آزاد منتشر کرد. این کار باعث شد تا شرکتهای دیگری هم به نرمافزارهای آزاد توجه نشان دهند. کدهای منبع نتاسکیپ، بعدها اساس توسعه مرورگر فایرفاکس و برنامه تاندربیرد قرار گرفت.
مسئله نامگذاری
در زبان انگلیسی، کلمه Free معانی متفاوتی همچون آزادی، رایگان بودن و ... دارد. عدهای بر این عقیده بودند که ممکن است این کلمه باعث کژفهمی شده و باعث شود مردم به نرمافزارهای آزاد، به چشم نرمافزارهای رایگان نگاه کنند. این در حالی است که یک نرمافزار آزاد، لزوماً رایگان نیست. آنها در سال ۱۹۹۸ کمپین دیگری به نام «نرمافزارهای متنباز» (به انگلیسی: Open Source) را تشکیل دادند تا با تاکید بیشتر بر روی مدل توسعه و مسائل تکنیکی، به جای مسائل فلسفی و اخلاقی، مردم و شرکتها را هر چه بیشتر به استفاده از نرمافزار آزاد تشویق کنند. تقریباً هر دو مفهوم، اشاره به یک چیز دارند و یک نرمافزار متنباز، نرمافزار آزاد هم هست (و برعکس)، اما طرفداران ایده نرمافزارهای متنباز، آن را روشی برای توسعه نرمافزارهای بهتر معرفی میکنند و تاکید کمتری بر جنبش اجتماعی و فلسفه پشت این گونه نرمافزارها دارند. طبق گفته موسسه پیشگامان متنباز (که توسط طرفداران ایده نرمافزار متنباز بوجود آمده)، عبارت «نرمافزار آزاد» واژه ای قدیمیتر است و به گونهای منعکس کننده نام بنیاد نرمافزارهای آزاد است، سازمانی که در سال ۱۹۸۵ برای محافظت و ترویج نرمافزارهای آزاد بوجود آمد؛ با اینکه بنیانگذاران ایده متنباز هم از توسعه و ترویج نرمافزارهای آزاد حمایت میکنند، اما در مورد چگونگی ترویج آنها با بنیاد نرمافزارهای آزاد موافق نیستند و اعتقاد دارند که آزادی نرمافزار در درجه اول یک امر عملی است تا ایدئولوژیکی.
پروانههای نرمافزار آزاد
نرمافزارهای آزاد به همراه اجازهنامهای عرضه میشوند که این اجازهنامه آزادیهای نام برده شده را برای کاربران تضمین میکند. از جمله پروانههای نرمافزار آزاد میتوان به پروانه نرمافزار جیپیال، بیاسدی، پروانه امآیتی، پروانه آیاسسی و ... نام برد. این اجازه نامهها تفاوتهایی با یکدیگر دارند و هر کدام توسط افراد و شرکتهای خاصی برای اهداف خاصی منتشر شدهاند. یک دستهبندی کلی برای پروانههای نرمافزار آزاد این است که آیا آنها به صورت کپیلفت هستند یا نه. پروانههایی که کپیلفت هستند، مانند پروانه جیپیال، تاکید دارند که نسخههای مشتق شده از نرمافزار هم باید به صورت نرمافزار آزاد منتشر شوند. مجوزهای غیر کپیلفت تاکیدی بر روی این مساله ندارند و نسخههای مشتق شده از این گونه نرمافزارها را میتوان آزادانه به هر شکل دلخواهی، چه به صورت نرمافزار آزاد و چه به صورت نرمافزار انحصاری منتشر کرد. چنین مجوزهایی را اصطلاحاً «سهلگیرانه» (به انگلیسی: permissive) مینامند. از جمله رایجترین پروانههای کپیلفت، پروانه جیپیال و از جمله رایجترین پروانههای غیر کپیلفت، پروانه بیاسدی و پروانه امآیتی است. امروزه هر دو دسته از این پروانهها به صورت گسترده توسط پروژههای مختلف مورد استفاده قرار میگیرند. برای مثال، هسته لینوکس از پروانه جیپیال و پروژه فریبیاسدی از پروانه بیاسدی استفاده میکنند.
مسئله دیگر در مقایسه پروانههای نرمافزار آزاد، مسئله پیوند دادن کتابخانهها در دیگر نرمافزارهایی است که از یک پروانه غیرمشابه با پروانه کتابخانه استفاده میکنند. برخی از پروانههای نرمافزار آزاد، اجازه نمیدهند که کتابخانههای اشتراکی، توسط نرمافزارهایی که از یک پروانه غیر مشابه استفاده میکنند، پیوند زده شوند و مورد استفاده قرار گیرند. برای مثال، اگر کتابخانهای تحت پروانه جیپیال منتشر شده باشد، تنها نرمافزارهایی که تحت پروانه جیپیال منتشر شدهاند میتوانند به این کتابخانه پیوند داده شوند و از آن استفاده کنند. این کار مانع میشود تا نرمافزارهای انحصاری و یا حتی دیگر نرمافزارهای آزاد از یک کتابخانه با مجوز جیپیال استفاده کنند. بنیاد نرمافزارهای آزاد برای رفع این محدودیت جیپیال، پروانه الجیپیال را منتشر کرده است.
مدل تجاری
نرمافزارهای آزاد را میتوان مستقیماً به فروش رساند و به این ترتیب از فروش آنها کسب درامد کرد. اما این مسئله نباید آزادی های بالا را محدود کند. کاربر پس از خرید یک نرمافزار آزاد، میتواند آن را برای هر منظوری استفاده کرده، تغییر داده، و مجدداً منتشر کند (چه به صورت رایگان و چه به صورت تجاری). علاوه بر فروش مستقیم نرمافزار، میتوان با ارائه خدمات و پشتیبانی از نرمافزارهای آزاد، کسب درامد کرد. مثلاً یک شرکت میتواند با اضافه کردن یک قابلیت جدید به یک نرمافزار آزاد یا در قبال برطرف کردن یک ایراد امنیتی، مبلغی پول از مشتریانش دریافت کند. یا همچنین یک شرکت میتواند نحوه استفاده از یک برنامه را به کارمندان و کاربران یک شرکت دیگر آموزش دهد و در قبال آن دستمزد دریافت کند. برخی از پروانههای سهلگیر نرمافزار آزاد، به کاربران اجازه میدهند تا نرمافزار را بدون در اختیار قرار دادن کدهای منبع توزیع کنند. بدین ترتیب دست کاربران تجاری بیشتر باز خواهد بود. برخی از شرکتها، نرمافزارهای خود را با دو مجوز مختلف، هم به صورت آزاد و هم به صورت غیرآزاد عرضه میکنند.
برخی از توسعهدهندگان مستقل نرمافزار آزاد، کمکهای مالی از طرف افراد داوطلب قبول میکنند. به عنوان مثال، سورسفورج امکاناتی دارد که یک کاربر داوطلب میتواند مبلغی پول را به یک پروژه نرمافزار آزاد اهدا کند.
مثالهایی از نرمافزارهای آزاد کاربردی
هستهٔ سیستمعامل گنو/لینوکس، داروین.
تعدادی از سیستمعاملهای خانواده بیاسدی مانند فریبیاسدی, اپنبیاسدی, نتبیاسدی, دراگونفلیبیاسدی.
کامپایلر جیسیسی، کتابخانهٔ زبان برنامهنویسی سی
کامپایلر کلنگ
پایگاهدادههای رابطهای مانند: mysql، پستگر اسکیوال، برکلی دیبی
زبانهای برنامهنویسی مانند تیسیال، روبی، پایتون، پرل و پیاچپی.
مرورگر وب فایرفاکس (Firefox)
اُپن آفیس (Open Office)
میزکار کیدیای (KDE)
میز کار الاکسدیئی (LXDE)
میزکار اکسافسیئی (XFCE)
میزکار گنوم (Gnome)
برنامههای حروف چینی مانند تک، لاتک و فارسی تک
نرمافزارهای مدیریت محتوا مانند جوملا (!Joomla)، پیاچپی-نیوک (PHP-Nuke)، پست نیوک (postnuke) و مامبو (mambo) ,وردپرس (wordpress), دروپال (drupal) , ....
نرمافزارهای ساخت انجمن (Forum) مانند پیاچپیبیبی (phpbb)، اساماف (smf)، یاب (YaBB) و فروم (phorum)
ویرایشگرهای متن ویم و ایمکس
مجموعه اداری لیبرهآفیس
بدافزار
بدافزار (به انگلیسی: Malware)، برنامههای رایانهای هستند؛ به علت آنکه معمولاً کاربر را آزار میدهند یا خسارتی بوجود میآورند، به این نام مشهورند. برخی از آنان فقط کاربر را میآزارند. مثلاً وی را مجبور به انجام کاری تکراری میکنند. اما برخی دیگر سیستم رایانهای و دادههای آن را هدف قرار میدهند که ممکن است خساراتی به بار آورند. در عین حال ممکن است هدف آن سختافزار سیستم کاربر باشد.
یک نرمافزار برپایهٔ نیت سازنده آن به عنوان یک بدافزار شناخته میشود. در قانون گاه بدافزار را به عنوان یک آلودگی رایانهای مینامند. دستاوردهای مقدماتی که توسط سیمنتک در سال ۲۰۰۸ منتشر شد، بیان میکند که میزان کدهای آزاردهنده و دیگر برنامههای ناخواسته از شمار نرمافزارهای قانونی، ممکن است افزون باشد. همچنین گفته شدهاست: «که تعداد بدافزارهای تولید شده در سال ۲۰۰۷ به اندازه مجموع ۲۰ سال قبل بودهاست.» مهمترین پل ارتباطی بدافزارها از تولیدکنندگان آنها به کاربران از طریق اینترنت است.
در ۲۹ مارس سال ۲۰۱۰ شرکت سیمنتک شهر شائوژینگ چین را به عنوان پایتخت بدافزار در دنیا معرفی کرد.
مایکروسافت در می ۲۰۱۱ گزارش داد که از هر ۱۴ دانلود در اینترنت یکی شامل بدافزار است. به ویژه شبکههای اجتماعی و فیس بوک در حال مشاهده افزایش تاکتیکهای جدید برای ضربه زدن به رایانهها هستند.
بدافزار با یک نرمافزار معیوب یعنی نرمافزاری قانونی ولی شامل اشکالات مضر، تفاوت دارد. گاه بدافزار به صورت یک نرمافزار سالم و صحیح طراحی میشود و حتی ممکن است از یک سایت رسمی بیاید. بنابراین برخی از برنامههای امنیتی مانند مکافی ممکن است بدافزار را یک برنامهٔ «به طور بالقوه ناخواسته (به انگلیسی: Potentially Unwanted Programs)» بنامد. اگرچه یک ویروس رایانهای نیز بدافزاری است که خود را باز تولید میکند، اما غلب به اشتباه به همهٔ بدافزارها ویروس اطلاق میشود.
از انواع بدافزارها میتوان به ویروسها، کرمها، اسبهای تروآ، جاسوسافزارها، آگهیافزارها، روتکیتها و هرزنامهها اشاره کرد.
مقاصد
بسیاری از برنامههای آلوده کنندهٔ اولیه، از جمله اولین کرم اینترنتی و تعدادی از ویروسهای سیستم عامل داس (به انگلیسی: DOS)، به قصد آزمایش یا سرگرمی نوشته شدند. آنها عموماً به مقاصد بیضرر یا فقط به قصد آزار بودند، تا اینکه بخواهند خسارات جدی به سیستمهای رایانه وارد کنند. در برخی موارد سازنده نمیتوانست تشخیص دهد که چقدر کارش میتواند مضر باشد.
برنامهنویسان جوان وقتی دربارهٔ ویروسها و ترفندهایش میآموختند، تنها به منظور تمرین یا به این قصد که ببینند چقدر شیوع پیدا میکند، آنها را مینوشتند. در سال ۱۹۹۹ ویروسهای شایعی مانند ویروس ملیسا (به انگلیسی: Melissa) و ویروس دیوید (به انگلیسی: David) تنها به قصد سرگرمی نوشته شده بودند. اولین ویروس تلفن همراه در سال ۲۰۰۴ با نام ویروس کابیر (به انگلیسی: Cabir) بر روی تلفنهای همراه منتشر شد.
با این حال مقاصد سوء به منظور خرابکاری را میتوان در برنامههایی یافت که برای ایجاد آسیب به سیستم رایانهای و یا از دست رفتن اطلاعات، طراحی شدهاند. بسیاری از ویروسهای سیستم عامل داس، با این هدف طراحی شدند تا فایلهای موجود در یک دیسک سخت را نابود کنند یا فایلهای سیستمی را با نوشتن اطلاعات نادرست بر روی آنها دچار اختلال کنند.
از زمان گسترش دسترسی به اینترنت پر سرعت، بدافزارهایی به منظور ایجاد سود طراحی شدهاند. به عنوان مثال از سال ۲۰۰۳، اغلب ویروسها و کرمهای رایانهای، طراحی شدند تا کنترل رایانههای کاربران را به منظور بهرهگیری در بازار سیاه به کار گیرند.
بدافزارهای مسری: ویروسها و کرمها
انواع بدافزارها، ویروسها و کرمها هستند که به خاطر نحوهٔ شیوعشان شناخته میشوند. عبارت ویروس کامپیوتری به برنامهای اطلاق میشود که نرمافزار قابل اجرایی را آلوده کرده باشد و هنگامی که اجرا میشود، سبب شود که ویروس به فایلهای قابل اجرای دیگر نیز منتقل شود. ویروسها ممکن است قابلیت حمل یک بار اضافی را نیز داشته باشند، که میتواند اعمال دیگر نیز انجام دهد. این اعمال اغلب خرابکارانه هستند. از سوی دیگر یک کرم برنامهای است که به طور فعالانه خود را روی یک شبکه منتقل میکند تا رایانههای دیگر را نیز آلوده سازد. کرمها نیز قابلیت حمل یک بار اضافی را دارند.
تعریفهای بالا نشان میدهد که تفاوت ویروس و کرم در این است که یک ویروس برای شیوع نیاز به دخالت کاربر دارد، در حالی که یک کرم خود را به طور خودکار و از طریق شبکه گسترش پیدا میکند. در نتیجه آلودگیهایی که از طریق ایمیل یا فایلهای مایکروسافت ورد (به انگلیسی: مایکروسافت ورد) منتقل میشوند، ویروس شناخته میشوند، زیرا باید دریافتکنندهٔ فایل یا ایمیل آن را باز کند تا سیستم آلوده شود. برخی نویسندگان در رسانههای محبوب نیز متوجه این تمایز نیستند و از این عبارتها به اشتباه در جای یکدیگر استفاده میکنند.
مخفی کارها: اسبهای تروآ، روتکیتها و بکدُورها
اسبهای تروآ: (به انگلیسی: Trojan horses)
یک برنامه خرابکار برای اینکه بتواند به اهدافش برسد باید قادر باشد که اجرا شود بدون آنکه توسط کاربر یا مدیر سیستم رایانه خاموش یا پاکسازی شود. مخفی کاری همچنین این امکان را میدهد که بدافزار در اولین مکان نصب شود. وقتی یک برنامه خرابکار خود را به شکل چیز بی ضرر یا مطلوب در میآورد، کاربران ممکن است تشویق شوند تا آن را بدون آنکه بدانند چه میکند، نصب کنند. این، ترفندِ اسب تروآ است.
به بیان دیگر، یک اسب تروآ برنامهای است که کاربر را ترغیب میکند تا اجرایش کند در حالی که قابلیت خرابکاریش را مخفی میکند. آثار منفی ممکن است بلافاصله آغاز شوند و حتی میتوانند منجر به آثار نامطلوب فراوانی گردند. از جمله حذف کردن فایلهای کاربر یا نصب نرمافزارهای خرابکار یا نا مطلوب بیشتر. اسبهای تروآ برای آغازسازی شیوع یک کرم استفاده میشوند.
یکی از مرسوم ترین راههایی که جاسوس افزارها توزیع میشوند، از طریق یک اسب تروآ که به عنوان یک قطعه از یک نرمافزار مطلوب که کاربر آن را از اینترنت دانلود میکند، است. وقتی که کاربر نرمافزار را نصب میکند جاسوس افزار نیز در کنارش نصب میشود. برای مثال اسب تراوا در غالب یک نرمافزار دانلودنصب میشود و به صورت مستقل از نرمافزار اصلی یا مرتبط با آن شروع به دانلود برنامه و مدیاها گاهی با مضامین مستهجن میکند. مثال اخیر تروجان فوق سری نرمافزارهایی با پسوند finder میباشد.
نویسندگان جاسوس افزار سعی میکنند به صورت قانونی عمل کنند، ممکن است رفتار جاسوس افزار را در عباراتی مبهم در توافق نامه با کاربر بیاورند و البته کاربران بعید است که این توافق نامه را بخوانند یا بفهمند. تروآها به صورت عمده به منظور کارهای تجاری استفاده میشوند.
رد گم کن:(به انگلیسی: Rootkits)
رد گم کن واژه مصوب فرهنگستان زبان و ادب فارسی برای (به انگلیسی: Rootkits) است. هنگامی که یک برنامهٔ خرابکار روی یک سیستم نصب میشود بسیار مهم است که مخفی باقی بماند تا از تشخیص و نابودی در امان باشد. همین وضعیت دربارهٔ یک مهاجم انسانی که بطور مستقیم وارد یک رایانه میشود برقرار است. ترفندهایی که به عنوان روتکیتها شناخته میشوند اجازه این مخفی کاری را میدهند. آنها این کار را با اصلاح سیستم عامل میزبان انجام میدهند به نحوی که بدافزار از دید کاربر مخفی بماند. روتکیتها میتوانند از این که یک پروسهٔ خرابکارانه در لیست پروسههای سیستم دیده شود ممانعت کنند، یا مانع خوانده شدن فایلهای آن شوند. در ابتدا یک روتکیت مجموعهای از ابزارها بود که توسط یک مهاجم انسانی بر روی یک سیستم یونیکس نصب میشد که به مهاجم اجازه میداد تا دسترسی مدیریتی داشته باشد. امروزه این عبارت بطور عمومی تر برای فرایندهای مخفی سازی در یک برنامهٔ خرابکار استفاده میشود.
بکدُرها:(به انگلیسی: Backdoors)
یک بکدُر روشی است برای خنثی سازی رویههای معمول تایید اعتبار. وقتی یک سیستم دارای چنین رویههایی باشد یک یا چند بکدُر ممکن است نصب شوند تا دسترسیهای آتی را آسان تر سازد. بکدُرها ممکن است حتی پیش از یک نرمافزار خرابکار نصب شوند تا به مهاجمان اجازهٔ ورود دهند.
دیگر بدافزارها
جاسوسافزارها
جاسوسافزارها (Spyware) بدافزارهایی هستند که بر روی رایانهٔ کاربر نصب میشوند و بدون اطلاع وی، اطلاعات مختلف در مورد او را جمعآوری میکنند. اکثر جاسوسافزارها از دید کاربرها مخفی میمانند و تشخیص و پیدا کردن آنها در اغلب موارد مشکل است. برخی از جاسوسافزارها مانند کیلاگرها ممکن است توسط مسئول یک سازمان و یا شرکت بر روی رایانهها نصب شوند تا رفتار کاربران قابل ارزیابی و بررسی باشد.
جاسوسافزارها هر گونه اطلاعاتی را میتوانند جمعآوری کنند. این اطلاعات میتواند اطلاعات شخصی یک کاربر مانند گشت و گذارهای وی بر روی اینترنت و یا مشخصات حسابهای مختلف وی مانند رمز عبور پست الکترونیکی و... باشد. علاوه بر این، جاسوسافزارهای میتوانند در کنترل رایانه توسط کاربر اختلال ایجاد کنند. به عنوان مثال، جاسوسافزارهای میتوانند کاربر را به بازدید از یک صفحهٔ خاص اینترنتی مجبور کنند و یا اینکه با تغییر تنظیمات رایانهٔ وی، باعث کاهش سرعت اینترنت و دسترسی غیرمجاز به رایانهٔ وی شوند. وباید توجه داشت که نرمافزارِDjyjji.3درست راهاندازی شود.
آگهیافزار
آگهیافزار یا برنامههای تبلیغاتی (Adware): اینگونه برنامهها همانند جاسوسافزارها دارای اثر تخریبی نمیباشند و وظیفه آنها بازکردن صفحات خاص اینترنتی جهت اهداف تجاری و تبلیغی است.
جکها
جکها (Joke) برنامههایی هستند که ادعا میکنند در حال انجام عملیاتی تخریبی بر روی سیستم شما میباشند ولی در واقع اینگونه نبوده و کار آنها چیزی جز یک شوخی ساده نمیباشد. متأسفانه برخی کاربران به سادگی تحت تأثیر جکها قرار گرفته و با تلاش برای از بین بردن چیزی که مخرب نیست باعث ایجاد تخریب بیشتری میشوند.
کلک
کلک (Hoax): این برنامهها با سوء استفاده از کم بودن اطلاعات تخصصی کاربران، آنها را فریب داده و با دستورات و توصیههای اشتباه باعث میشوند که کاربر شخصاً کاری تخریبی بر روی سیستم خود انجام دهد. به عنوان مثال وانمود میکنند که فایلی خاص در مسیر سیستمعامل یک برنامه خطرناک است و باید توسط کاربر حذف شود. غافل از اینکه این فایل سیستمی بوده و برای عملکرد درست سیستمعامل، وجود آن لازم است.
شمارهگیرها
شمارهگیر (Dialer): اینگونه برنامهها وظیفهشان ارتباط دادن کاربر از طریق خط تلفن به سرورهایی در دیگر کشورها برای دسترسی مستقیم به اطلاعات آنها میباشد. این سرورها معمولاً مربوط به سایتهای غیراخلاقی بوده و برقراری ارتباط با آنها از طریق خط تلفن باعث هزینه بسیار زیاد مالی میگردد.
بارگیرها
بارگیر (Downloader): کار اینگونه برنامهها Download کردن بد افزارها و اجرای آنها است
کلیککنندهها
کلیککننده (Adclicker): اینگونه برنامهها لینک صفحات تبلیغاتی را دنبال نموده و به این طریق حالت کلیک شدن بر روی آن صفحه تبلیغاتی خاص را شبیه سازی میکنند و باعث بالا رفتن hit آن میشوند.
درهای پشتی
درهای پشتی (Backdoors) ابزاری برای نفوذگرها هستند که به وسیله آنها میتوانند سیستمهای دیگر را در کنترل خود درآورند. درهای پشتی درون شبکه، پورتهای TCP یا UDP را باز میکنند و شروع به گوش کردن نموده تا دستورات نفوذگرها را اجرا کنند. درهای پشتی از جهت نداشتن قابلیت تکثیر شبیه ترویاها هستند.
گذرواژهدزدها
گذرواژهدزد (Password-Stealer): اینگونه برنامهها که نوعی ترویا هستند کارشان دزدی پسورد از روی سیستمها و ارسال آنها برای نفوذگرها است.
بهرهکشها
بهرهکشها (Exploits) کدهای مخربی هستند که با استفاده از آسیب پذیریهای یک سیستم امکان دسترسی از راه دور به آن سیستم را فراهم میکنند.
کیلاگر
کلیدنگار یا کیلاگر (Keylogger) برنامههایی هستند که با قرار گرفتن در حافظه از کلیدهای زده شده توسط کاربر گزارش گرفته و در قالب یک فایل برای نفوذگر میفرستند. البته باید بدانیم که کیلاگرها به صورت سختافزاری نیز وجود دارند.
برنامههای ضد بدافزار
با افزایش حملات بدافزارها توجهها از محافظت در برابر ویروسها و جاسوس افزارها به سمت محافظت از بدافزارها جلب شدهاست. در نتیجه برنامههای مخصوصی برای مبارزه با آنها توسعه یافتهاست. برنامههای ضد بدافزار از دو طریق با بدافزار نبرد میکند:
۱ - آنها محافظت بی درنگ را در برابر نصب بدافزار روی یک رایانه میتوانند تامین کنند، در این نوع از محافظت نرمافزار ضد بدافزارتمام اطلاعات ورودی از شبکه را اسکن میکند تا ازورود بدافزارها و تهدیدهایی که با آنها میآیند جلوگیری به عمل آورد. محافظت بی درنگ از بدافزار مشابه محافظت بی درنگ از ویروس عمل میکند. یعنی نرمافزار فایلها را در زمان دانلود آن اسکن نموده و از فعالیت هر چیزی که بد افزار شناخته شود ممانعت به عمل میآورد.
۲-برنامههای ضد بدافزار میتوانند تنها به منظور تشخیص و پاکسازی بدافزارهایی که قبلاً روی یک رایانه نصب شدهاند، مورد استفاده قرار گیرند. این نوع از محافظت در برابر بدافزار عمدتاً ساده تر و محبوب تر است. این نوع از ضد بدافزارها محتوای رجیستری ویندوز، فایلهای اجرایی سیستم و برنامههای نصب شده روی یک رایانه را اسکن میکنند و لیستی از تهدیدهای پیدا شده را تهیه میکنند، که به کاربر اجازه میدهد که چه فایلهایی را حذف یا نگاه دارد.
جاسوسافزار
اینگونه برنامهها مستقیماً دارای اثر تخریبی نیستند و وظیفهٔ آنها جمعآوری اطلاعات از روی رایانه کاربر و نیز تحت نظر قرار دادن اعمال وی هنگام کار با رایانه و اینترنت است. در نهایت این اطلاعات برای مقاصد خاص فرستاده میشود تا از آنها جهت اهداف تجاری و تبلیغی ونظامی و نظارتی و... استفاده گردد.
تعریف
جاسوس افزار مانند ویروس و کرم نوعی بدافزار است. بدافزار به برنامههایی گفته میشود که توانایی آسیب رساندن به یک سیستم کامپیوتری یا شبکهای از کامپیوترها را دارند. جاسوس افزار برنامهای است که بدون اجازه کاربر روی سیستم کامپیوتری وی نصب شده، کنترل آن را از فرد میگیرد و اطلاعات شخصی وی را برای یک شخص ثالث میفرستد.
تاریخچه
واژه جاسوس افزار برای اولین بار در ۱۶ اکتبر سال ۱۹۹۵ در متنی درمورد مدل تجارتی ماکروسافت استفاده شد. در سال ۲۰۰۰ آقای گریگور فرند در توصیف دیوار آتش شخصی خود به نام زون آلارم از واژه جاسوس افزار استفاده کرد. اما استفاده رسمی از این کلمه بعد از سال ۲۰۰۱ بود زمانی که آقای استیو گیبسون رئیس مرکز تحقیقات گیبسون متوجه نصب یک نرمافزار تبلیغاتی روی سیستم کامپیوتری خود شد که اطلاعات شخصی او را برای فرد دیگری ارسال میکرد. به همین دلیل وی یک برنامه ضدجاسوسی طراحی کرد و آن را اوپت اوت نامید.
انواع
در یک تقسیم بندی کلی نرمافزارهای جاسوسی را میتوان به دو دسته تقسیم کرد: ۳-۱- نرمافزارهای جاسوسی خانگی نرمافزاری که معمولاً توسط صاحبان کامپیوترها به منظورآگاهی یافتن از تاثیرات اینترنت بر شبکههای کامپیوتری خودشان خریداری و نصب میگردد. مدیران از این نرمافزار برای آگاهی از فعالیتهای کارمندان استفاده میکنند. بعضی افراد هم برای اطلاع از فعالیتهای سایر اعضای خانواده این روش را به کار میبرند. مانند مشاهده محتویات اتاقهای گفتگو توسط والدینی که فرزندانشان در آنها شرکت میکنند. همچنین این نوع جاسوس افزار میتواند توسط یک شخص ثالث بدون آگاهی صاحب کامپیوترروی سیستم وی نصب شود و اطلاعات شخصی وی را جمع آوری کند. ۳-۲- نرمافزارهای جاسوسی تجاری نرمافزاری است که شرکتها برای تعقیب فعالیتهای کاربران در اینترنت استفاده میکنند. این شرکتها که وظیفه نصب جاسوس افزار روی سیستمهای کامپیوتری را دارند اغلب اطلاعات حاصل را به بازاریابان میفروشند و آنها کاربر را با تبلیغات خاص که با علائق وی مطابقت دارد و برایش جذاب است مورد هدف قرارمی دهند.
راههای نفوذ
پنجرههای پاپ آپ :
پنجرههای کوچکی که به هنگام بازدید از سایت در برابر کاربر ظاهر میشوند و حاوی پیامهای مختلفی برای فریب اشخاص میباشند. در این پنجرهها اغلب دکمههای مختلفی مانند قبول، لغو، بستن و... وجود دارد ولی هیچ کدام از آنها کار اصلی خود را انجام نمیدهند و با فشردن هر کدام از این دکمهها جاسوس افزار روی سیستم نصب میشود.
نرمافزارهای ضد جاسوس افزار:
بعضی نرمافزارهای ضدجاسوسی به جای از بین بردن جاسوس افزار آن را روی سیستم نصب میکنند. از برنامههای مطمئن و معروف برای بالا بردن امنیت سیستم خود استفاده کنید.
برنامههای رایگان اینترنتی:
امروزه بسیاری از کاربران اینترنت بنا بر نیاز خود برنامههایی را که به صورت رایگان روی اینترنت قرار گرفته دانلود و نصب میکنند. اغلب صاحبان این برنامهها در ازای دریافت مبلغی یا بااهداف تجاری دیگر کد جاسوس افزار را در برنامه خود قرار میدهند و به هنگام نصب آن نرمافزار جاسوس افزار نیز روی سیستم کامپیوتری قرار گرفته و شروع به کار میکند
سی دیها و فلشها:
حافظههای جانبی قابل حمل مانند سی دی و فلش به این علت که بین سیستمهای زیادی جا به جا میشوند حاوی برنامههای مخرب هستند. ۴-۵- سوء استفاده از ضعف امنیتی اینترنت اکسپلورر بعضی از طراحان برنامههای مخرب که با ضعفهای امنیتی اینترنت اکسپلورر آشنا باشند میتوانند در کد صفحه وب خود دستورهایی قرار دهند که به هنگام بازکردن آن صفحه با اینترنت اکسپلورر جاسوس افزار روی کامپیوتر نصب شود
ویروسها:
برخی ویروسها حاوی کدهایی برای نصب جاسوس افزارهستند. == تمامی نشانه های یک جاسوس افزار
تشخیص آلوده بودن یک کامپیوتر به جاسوس افزار کار سختی نیست. سیستم آلوده نشانههای سادهای دارد از جمله: ۵-۱- تغییر ناگهانی صفحه خانگی مرورگر بعضی از جاسوس افزارها که برای اهداف تبلیغاتی طراحی میشوند بدون اجازه کاربر صفحه خانگی مرورگر اینترنتی را تغییر میدهند. بسیاری از افرادی که سیستم آنها آلوده شده به طور مکرر صفحه خانگی مرورگر را مطابق میل خود تنظیم نموده و با تغییر دوباره آن مواجه میشوند. ۵-۲- ایجاد نوار ابزارهای جدید از نشانههای دیگر وجود جاسوس افزار ظاهر شدن نوار ابزارهای جدید بدون خواست کاربر در پنجره مرورگر است.
ظاهر شدن مداوم پنجرههای پاپ آپ :
اگر فرد به صورت مکرر و مداوم با پنجرههای پاپ آپ مواجه شود امکان وجود جاسوس افزار در سیستم کامپیوتری وی زیاد است.
تغییر آدرس توسط مرورگر:
بعضی جاسوس افزارها طوری تنظیمات مرورگر را تغییر میدهند که برخلاف میل کاربر و بدون توجه به آدرس وارد شده در نوار آدرس و یا نوار جستجو صفحاتی را به وی نشان دهد که در جهت اهداف تبلیغاتی طراحان آن جاسوس افزار است.
ایجاد آیکونهای جدید روی صفحه نمایش:
وجود آیکونهای جدید و ناشناخته روی صفحه نمایش بدون خواست کاربر از نشانههای وجود جاسوس افزار است. عدم کارایی بعضی کلیدهای صفحه کلید: جاسوس افزارها کارایی کلیدهای صفحه کلید را تغییر میدهند به طوری که برای مثال کلید تب در پنجره مرورگر به جای جا به جایی روی پیوندها کار دیگری انجام دهد.
عملکرد کند کامپیوتر:
از آنجایی که جاسوس افزار یک برنامهاست برای اجرا شدن به حافظه و پردازنده نیاز دارد و سرعت کامپیوتر را کاهش میدهد.
خاموش شدن دیوار آتش و ضدویروس:
جاسوس افزار برای این که به راحتی اطلاعات کاربر را برای شخص ثالث ارسال کند و همچنین تنظیمات سیستم کامیوتری را تغییر دهد اغلب بدون اطلاع کاربر دیوار آتش و ضدویروس را غیر فعال میکند تا به اهداف خود دست یابد.
مشکلات
سرقت اطلاعات شخصی:
جاسوس افزارها میتوانند با دست یابی به کوکیها عادتهای اینترنتی، اطلاعات کارتهای اعتباری و بسیاری اطلاعات دیگر شما را جمع آوری کند همچنین با ثبت کردن کلیدهای فشرده شده توسط شما روی صفحه کلیدرمزهای عبور شما را به دست آورده و در اختیار افراد دیگر قرار دهند.
تاثیر منفی روی عملکرد کاربر:
ظاهر شدن مداوم پنجرههای پاپ آپ، ایجاد نوار ابزارها و آیکونهای جدید و ناشناخته، کاهش سرعت کامپیوتر، کاهش امنیت افراد در استفاده از اینترنت و سایر مشکلاتی که جاسوس افزار ایجاد میکند بر عملکرد کاربران تاثیر میگذارد.
کاهش کارایی سیستم:
همانطور که گفته شد چون جاسوس افزار نوعی برنامهاست حافظه و پردازنده کامپیوتر را مصرف میکند و کارایی سیستم را کاهش میدهد.
استفاده از پهنای باند:
جاسوس افزار برای ارسال اطلاعات نیاز به برقراری ارتباط از طریق اینترنت دارد و باید از پهنای باند استفاده کند.
سختافزار رایانه
سختافزار رایانه مجموعهای از اجزای فیزیکی است که میتوان آنها را لمس کرد (مشاهده کرد) و یک رایانه را تشکیل میدهند مانند صفحه نمایش، صفحه کلید، حافظههای رایانه، دیسک سخت، ماوس، چاپگرها، سیپییو، کارت گرافیک، کارت صدا، حافظه، مادربورد و چیپها. در مقابل آن نرمافزار قابل لمس نیست. نرمافزار مجموعهای از ایدهها، مفاهیم و نمادها است. ترکیب سختافزار و نرمافزار یک سیستم محاسباتی قابل استفاده را تشکیل میدهند.
تعریف صنعتی
سختافزار بخش مادی، قابل لمس و ابزاری هر مجموعه یا سیستم است. سختافزار معمولاً به قطعات و یراقآلات فلزی و پلاستیکی تشکیل دهنده مجموعه گفته میشود. لازم به توضیح است که برق نیز جزو سختافزار حساب میشود.
تعریف رایانه
در دانش رایانه به مجموع مدارهای الکترونیکی، اجزای فیزیکی و مکانیکی قابل لمس و مشاهده در یک رایانه سختافزار میگوییم. همچنین به بخش غیرقابل لمس مانند سیستمعامل و برنامههای رایانهای، نرمافزار اطلاق میگردد.
فهرست سختافزارها
بُردِ مادر یا برد اصلی (مادربورد)
نمایشگر (مانیتور)
جعبه رایانه (کیس)
صفحهکلید (کیبورد)
موشواره (ماوس)
چاپگر (پرینتِر)
پویشگر (اسکنر)
واحد پردازش مرکزی (سیپییو یا پردازنده)
فلاپیدیسک
دیسک سخت
مودم
دیسکگردان نوری (درایو نوری) (CD و DVD)
بلندگو
یو اس بی
کارت صدا
کارت گرافیک
قلم نوری
هدفون (دوگوشی)
کارت تلویزیون و رادیو
دوربین (وبکم)
میکروفون
هدست
برنامه
برنامه رایانهای رشته دستورالعمل هایی است که توسط کامپیوتر قابل اجرا میباشد. این اصطلاح میتواند به کد اصلی یا نگارش اجرایی آن (زبان ماشین) نیز اطلاق گردد. برنامههای کامپیوتر میتوانند پایانپذیر یا پایان ناپذیر باشند. در برنامههای کامپیوتری هدف اجرای روالی خاص جهت رسیدن به مقصودی خاص می باشد.
انواع برنامههای رایانهای
برنامههای رایانهای از تنوع زیادی برخوردارند. از جمله میتوان به این موارد اشاره کرد:
سیستمعامل
برنامههای کاربردی
ویروسهای رایانهای
ویروس رایانهای
تعریف ویروس
ویروس، یک نوع از بدافزار است که در اغلب مواقع بدون اطلاع كاربر اجرا شده و تلاش میکند خودش را در یک کد اجرایی دیگر کپی کند. وقتی موفق به انجام این کار شد، کد جدید، آلوده نامیده میشود. کد آلوده وقتی اجرا شود، به نوبهی خود کد دیگری را میتواند آلوده کند. این عمل تولید مثل یا کپیسازی از خود بر روی یک کد اجرایی موجود، ویژگی کلیدی در تعریف یک ویروس است. معمولاً کاربران کامپیوتر به ویژه آنهایی که اطلاعات تخصصی کمتری درباره کامپیوتر دارند، ویروسها را برنامههایی هوشمند و خطرناک میدانند که خود به خود اجرا و تکثیر شده و اثرات تخریبی زیادی دارند که باعث از دست رفتن اطلاعات و گاه خراب شدن کامپیوتر میگردند در حالیکه طبق آمار تنها پنج درصد ویروسها دارای اثرات تخریبی بوده و بقیه صرفاً تکثیر میشوند. بنابراین یک ویروس رایانهای را میتوان برنامهای تعریف نمود که میتواند خودش را با استفاده از یک میزبان تکثیر نماید. بنابر این تعریف اگر برنامهای وجود داشته باشد که دارای اثرات تخریبی باشد ولی امکان تکثیر نداشته باشد، نمیتوان آنرا ویروس نامید. بنابراین ویروسهای رایانهای از جنس برنامههای معمولی هستند که توسط ویروسنویسان نوشته شده و سپس به طور ناگهانی توسط یک فایل اجرایی و یا جا گرفتن در ناحیه سیستمی دیسک، فایلها و یا کامپیوترهای دیگر را آلوده میکنند. در این حال پس از اجرای فایل آلوده به ویروس و یا دسترسی به یک دیسک آلوده توسط کاربر دوم، ویروس به صورت مخفی نسخهای از خودش را تولید کرده و به برنامههای دیگر میچسباند و به این ترتیب داستان زندگی ویروس آغاز میشود و هر یک از برنامهها و یا دیسکهای حاوی ویروس، پس از انتقال به کامپیوترهای دیگر باعث تکثیر نسخههایی از ویروس و آلوده شدن دیگر فایلها و دیسکها میشوند. لذا پس از اندک زمانی در کامپیوترهای موجود در یک کشور و یا حتی در سراسر دنیا منتشر میشوند. از آنجا که ویروسها به طور مخفیانه عمل میکنند، تا زمانی که کشف نشده و امکان پاکسازی آنها فراهم نگردیده باشد، برنامههای بسیاری را آلوده میکنند و از این رو یافتن سازنده و یا منشاء اصلی ویروس مشکل است.
تاریخچه
اولین تحقیق واقعی علمی و آکادمیک بر روی ویروسها توسط فرد کوهن در سال 1983، با نام ویروس که توسط لِن آدلمن ابداع شده بود، انجام شد. بعضاً از کوهن به عنوان «پدر ویروسهای کامپیوتری» نام برده میشود، اما واقعاً ویروسهایی بودند که قبل از شروع تحقیقات او تولید شده بودند. ویروس Elk Cloner نوشته شده توسط ریچ اسکرنتا در سال 1982 در گردش بود و ویروسهای تولید شده توسط جو دلینگر نیز بین سالهای 1981 تا 1983 ساخته شده بودند؛ که همهی آنها برای پلتفرمهای Apple II بودند. برخی منابع یک نقص فنی در Arpanet را در سال 1980 به عنوان اولین ویروس ذکر میکنند، اما آن فقط یک کد قانونی و مجاز بود که اشتباه کار میکرد و تنها مسألهای که ایجاد میکرد این بود که دادهها را در بستههای شبکه پخش میکرد. ویروسهای گریگوری بنفورد، تنها به به داستانهای علمیاش ختم نشد. او در سال 1969 ویروسهای غیر مخرب خود را در جایی که امروزه «آزمایشگاه ملی لیوِرمور لارنس» خوانده میشود و در Arpanet اولیه تولید و منتشر کرد.
میزبان ویروس
ویروس هم مانند هر برنامه کامپیوتری نیاز به محلی برای ذخیره خود دارد. ولی این محل باید به گونهای باشد که ویروسها را به وصول اهداف خود نزدیکتر کند. همان گونه که قبلاً ذکر شد اکثر ویروسها به طور انگلوار به فایلهای اجرایی میچسبند و آنها را آلوده میکنند. اصولاً میتوان فایلها را به دو گونه کلی «اجرایی» و «غیر اجرایی» تقسیم کرد که عموم ویروسها در فایلهای اجرایی جای گرفته و آنها را آلوده میکنند و واقعاً کمتر ویروسی یافت میشود که در یک فایل غیراجرایی قرار بگیرد و بتواند از طریق آن تکثیر شود.
لازم به ذکر است که بعضی از فایلها را شاید نتوان ذاتاً اجرایی نامید اما چون اینگونه فایلها میتوانند حاوی قسمتهایی اجرایی باشند، لذا آنها را از نوع اجرایی در نظر میگیریم. از این نوع فایلها میتوان به فایلهای اچتیامال و مستندات برنامههای اداره اشاره کرد که به ترتیب ممکن است شامل اسکریپت و ماکرو باشند. اسکریپتها و ماکروها قسمتهایی اجرایی هستند که در دل این فایلها قرار گرفته و کار خاصی را انجام میدهند.
در ذیل فهرست پسوندهای رایج فایلهای اجرایی ارائه شده است و اکثر نرمافزارهای ضد ویروس در حالت عادی (بدون تنظیمات خاص) این فایلها را ویروسیابی میکنند (البته در برخی برنامههای ضد ویروس ممکن است برخی پسوندها حذف یا اضافه شوند) :
.com ، .exe ، .dll ، .ovl ، .bin ، .sys ، .dot ، .doc ، .vbe ، .vbs ، .hta ، .htm ، .scr ، .ocx ، .hlp ، .eml
بنابراین یکی از اصلیترین میزبانهای ویروس، فایلهای اجرایی هستند. از طرف دیگر برخی ویروسها نیز از سکتور راهانداز (Boot Sector) و جدول بخشبندی دیسک (Master Boot Record یا Partition Table) به عنوان میزبان استفاده میکنند. سکتور راهانداز واحد راهاندازی سیستمعامل است که در سکتور شماره صفر دیسکت فلاپی و یا درایوهای منطقی یک دیسک سخت قرار دارد و جدول بخشبندی شامل اطلاعات تقسیمبندی دیسک سخت میباشد که آن نیز در سکتور شماره صفر دیسک سخت قرار دارد. اینگونه ویروسها با قرار گرفتن در یکی از این دو محل، هنگام راهاندازی کامپیوتر، اجرا شده و در حافظه سیستم مقیم میشوند و تا زمان خاموش کردن کامپیوتر و یا راهاندازی دوباره، همانجا مانده و فلاپیها و یا دیسکهای سخت دیگر را آلوده میکنند.
عملکرد ویروس
همانطور که گفته شد تنها پنج درصد از ویروسها دارای اثرات تخریبی هستند و بقیه صرفاً تکثیر میشوند. با توجه به این مطلب این پرسش مطرح است که چرا ویروسها به عنوان یک معضل شناخته میشوند و باید با آنها مبارزه کرد؟ پاسخ به این پرسش در موارد زیر خلاصه گردیده است:
۱ - بسیاری از ویروسها دارای اثراتی هستند که هرچند تخریبی نمیباشد ولی میتواند برای کاربر ایجاد مزاحمت کند. مثلاً ممکن است پیغامی نمایش دهد، باعث ریزش حروف صفحه نمایش به پایین شود یا اینکه یک آهنگ پخش نماید. علاوه بر این برخی از ویروسها به علت اشکالات نرمافزاری که ناشی از عدم دقت ویروسنویس میباشد، ممکن است دارای اثراتی غیرقابل پیشبینی باشند که گاهی این اثرات میتوانند تخریبی نیز باشند. از نقطه نظر کاربر اهمیتی ندارد که خسارت ایجاد شده بوسیله یک ویروس، یک کار عمدی پیشبینی شده توسط نویسنده ویروس بوده باشد یا یک اشتباه برنامهنویسی.
۲ - برخی از ویروسها در حافظه کامپیوتر مقیم شده و از این طریق عملیات تکثیر خود را انجام میدهند. این عمل ممکن است به گونهای باشد که جایی برای اجرای برنامههای دیگر نماند و یا باعث ایجاد تأخیر یا وقفه در حین عملیات سیستم اعم از اجرای برنامهها و یا راهاندازی کامپیوتر گردد.
۳ - فرض کنید که شما یک ویروس بر روی کامپیوتر خود داشته باشید. بسیار احتمال دارد که این ویروس به صورت غیرعمدی به یک دوست، همکار یا مشتری منتقل شود که این امر ممکن است باعث از بین رفتن اعتماد آنها به شما و شرکت شما شود.
۴ - ویروسها و برنامههای مخرب زیادی وجود دارند که اقدام به سرقت اطلاعات و کلمات عبور کاربر مینمایند. بعضی از اینگونه برنامهها با مقیم شدن در حافظه از عباراتی که توسط شما تایپ میشود گزارش گرفته و پس از اتصال رایانه شما به اینترنت این اطلاعات را برای مقصد خاصی ارسال میکنند. گیرنده این اطلاعات میتواند به راحتی از آنها سوء استفادههای مختلفی نماید.
علاوه بر همه اینها هیچ ویروسی کاملاً بیضرر نیست و در خوشبینانهترین حالت، آنها وقت شما، وقت پردازنده و فضای دیسک شما را تلف میکنند.
در مورد اثرات تخریبی ویروسهایی که آنها را به صورت عمدی انجام میدهند میتوان به موارد زیر اشاره نمود:
تخریب یا حذف برنامهها و اطلاعات بخشهای مختلف دیسکها.
فرمت کردن دیسکها.
کد کردن اطلاعات و برنامهها.
تخریب اطلاعات حافظه فلش ها.
مزاحمتهای فوق ممکن است به محض فعال شدن ویروس (یعنی قرار گرفتن ویروس در حافظه از طریق اجرای یک برنامه آلوده) و یا در یک تاریخ و زمان خاص و یا حتی با اجرای یک برنامه کاربردی خاص انجام شود.
انواع ویروسها
ارائه یک تقسیمبندی دقیق از ویروسها کار مشکلی است و میتوان ویروسها را به روشهای مختلفی تقسیمبندی کرد. این روشها میتواند بر اساس میزبان ویروس، سیستمعاملی که ویروس میتواند در آن فعالیت کند، روش آلودهسازی فایل و ... باشد. در زیر به برخی از این روشها اشاره میکنیم :
تقسیم بندی ویروسها بر اساس مقصد آلودهسازی:
۱ - ویروسهای فایلی (File Viruses) : ویروسهای فایلی، معمولاً فایلهای اجرایی را آلوده میکنند. فایلهای آلوده به این نوع از ویروسها اغلب (اما نه همیشه) دارای پسوند .com یا .exe هستند.
۲ - ویروسهای ماکرو (Macro Viruses) : ویروسهای ماکرو، مستندات برنامههایی را که از امکان ماکرونویسی پشتیبانی مینمایند (مانند MS Word ، MS Excel و...) آلوده میکنند. فایلهای اینگونه برنامهها اجرایی نیستند ولی درون آنها قسمتهایی اجرایی به نام «ماکرو» وجود دارد که میتواند میزبان مناسبی برای ویروسهای ماکرو باشد.
۳ - ویروسهای بوت و پارتیشن سکتوری (Boot Sector and Partition Table Viruses) : اینگونه ویروسها سکتور راهانداز (Boot Sector) دیسک سخت و دیسکت فلاپی یا جدول بخشبندی دیسکهای سخت را آلوده میکنند. با راهاندازی سیستم از روی دیسکی که به اینگونه ویروسها آلوده شده است، ویروس در حافظه مقیم شده و متعاقباً دیسکهایی را که مورد دسترسی قرار گیرند، آلوده میکند.
۴ - ویروسهای اسکریپتی (Script Viruses) : این ویروسها که اسکریپتهای نوشته شده به زبانهای ویژوال بیسیک یا جاوا میباشند، تنها در کامپیوترهایی اجرا میشوند که بر روی آنها Internet Explorer یا هر مرورگر وب دیگری با توانایی اجرای اسکریپتها، نصب شده باشد و فایلهای با پسوند .html ، .htm ، .vbs ، .js ، .htt یا .asp را آلوده میکنند.
ویروسها جدا از تقسیمبندی فوق، ممکن است در یک یا چند دسته از دستههای زیر نیز قرار بگیرند:
ویروسهای مقیم در حافظه (Memory Resident Viruses) :
اینگونه ویروسها با مقیم شدن در حافظه، هنگام دسترسی به فایلهای دیگر، آنها را آلوده میکنند.
ویروسهای مخفیکار (Stealth Viruses) :
اینگونه ویروسها به روشهای مختلف ردپای خویش را مخفی میکنند. به این معنی که فایلهای آلوده به اینگونه ویروسها به گونهای نشان داده میشود که یک فایل غیرآلوده جلوه کند. به عنوان مثال عموم ویروسها پس از آلوده کردن یک فایل، اندازه آن را افزایش میدهند و یا گاهی تاریخ و زمان ضبط فایل را عوض میکنند. اما ویروسهای مخفیکار میتوانند با روشهای خاص و بدون تغییر وضعیت ظاهری، عملیات خویش را انجام دهند.
ویروسهای کدشده (Encrypting Viruses) :
این ویروسها پس از هر بار آلودهسازی، با استفاده از شیوههای خود رمزی شکل ظاهری خود را تغییر میدهند.
ویروسهای چندشکلی (Polymorphic Viruses) :
اینگونه ویروسها با استفاده از الگوریتمهای خاص، علاوه بر تغییر شکل ظاهری خود، ساختار خود را نیز تغییر میدهند به طوریکه ممکن است جای دستورالعملها و حتی خود دستورالعملها نیز تغییر کنند.
ویروسهای فعالشونده بر اساس رویداد خاص(Triggered Event Viruses) :
ویروسهایی هستند که بخشی از عملیات تخریب خود را در ساعت و یا در تاریخ خاص انجام میدهند. البته باید توجه داشت که تکثیر و آلودهسازی فایلها در تمام اوقات فعال بودن ویروس انجام میشود.
نشانههای وجود ویروس
معمولاً سیستمی که به ویروس آلوده میگردد نشانههایی را از خود بروز میدهد که با دقت در آنها میتوان به ویروسی بودن احتمالی سیستم پی برد. بعضی از این نشانهها در زیر آمده است. اما باید دقت داشت که این نشانهها ممکن است در اثر عوامل غیرویروسی نیز ظاهر گردد. اما اگر کامپیوتر بطور عادی کار میکرده و ناگهان و بدون هیچگونه دستکاری، این علایم را از خود بروز میدهد، احتمال وجود ویروس بیشتر است:
۱ - سیستم در هنگام راهاندازی قفل میکند و احتمالاً پیغامهای غیرمعمول روی صفحه ظاهر میگردد.
۲ - هنگام اجرای برنامهها پیغام کمبود حافظه ظاهر شده و برنامه اجرا نمیگردد.
۳ - در کارچاپگر اختلال ایجاد میشود یا بدون هیچگونه فرمان چاپی شروع به کار میکند.
۴ - امکان دسترسی به برخی از درایوها وجود ندارد.
۵ - هنگام اجرای فایلها، پیغام File is Damaged یا File is Corrupted نمایش داده میشود.
۶ - هنگام اجرای یک فایل، کاراکترها و یا پیغامهای غیرعادی روی صفحه نمایش ظاهر میگردد.
۷ - هنگام کار در محیطهای گرافیکی، تصاویر به هم میریزد.
۸ - اصوات غیرمعمول یا موزیک از بلندگوهای کامپیوتر پخش میشود.
۹ - سیستم هنگام اجرای یک برنامه قفل کرده و حتی گاهی فشردن کلیدهای Ctrl+Alt+Del نیز نمیتواند سیستم را دوباره راهاندازی کند.
۱۰ - اطلاعات بخشی از دیسک سخت و یا تمام آن بطور ناگهانی از بین میرود یا دیسک سخت ناخواسته فرمت میشود.
۱۱ - اندازه فایلهای اجرایی افزایش مییابد.
۱۲ - خواص فایلهای اجرایی تغییر میکند.
۱۳ - سرعت سیستم بطور نامحسوسی کاهش مییابد.
۱۴ - اطلاعات Setup کامپیوتر از بین میرود.
۱۵ - برنامهها مراجعاتی به دیسکت انجام میدهند که قبلاً انجام نمیدادند.
۱۶ - کاهش فضای خالی دیسک بدون اینکه فایلی اضافه شده و یا به محتوای فایلها افزوده شده باشد.
۱۷ - نرمافزارهای مقیم در حافظه با خطا اجرا شده یا اصلاً اجرا نمیشوند.
۱۸ - بعضی برنامهها سعی در برقراری ارتباط با اینترنت را دارند.
۱۹ - هنگام کار با اینترنت مقدار ارسال و دریافت اطلاعات ناخواسته افزایش یافته و سرعت به شدت افت میکند.
۲۰ - نامههای الکترونیکی ناخواسته از روی سیستم ارسال شده و یا دریافت میگردد.
مهندسان نرمافزار طرفدار تکنولوژیها و روشهای عملی بسیار متفاوت و مختلفی هستند، که با هم ناسازگار هستند. این بحث در سالهای دهه ۶۰ میلادی شروع شد و ممکن است برای همیشه ادامه پیدا کند. مهندسان نرمافزار از تکنولوژیها و روشهای عملی بسیار متنوعی استفاده میکنند.
کسانی که کار عملی میکنند از تکنولوژیهای متنوعی استفاده میکنند: کامپایلرها، منابع کد، پردازشگرهای متن. کسانی که کار عملی میکنند از روشهای عملی بسیار متنوعی استفاده میکنند تا تلاشهایشان را اجرا و هماهنگ کنند: برنامهنویسی در دستههای دونفری، بازبینی کد، و جلسات روزانه. هدف هر مهندس نرمافزار بایستی رسیدن به ایدههای جدید خارج از الگوهای طراحی شده قبلی باشد، که باید شفاف بوده و بهخوبی مستند شده باشد.
با وجود رشد فزاینده اقتصادی و قابلیت تولید فزایندهای که توسط نرمافزار ایجاد شده، هنوز هم بحث و جدلهای ماندگار درباره کیفیت نرمافزار ادامه دارند.
ماهیت مهندسی نرمافزار
دیوید پارناس گفتهاست که مهندسی نرمافزار یک شکل از مهندسی است. استیو مککانل گفتهاست که هنوز اینطور نیست، ولی مهندسی نرمافزار باید یک شکل از مهندسی شود. دونالد کنوت گفتهاست که برنامهنویسی یک هنر است.
دیوان فعالیتهای آماری آمریکا مهندسان نرمافزار را به عنوان زیرگروهی از «متخصصان رایانه»، با فرصتهای شغلیای مانند «دانشمند رایانه»، «برنامه نویس» و «مدیر شبکه» دسته بندی کردهاست. BLS تمام مهندسان دیگر این شاخه علمی، که شامل مهندسان سختافزار رایانه نیز هست، را بهعنوان «مهندسان» دسته بندی میکند.
نرمافزار سیستم
نرمافزار سیستم به نرمافزاری در رایانه گفته میشود که به کارکرد سیستم رایانه یا کاربردهای سطح پایین (یا Low Level) رایانه مربوط باشد. این نرمافزارها به ساختار فیزیکی سختافزار رایانه وابسته هستند و در نوشتن آنها از زبانهای سطح پائین مانند زبان اسمبلی استفاده میشود. سیستمعامل و درایورها از نرمافزارهای سیستم هستند. از جمله زبان هایی که برای نگارش نرمافزارهای سیستمی استفاده میشود، زبان برنامه نویسی C میباشد. کار کردن با سی برای برنامه نویسان راحت تر است و آنان این زبان را به اسمبلی ترجیح میدهند. اگر برای نگارش نرمافزار سیستمی مشکل محدودیت فضای سختافزاری داشته باشیم بهتر است با زبان اسمبلی کار کنیم که حجم آن پایین تر است. نرمافزارهای سیستمی به سختافزار وابسته اند.
در برابر نرمافزار سیستم، نرمافزار کاربردی قرار دارد که برای کاربردهای سطح بالا و غیرسیستمی رایانه است و معمولاً به زبانهای سطح بالا نوشته میشود که از جزئیات سختافزاری سیستم مستقل است.
نرمافزار کاربردی
نرمافزار کاربردی (به انگلیسی: Application software) عبارت است از نرمافزاری که با استفادهٔ مستقیم از منابع و قابلیتهای رایانه کاری را مستقیماً برای کاربر انجام میدهد. باید توجه داشت که این عبارت در مقابل عبارت نرمافزار سیستمی معنی پیدا میکند.
نرمافزار سیستمی در مقابل در پسزمینه عمل میکند و خدماتی را فراهم میکند که دیگر نرمافزارها و یا سیستمعامل میتوانند برای انجام کارهای خود از آن استفاده کنند. اما در عوض معمولاً مستقیماً با کاربر عادی در تماس نیست و خدماتی را به او ارایه نمیدهد.
در عمل بیشتر نرمافزارهایی که کاربران با آنها سر و کار دارند از این دسته محسوب میشوند. برای مثال میتوان به نرمافزارهای رومیزی یعنی واژهپردازها، صفحه گستردهها، نرمافزارهای طراحی گرافیکی، بازیهای رایانهای و امثال آنها اشاره کرد.
بسیاری نرمافزارهای کاربردی، برای توسعهدهندگان ابزار رابط برنامهنویسی کاربردی هم فراهم میکنند تا بتوان از قابلیتهای نرمافزار در نرمافزارهای جدید استفاده کرد. برای مثال نرمافزار ادوبی آکروبات هنگام نصب ایپیآی فراهم میکند که برنامهنویس میتواند با استفاده از آن تواناییهای آکروبات را در برنامهٔ خود به کار گیرد.
برای عنوان نمونههای دیگر میتوان به نرمافزارهای پردازش متن، برگههای گسترده (صفحات گسترده) و نرمافزارهای پخش نوا و نما اشاره کرد.
نرمافزار آزاد
نرمافزار آزاد (به انگلیسی: Free software) نرمافزاری است که بههمراه کد منبع توزیع شده و با قوانینی منتشر میشود که آزادی استفاده، مطالعه، ویرایش و انتشار مجددِ کاربران را تضمین میکند. نرمافزارهای آزاد معمولاً با همکاری برنامهنویسهای داوطلب بهعنوان یک پروژه بهوجود میآیند.
نرمافزارهای آزاد با نرمافزارهای مالکیتی (مانند مایکروسافت ویندوز) که آزادی کاربر در استفاده، مطالعه، ویرایش یا انتشار مجدد را در درجههای مختلف محدود میکنند، متفاوت است. این محدودیتها با در نظر گرفتن مجازاتهایی قانونی برای کاربرانی که قوانین آنها را نقض میکنند، بهوجود میآیند. نرمافزارهای مالکیتی عموماً به صورت بستههای اجراپذیر باینری و بدون دسترسی به کد منبع فروخته میشوند که جلوی ویرایش و وصلهکردن نرمافزار توسط کاربر را میگیرد و او را برای بهروزرسانی و پشتیبانی به شرکت نرمافزاری تولید کننده وابسته میکنند. نرمافزارهای آزاد از نرمافزاریهای رایگان که برای استفاده، از کاربر پولی دریافت نمیکنند، نیز متفاوتاند. این نوع نرمافزارها نیز معمولاً تمامی حقوق نرمافزار را برای تولیدکنندهٔ آن محفوظ داشته و جلوی مهندسی معکوس، ویرایش و یا توزیع مجدد توسط کاربر را میگیرند. بنابراین موضوع اصلی نرمافزار آزاد، موضوع آزادی است و نه قیمت آن: کاربران آزادند که هر چه میخواهند با نرمافزار انجام دهند. این آزادی شامل انتشار مجدد نرمافزار بهصورت رایگان و یا با سود نیز میشود. یعنی نرمافزار آزاد میتواند به صورت رایگان و یا در ازای دریافت مبلغی پول در اختیار کاربر قرار بگیرد.
ریچارد استالمن در سال ۱۹۸۵ در زمانی که در حال آغاز پروژهٔ گنو و بهوجود آوردن بنیاد نرمافزارهای آزاد بود، برای اولین بار از عبارت «نرمافزار آزاد» استفاده کرد. براساس تعریف بنیاد نرمافزارهای آزاد کاربران یک نرمافزارِ آزاد، آزاد هستند؛ چون به اجازه گرفتن نیازی ندارند؛ آنها در انجام کارهای دلخواهشان (مانند حق نشر و کپیبرداری) محدود نیستند؛ نیازی به موافقت با هیچ توافقنامهای ندارند؛ و در همان ابتدا نیز با نداشتن کد منبع محدود نبودهاند.
تعریف
طبق تعریف نرمافزار آزاد توسط بنیاد نرمافزارهای آزاد، هر نرمافزاری که آزادیهای زیر را برای کاربرانش فراهم کند به عنوان یک نرمافزار آزاد شناخته میشود:
کاربران باید اجازه داشته باشند که نرمافزار مورد نظر را برای هر قصد و منظوری اجرا کنند.
کاربران باید اجازه داشته باشند کدهای منبع نرمافزار را مطالعه کرده و آن را مطابق با نیازهای خود تغییر دهند. برای رسیدن به این هدف، کدهای منبع نرمافزار باید در اختیار کاربر قرار گیرد.
کاربران باید اجازه داشته باشند نرمافزار را مجدداً منشتر کرده و در اختیار دیگران قرار دهند. این کار میتواند به صورت رایگان و یا در ازای دریافت مبلغی پول صورت گیرد.
اگر کاربری نرمافزار را تغییر داد، باید اجازه داشته باشد آن را مجدداً منتشر کرده و در اختیار دیگران قرار دهد. برای تغییر دادن نرمافزار، لازم است تا کدهای منبع نرمافزار در اختیار کاربر قرار گیرد.
همچنین موسسه پیشگامان متنباز هم تعریف مشابهی از نرمافزار آزاد ارائه میدهد. طبق تعریف این موسسه، نرمافزار بازمتن تنها به معنی در دسترس ساختن کدمنبع نیست. علاوه بر آن مجوز باید ویژگیهای زیر را هم داشته باشد:
نرمافزار باید قابل توزیع مجدد باشد (چه به صورت رایگان، چه در ازای دریافت مبلغی پول)
نرمافزار باید شامل کد منبع باشد و این کد منبع را باید بتوان تغییر داد و مجدداً منتشر کرد.
مجوز نباید در برابر افراد یا گروه خاصی تبعیض قائل شود.
مجوز نباید کاربر را برای رسیدن به یک هدف خاص محدود کند.
مجوز نباید مختص به یک محصول خاص باشد.
مجوز نباید نرمافزارهای دیگری که به همراه نرمافزار مورد نظر عرضه شدهاند را محدود کرده و تحت تاثیر قرار دهد. برای مثال اگر چند نرمافزار بر روی یک دیسک منتشر شدند، مجوز نباید اصراری بر روی متنبازبودن آنها داشته باشد.
مجوز نباید تکنولوژی خاصی را محدود کند.
تاریخچه
در اوایل، نرمافزارها به صورت آزاد منتشر میشدند و برنامهنویسان و شرکتها آنها را به صورت آزادانه در اختیار یکدیگر قرار میداند. در اوایل، تجارت رایانه بیشتر مبتنی بر سختافزار بود و شرکتها درامد خود را بیشتر از راه تولید سختافزار کسب میکردند و هر شرکت، سختافزاری ناسازگار با دیگر شرکتها تولید میکرد. مشتریان، که بیشتر مهندسان و دانشمندان بودند، تشویق میشدند که نرمافزارهای ارائه شده توسط سختافزار را بهبود بخشیده و حتی آن را در اختیار دیگران هم قرار دهند. از آنجا که در آن زمانها سختافزارهای تولید شده توسط شرکتهای مختلف با یکدیگر ناسازگار بود و سختافزار استانداردی وجود نداشت، و همینطور از آنجا که در آن زمان مفسرها و کامپایلرها هنوز جا نیفتاده بودند (که این برنامهها برنامهها را قابل حملتر میکنند)، شانس کمی وجود داشت که نرمافزار مورد نظر بر روی سختافزار شرکت رقیب هم به خوبی اجرا شود.
رفتهرفته که صنعت رایانه پیشرفت کرد و سختافزارها بیشتر استاندارد شدند و همینطور کامپایلرها و مفسرها پیشرفت کردند، زمینه برای رشد نرمافزارهای انحصاری فراهم شد. با چنین پیشرفتهایی، برنامهها راحتتر از سختافزار یک شرکت به سختافزار شرکت رقیب پورت میشدند و راحت میشد یک نرمافزار را بر روی سختافزارهای مختلفی از شرکتهای مختلف اجرا کرد. بدین ترتیب یک نفر میتوانست نرمافزاری بنویسد که مستقل از سختافزار خاصی عمل کند و بر روی طیف وسیعی از آنها اجرا شود. علاوه بر آن، با استاندارد شدن سختافزارها، تفاوتهای ناچیزی که آنها در کارایی داشتند رفته رفته ناپدید شد. تولید کنندگان به این نتیجه رسیده بودند که باید به نرمافزار هم به چشم یک وسیله فروشی نگاه کنند. شرکتها شروع به فروش نرمافزارهای خود کردند و دست کاربران خود را برای تغییر در نرمافزارها و انتشار مجدد آنها بستند. به گونه ای که در سال ۱۹۶۸ شرکتی به نام ایدیآر (به انگلیسی: ADR) اولین نرمافزار دارای مجوز را عرضه کرد. در سال ۱۹۶۹، شرکت آیبیام به خاطر اینکه به همراه سختافزارهای خود، نرمافزارهای آزاد ارائه میکرد، توسط وزارت دادگستری ایالات متحده آمریکا به از بین بردن کسب و کار و ایجاد یک شرایط ضدرقابتی برای دیگر متهم شد. آیبیام دیگر به همراه سختافزارهای خود نرمافزار ارائه نکرد و بدین ترتیب نرمافزارها و سختافزارها از یکدیگر جدا شدند و فاصله گرفتند.
در سال ۱۹۸۳، ریچارد استالمن از آزمایشگاه هوش مصنوعی و علوم رایانه امآیتی، پروژه گنو را بنیان نهاد. او که از تغییر فرهنگ در صنعت رایانه و کاربرانش ناامید شده بود، قصد داشت سیستمعاملی به نام گنو را به صورت یک نرمافزار آزاد توسعه دهد. در ژانویه ۱۹۸۴ توسعه سیستمعامل گنو آغاز گشت و بنیاد نرمافزارهای آزاد در اکتبر ۱۹۸۵ بنیان نهاده شد. در سال ۱۹۸۹، اولین نسخه از اجازهنامه همگانی گنو منشتر شد. البته جیپیال اولین پروانه نرمافزار آزاد نبود و قبل از آن پروانههای نرمافزار آزاد دیگری مانند پروانه بیاسدی در سال ۱۹۸۸ عرضه شده بودند. تا کنون پروانههای نرمافزار آزاد زیادی توسط افراد و شرکتهای مختلف منتشر شده است که آز این میان میتوان به پروانه امآیتی، پروانه آپاچی، پروانه آیاسسی، پروانه همگانی موزیلا و ... اشاره کرد.
در سال ۱۹۹۷، اریک ریموند مقالهای با نام کلیسای جامع و بازار را منتشر کرد و در آن به بررسی اصول نرمافزارهای آزاد و مزایای آنها پرداخت. این مقاله به شدت مورد توجه قرار گرفت و یکی از دلایلی بود که شرکت ارتباطات نتاسکیپ، کد منبع مرورگر اینترنتی خود را به صورت نرمافزار آزاد منتشر کرد. این کار باعث شد تا شرکتهای دیگری هم به نرمافزارهای آزاد توجه نشان دهند. کدهای منبع نتاسکیپ، بعدها اساس توسعه مرورگر فایرفاکس و برنامه تاندربیرد قرار گرفت.
مسئله نامگذاری
در زبان انگلیسی، کلمه Free معانی متفاوتی همچون آزادی، رایگان بودن و ... دارد. عدهای بر این عقیده بودند که ممکن است این کلمه باعث کژفهمی شده و باعث شود مردم به نرمافزارهای آزاد، به چشم نرمافزارهای رایگان نگاه کنند. این در حالی است که یک نرمافزار آزاد، لزوماً رایگان نیست. آنها در سال ۱۹۹۸ کمپین دیگری به نام «نرمافزارهای متنباز» (به انگلیسی: Open Source) را تشکیل دادند تا با تاکید بیشتر بر روی مدل توسعه و مسائل تکنیکی، به جای مسائل فلسفی و اخلاقی، مردم و شرکتها را هر چه بیشتر به استفاده از نرمافزار آزاد تشویق کنند. تقریباً هر دو مفهوم، اشاره به یک چیز دارند و یک نرمافزار متنباز، نرمافزار آزاد هم هست (و برعکس)، اما طرفداران ایده نرمافزارهای متنباز، آن را روشی برای توسعه نرمافزارهای بهتر معرفی میکنند و تاکید کمتری بر جنبش اجتماعی و فلسفه پشت این گونه نرمافزارها دارند. طبق گفته موسسه پیشگامان متنباز (که توسط طرفداران ایده نرمافزار متنباز بوجود آمده)، عبارت «نرمافزار آزاد» واژه ای قدیمیتر است و به گونهای منعکس کننده نام بنیاد نرمافزارهای آزاد است، سازمانی که در سال ۱۹۸۵ برای محافظت و ترویج نرمافزارهای آزاد بوجود آمد؛ با اینکه بنیانگذاران ایده متنباز هم از توسعه و ترویج نرمافزارهای آزاد حمایت میکنند، اما در مورد چگونگی ترویج آنها با بنیاد نرمافزارهای آزاد موافق نیستند و اعتقاد دارند که آزادی نرمافزار در درجه اول یک امر عملی است تا ایدئولوژیکی.
پروانههای نرمافزار آزاد
نرمافزارهای آزاد به همراه اجازهنامهای عرضه میشوند که این اجازهنامه آزادیهای نام برده شده را برای کاربران تضمین میکند. از جمله پروانههای نرمافزار آزاد میتوان به پروانه نرمافزار جیپیال، بیاسدی، پروانه امآیتی، پروانه آیاسسی و ... نام برد. این اجازه نامهها تفاوتهایی با یکدیگر دارند و هر کدام توسط افراد و شرکتهای خاصی برای اهداف خاصی منتشر شدهاند. یک دستهبندی کلی برای پروانههای نرمافزار آزاد این است که آیا آنها به صورت کپیلفت هستند یا نه. پروانههایی که کپیلفت هستند، مانند پروانه جیپیال، تاکید دارند که نسخههای مشتق شده از نرمافزار هم باید به صورت نرمافزار آزاد منتشر شوند. مجوزهای غیر کپیلفت تاکیدی بر روی این مساله ندارند و نسخههای مشتق شده از این گونه نرمافزارها را میتوان آزادانه به هر شکل دلخواهی، چه به صورت نرمافزار آزاد و چه به صورت نرمافزار انحصاری منتشر کرد. چنین مجوزهایی را اصطلاحاً «سهلگیرانه» (به انگلیسی: permissive) مینامند. از جمله رایجترین پروانههای کپیلفت، پروانه جیپیال و از جمله رایجترین پروانههای غیر کپیلفت، پروانه بیاسدی و پروانه امآیتی است. امروزه هر دو دسته از این پروانهها به صورت گسترده توسط پروژههای مختلف مورد استفاده قرار میگیرند. برای مثال، هسته لینوکس از پروانه جیپیال و پروژه فریبیاسدی از پروانه بیاسدی استفاده میکنند.
مسئله دیگر در مقایسه پروانههای نرمافزار آزاد، مسئله پیوند دادن کتابخانهها در دیگر نرمافزارهایی است که از یک پروانه غیرمشابه با پروانه کتابخانه استفاده میکنند. برخی از پروانههای نرمافزار آزاد، اجازه نمیدهند که کتابخانههای اشتراکی، توسط نرمافزارهایی که از یک پروانه غیر مشابه استفاده میکنند، پیوند زده شوند و مورد استفاده قرار گیرند. برای مثال، اگر کتابخانهای تحت پروانه جیپیال منتشر شده باشد، تنها نرمافزارهایی که تحت پروانه جیپیال منتشر شدهاند میتوانند به این کتابخانه پیوند داده شوند و از آن استفاده کنند. این کار مانع میشود تا نرمافزارهای انحصاری و یا حتی دیگر نرمافزارهای آزاد از یک کتابخانه با مجوز جیپیال استفاده کنند. بنیاد نرمافزارهای آزاد برای رفع این محدودیت جیپیال، پروانه الجیپیال را منتشر کرده است.
مدل تجاری
نرمافزارهای آزاد را میتوان مستقیماً به فروش رساند و به این ترتیب از فروش آنها کسب درامد کرد. اما این مسئله نباید آزادی های بالا را محدود کند. کاربر پس از خرید یک نرمافزار آزاد، میتواند آن را برای هر منظوری استفاده کرده، تغییر داده، و مجدداً منتشر کند (چه به صورت رایگان و چه به صورت تجاری). علاوه بر فروش مستقیم نرمافزار، میتوان با ارائه خدمات و پشتیبانی از نرمافزارهای آزاد، کسب درامد کرد. مثلاً یک شرکت میتواند با اضافه کردن یک قابلیت جدید به یک نرمافزار آزاد یا در قبال برطرف کردن یک ایراد امنیتی، مبلغی پول از مشتریانش دریافت کند. یا همچنین یک شرکت میتواند نحوه استفاده از یک برنامه را به کارمندان و کاربران یک شرکت دیگر آموزش دهد و در قبال آن دستمزد دریافت کند. برخی از پروانههای سهلگیر نرمافزار آزاد، به کاربران اجازه میدهند تا نرمافزار را بدون در اختیار قرار دادن کدهای منبع توزیع کنند. بدین ترتیب دست کاربران تجاری بیشتر باز خواهد بود. برخی از شرکتها، نرمافزارهای خود را با دو مجوز مختلف، هم به صورت آزاد و هم به صورت غیرآزاد عرضه میکنند.
برخی از توسعهدهندگان مستقل نرمافزار آزاد، کمکهای مالی از طرف افراد داوطلب قبول میکنند. به عنوان مثال، سورسفورج امکاناتی دارد که یک کاربر داوطلب میتواند مبلغی پول را به یک پروژه نرمافزار آزاد اهدا کند.
مثالهایی از نرمافزارهای آزاد کاربردی
هستهٔ سیستمعامل گنو/لینوکس، داروین.
تعدادی از سیستمعاملهای خانواده بیاسدی مانند فریبیاسدی, اپنبیاسدی, نتبیاسدی, دراگونفلیبیاسدی.
کامپایلر جیسیسی، کتابخانهٔ زبان برنامهنویسی سی
کامپایلر کلنگ
پایگاهدادههای رابطهای مانند: mysql، پستگر اسکیوال، برکلی دیبی
زبانهای برنامهنویسی مانند تیسیال، روبی، پایتون، پرل و پیاچپی.
مرورگر وب فایرفاکس (Firefox)
اُپن آفیس (Open Office)
میزکار کیدیای (KDE)
میز کار الاکسدیئی (LXDE)
میزکار اکسافسیئی (XFCE)
میزکار گنوم (Gnome)
برنامههای حروف چینی مانند تک، لاتک و فارسی تک
نرمافزارهای مدیریت محتوا مانند جوملا (!Joomla)، پیاچپی-نیوک (PHP-Nuke)، پست نیوک (postnuke) و مامبو (mambo) ,وردپرس (wordpress), دروپال (drupal) , ....
نرمافزارهای ساخت انجمن (Forum) مانند پیاچپیبیبی (phpbb)، اساماف (smf)، یاب (YaBB) و فروم (phorum)
ویرایشگرهای متن ویم و ایمکس
مجموعه اداری لیبرهآفیس
بدافزار
بدافزار (به انگلیسی: Malware)، برنامههای رایانهای هستند؛ به علت آنکه معمولاً کاربر را آزار میدهند یا خسارتی بوجود میآورند، به این نام مشهورند. برخی از آنان فقط کاربر را میآزارند. مثلاً وی را مجبور به انجام کاری تکراری میکنند. اما برخی دیگر سیستم رایانهای و دادههای آن را هدف قرار میدهند که ممکن است خساراتی به بار آورند. در عین حال ممکن است هدف آن سختافزار سیستم کاربر باشد.
یک نرمافزار برپایهٔ نیت سازنده آن به عنوان یک بدافزار شناخته میشود. در قانون گاه بدافزار را به عنوان یک آلودگی رایانهای مینامند. دستاوردهای مقدماتی که توسط سیمنتک در سال ۲۰۰۸ منتشر شد، بیان میکند که میزان کدهای آزاردهنده و دیگر برنامههای ناخواسته از شمار نرمافزارهای قانونی، ممکن است افزون باشد. همچنین گفته شدهاست: «که تعداد بدافزارهای تولید شده در سال ۲۰۰۷ به اندازه مجموع ۲۰ سال قبل بودهاست.» مهمترین پل ارتباطی بدافزارها از تولیدکنندگان آنها به کاربران از طریق اینترنت است.
در ۲۹ مارس سال ۲۰۱۰ شرکت سیمنتک شهر شائوژینگ چین را به عنوان پایتخت بدافزار در دنیا معرفی کرد.
مایکروسافت در می ۲۰۱۱ گزارش داد که از هر ۱۴ دانلود در اینترنت یکی شامل بدافزار است. به ویژه شبکههای اجتماعی و فیس بوک در حال مشاهده افزایش تاکتیکهای جدید برای ضربه زدن به رایانهها هستند.
بدافزار با یک نرمافزار معیوب یعنی نرمافزاری قانونی ولی شامل اشکالات مضر، تفاوت دارد. گاه بدافزار به صورت یک نرمافزار سالم و صحیح طراحی میشود و حتی ممکن است از یک سایت رسمی بیاید. بنابراین برخی از برنامههای امنیتی مانند مکافی ممکن است بدافزار را یک برنامهٔ «به طور بالقوه ناخواسته (به انگلیسی: Potentially Unwanted Programs)» بنامد. اگرچه یک ویروس رایانهای نیز بدافزاری است که خود را باز تولید میکند، اما غلب به اشتباه به همهٔ بدافزارها ویروس اطلاق میشود.
از انواع بدافزارها میتوان به ویروسها، کرمها، اسبهای تروآ، جاسوسافزارها، آگهیافزارها، روتکیتها و هرزنامهها اشاره کرد.
مقاصد
بسیاری از برنامههای آلوده کنندهٔ اولیه، از جمله اولین کرم اینترنتی و تعدادی از ویروسهای سیستم عامل داس (به انگلیسی: DOS)، به قصد آزمایش یا سرگرمی نوشته شدند. آنها عموماً به مقاصد بیضرر یا فقط به قصد آزار بودند، تا اینکه بخواهند خسارات جدی به سیستمهای رایانه وارد کنند. در برخی موارد سازنده نمیتوانست تشخیص دهد که چقدر کارش میتواند مضر باشد.
برنامهنویسان جوان وقتی دربارهٔ ویروسها و ترفندهایش میآموختند، تنها به منظور تمرین یا به این قصد که ببینند چقدر شیوع پیدا میکند، آنها را مینوشتند. در سال ۱۹۹۹ ویروسهای شایعی مانند ویروس ملیسا (به انگلیسی: Melissa) و ویروس دیوید (به انگلیسی: David) تنها به قصد سرگرمی نوشته شده بودند. اولین ویروس تلفن همراه در سال ۲۰۰۴ با نام ویروس کابیر (به انگلیسی: Cabir) بر روی تلفنهای همراه منتشر شد.
با این حال مقاصد سوء به منظور خرابکاری را میتوان در برنامههایی یافت که برای ایجاد آسیب به سیستم رایانهای و یا از دست رفتن اطلاعات، طراحی شدهاند. بسیاری از ویروسهای سیستم عامل داس، با این هدف طراحی شدند تا فایلهای موجود در یک دیسک سخت را نابود کنند یا فایلهای سیستمی را با نوشتن اطلاعات نادرست بر روی آنها دچار اختلال کنند.
از زمان گسترش دسترسی به اینترنت پر سرعت، بدافزارهایی به منظور ایجاد سود طراحی شدهاند. به عنوان مثال از سال ۲۰۰۳، اغلب ویروسها و کرمهای رایانهای، طراحی شدند تا کنترل رایانههای کاربران را به منظور بهرهگیری در بازار سیاه به کار گیرند.
بدافزارهای مسری: ویروسها و کرمها
انواع بدافزارها، ویروسها و کرمها هستند که به خاطر نحوهٔ شیوعشان شناخته میشوند. عبارت ویروس کامپیوتری به برنامهای اطلاق میشود که نرمافزار قابل اجرایی را آلوده کرده باشد و هنگامی که اجرا میشود، سبب شود که ویروس به فایلهای قابل اجرای دیگر نیز منتقل شود. ویروسها ممکن است قابلیت حمل یک بار اضافی را نیز داشته باشند، که میتواند اعمال دیگر نیز انجام دهد. این اعمال اغلب خرابکارانه هستند. از سوی دیگر یک کرم برنامهای است که به طور فعالانه خود را روی یک شبکه منتقل میکند تا رایانههای دیگر را نیز آلوده سازد. کرمها نیز قابلیت حمل یک بار اضافی را دارند.
تعریفهای بالا نشان میدهد که تفاوت ویروس و کرم در این است که یک ویروس برای شیوع نیاز به دخالت کاربر دارد، در حالی که یک کرم خود را به طور خودکار و از طریق شبکه گسترش پیدا میکند. در نتیجه آلودگیهایی که از طریق ایمیل یا فایلهای مایکروسافت ورد (به انگلیسی: مایکروسافت ورد) منتقل میشوند، ویروس شناخته میشوند، زیرا باید دریافتکنندهٔ فایل یا ایمیل آن را باز کند تا سیستم آلوده شود. برخی نویسندگان در رسانههای محبوب نیز متوجه این تمایز نیستند و از این عبارتها به اشتباه در جای یکدیگر استفاده میکنند.
مخفی کارها: اسبهای تروآ، روتکیتها و بکدُورها
اسبهای تروآ: (به انگلیسی: Trojan horses)
یک برنامه خرابکار برای اینکه بتواند به اهدافش برسد باید قادر باشد که اجرا شود بدون آنکه توسط کاربر یا مدیر سیستم رایانه خاموش یا پاکسازی شود. مخفی کاری همچنین این امکان را میدهد که بدافزار در اولین مکان نصب شود. وقتی یک برنامه خرابکار خود را به شکل چیز بی ضرر یا مطلوب در میآورد، کاربران ممکن است تشویق شوند تا آن را بدون آنکه بدانند چه میکند، نصب کنند. این، ترفندِ اسب تروآ است.
به بیان دیگر، یک اسب تروآ برنامهای است که کاربر را ترغیب میکند تا اجرایش کند در حالی که قابلیت خرابکاریش را مخفی میکند. آثار منفی ممکن است بلافاصله آغاز شوند و حتی میتوانند منجر به آثار نامطلوب فراوانی گردند. از جمله حذف کردن فایلهای کاربر یا نصب نرمافزارهای خرابکار یا نا مطلوب بیشتر. اسبهای تروآ برای آغازسازی شیوع یک کرم استفاده میشوند.
یکی از مرسوم ترین راههایی که جاسوس افزارها توزیع میشوند، از طریق یک اسب تروآ که به عنوان یک قطعه از یک نرمافزار مطلوب که کاربر آن را از اینترنت دانلود میکند، است. وقتی که کاربر نرمافزار را نصب میکند جاسوس افزار نیز در کنارش نصب میشود. برای مثال اسب تراوا در غالب یک نرمافزار دانلودنصب میشود و به صورت مستقل از نرمافزار اصلی یا مرتبط با آن شروع به دانلود برنامه و مدیاها گاهی با مضامین مستهجن میکند. مثال اخیر تروجان فوق سری نرمافزارهایی با پسوند finder میباشد.
نویسندگان جاسوس افزار سعی میکنند به صورت قانونی عمل کنند، ممکن است رفتار جاسوس افزار را در عباراتی مبهم در توافق نامه با کاربر بیاورند و البته کاربران بعید است که این توافق نامه را بخوانند یا بفهمند. تروآها به صورت عمده به منظور کارهای تجاری استفاده میشوند.
رد گم کن:(به انگلیسی: Rootkits)
رد گم کن واژه مصوب فرهنگستان زبان و ادب فارسی برای (به انگلیسی: Rootkits) است. هنگامی که یک برنامهٔ خرابکار روی یک سیستم نصب میشود بسیار مهم است که مخفی باقی بماند تا از تشخیص و نابودی در امان باشد. همین وضعیت دربارهٔ یک مهاجم انسانی که بطور مستقیم وارد یک رایانه میشود برقرار است. ترفندهایی که به عنوان روتکیتها شناخته میشوند اجازه این مخفی کاری را میدهند. آنها این کار را با اصلاح سیستم عامل میزبان انجام میدهند به نحوی که بدافزار از دید کاربر مخفی بماند. روتکیتها میتوانند از این که یک پروسهٔ خرابکارانه در لیست پروسههای سیستم دیده شود ممانعت کنند، یا مانع خوانده شدن فایلهای آن شوند. در ابتدا یک روتکیت مجموعهای از ابزارها بود که توسط یک مهاجم انسانی بر روی یک سیستم یونیکس نصب میشد که به مهاجم اجازه میداد تا دسترسی مدیریتی داشته باشد. امروزه این عبارت بطور عمومی تر برای فرایندهای مخفی سازی در یک برنامهٔ خرابکار استفاده میشود.
بکدُرها:(به انگلیسی: Backdoors)
یک بکدُر روشی است برای خنثی سازی رویههای معمول تایید اعتبار. وقتی یک سیستم دارای چنین رویههایی باشد یک یا چند بکدُر ممکن است نصب شوند تا دسترسیهای آتی را آسان تر سازد. بکدُرها ممکن است حتی پیش از یک نرمافزار خرابکار نصب شوند تا به مهاجمان اجازهٔ ورود دهند.
دیگر بدافزارها
جاسوسافزارها
جاسوسافزارها (Spyware) بدافزارهایی هستند که بر روی رایانهٔ کاربر نصب میشوند و بدون اطلاع وی، اطلاعات مختلف در مورد او را جمعآوری میکنند. اکثر جاسوسافزارها از دید کاربرها مخفی میمانند و تشخیص و پیدا کردن آنها در اغلب موارد مشکل است. برخی از جاسوسافزارها مانند کیلاگرها ممکن است توسط مسئول یک سازمان و یا شرکت بر روی رایانهها نصب شوند تا رفتار کاربران قابل ارزیابی و بررسی باشد.
جاسوسافزارها هر گونه اطلاعاتی را میتوانند جمعآوری کنند. این اطلاعات میتواند اطلاعات شخصی یک کاربر مانند گشت و گذارهای وی بر روی اینترنت و یا مشخصات حسابهای مختلف وی مانند رمز عبور پست الکترونیکی و... باشد. علاوه بر این، جاسوسافزارهای میتوانند در کنترل رایانه توسط کاربر اختلال ایجاد کنند. به عنوان مثال، جاسوسافزارهای میتوانند کاربر را به بازدید از یک صفحهٔ خاص اینترنتی مجبور کنند و یا اینکه با تغییر تنظیمات رایانهٔ وی، باعث کاهش سرعت اینترنت و دسترسی غیرمجاز به رایانهٔ وی شوند. وباید توجه داشت که نرمافزارِDjyjji.3درست راهاندازی شود.
آگهیافزار
آگهیافزار یا برنامههای تبلیغاتی (Adware): اینگونه برنامهها همانند جاسوسافزارها دارای اثر تخریبی نمیباشند و وظیفه آنها بازکردن صفحات خاص اینترنتی جهت اهداف تجاری و تبلیغی است.
جکها
جکها (Joke) برنامههایی هستند که ادعا میکنند در حال انجام عملیاتی تخریبی بر روی سیستم شما میباشند ولی در واقع اینگونه نبوده و کار آنها چیزی جز یک شوخی ساده نمیباشد. متأسفانه برخی کاربران به سادگی تحت تأثیر جکها قرار گرفته و با تلاش برای از بین بردن چیزی که مخرب نیست باعث ایجاد تخریب بیشتری میشوند.
کلک
کلک (Hoax): این برنامهها با سوء استفاده از کم بودن اطلاعات تخصصی کاربران، آنها را فریب داده و با دستورات و توصیههای اشتباه باعث میشوند که کاربر شخصاً کاری تخریبی بر روی سیستم خود انجام دهد. به عنوان مثال وانمود میکنند که فایلی خاص در مسیر سیستمعامل یک برنامه خطرناک است و باید توسط کاربر حذف شود. غافل از اینکه این فایل سیستمی بوده و برای عملکرد درست سیستمعامل، وجود آن لازم است.
شمارهگیرها
شمارهگیر (Dialer): اینگونه برنامهها وظیفهشان ارتباط دادن کاربر از طریق خط تلفن به سرورهایی در دیگر کشورها برای دسترسی مستقیم به اطلاعات آنها میباشد. این سرورها معمولاً مربوط به سایتهای غیراخلاقی بوده و برقراری ارتباط با آنها از طریق خط تلفن باعث هزینه بسیار زیاد مالی میگردد.
بارگیرها
بارگیر (Downloader): کار اینگونه برنامهها Download کردن بد افزارها و اجرای آنها است
کلیککنندهها
کلیککننده (Adclicker): اینگونه برنامهها لینک صفحات تبلیغاتی را دنبال نموده و به این طریق حالت کلیک شدن بر روی آن صفحه تبلیغاتی خاص را شبیه سازی میکنند و باعث بالا رفتن hit آن میشوند.
درهای پشتی
درهای پشتی (Backdoors) ابزاری برای نفوذگرها هستند که به وسیله آنها میتوانند سیستمهای دیگر را در کنترل خود درآورند. درهای پشتی درون شبکه، پورتهای TCP یا UDP را باز میکنند و شروع به گوش کردن نموده تا دستورات نفوذگرها را اجرا کنند. درهای پشتی از جهت نداشتن قابلیت تکثیر شبیه ترویاها هستند.
گذرواژهدزدها
گذرواژهدزد (Password-Stealer): اینگونه برنامهها که نوعی ترویا هستند کارشان دزدی پسورد از روی سیستمها و ارسال آنها برای نفوذگرها است.
بهرهکشها
بهرهکشها (Exploits) کدهای مخربی هستند که با استفاده از آسیب پذیریهای یک سیستم امکان دسترسی از راه دور به آن سیستم را فراهم میکنند.
کیلاگر
کلیدنگار یا کیلاگر (Keylogger) برنامههایی هستند که با قرار گرفتن در حافظه از کلیدهای زده شده توسط کاربر گزارش گرفته و در قالب یک فایل برای نفوذگر میفرستند. البته باید بدانیم که کیلاگرها به صورت سختافزاری نیز وجود دارند.
برنامههای ضد بدافزار
با افزایش حملات بدافزارها توجهها از محافظت در برابر ویروسها و جاسوس افزارها به سمت محافظت از بدافزارها جلب شدهاست. در نتیجه برنامههای مخصوصی برای مبارزه با آنها توسعه یافتهاست. برنامههای ضد بدافزار از دو طریق با بدافزار نبرد میکند:
۱ - آنها محافظت بی درنگ را در برابر نصب بدافزار روی یک رایانه میتوانند تامین کنند، در این نوع از محافظت نرمافزار ضد بدافزارتمام اطلاعات ورودی از شبکه را اسکن میکند تا ازورود بدافزارها و تهدیدهایی که با آنها میآیند جلوگیری به عمل آورد. محافظت بی درنگ از بدافزار مشابه محافظت بی درنگ از ویروس عمل میکند. یعنی نرمافزار فایلها را در زمان دانلود آن اسکن نموده و از فعالیت هر چیزی که بد افزار شناخته شود ممانعت به عمل میآورد.
۲-برنامههای ضد بدافزار میتوانند تنها به منظور تشخیص و پاکسازی بدافزارهایی که قبلاً روی یک رایانه نصب شدهاند، مورد استفاده قرار گیرند. این نوع از محافظت در برابر بدافزار عمدتاً ساده تر و محبوب تر است. این نوع از ضد بدافزارها محتوای رجیستری ویندوز، فایلهای اجرایی سیستم و برنامههای نصب شده روی یک رایانه را اسکن میکنند و لیستی از تهدیدهای پیدا شده را تهیه میکنند، که به کاربر اجازه میدهد که چه فایلهایی را حذف یا نگاه دارد.
جاسوسافزار
اینگونه برنامهها مستقیماً دارای اثر تخریبی نیستند و وظیفهٔ آنها جمعآوری اطلاعات از روی رایانه کاربر و نیز تحت نظر قرار دادن اعمال وی هنگام کار با رایانه و اینترنت است. در نهایت این اطلاعات برای مقاصد خاص فرستاده میشود تا از آنها جهت اهداف تجاری و تبلیغی ونظامی و نظارتی و... استفاده گردد.
تعریف
جاسوس افزار مانند ویروس و کرم نوعی بدافزار است. بدافزار به برنامههایی گفته میشود که توانایی آسیب رساندن به یک سیستم کامپیوتری یا شبکهای از کامپیوترها را دارند. جاسوس افزار برنامهای است که بدون اجازه کاربر روی سیستم کامپیوتری وی نصب شده، کنترل آن را از فرد میگیرد و اطلاعات شخصی وی را برای یک شخص ثالث میفرستد.
تاریخچه
واژه جاسوس افزار برای اولین بار در ۱۶ اکتبر سال ۱۹۹۵ در متنی درمورد مدل تجارتی ماکروسافت استفاده شد. در سال ۲۰۰۰ آقای گریگور فرند در توصیف دیوار آتش شخصی خود به نام زون آلارم از واژه جاسوس افزار استفاده کرد. اما استفاده رسمی از این کلمه بعد از سال ۲۰۰۱ بود زمانی که آقای استیو گیبسون رئیس مرکز تحقیقات گیبسون متوجه نصب یک نرمافزار تبلیغاتی روی سیستم کامپیوتری خود شد که اطلاعات شخصی او را برای فرد دیگری ارسال میکرد. به همین دلیل وی یک برنامه ضدجاسوسی طراحی کرد و آن را اوپت اوت نامید.
انواع
در یک تقسیم بندی کلی نرمافزارهای جاسوسی را میتوان به دو دسته تقسیم کرد: ۳-۱- نرمافزارهای جاسوسی خانگی نرمافزاری که معمولاً توسط صاحبان کامپیوترها به منظورآگاهی یافتن از تاثیرات اینترنت بر شبکههای کامپیوتری خودشان خریداری و نصب میگردد. مدیران از این نرمافزار برای آگاهی از فعالیتهای کارمندان استفاده میکنند. بعضی افراد هم برای اطلاع از فعالیتهای سایر اعضای خانواده این روش را به کار میبرند. مانند مشاهده محتویات اتاقهای گفتگو توسط والدینی که فرزندانشان در آنها شرکت میکنند. همچنین این نوع جاسوس افزار میتواند توسط یک شخص ثالث بدون آگاهی صاحب کامپیوترروی سیستم وی نصب شود و اطلاعات شخصی وی را جمع آوری کند. ۳-۲- نرمافزارهای جاسوسی تجاری نرمافزاری است که شرکتها برای تعقیب فعالیتهای کاربران در اینترنت استفاده میکنند. این شرکتها که وظیفه نصب جاسوس افزار روی سیستمهای کامپیوتری را دارند اغلب اطلاعات حاصل را به بازاریابان میفروشند و آنها کاربر را با تبلیغات خاص که با علائق وی مطابقت دارد و برایش جذاب است مورد هدف قرارمی دهند.
راههای نفوذ
پنجرههای پاپ آپ :
پنجرههای کوچکی که به هنگام بازدید از سایت در برابر کاربر ظاهر میشوند و حاوی پیامهای مختلفی برای فریب اشخاص میباشند. در این پنجرهها اغلب دکمههای مختلفی مانند قبول، لغو، بستن و... وجود دارد ولی هیچ کدام از آنها کار اصلی خود را انجام نمیدهند و با فشردن هر کدام از این دکمهها جاسوس افزار روی سیستم نصب میشود.
نرمافزارهای ضد جاسوس افزار:
بعضی نرمافزارهای ضدجاسوسی به جای از بین بردن جاسوس افزار آن را روی سیستم نصب میکنند. از برنامههای مطمئن و معروف برای بالا بردن امنیت سیستم خود استفاده کنید.
برنامههای رایگان اینترنتی:
امروزه بسیاری از کاربران اینترنت بنا بر نیاز خود برنامههایی را که به صورت رایگان روی اینترنت قرار گرفته دانلود و نصب میکنند. اغلب صاحبان این برنامهها در ازای دریافت مبلغی یا بااهداف تجاری دیگر کد جاسوس افزار را در برنامه خود قرار میدهند و به هنگام نصب آن نرمافزار جاسوس افزار نیز روی سیستم کامپیوتری قرار گرفته و شروع به کار میکند
سی دیها و فلشها:
حافظههای جانبی قابل حمل مانند سی دی و فلش به این علت که بین سیستمهای زیادی جا به جا میشوند حاوی برنامههای مخرب هستند. ۴-۵- سوء استفاده از ضعف امنیتی اینترنت اکسپلورر بعضی از طراحان برنامههای مخرب که با ضعفهای امنیتی اینترنت اکسپلورر آشنا باشند میتوانند در کد صفحه وب خود دستورهایی قرار دهند که به هنگام بازکردن آن صفحه با اینترنت اکسپلورر جاسوس افزار روی کامپیوتر نصب شود
ویروسها:
برخی ویروسها حاوی کدهایی برای نصب جاسوس افزارهستند. == تمامی نشانه های یک جاسوس افزار
تشخیص آلوده بودن یک کامپیوتر به جاسوس افزار کار سختی نیست. سیستم آلوده نشانههای سادهای دارد از جمله: ۵-۱- تغییر ناگهانی صفحه خانگی مرورگر بعضی از جاسوس افزارها که برای اهداف تبلیغاتی طراحی میشوند بدون اجازه کاربر صفحه خانگی مرورگر اینترنتی را تغییر میدهند. بسیاری از افرادی که سیستم آنها آلوده شده به طور مکرر صفحه خانگی مرورگر را مطابق میل خود تنظیم نموده و با تغییر دوباره آن مواجه میشوند. ۵-۲- ایجاد نوار ابزارهای جدید از نشانههای دیگر وجود جاسوس افزار ظاهر شدن نوار ابزارهای جدید بدون خواست کاربر در پنجره مرورگر است.
ظاهر شدن مداوم پنجرههای پاپ آپ :
اگر فرد به صورت مکرر و مداوم با پنجرههای پاپ آپ مواجه شود امکان وجود جاسوس افزار در سیستم کامپیوتری وی زیاد است.
تغییر آدرس توسط مرورگر:
بعضی جاسوس افزارها طوری تنظیمات مرورگر را تغییر میدهند که برخلاف میل کاربر و بدون توجه به آدرس وارد شده در نوار آدرس و یا نوار جستجو صفحاتی را به وی نشان دهد که در جهت اهداف تبلیغاتی طراحان آن جاسوس افزار است.
ایجاد آیکونهای جدید روی صفحه نمایش:
وجود آیکونهای جدید و ناشناخته روی صفحه نمایش بدون خواست کاربر از نشانههای وجود جاسوس افزار است. عدم کارایی بعضی کلیدهای صفحه کلید: جاسوس افزارها کارایی کلیدهای صفحه کلید را تغییر میدهند به طوری که برای مثال کلید تب در پنجره مرورگر به جای جا به جایی روی پیوندها کار دیگری انجام دهد.
عملکرد کند کامپیوتر:
از آنجایی که جاسوس افزار یک برنامهاست برای اجرا شدن به حافظه و پردازنده نیاز دارد و سرعت کامپیوتر را کاهش میدهد.
خاموش شدن دیوار آتش و ضدویروس:
جاسوس افزار برای این که به راحتی اطلاعات کاربر را برای شخص ثالث ارسال کند و همچنین تنظیمات سیستم کامیوتری را تغییر دهد اغلب بدون اطلاع کاربر دیوار آتش و ضدویروس را غیر فعال میکند تا به اهداف خود دست یابد.
مشکلات
سرقت اطلاعات شخصی:
جاسوس افزارها میتوانند با دست یابی به کوکیها عادتهای اینترنتی، اطلاعات کارتهای اعتباری و بسیاری اطلاعات دیگر شما را جمع آوری کند همچنین با ثبت کردن کلیدهای فشرده شده توسط شما روی صفحه کلیدرمزهای عبور شما را به دست آورده و در اختیار افراد دیگر قرار دهند.
تاثیر منفی روی عملکرد کاربر:
ظاهر شدن مداوم پنجرههای پاپ آپ، ایجاد نوار ابزارها و آیکونهای جدید و ناشناخته، کاهش سرعت کامپیوتر، کاهش امنیت افراد در استفاده از اینترنت و سایر مشکلاتی که جاسوس افزار ایجاد میکند بر عملکرد کاربران تاثیر میگذارد.
کاهش کارایی سیستم:
همانطور که گفته شد چون جاسوس افزار نوعی برنامهاست حافظه و پردازنده کامپیوتر را مصرف میکند و کارایی سیستم را کاهش میدهد.
استفاده از پهنای باند:
جاسوس افزار برای ارسال اطلاعات نیاز به برقراری ارتباط از طریق اینترنت دارد و باید از پهنای باند استفاده کند.
سختافزار رایانه
سختافزار رایانه مجموعهای از اجزای فیزیکی است که میتوان آنها را لمس کرد (مشاهده کرد) و یک رایانه را تشکیل میدهند مانند صفحه نمایش، صفحه کلید، حافظههای رایانه، دیسک سخت، ماوس، چاپگرها، سیپییو، کارت گرافیک، کارت صدا، حافظه، مادربورد و چیپها. در مقابل آن نرمافزار قابل لمس نیست. نرمافزار مجموعهای از ایدهها، مفاهیم و نمادها است. ترکیب سختافزار و نرمافزار یک سیستم محاسباتی قابل استفاده را تشکیل میدهند.
تعریف صنعتی
سختافزار بخش مادی، قابل لمس و ابزاری هر مجموعه یا سیستم است. سختافزار معمولاً به قطعات و یراقآلات فلزی و پلاستیکی تشکیل دهنده مجموعه گفته میشود. لازم به توضیح است که برق نیز جزو سختافزار حساب میشود.
تعریف رایانه
در دانش رایانه به مجموع مدارهای الکترونیکی، اجزای فیزیکی و مکانیکی قابل لمس و مشاهده در یک رایانه سختافزار میگوییم. همچنین به بخش غیرقابل لمس مانند سیستمعامل و برنامههای رایانهای، نرمافزار اطلاق میگردد.
فهرست سختافزارها
بُردِ مادر یا برد اصلی (مادربورد)
نمایشگر (مانیتور)
جعبه رایانه (کیس)
صفحهکلید (کیبورد)
موشواره (ماوس)
چاپگر (پرینتِر)
پویشگر (اسکنر)
واحد پردازش مرکزی (سیپییو یا پردازنده)
فلاپیدیسک
دیسک سخت
مودم
دیسکگردان نوری (درایو نوری) (CD و DVD)
بلندگو
یو اس بی
کارت صدا
کارت گرافیک
قلم نوری
هدفون (دوگوشی)
کارت تلویزیون و رادیو
دوربین (وبکم)
میکروفون
هدست
برنامه
برنامه رایانهای رشته دستورالعمل هایی است که توسط کامپیوتر قابل اجرا میباشد. این اصطلاح میتواند به کد اصلی یا نگارش اجرایی آن (زبان ماشین) نیز اطلاق گردد. برنامههای کامپیوتر میتوانند پایانپذیر یا پایان ناپذیر باشند. در برنامههای کامپیوتری هدف اجرای روالی خاص جهت رسیدن به مقصودی خاص می باشد.
انواع برنامههای رایانهای
برنامههای رایانهای از تنوع زیادی برخوردارند. از جمله میتوان به این موارد اشاره کرد:
سیستمعامل
برنامههای کاربردی
ویروسهای رایانهای
ویروس رایانهای
تعریف ویروس
ویروس، یک نوع از بدافزار است که در اغلب مواقع بدون اطلاع كاربر اجرا شده و تلاش میکند خودش را در یک کد اجرایی دیگر کپی کند. وقتی موفق به انجام این کار شد، کد جدید، آلوده نامیده میشود. کد آلوده وقتی اجرا شود، به نوبهی خود کد دیگری را میتواند آلوده کند. این عمل تولید مثل یا کپیسازی از خود بر روی یک کد اجرایی موجود، ویژگی کلیدی در تعریف یک ویروس است. معمولاً کاربران کامپیوتر به ویژه آنهایی که اطلاعات تخصصی کمتری درباره کامپیوتر دارند، ویروسها را برنامههایی هوشمند و خطرناک میدانند که خود به خود اجرا و تکثیر شده و اثرات تخریبی زیادی دارند که باعث از دست رفتن اطلاعات و گاه خراب شدن کامپیوتر میگردند در حالیکه طبق آمار تنها پنج درصد ویروسها دارای اثرات تخریبی بوده و بقیه صرفاً تکثیر میشوند. بنابراین یک ویروس رایانهای را میتوان برنامهای تعریف نمود که میتواند خودش را با استفاده از یک میزبان تکثیر نماید. بنابر این تعریف اگر برنامهای وجود داشته باشد که دارای اثرات تخریبی باشد ولی امکان تکثیر نداشته باشد، نمیتوان آنرا ویروس نامید. بنابراین ویروسهای رایانهای از جنس برنامههای معمولی هستند که توسط ویروسنویسان نوشته شده و سپس به طور ناگهانی توسط یک فایل اجرایی و یا جا گرفتن در ناحیه سیستمی دیسک، فایلها و یا کامپیوترهای دیگر را آلوده میکنند. در این حال پس از اجرای فایل آلوده به ویروس و یا دسترسی به یک دیسک آلوده توسط کاربر دوم، ویروس به صورت مخفی نسخهای از خودش را تولید کرده و به برنامههای دیگر میچسباند و به این ترتیب داستان زندگی ویروس آغاز میشود و هر یک از برنامهها و یا دیسکهای حاوی ویروس، پس از انتقال به کامپیوترهای دیگر باعث تکثیر نسخههایی از ویروس و آلوده شدن دیگر فایلها و دیسکها میشوند. لذا پس از اندک زمانی در کامپیوترهای موجود در یک کشور و یا حتی در سراسر دنیا منتشر میشوند. از آنجا که ویروسها به طور مخفیانه عمل میکنند، تا زمانی که کشف نشده و امکان پاکسازی آنها فراهم نگردیده باشد، برنامههای بسیاری را آلوده میکنند و از این رو یافتن سازنده و یا منشاء اصلی ویروس مشکل است.
تاریخچه
اولین تحقیق واقعی علمی و آکادمیک بر روی ویروسها توسط فرد کوهن در سال 1983، با نام ویروس که توسط لِن آدلمن ابداع شده بود، انجام شد. بعضاً از کوهن به عنوان «پدر ویروسهای کامپیوتری» نام برده میشود، اما واقعاً ویروسهایی بودند که قبل از شروع تحقیقات او تولید شده بودند. ویروس Elk Cloner نوشته شده توسط ریچ اسکرنتا در سال 1982 در گردش بود و ویروسهای تولید شده توسط جو دلینگر نیز بین سالهای 1981 تا 1983 ساخته شده بودند؛ که همهی آنها برای پلتفرمهای Apple II بودند. برخی منابع یک نقص فنی در Arpanet را در سال 1980 به عنوان اولین ویروس ذکر میکنند، اما آن فقط یک کد قانونی و مجاز بود که اشتباه کار میکرد و تنها مسألهای که ایجاد میکرد این بود که دادهها را در بستههای شبکه پخش میکرد. ویروسهای گریگوری بنفورد، تنها به به داستانهای علمیاش ختم نشد. او در سال 1969 ویروسهای غیر مخرب خود را در جایی که امروزه «آزمایشگاه ملی لیوِرمور لارنس» خوانده میشود و در Arpanet اولیه تولید و منتشر کرد.
میزبان ویروس
ویروس هم مانند هر برنامه کامپیوتری نیاز به محلی برای ذخیره خود دارد. ولی این محل باید به گونهای باشد که ویروسها را به وصول اهداف خود نزدیکتر کند. همان گونه که قبلاً ذکر شد اکثر ویروسها به طور انگلوار به فایلهای اجرایی میچسبند و آنها را آلوده میکنند. اصولاً میتوان فایلها را به دو گونه کلی «اجرایی» و «غیر اجرایی» تقسیم کرد که عموم ویروسها در فایلهای اجرایی جای گرفته و آنها را آلوده میکنند و واقعاً کمتر ویروسی یافت میشود که در یک فایل غیراجرایی قرار بگیرد و بتواند از طریق آن تکثیر شود.
لازم به ذکر است که بعضی از فایلها را شاید نتوان ذاتاً اجرایی نامید اما چون اینگونه فایلها میتوانند حاوی قسمتهایی اجرایی باشند، لذا آنها را از نوع اجرایی در نظر میگیریم. از این نوع فایلها میتوان به فایلهای اچتیامال و مستندات برنامههای اداره اشاره کرد که به ترتیب ممکن است شامل اسکریپت و ماکرو باشند. اسکریپتها و ماکروها قسمتهایی اجرایی هستند که در دل این فایلها قرار گرفته و کار خاصی را انجام میدهند.
در ذیل فهرست پسوندهای رایج فایلهای اجرایی ارائه شده است و اکثر نرمافزارهای ضد ویروس در حالت عادی (بدون تنظیمات خاص) این فایلها را ویروسیابی میکنند (البته در برخی برنامههای ضد ویروس ممکن است برخی پسوندها حذف یا اضافه شوند) :
.com ، .exe ، .dll ، .ovl ، .bin ، .sys ، .dot ، .doc ، .vbe ، .vbs ، .hta ، .htm ، .scr ، .ocx ، .hlp ، .eml
بنابراین یکی از اصلیترین میزبانهای ویروس، فایلهای اجرایی هستند. از طرف دیگر برخی ویروسها نیز از سکتور راهانداز (Boot Sector) و جدول بخشبندی دیسک (Master Boot Record یا Partition Table) به عنوان میزبان استفاده میکنند. سکتور راهانداز واحد راهاندازی سیستمعامل است که در سکتور شماره صفر دیسکت فلاپی و یا درایوهای منطقی یک دیسک سخت قرار دارد و جدول بخشبندی شامل اطلاعات تقسیمبندی دیسک سخت میباشد که آن نیز در سکتور شماره صفر دیسک سخت قرار دارد. اینگونه ویروسها با قرار گرفتن در یکی از این دو محل، هنگام راهاندازی کامپیوتر، اجرا شده و در حافظه سیستم مقیم میشوند و تا زمان خاموش کردن کامپیوتر و یا راهاندازی دوباره، همانجا مانده و فلاپیها و یا دیسکهای سخت دیگر را آلوده میکنند.
عملکرد ویروس
همانطور که گفته شد تنها پنج درصد از ویروسها دارای اثرات تخریبی هستند و بقیه صرفاً تکثیر میشوند. با توجه به این مطلب این پرسش مطرح است که چرا ویروسها به عنوان یک معضل شناخته میشوند و باید با آنها مبارزه کرد؟ پاسخ به این پرسش در موارد زیر خلاصه گردیده است:
۱ - بسیاری از ویروسها دارای اثراتی هستند که هرچند تخریبی نمیباشد ولی میتواند برای کاربر ایجاد مزاحمت کند. مثلاً ممکن است پیغامی نمایش دهد، باعث ریزش حروف صفحه نمایش به پایین شود یا اینکه یک آهنگ پخش نماید. علاوه بر این برخی از ویروسها به علت اشکالات نرمافزاری که ناشی از عدم دقت ویروسنویس میباشد، ممکن است دارای اثراتی غیرقابل پیشبینی باشند که گاهی این اثرات میتوانند تخریبی نیز باشند. از نقطه نظر کاربر اهمیتی ندارد که خسارت ایجاد شده بوسیله یک ویروس، یک کار عمدی پیشبینی شده توسط نویسنده ویروس بوده باشد یا یک اشتباه برنامهنویسی.
۲ - برخی از ویروسها در حافظه کامپیوتر مقیم شده و از این طریق عملیات تکثیر خود را انجام میدهند. این عمل ممکن است به گونهای باشد که جایی برای اجرای برنامههای دیگر نماند و یا باعث ایجاد تأخیر یا وقفه در حین عملیات سیستم اعم از اجرای برنامهها و یا راهاندازی کامپیوتر گردد.
۳ - فرض کنید که شما یک ویروس بر روی کامپیوتر خود داشته باشید. بسیار احتمال دارد که این ویروس به صورت غیرعمدی به یک دوست، همکار یا مشتری منتقل شود که این امر ممکن است باعث از بین رفتن اعتماد آنها به شما و شرکت شما شود.
۴ - ویروسها و برنامههای مخرب زیادی وجود دارند که اقدام به سرقت اطلاعات و کلمات عبور کاربر مینمایند. بعضی از اینگونه برنامهها با مقیم شدن در حافظه از عباراتی که توسط شما تایپ میشود گزارش گرفته و پس از اتصال رایانه شما به اینترنت این اطلاعات را برای مقصد خاصی ارسال میکنند. گیرنده این اطلاعات میتواند به راحتی از آنها سوء استفادههای مختلفی نماید.
علاوه بر همه اینها هیچ ویروسی کاملاً بیضرر نیست و در خوشبینانهترین حالت، آنها وقت شما، وقت پردازنده و فضای دیسک شما را تلف میکنند.
در مورد اثرات تخریبی ویروسهایی که آنها را به صورت عمدی انجام میدهند میتوان به موارد زیر اشاره نمود:
تخریب یا حذف برنامهها و اطلاعات بخشهای مختلف دیسکها.
فرمت کردن دیسکها.
کد کردن اطلاعات و برنامهها.
تخریب اطلاعات حافظه فلش ها.
مزاحمتهای فوق ممکن است به محض فعال شدن ویروس (یعنی قرار گرفتن ویروس در حافظه از طریق اجرای یک برنامه آلوده) و یا در یک تاریخ و زمان خاص و یا حتی با اجرای یک برنامه کاربردی خاص انجام شود.
انواع ویروسها
ارائه یک تقسیمبندی دقیق از ویروسها کار مشکلی است و میتوان ویروسها را به روشهای مختلفی تقسیمبندی کرد. این روشها میتواند بر اساس میزبان ویروس، سیستمعاملی که ویروس میتواند در آن فعالیت کند، روش آلودهسازی فایل و ... باشد. در زیر به برخی از این روشها اشاره میکنیم :
تقسیم بندی ویروسها بر اساس مقصد آلودهسازی:
۱ - ویروسهای فایلی (File Viruses) : ویروسهای فایلی، معمولاً فایلهای اجرایی را آلوده میکنند. فایلهای آلوده به این نوع از ویروسها اغلب (اما نه همیشه) دارای پسوند .com یا .exe هستند.
۲ - ویروسهای ماکرو (Macro Viruses) : ویروسهای ماکرو، مستندات برنامههایی را که از امکان ماکرونویسی پشتیبانی مینمایند (مانند MS Word ، MS Excel و...) آلوده میکنند. فایلهای اینگونه برنامهها اجرایی نیستند ولی درون آنها قسمتهایی اجرایی به نام «ماکرو» وجود دارد که میتواند میزبان مناسبی برای ویروسهای ماکرو باشد.
۳ - ویروسهای بوت و پارتیشن سکتوری (Boot Sector and Partition Table Viruses) : اینگونه ویروسها سکتور راهانداز (Boot Sector) دیسک سخت و دیسکت فلاپی یا جدول بخشبندی دیسکهای سخت را آلوده میکنند. با راهاندازی سیستم از روی دیسکی که به اینگونه ویروسها آلوده شده است، ویروس در حافظه مقیم شده و متعاقباً دیسکهایی را که مورد دسترسی قرار گیرند، آلوده میکند.
۴ - ویروسهای اسکریپتی (Script Viruses) : این ویروسها که اسکریپتهای نوشته شده به زبانهای ویژوال بیسیک یا جاوا میباشند، تنها در کامپیوترهایی اجرا میشوند که بر روی آنها Internet Explorer یا هر مرورگر وب دیگری با توانایی اجرای اسکریپتها، نصب شده باشد و فایلهای با پسوند .html ، .htm ، .vbs ، .js ، .htt یا .asp را آلوده میکنند.
ویروسها جدا از تقسیمبندی فوق، ممکن است در یک یا چند دسته از دستههای زیر نیز قرار بگیرند:
ویروسهای مقیم در حافظه (Memory Resident Viruses) :
اینگونه ویروسها با مقیم شدن در حافظه، هنگام دسترسی به فایلهای دیگر، آنها را آلوده میکنند.
ویروسهای مخفیکار (Stealth Viruses) :
اینگونه ویروسها به روشهای مختلف ردپای خویش را مخفی میکنند. به این معنی که فایلهای آلوده به اینگونه ویروسها به گونهای نشان داده میشود که یک فایل غیرآلوده جلوه کند. به عنوان مثال عموم ویروسها پس از آلوده کردن یک فایل، اندازه آن را افزایش میدهند و یا گاهی تاریخ و زمان ضبط فایل را عوض میکنند. اما ویروسهای مخفیکار میتوانند با روشهای خاص و بدون تغییر وضعیت ظاهری، عملیات خویش را انجام دهند.
ویروسهای کدشده (Encrypting Viruses) :
این ویروسها پس از هر بار آلودهسازی، با استفاده از شیوههای خود رمزی شکل ظاهری خود را تغییر میدهند.
ویروسهای چندشکلی (Polymorphic Viruses) :
اینگونه ویروسها با استفاده از الگوریتمهای خاص، علاوه بر تغییر شکل ظاهری خود، ساختار خود را نیز تغییر میدهند به طوریکه ممکن است جای دستورالعملها و حتی خود دستورالعملها نیز تغییر کنند.
ویروسهای فعالشونده بر اساس رویداد خاص(Triggered Event Viruses) :
ویروسهایی هستند که بخشی از عملیات تخریب خود را در ساعت و یا در تاریخ خاص انجام میدهند. البته باید توجه داشت که تکثیر و آلودهسازی فایلها در تمام اوقات فعال بودن ویروس انجام میشود.
نشانههای وجود ویروس
معمولاً سیستمی که به ویروس آلوده میگردد نشانههایی را از خود بروز میدهد که با دقت در آنها میتوان به ویروسی بودن احتمالی سیستم پی برد. بعضی از این نشانهها در زیر آمده است. اما باید دقت داشت که این نشانهها ممکن است در اثر عوامل غیرویروسی نیز ظاهر گردد. اما اگر کامپیوتر بطور عادی کار میکرده و ناگهان و بدون هیچگونه دستکاری، این علایم را از خود بروز میدهد، احتمال وجود ویروس بیشتر است:
۱ - سیستم در هنگام راهاندازی قفل میکند و احتمالاً پیغامهای غیرمعمول روی صفحه ظاهر میگردد.
۲ - هنگام اجرای برنامهها پیغام کمبود حافظه ظاهر شده و برنامه اجرا نمیگردد.
۳ - در کارچاپگر اختلال ایجاد میشود یا بدون هیچگونه فرمان چاپی شروع به کار میکند.
۴ - امکان دسترسی به برخی از درایوها وجود ندارد.
۵ - هنگام اجرای فایلها، پیغام File is Damaged یا File is Corrupted نمایش داده میشود.
۶ - هنگام اجرای یک فایل، کاراکترها و یا پیغامهای غیرعادی روی صفحه نمایش ظاهر میگردد.
۷ - هنگام کار در محیطهای گرافیکی، تصاویر به هم میریزد.
۸ - اصوات غیرمعمول یا موزیک از بلندگوهای کامپیوتر پخش میشود.
۹ - سیستم هنگام اجرای یک برنامه قفل کرده و حتی گاهی فشردن کلیدهای Ctrl+Alt+Del نیز نمیتواند سیستم را دوباره راهاندازی کند.
۱۰ - اطلاعات بخشی از دیسک سخت و یا تمام آن بطور ناگهانی از بین میرود یا دیسک سخت ناخواسته فرمت میشود.
۱۱ - اندازه فایلهای اجرایی افزایش مییابد.
۱۲ - خواص فایلهای اجرایی تغییر میکند.
۱۳ - سرعت سیستم بطور نامحسوسی کاهش مییابد.
۱۴ - اطلاعات Setup کامپیوتر از بین میرود.
۱۵ - برنامهها مراجعاتی به دیسکت انجام میدهند که قبلاً انجام نمیدادند.
۱۶ - کاهش فضای خالی دیسک بدون اینکه فایلی اضافه شده و یا به محتوای فایلها افزوده شده باشد.
۱۷ - نرمافزارهای مقیم در حافظه با خطا اجرا شده یا اصلاً اجرا نمیشوند.
۱۸ - بعضی برنامهها سعی در برقراری ارتباط با اینترنت را دارند.
۱۹ - هنگام کار با اینترنت مقدار ارسال و دریافت اطلاعات ناخواسته افزایش یافته و سرعت به شدت افت میکند.
۲۰ - نامههای الکترونیکی ناخواسته از روی سیستم ارسال شده و یا دریافت میگردد.
جاوا (به انگلیسی: Java) یک زبان برنامهنویسی شئگراست که برای اولین بار توسط
جیمز گاسلینگ در شرکت سان مایکروسیستمز ایجاد شد و در سال ۱۹۹۵ به عنوان بخشی
از سکوی جاوا منتشر شد. زبان جاوا شبیه به ++C است اما مدل شیءگرایی آسانتری
دارد و از قابلیتهای سطح پایین کمتری پشتیبانی میکند. یکی از قابلیتهای اصلی
جاوا این است که مدیریت حافظه را بطور خودکار انجام میدهد. ضریب اطمینان
عملکرد برنامههای نوشتهشده به این زبان بالا است و وابسته به سیستمعامل خاصی
نیست، به عبارت دیگر میتوان آن را روی هر رایانه با هر نوع سیستمعاملی اجرا
کرد. برنامههای جاوا به صورت کدهای بیتی همگردانی (کامپایل) میشوند. که مانند
کد ماشین هستند و به ویژه وابسته به سیستمعامل خاصی نیستند.
در مقایسه با زبانهای دیگر، همچون ++C یا بیسیک یا فورترن، جاوا زبان نسبتاً جدیدتری است. شرکت سان مایکروسیستمز (به انگلیسی: Sun Microsystems) در سال ۱۹۹۱ یک پروژه تحقیقاتی به نام گرین (Green) را آغاز کرد. هدف این پروژه ایجاد زبانی جدید شبیه به ++C بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط (Oak) نامید. اما بعدها به دلیل برخی مشکلات حقوقیاز میان لیستی از کلمات تصادفینام آن به جاوا تغییر کرد.
پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال ۱۹۹۳ باعث نمایش تواناییهای وافر جاوا در این عرصه گشت. اینگونه بود که شرکت سان مایکروسیستمز در مه ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.
جاوا یک زبان برنامهنویسی است که در آغاز توسط شرکت سان مایکروسیستمز ایجاد شدهاست و در سال ۱۹۹۵ به عنوان بخش اصلی سکوی جاوا منتشر شد. این زبان قسمتهای بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شیگرایی سادهای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که صرف نظر از معماری و خصوصیات آن کامپیوتر، قابلیت اجرا روی تمامی ماشینهای شبیهسازی جاوا را داشته باشد. اجزای اصلی کامپایلرهای جاوا، ماشینهای پیادهسازی و کتابخانههای آن توسط این شرکت از سال ۱۹۹۵ منتشر شد. در مه ۱۹۹۷ این شرکت، نرمافزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان را منتشر کردند مثل کامپایلر GNU برای جاوا.
مرورگرهای اصلی وب، به هم پیوستند تا به طور مطمئن جاوا اپلت را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخهٔ جدید توانست ترکیبهای جدیدی را برای نوعهای مختلف پلت فرمها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخهٔ سکوی جاوا، نسخه میکرو برای تلفن همراه منتشر شد. در سال ۱۹۹۶ با هدف بازاریابی، این شرکت نسخهٔ جدید J2 را با نامهای سکوی جاوا، نسخه سازمانی، سکوی جاوا، نسخه میکرو و سکوی جاوا، نسخه استاندارد منتشر کرد. در سال ۱۹۹۷ شرکت سان میکروسیستمز، ISO/IEC JTC1 standards body و Ecma International را به فرمول جاوا تغییر داد. شرکت Sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینهای فراهم آورد. شرکت Sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. در ۱۳ نوامبر ۱۹۹۶ شرکت Sun نرمافزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد.
اهداف اولیه
این زبان باید ساده، شیگرا و مشهور باشد.
مطمئن و بدون خطا باشد.
وابسته به معماری کامپیوتر نبوده و قابل انتقال باشد.
باید با کارایی بالا اجرا شود.
باید به صورت پویا و نخکشیشده باشد.
برنامههای جاوا و اپلتها
جاوا برای نوشتن انواع برنامههای کاربردی مناسب است. با جاوا میتوان انواع برنامههای زیر را نوشت:
برنامههای تحت وب
برنامهنویسی سیستمهای کوچک مانند تلفن همراه، رایانه جیبی و ...
برنامههای کاربردی بزرگ (Enterprise)
برنامههای رومیزی (Desktop)
قابلیت خاصی در جاوا وجود دارد بنام اپلت. اپلتها امکانات فراوانی برای نوشتن برنامههای تحت وب در اختیار برنامهنویسان قرار میدهند که دیگر زبانهای برنامهنویسی فاقد آن هستند.
البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلتها نظیر فناوری اکتیوایکس شرکت مایکروسافت هستند که برنامهنویسان را قادر میسازد تا امکاناتی را به مرورگر کاربر بیفزایند. البته تفاوت این دو در امنیت میباشد به گونهای که اپلتها بدلیل اینکه در محیطی به نام جعبه شنی (sandbox) اجرا میشوند امن هستند ولی اکتیوایکسها فاقد چنین امنیتی هستند.
سیستمعامل: هر چقدر زبانهای net. قوی باشند تنها بر روی پلت فرم ویندوز اجرا میشوند و برخی ویندوز را سیستمعامل غیر قابل اعتمادی در برنامه نویسی Enterprise میدانند.
ولی جاوا از این نظر انتخاب خوبی است.
قابلیت حمل: جاوا بر روی سکوهای رایانش گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از 1024 cpu برای پردازش.
جاوا بیشتر از یک زبان است: جاوا فقط یک زبان نیست و انجمنهایی متشکل از بزرگان صنایع و برنامهنویسان زیادی مشغول به توسعه و ایجاد استانداردهای جدید و به روز هستند.
در مقایسه با زبانهای دیگر، همچون ++C یا بیسیک یا فورترن، جاوا زبان نسبتاً جدیدتری است. شرکت سان مایکروسیستمز (به انگلیسی: Sun Microsystems) در سال ۱۹۹۱ یک پروژه تحقیقاتی به نام گرین (Green) را آغاز کرد. هدف این پروژه ایجاد زبانی جدید شبیه به ++C بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط (Oak) نامید. اما بعدها به دلیل برخی مشکلات حقوقیاز میان لیستی از کلمات تصادفینام آن به جاوا تغییر کرد.
پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال ۱۹۹۳ باعث نمایش تواناییهای وافر جاوا در این عرصه گشت. اینگونه بود که شرکت سان مایکروسیستمز در مه ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.
جاوا یک زبان برنامهنویسی است که در آغاز توسط شرکت سان مایکروسیستمز ایجاد شدهاست و در سال ۱۹۹۵ به عنوان بخش اصلی سکوی جاوا منتشر شد. این زبان قسمتهای بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شیگرایی سادهای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که صرف نظر از معماری و خصوصیات آن کامپیوتر، قابلیت اجرا روی تمامی ماشینهای شبیهسازی جاوا را داشته باشد. اجزای اصلی کامپایلرهای جاوا، ماشینهای پیادهسازی و کتابخانههای آن توسط این شرکت از سال ۱۹۹۵ منتشر شد. در مه ۱۹۹۷ این شرکت، نرمافزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان را منتشر کردند مثل کامپایلر GNU برای جاوا.
مرورگرهای اصلی وب، به هم پیوستند تا به طور مطمئن جاوا اپلت را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخهٔ جدید توانست ترکیبهای جدیدی را برای نوعهای مختلف پلت فرمها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخهٔ سکوی جاوا، نسخه میکرو برای تلفن همراه منتشر شد. در سال ۱۹۹۶ با هدف بازاریابی، این شرکت نسخهٔ جدید J2 را با نامهای سکوی جاوا، نسخه سازمانی، سکوی جاوا، نسخه میکرو و سکوی جاوا، نسخه استاندارد منتشر کرد. در سال ۱۹۹۷ شرکت سان میکروسیستمز، ISO/IEC JTC1 standards body و Ecma International را به فرمول جاوا تغییر داد. شرکت Sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینهای فراهم آورد. شرکت Sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. در ۱۳ نوامبر ۱۹۹۶ شرکت Sun نرمافزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد.
اهداف اولیه
این زبان باید ساده، شیگرا و مشهور باشد.
مطمئن و بدون خطا باشد.
وابسته به معماری کامپیوتر نبوده و قابل انتقال باشد.
باید با کارایی بالا اجرا شود.
باید به صورت پویا و نخکشیشده باشد.
برنامههای جاوا و اپلتها
جاوا برای نوشتن انواع برنامههای کاربردی مناسب است. با جاوا میتوان انواع برنامههای زیر را نوشت:
برنامههای تحت وب
برنامهنویسی سیستمهای کوچک مانند تلفن همراه، رایانه جیبی و ...
برنامههای کاربردی بزرگ (Enterprise)
برنامههای رومیزی (Desktop)
قابلیت خاصی در جاوا وجود دارد بنام اپلت. اپلتها امکانات فراوانی برای نوشتن برنامههای تحت وب در اختیار برنامهنویسان قرار میدهند که دیگر زبانهای برنامهنویسی فاقد آن هستند.
البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلتها نظیر فناوری اکتیوایکس شرکت مایکروسافت هستند که برنامهنویسان را قادر میسازد تا امکاناتی را به مرورگر کاربر بیفزایند. البته تفاوت این دو در امنیت میباشد به گونهای که اپلتها بدلیل اینکه در محیطی به نام جعبه شنی (sandbox) اجرا میشوند امن هستند ولی اکتیوایکسها فاقد چنین امنیتی هستند.
سیستمعامل: هر چقدر زبانهای net. قوی باشند تنها بر روی پلت فرم ویندوز اجرا میشوند و برخی ویندوز را سیستمعامل غیر قابل اعتمادی در برنامه نویسی Enterprise میدانند.
ولی جاوا از این نظر انتخاب خوبی است.
قابلیت حمل: جاوا بر روی سکوهای رایانش گوناگونی قابل اجرا است، از ATM و ماشین رختشویی گرفته تا سرورهای سولاریس با قابلیت پشتیبانی از 1024 cpu برای پردازش.
جاوا بیشتر از یک زبان است: جاوا فقط یک زبان نیست و انجمنهایی متشکل از بزرگان صنایع و برنامهنویسان زیادی مشغول به توسعه و ایجاد استانداردهای جدید و به روز هستند.
ساعت : 2:42 am | نویسنده : admin
|
مطلب بعدی