۱۳۹۳ خرداد ۶, سه‌شنبه

ناتیلوس، می‌تونه بهتر از این باشه

Nautilus رو هممون می‌شناسیم، فایل منیجر اوبونتو و شاید یه عدمون هم Nemo رو بشناسیم، فایل منیجر مینت.
ناتیلوس خیلی داغونه و در عوض nemo کلی امکانات داره ولی خوب ناتیلوس هم می‌تونه بهتر از این‌ها باشه.
چند وقته بعد از نصب اوبونتو ۱۴.۰۴ گاهی باهاش سر و کله زدم تا بهتر بتونم ازش استفاده کنم.

۱-
ناتیلوس فقط می‌تونه یه فولدر جدید یا یه فایل خالی جدید بسازه. همین و بس
دوس دارم که بتونه فایل های اوپن آفیس، بش اسکریپت و چیزای دیگه رو هم بسازه
فولدر Templates توی دایرکتوری هوم همین کارو برامون انجام می‌ده
کافیه هر نوع فایل جدید رو توش قرار بدیم تا توی منوی New Document ناتیلوس نمایش داده بشه.
فعلا ما توی Templates دوتا فولدر Office و Script می‌سازیم و توی هر کدوم چندتایی فایل آفیس و اسکریپ خالی می‌ریزیم


$ cd && touch Templates
$ cd ~/Templates && mkdir Office && cd Office && touch ODT.odt ODS.ods ODP.odp
$ cd ~/Templates && mkdir Script && cd Script && touch Bash.sh Python.py
$ echo "#! /bin/sh" > ~/Templates/Script/Bash.sh
$ echo "#! /usr/bin/python" > ~/Templates/Script/Python.py

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

آدرس زیر محلیه که می‌شه توش اسکریپت‌های مورد نیازمونو بریزیم و گزینه‌ای به اسم Scripts توی راست کلیکمون داشته باشیم

.local/share/nautilus/scripts/ 

راحت‌ترین کار اینه که از اسکریپت‌های آماده‌ی ubuntu-tweak استفاده کنیم
یا این که از این آدرس مخازنشو به لیست مخازنتون اضافه کنید

بقیش دیگه سادست
برنامه رو باز کنید توی تب Admins زیر مجموعه‌ی Personal گزینه‌ی Scripts رو باز کنید و نهایتا هر اسکریپتی که خواستید رو به لیست اسکریپت‌هاتون اضافه کنید
به نظرم این چارتا فعلا خیلی کاربردی‌تر از بقیست
Browse as root
Check MD5 sum
Open with your favorite text editor
Open with your favorite text editor (as root)

یه نکته دیگه این که اگه اسماشون خوش آیند نیست یا طولانیه یا هرچی، می‌تونید به آدرسی که گفتم برید و اسماشونو ادیت کنید


۳-
open in terminal یکی از واجباته
پس این فایلو نصب کنید و خودتونو از فلاکت نجات بدید

$ sudo apt-get install nautilus-open-terminal

۴-
می‌دونم که اعتقاد دارین که لینوکس ویروس نمی‌گیره ولی به هر حال ممکنه آنتی ویروس به کارتون بیاد، حتی برای چک کردن فلش مموری دوستان.
clamav رو نصب کنید
clamtk رو هم نصب کنید تا یه پوسته‌ی گرافیکی برای کار باهاش داشته باشید
نکته اینه که clamtk توی مخازن اوبونتو قدیمیه، پس به این آدرس برید و نسخه‌ی جدیدشو بگیرید
از امکانات جدید و بدرد بخورش که اینجا به درد ما می‌خوره، اضافه کردن گزینه‌ی scan directory for threats به منوی ناتیلوس هست

۵-
گاهی وقت‌ها دوست داریم که رنگ فولدری رو تغییر بدیم تا از بقیه قابل تشخیص باشه

اینجاست که Folder color به کار میاد
$ sudo add-apt-repository ppa:costales/folder-color
$ sudo apt-get update
$ sudo apt-get folder-color


۶-
اگه اهل bluetooth فرستادن هستید حتما متوجه شدید که نمی‌شه روی یه فایل راست کلیک کرد و با بولوتوث ارسالش کرد
برنامه‌ی ناتیلوس اکشن رو نصب کنید
sudo apt-get install nautilus-actions
بازش کنید
توی تب action قسمت context label بهش اسم بدید مثلا Send via bluetooth
توی تب command قسمت path بهش آدرس برنامه‌ی ارسال بلوتوث رو بدید
/usr/bin/bluetooth-sendto
و در آخر توی قسمت parameters پارامتر f% رو وارد کنید. ( از چپ به راست درصد اف).
تغییراتو ذخیره کنید و خارج بشید
حالا توی منوی ناتیلوس گزینه‌ای برای ارسال بلوتوث دارید.

۷-
آخریشو داشت یادم می‌رفت
جان مک آفی رو می‌شناسید؟! آنتی‌ویروس نیست. یه نفره که آنتی ویروسی نوشته که چون خیلی با خودش حال می‌کرده اسم آنتی ویروسشم گذاشته مک آفی.
ایشون متهم شد به قتل، بعدش فراری شد و بعد FBI ردشو زد، اونم از روی متادیتای عکسش.
یعنی اگه این مرد این پست منو خونده بود به فنا نمی‌رفت
برنامه‌ای به اسم mat رو نصب کنید تا بتونید باهاش متادیتای فایل‌هاتون رو بخونید و کنترل کنید.
خوبیش اینه که گزینه‌ای به راست کلیک ناتیلوس اضافه می‌کنه و این کارو خیلی راحت می‌کنه.

همین دیگه
زندگی از این راحت‌تر نمی‌شه

۱۳۹۳ اردیبهشت ۳۱, چهارشنبه

«بش» از نوعی دیگر

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

مطلب خیلی طولانی نیست، فقط دستاورد خودمه طی چند ساعت سر و کله زدن با prompt ترمینال سیستمم
مسلما همونطور که توی تیتر مطلب هم خوندید از Bash که دیفالت سیستم هست استفاده می‌کنم

نتیجش این شد که
prompt از این حالت

تبدیل شد به این حالت

کافیه که این کد رو به آخر فایل bashrc داخل فولدر home خودتون اضافه کنید
اگرم می‌خواید bashrc شلوغ نشه، بریزیدش توی یه فایل دیگه و توی bashrc صداش بزنید

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

۱۳۹۳ فروردین ۲, شنبه

چرا آندروید نا امن نیست

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

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

خبرهایی منتشر می‌شه که می‌گه طی تحقیقات ۹۹ درصد بد افزارها برای آندروید منتشر می‌شه.
ولی واقعا بد افزار چیه؟!
ضعف امنیتی چیه؟!

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

سناریویی رو در نظر بگیرید که کاربر وبکم خودش رو روشن بزاره، کسی بیاد از این وبکم سو استفاده کنه و بعد کاربر شاکی بشه که سیستم من امن نیست و یه نفر تونسته از وبکم من سو استفاده بکنه؟!
ولی واقعا این ضعف سیستمه؟!
درواقع این ضعف مدیر سیستمه که امنیت سیستم رو به خطر می‌ندازه.
دقیقا مثل خونه‌ای فولادی می‌مونه که درشو باز بزاریم.

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

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

درعوض خیلی ساده می‌شه برای آندروید بد افزار نوشت
این همه مارکت مختلف
کاربر هم که سواد درست و حسابی نداره، هرچی دم دستش باشه رو نصب می‌کنه

پس هر بد افزاری ویروس نیست و هر ضعفی، ضعف طراحی و مهندسی سیستم نیست.

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

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

۱۳۹۲ اسفند ۲۲, پنجشنبه

از هسته مشکل داره، کاریشم نمی‌تونه بکنه

انگار نه انگار که می‌خواستم کمتر بیام نت، ولی خوب بازم شدتش کم شده

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

یه جنبشی راه افتاده که می‌گه آندروید کنده چون از هسته مشکل داره
ادعا؟!
این که کرنل آندروید که لینوکس باشه Monolithic یا یک پارچه هست و یک پارچه بودن خیلی بده. (به این خیلی بده توجه داشته باشید که اصلا طرف نمی‌دونه چرا داره می‌گه یک پارچه بودن خیلی بده) در ادامه می‌گه که لینوکس کاملا به صورت یه پروسه اجرا می‌شه و این یعنی کل هسته یه exe کامل هست و این هم خیلی بده.
اینه که اگه ایرانی باشی می‌گی «ببین با کیا شدیم ۷۵ میلیون»، اگرم انگلیسی زبان باشی می‌گی:
This is why aliens don't talk to us

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

اصلا بحث آندروید و وین‌فون و این چیزا نیست
می‌خوام بگم  Monolithic kernel چیه، Micro Kernel چیه.

بحث از اون‌جایی شروع شد که جناب Andrew S. Tanenbaum که یکی از اساتید معروف علم کامپیوتره و کتاب سیستم‌عاملش هم معروفه، شروع کرد از Linus Torvalds، نویسنده‌ی لینوکس ایراد بگیره که چرا لینوکس رو به صورت کرنل یک پارچه نوشتی و چرا میکرو کرنل ننوشتی. (این مباحثه رو می‌تونید از این لینک بخونید.)

بزارید توضیح بدم که اصلا تفاوت کرنل یک پارچه با میکرو کرنل چیه.

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

حالا تفاوت کرنل یک پارچه با میکرو کرنل چیه؟!
کرنل یک پارچه تمام اجزاش توی kernel space اجرا می‌شن ولی میکرو کرنل سعی می‌کنه تا بشه، kernel space رو کوچیک نگه داره و تا می‌تونه بخش‌های مختلف هسته‌ رو توی user space اجرا کنه



اگه توی عکس دقت کنید میکرو کرنل شامل یک مشت server هست که درواقع ارتباط بین kernel space و user space رو بر قرار می‌کنن.

این که کدوم روش بهتره، بحثیه که به بی‌راهه می‌کشه ولی شاید بشه گفت هر کدوم چه مزیت‌هایی دارن

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

حالا اگه توی عکس دقت کرده باشید می‌بیند که هیبرید کرنل، یه چیزی ما بین کرنل یک پارچه و میکرو کرنل هست.
در آخر بگم که هسته‌ی ویندوز قبل از سری NT یعنی ویندوزهای ۹۸ ، ME و پایین‌تر از نوع یک پارچه بودن، ولی از بعد از NT ، کرنل ویندوز بیشتر شبیه هیبرید کرنل‌ها هست.
لینوکس اولیه هم یک پارچه بوده ولی این روزها با این که هنوز خیلی شبیه کرنل‌های یک پارچه هست تغییرات زیادی کرده. بعضی از بخش‌ها وارد user space شده و چیزهایی مثل درایورها ماژولار شدن تا بتونن به راحتی موقع اجرای کرنل دوباره راه اندازی بشن. پس می‌شه گفت با کرنل یک پارچه‌ فرق می‌کنه.

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

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

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

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

بحثی در باب بازاریابی

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

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

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

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

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

بر خلاف اون آندروید سعی کرد سریع وارد بازار بشه و اگرچه کیفیت کاملا مطلوبی نداشت ولی زمان ورود به بازار رو خوب درنظر گرفته بود.

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

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

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

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

پ . ن
یه مطلب درست و حسابی درمورد این که چرا رابط کاربری آندروید کنده
البته مال دوران آندروید چهاره
تغییرات زیادی توی ۴.۱ و ۴.۴ ایجاد شده و خیلی چیزای دیگه توی آندروید ۵ در راهه مثل ART به جای Dalvik

۱۳۹۲ اسفند ۱۵, پنجشنبه

سیستم‌عامل‌ ابری، کروم اواس


سیستم‌عامل‌های ابری مثل کروم‌اواس چی هستن و اصلا‌ به چه دردی می‌خورن؟!

اولین سؤالی که برای هر کاربری پیش میاد اینه‌ که وقتی قرار نیست برنامه‌ای روی این مدل از سیستم‌عامل‌ها نصب بشه، واقعا‌ به چه دردی می‌خورن؟!

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

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

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

یه پیش‌فرض در نظر می‌گیریم
اینکه به اینترنت پر سرعت و بدون فیلتر دسترسی داریم.

حالا من با این پیشفرض به شما یه پیشنهاد می‌دم.
قراره یه لپتاپ بخرید.

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

دومی: ارزونه، سبکه، باتری خوبی داره، ویروسی نمی‌شه، نیاز به بروزرسانی سخت‌افزاری خیلی کمی داره و می‌تونید تا چند سال آخرین بازی‌های فول اچ‌دی رو با ۶۰ فریم بر ثانیه روش اجرا کنید و آخ نگه، اگه گم بشه یا آسیب ببینه شما هیچ کدوم از اطلاعاتتون رو از دست ندادید، هیچ وقت نیازی به نگران بودن درمورد قدیمی شدن ورژن نرم‌افزارهاتون ندارید و نهایتا‌ اگر روزی لپ‌تاپ جدیدی از همین مدل خریدید، فقط کافیه یوزر و پسوورد خودتون را واردش کنید و لپ تاپ خود به خود آماده‌ی استفادست.
اینم‌ بگم که اگه یه روز یادتون رفت لپ‌تاپتون رو دنبال خودتون ببرید، هرجا که یه مدل از همین لپ‌تاپ رو پیدا کیند، فقط کافیه یوزر پس خودتون رو توش وارد کنید و تمام. انگار که نشستی پشت سیستم خودت.

با این تفسیر عریض و طویل می‌ریم که یکم بررسی بهتر داشته باشیم.

سیستم‌عامل‌های ابری

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

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

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

همین شرکت می‌تونه به کمک پردازش ابری پول کمتری رو پرداخت کنه.
می‌تونه یک سری کامپیوتر ساده تهیه کنه و فقط به اندازه‌ی همون یک ماهی که نیاز به پردازش سنگین داره، پول بپردازه و از قدرت سرورهای یه شرکت اینترنتی بهره مند بشه.
در این صورت هزینه یک دوازدهم می‌شه، چون دیگه نیاز نیست که پول هر ۱۲ ماه سال رو بپردازه.

کلا‌ پردازش ابری یک سری مزیت‌ها برای کاربر و یک سری مزیت‌ها برای تولید کننده داره

مزیت‌هایی که کاربر می‌تواند داشته باشد:

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

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

۳. کاربر نیازی به نگرانی درمورد به روز رسانی نرم‌افزارها ندارد، چون عملا‌ هیچ نرم‌افزاری روی سیستم نصب نمی‌کند. (تمامی نرم‌افزارها بر روی سرور بوده و توسط مدیر سرور به روز می‌شود)

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

۵. عملا‌ به دلیل اینکه کاربر نرم‌افزاری نصب نمی‌کند، می‌تواند نگران نرم‌افزارهای آلوده نباشد.

مزیت‌هایی که تولید کننده می‌تواند داشته باشد:

۱. برنامه نویس دیگر نگران ناهماهنگی نسخه‌های قدیمی نرم‌افزارها نیست، چرا که خود می‌تواند نرم‌افزار نصب شده بر روی سرور را به روز کند.

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

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

مزیت‌هایی که سیستم‌عامل کروم‌اواس دارد:

۱. اوپن سورس است و یک سیستم اوپن سورس که به صورت گسترده مورد استفاده قرار گیرد، به سرعت امن و پایدار می‌شود.

۲. تمامی نرم‌افزارها، افزونه‌ها و … از طریق وب سایت کروم وب استور قابل دسترسی هستند و این باعث می‌شود با نظارت شرکتی مانند گوگل، کاربر نگرانی از جهت بدافزارها نداشته باشد.

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


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

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

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

اگر هم می‌خواید بحث تکراری بکنید که ایران که فلانه و نمی‌شه و هر چیز دیگه‌ای
من می‌گم دیر یا زود داره ولی سوخت و سوز نداره
و یادتون باشه که دورانی داشتیم که اگه یه برادری یه فیلم VHS یا همون فیلم ویدیوی خودمون رو دستتون می‌دید، سروکارتون با کرام‌الکاتبین بود. ولی حالا می‌بینیم دانشجوی مملکت هارد داره ۵۰۰ گیگ تا دو ترا، توش هم مملو از فیلم آموزشیه! اسمشم هست درایو Z.
این ۱۰ سال اخیر اوج دوران تکنولوژی بوده و هرچی پیش می‌ره شدتش بیشتر هم می‌شه.
یعنی من نمی‌تونم حرف بزنم ولی گریزی به سینگولاریتی نزنم
پادکست شماره یک رادیو گیک درمورد سینگولاریتی رو گوش بدید تا بفهمید چی می‌گم. می‌تونید هم گوش ندید ولی نصف عمرتون بر فناست
این لینک کروم بوک اچ پی رو هم ببنید و لذت ببرید

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

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

دقیقا مثل وقتی که مرورگر کروم خودش رو آپدیت می‌کنه و شما ناخواسته همیشه دارید از آخرین ورژن اون استفاده می‌کنید.