چرا در لینوکس به آنتی ویروس نیاز دارم؟

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

لینوکس طوری مهندسی شده که امکان اجرا شدن ویروس در آن سخت است، ولی به هر حال به دلایل زیادی ممکنه که شما یک آنتی ویروس رو برای کامپیوتر لینوکسی‌تون بخواین:

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

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

شناخته شده‌ترین آنتی ویروس منبع باز معرفی شده توسط سایت اوبونتو:

  • ClamAV Antivirus

برخی از آنتی ویروس‌های رایگان معرفی شده توسط سایت ابونتو:

  • Comodo Anti-Virus for Linux
  • Avast! Linux Home Edition
  • AVG Antivirus
  • Avira Antivirus
  • BitDefender Antivirus
  • Panda Antivirus
  • F-PROT Antivirus for Workstations (home users)

دلایلی که لینوکس در مقابل بدافزارها کمتر آسیب‌پذیر است:

  • برنامه‌ها معمولاً با نام کاربری معمولی اجرا می‌شن و دسترسی root ندارند.
  • برنامه‌ها منبع باز هستند و در نتیجه افراد بیشتری اون‌ها رو کنترل می‌کنن.
  • کاربر نهایی نقش مؤثری در تنظیم (سیستم عامل و برنامه‌ها) دارد.
  • برنامه‌های سیستمی به طور مداوم آپدیت می‌شن.
  • برنامه‌ها معمولاً از منابع معتبر نصب می‌شن.

ساخت کورکورانه اپ محاسبه اضافه کاری پرستاران

من از حدود ۷ سالکی این امکان رو داشتم که به کامپیوتر دسترسی داشته باشم. البته اولین کامپیوتر شخصی‌ام زمانی که ۱۵ سال داشتم برام خریداری شد و این به این معناست که تا قبل از از ۱۵ سالگی این حق رو نداشتم که هر بلایی که دوست دارم به سر کامپیوتر بیارم.

اعتراف می‌کنم که وقتی به این فکر می‌کنم که آقایان بیل گیتس و مارک زاکربرگ در سنین ۱۳ – ۱۴ سالگی اولین برنامه تجاریشون رو نوشتن حسابی بهشون حسودیم میشه ولی چیزی که باعث غمگین شدنم میشه اینه که با توجه به شناختی که از خودم دارم مثلا اگر از همان ۷ سالگی یک کامپیوتر متعلق به خودم داشتم شاید من هم می‌تونستم در همون سنین برنامه‌های تجاریم رو عرضه کنم.

چیزی که این حس رو در من تقویت می‌کنه تجربه «ساخت کورکورانه اپ محاسبه اضافه کاری پرستاران» هست!

ماجرا اینه که همین داستان کامپیوتر در خصوص گوشی موبایل اندرویدی هم برام تکرار شد. من از زمانی که کم کم سیمبیان رو به افول می‌رفت می‌دونستم که آینده متعلق به اندروید هست! همیشه می‌دونستم که با برنامه‌نویسی اندروید میشه به چه بازارهای جدیدی وارد شد اما… خب قضیه روشنه من باز هم دیر به چیزی که می‌خواستم رسیدم. در واقع همین ۳ سال پیش بود که اولین گوشی هوشمندم رو گرفتم.

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

باری! چیزی که می‌خوام در این مطلب بهش اشاره کنم افتخار کردن به بی پولی نیست. من با بیل گیتس کاملا موافقم که میگه: «اگر پولدار به دنیا نیای تفصیر تو نیست ولی اگر بی پول بمیری تقصیر توئه!»

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

در همین دوران یادگیری بود که دوستی که خودش در بیمارستان کار می‌کند با من در مورد مشکل پرستاران در خصوص محاسبه اضافه کاریشون صحبت کرد. راه حل ساده بود! کافی بود که برنامه‌ای برای اندروید بنویسم که پرستاران به راحتی بتونن توسط اون اضافه کاریشون رو محاسبه کنن… ولی این وسط یک چیزی می‌لنگید!

مشکل کار این بود که من هیچ تجربه‌ای در خصوص کار با اندروید نداشتم! اگر بخوام کمی فنی‌تر صحبت کنم من هیچ درکی نداشتم که UX در اندروید به چه شکل است!

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

اپلیکیشن محاسبه اضافه کاری پرستاران رو پس از مدتی وارد کافه بازار کردم و چندین ماه بعد از این ماجرا اولین گوشی اندرویدیم رو خریدم…

امروزه این اپ بیش از ۳۰۰ بار دانلود شده. وقتی به ظاهر این برنامه نگاه می‌کنم حالم بهم می‌خوره که سازنده‌اش هستم! چیزی که باعث شده که تا حالا این برنامه رو از کافه بازار حذف نکنم یادآوری این درس بهم بوده که با تلاش میشه غیر ممکن‌ها رو هم ممکن کرد. درسته که احتمالا حال من و بقیه همکارانم در سراسر دنیا از همچین ظاهری بهم میخوره ولی چیزی که مهمه اینه که این اپ در چند سال گذشته تونسته به چند صد نفر پرستار کمک کنه و چه چیزی از این بهتر؟! 🙂

چالش جدید من در جنگل – ATmega16A

چند وقتی هست که حسابی وسوسه شدم تا به سراغ برنامه نویسی میکروکنترولرها برم. این وسوسه یک علاقه شخصی برای آرما و یک دید تجاری برای علیرضا مؤید احمدی به عنوان مدیر عامل جنگل هست.

به همین خاطر یک چالش تازه را در جنگل استارت زدم. من باید بتونم تا پایان سال آینده (سال ۱۳۹۵ شمسی) به این توانایی‌ها برسم:

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

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

میکروکنترولری که در این مدت باهاش کار خواهم کرد ATmega16A نام دارد و برنامه‌های درونش رو هم با محیط CodeVision و به زبان C خواهم نوشت.

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

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