هفت دلیل برای کار و برنامهنویسی با لینوكس
در این یادداشت میخواهم شما رابا محیطهای برنامهنویسی لینوكس آشنا كنم، اگرچه میدانم خیلی از برنامهنویسانمتأسفانه تنها با محیط ویندوز كار میكنند و از مزایای زیاد محیطهای برنامهنویسیلینوكس بیاطلاع هستند.
بهطور كلی محیطهای برنامهنویسی به دو دسته كلیتقسیم میشوند: واسطهای كاربر مبتنی بر خط دستور و واسطهای كاربر گرافیكی. درسیستمعامل لینوكس محیطهای برنامهنویسی، سرویسها و امكانات فراوانی دارند وبدون تردید میتوان گفت كه لینوكس قدرتمندترین محیط برنامهنویسی را در اختیار ماقرار میدهد.
ممكن است خیلی از شما طرفدار سیستمعاملهایی مانند ویندوزباشید و متعصبانه بگویید چرا باید چنین باشد؟
شاید هفت دلیل زیر شما را قانعكند.
دلیلیكم:
لینوكس برای برنامهنویسی قانونهای مخصوص به خود را دارد: از جمله اینكه برنامه نباید برای همه كاربران همه چیز را فراهم سازد. به عنوانمثال، در محیط برنامهنویسی متنی نیازی نیست كه آن محیط بتواند ایمیل هم بفرستد وتمام تمركز كاری روی هدف اصلی برنامه است. همچنین ابزارهای متعدد و متمركزی را دراختیار برنامهنویسان قرار میدهد تا نیازهای فنی خود را برطرف كنند.
دلیلدوم:
مدل مدیریت پردازشگر لینوكس پیشرفته است، به نحوی كه اگرپروسهای دارای مجوزهای لازم باشد میتواند پروسههای دیگری را ایجاد كند كه ما بهآنها پروسههای بچه یا Child process میگوییم كه میتوانند با آنها تبادلاطلاعات كنند و تقاضای انجام قسمتی از عملیاتی كه به آنها واگذار شده است را ازآنها داشته باشند.
دلیل سوم:
خیلی كم پیش میآید كهلینوكس مانند ویندوز یكباره هنگ كند و با صفحه آبی مرگ روبهرو شویم. زیراسیستمعامل برای kernel خود، CPU و RAM خاص اختصاص میدهد تا كارهای جاریش را انجامدهد و برای برنامههای دیگر مانند مرورگر یا برنامههای كاربردی از User Space استفاده میكند و نمیتواند به طور مستقیم به Kernel Space دسترسی داشتهباشد.
البته ناگفته نماند كه این كار مشكلاتی را نیز دربرخواهد داشت. بهعنوان مثال، برنامههای User Space برخلاف ویندوز به تجهیزات سختافزاری سیستمدسترسی ندارند و اگر برنامه نرمافزاری بخواهد با كارت شبكه كار كند مدیر سیستمباید برای كاربر برنامه این دسترسی را ایجاد كند.
دلیلچهارم:
در لینوكس مدل امنیت خاصی برقرار است كه در آن همه كاربرانتعریف شده برای سیستم با هم برابر نیستند (مانند كاربر Root كه از بیشتریناختیارات برخوردار است) و هر كاربر معمولی باید دسترسی استفاده از امكانی را داشتهباشد. این مدل امنیتی روی برنامهنویسی تأثیرات مثبتی خواهد گذاشت. مثلاً میتوانبه این نكته اشاره كرد كه چون با توجه به مدل امنیتی لینوكس تهیه شده پس سیستمی همكه تولید خواهد شد به یقین امنیت خوبی خواهد داشت.
دلیل پنجم:
اگر چه شما در لینوكس فكر میكنید صاحب CPU هستید، اما اینطورنیست؛ شما به طور مجازی به CPU احاطه دارید. CPU در سیستمعامل لینوكس به صورتچندرشتهای كار میكند و روی پردازشگر در زمینه اختصاص منابع و محاسبه برای هر Task مدیریت خاصی وجود دارد.
دلیل ششم:
لینوكس به صورت پیشفرض بهگونهای طراحی شده كه چند كاربر بتوانند همزمان با هم كار كنند و برنامههایی كه درمحیطهای لینوكسی نوشته و استفاده می شوند باید با دقت طراحی شوند. برنامهنویساننباید فكر كنند كه میتوانند به منابع دسترسی محض داشته باشند.
دلیلهفتم:
مهمترین دلیلی كه میتوان ذكر كرد این است كه درسیستمعامل لینوكس مكانیزم IPC (سرنام Interprocess Communication) به برنامههاامكان میدهد تا اطلاعات و منابع خود را با حداقل مقدار Overhead به اشتراكگذارند.
IPC به سه حالت میتواند در سیستمهای لینوكس كارایی داشتهباشد:
1- صفهای پیغامها: از ساختار اطلاعاتی FIFO (سرنام First in First Out) استفاده میكند تا پروسهها پیغامهای كوتاه خود را به آسانی با هم رد و بدلكنند.
2- Semaphores: یا بهكارگیری علامت خاص برای نشان دادن اینكه مثلاًیك فایل خاص چه دسترسی دارد.
3- استفاده از حافظه مشترك برای كار درسیستمهایی كه چند كار را با هم انجام میدهند.
به طور كلی، به نظر میرسددر مقایسه با سیستمعاملهای دیگر استفاده از لینوكس نه تنها از لحاظ اقتصادی بهصرفه است، بلكه به دلایلی مانند قابلیت ارتقای مناسبتر، اعتمادپذیری، امنیت وقدرت بیشتر برای برنامهنویسان حرفهای محیط مناسبتری است.
البته هر فردسلیقهای دارد برخی سادگی كار سیستمعامل ویندوز و وجود محیطهای متنوع و قدرتمندیرا كه در اختیار قرار میدهد، میپسندند. به نظر من هیچ اشكالی ندارد كه با همهسیستمعاملها برنامهنویسی كنیم، اما لینوكس حرفهایتر است. اگر با اینسیستمعامل كار كرده باشید، منظور از این سخن را خوب متوجه میشوید.
علاقه مندی ها (Bookmarks)