|
برندگان جايزه نوبل فيزيك سال 2008 معرفي شدند | ||||
| ||||
و این چیزی نبود جز فقدانی عمیق در حیطه سیستم های عامل.
داس، امپراطوری کامپیوترهای شخصی را در دست داشت. سیستم عامل بی استخوانی که با قیمت 50000 دلار از یک هکر سیاتلی توسط بیل گیتز (Bill Gates) خریداری شده بود و با یک استراتژی تجاری هوشمند، به تمام گوشه های جهان رخنه کرده بود. کاربران PC انتخاب دیگری نداشتند. کامپیوترهای اپل مکینتاش بهتر بودند. ولی قیمتهای نجومی، آنها را از دسترس اکثر افراد خارج می ساخت.
خیمه گاه دیگر دنیای کامپیوترها، دنیای یونیکس بود. ولی یونیکس به خودی خود بسیار گرانقیمت بود. آنقدر گرانقیمت که کاربران کامپیوترهای شخصی جرات نزدیک شدن به آنرا نداشتند. کد منبع یونیکس که توسط آزمایشگاههای بل بین دانشگاهها توزیع شده بود، محتاطانه محافظت میشد تا برای عموم فاش نشود. برای حل شدن این مسئله، هیچیک از تولید کنندگان نرم افزار راه حلی ارائه ندادند.
بنظر میرسید این راه حل به صورت سیستم عامل MINIX ارائه شد. این سیستم عامل، که از ابتدا توسط اندرو اس. تاننباوم (Andrew S. Tanenbaum) پروفسور هلندی، نوشته شده بود به منظور تدریس عملیات داخلی یک سیستم عامل واقعی بود. این سیستم عامل برای اجرا روی پردازنده های 8086 اینتل طراحی شده بود و بزودی بازار را اشباع کرد.
بعنوان یک سیستم عامل، MINIX خیلی خوب نبود. ولی مزیت اصلی آن، در دسترس بودن کد منبع آن بود. هرکس که کتاب سیستم عامل تاننباوم را تهیه میکرد، به 12000 خط کد نوشته شده به زبان C و اسمبلی نیز دسترسی پیدا میکرد. برای نخستین بار، یک برنامه نویس یا هکر مشتاق میتوانست کد منبع سیستم عامل را مطالعه کند. چیزی که سازندگان نرم افزارها آنرا محدود کرده بودند. یک نویسنده بسیار خوب، یعنی تاننباوم، باعث فعالیت مغزهای متفکر علوم کامپیوتری در زمینه بحث و گفتگو برای ایجاد سیستم عامل شد. دانشجویان کامپیوتر در سرتاسر دنیا با خواندن کتاب و کدهای منبع، سیستمی را که در کامپیوترشان در حال اجرا بود، درک کردند.
و یکی از آنها لینوس توروالدز (Linus Torvalds) نام داشت.
کودک جدید در افق
در سال 1991، لینوس بندیکت توروالدز (Linus Benedict Torvalds) دانشجوی سال دوم علوم کامپیوتر دانشگاه هلسینکی فنلاند و یک هکر خود آموخته بود. این فنلاندی 21 ساله، عاشق وصله پینه کردن محدودیت هایی بود که سیستم را تحت فشار قرار میدادند. ولی مهمترین چیزی که وجود نداشت یک سیستم عامل بود که بتواند نیازهای حرفه ای ها را براورده نماید. MINIX خوب بود ولی فقط یک سیستم عامل مخصوص دانش آموزان بود و بیشتر به عنوان یک ابزار آموزشی بود تا ابزاری قدرتمند برای بکار گیری در امور جدی.
در این زمان برنامه نویسان سرتاسر دنیا توسط پروژه گنو (GNU) که توسط ریچارد استالمن (Richard Stallman) آغاز شده بود، تحریک شده بودند. هدف این پروزه ایجاد حرکتی برای فراهم نمودن نرم افزارهای رایگان و در عین حال با کیفیت بود. استالمن خط مشی خود را از آزمایشگاه معروف هوش مصنوعی دانشگاه MIT با ایجاد برنامه ویرایشگر emacs در اواسط و اواخر دهه 70 آغاز نمود. تا اوایل دهه 80، بیشتر برنامه نویسان نخبه آزمایشگاههای هوش مصنوعی MIT جذب شرکتهای نرم افزاری تجاری شده بودند و با آنها قرارداد های حفظ اسرار امضا شده بود. ولی استالمن دیدگاه متفاوتی داشت. وی عقیده داشت برخلاف سایر تولیدات، نرم افزار باید از محدودیت های کپی و ایجاد تغییرات در آن آزاد باشد تا بتوان روز به روز نرم افزارهای بهتر و کارآمد تری تولید نمود.
با اعلامیه معروف خود در سال 1983، پروژه GNU را آغاز کرد. وی حرکتی را آغاز کرد تا با فلسفه خودش به تولید و ارائه نرم افزار بپردازد. نام GNU مخفف GNU is Not Unix است. ولی برای رسیدن به رویای خود برای ایجاد یک سیستم عامل رایگان، وی ابتدا نیاز داشت تا ابزارهای لازم برای این کار را ایجاد نماید. بنابراین در سال 1984 وی شروع به نوشتن و ایجاد کامپایلر زبان C گنو موسوم به GCC نمود. ابزاری مبهوت کننده برای برنامه نویسان مستقل. وی با جادوگری افسانه ای خود به تنهایی ابزاری را ایجاد نمود که برتر از تمام ابزارهایی که تمام گروههای برنامه نویسان تجاری ایجاد کرده بودند قرار گرفت. GCC یکی از کارآمد ترین و قویترین کامپایلرهایی است که تا کنون ایجاد شده اند.
تا سال 1991 پروزه GNU تعداد زیادی ابزار ایجاد کرده بود ولی هنوز سیستم عامل رایگانی وجود نداشت. حتی MINIX هم لایسنس شده بود. کار بر روی هسته سیستم عامل گنو موسوم به HURD ادامه داشت ولی به نظر نمی رسید که تا چند سال آینده قابل استفاده باشد.
این زمان برای توروالدز بیش از حد طولانی بود...
در 25 آگوست 1991، این نامه تاریخی به گروه خبری MINIX از طرف توروالدز ارسال شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: بیشتر چه چیزی را میخواهید در MINIX ببینید؟
خلاصه: نظرخواهی کوچک در مورد سیستم عامل جدید من
با سلام به تمام استفاده کنندگان از MINIX
من در حال تهیه یک سیستم عامل رایگان فقط به عنوان سرگرمی و نه به بزرگی و حرفه ای GNU برای دستگاههای 386 و 486 هستم. این کار از آوریل شروع شده و درحال آماده شدن است. من مایلم تا نظرات کاربران را در مورد چیزهایی که در MINIX دوست دارند یا ندارند، جمع آوری کنم. زیرا سیستم عامل من حدودا شبیه آن است. مانند ساختار سیستم فایل مشابه و چیزهای دیگر... من اکنون bash نسخه 1.08 و GCC نسخه 1.40 را به آن منتقل کرده ام و به نظر میرسد که کار میکند. من در عرض چند ماه چیزی آزمایشی درست کرده ام و مایلم بدانم که کاربران بیشتر به چه قابلیتهایی نیاز دارند؟ من از هر پیشنهادی استقبال میکنم. ولی قول نمی دهم همه آنها را اجرا کنم. لینوس
همانطور که در این نامه پیداست، خود توروالدز هم باور نمی کرد که مخلوقش آنقدر بزرگ شود که چنین تحولی در دنیا ایجاد کند. لینوکس نسخه 0.01 در اواسط سپتامبر 1991 منتشر شد و روی اینترنت قرار گرفت. شور و اشتیاقی فراوان حول مخلوق توروالدز شکل گرفت. کدها دانلود شده، آزمایش شدند و پس از بهینه سازی به توروالدز بازگردانده شدند. لینوکس نسخه 0.02 در پنجم اکتبر به همراه اعلامیه معروف توروالدز آماده شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: کدهای منبع رایگان هسته مشابه MINIX
آیا شما از روزهای زیبای MINIX 1.1 محروم شده اید؟ هنگامی که مردها مرد بودند و راه اندازهای دستگاه خود را خودشان مینوشتند؟ آیا شما فاقد یک پروزه زیبا هستید و می میرید تا سیستم عاملی داشته باشید تا بتوانید آنرا مطابق با نیازهای خود در آورید؟ اگر اینگونه است، این نامه برای شما نوشته شده است.
همانطور که ماه پیش گفتم من در حال کار بر بروی یک سیستم عامل رایگان مشابه MINIX برای کامپیوترهای 386 هستم. این سیستم عامل اکنون بجایی رسیده است که قابل استفاده است و مایل هستم که کدهای منبع را در سطح گسترده تر پخش نمایم. این نسخه 0.02 است ولی من موفق شده ام که نرم افزارهای Bash، GCC، GNU-Make، GNU-sed، Compress و غیره را تحت آن اجرا کنم. کدهای منبع این پروژه را میتوانید از آدرس nic.funet.fi با آدرس 128.214.6.100 در دایرکتوری pub/OS/Linux پیدا کنید. این دایرکتوری همچنین دارای چند فایل README و تعدادی باینری قابل اجرا تحت لینوکس است. تمام کدهای منبع ارائه شده است زیرا هیچ یک از کدهای MINIX در آن استفاده نشده است. سیستم را میتوانید همانطور که هست کامپایل و استفاده کنید. کدهای منبع باینری ها را هم میتوانید در مسیر pub/GNU پیدا کنید.
لینوکس نسخه 0.03 پس از چند هفته آماده شد و تا دسامبر، لینوکس به نسخه 0.10 رسید. هنوز لینوکس فقط چیزی کمی بیشتر از یک فرم اسکلت بود. این سیستم عامل فقط دیسکهای سخت AT را پشتیبانی میکرد و ورود به سیستم نداشت و مستقیما به خط فرمان بوت میشد. نسخه 0.11 خیلی بهتر شد. این نسخه از صفحه کلیدهای چند زبانه پشتیبانی میکرد، دیسکهای فلاپی و کارتهای گرافیکی VGA، EGA، هرکولس و... نیز پشتیبانی میشدند. شماره نسخه ها از 0.12 به 0.95 و 0.96 افزایش پیدا کرد و ادامه یافت. بزودی کد آن بوسیله سرویس دهنده های FTP در فنلاند و مناطق دیگر، در سرتاسر جهان منتشر شد.
دسته بندي VPN براساس رمزنگاري
VPN را مي توان با توجه به استفاده يا عدم استفاده از رمزنگاري به دو گروه اصلي تقسيم كرد:
1- VPNرمزشده : VPN هاي رمز شده از انواع مكانيزمهاي رمزنگاري براي انتقال امن اطلاعات بر روي شبكه عمومي استفاده مي كنند. يك نمونه خوب از اين VPN ها ، شبكه هاي خصوصي مجازي اجرا شده به كمك IPSec هستند.
2- VPN رمزنشده : اين نوع از VPN براي اتصال دو يا چند شبكه خصوصي با هدف استفاده از منابع شبكه يكديگر ايجاد مي شود. اما امنيت اطلاعات در حال تبادل حائز اهميت نيست يا اين كه اين امنيت با روش ديگري غير از رمزنگاري تامين مي شود. يكي از اين روشها تفكيك مسيريابي است. منظور از تفكيك مسيريابي آن است كه تنها اطلاعات در حال تبادل بين دو شبكه خصوصي به هر يك از آنها مسير دهي مي شوند. (MPLS VPN) در اين مواقع مي توان در لايه هاي بالاتر از رمزنگاري مانند SSL استفاده كرد.
هر دو روش ذكر شده مي توانند با توجه به سياست امنيتي مورد نظر ، امنيت مناسبي را براي مجموعه به ارمغان بياورند، اما معمولا VPN هاي رمز شده براي ايجاد VPN امن به كار مي روند. ساير انواع VPN مانند MPLS VPN بستگي به امنيت و جامعيت عمليات مسيريابي دارند.
دسته بندي VPN براساس لايه پياده سازي
VPN بر اساس لايه مدل OSI كه در آن پياده سازي شده اند نيز قابل دسته بندي هستند. اين موضوع از اهميت خاصي برخوردار است. براي مثال در VPN هاي رمز شده ، لايه اي كه در آن رمزنگاري انجام مي شود در حجم ترافيك رمز شده تاثير دارد. همچنين سطح شفافيت VPN براي كاربران آن نيز با توجه به لايه پياده سازي مطرح مي شود.
1- VPN لايه پيوند داده : با استفاده از VPN هاي لايه پيوند داده مي توان دو شبكه خصوصي را در لايه 2 مدل OSI با استفاده از پروتكلهايي مانند ATM يا Frame Relay به هم متصل كرد.با وجودي كه اين مكانيزم راه حل مناسبي به نظر مي رسد اما معمولا روش ارزني نيست چون نياز به يك مسير اختصاصي لايه 2 دارد. پروتكلهاي Frame Relay و ATM مكانيزمهاي رمزنگاري را تامين نمي كنند. آنها فقط به ترافيك اجازه مي دهند تا بسته به آن كه به كدام اتصال لايه 2 تعلق دارد ، تفكيك شود. بنابراين اگر به امنيت بيشتري نياز داريد بايد مكانيزمهاي رمزنگاري مناسبي را به كار بگيريد.
2- VPN لايه شبكه : اين سري از VPN ها با استفاده از tunneling لايه 3 و/يا تكنيكهاي رمزنگاري استفاده مي كنند. براي مثال مي توان به IPSec Tunneling و پروتكل رمزنگاري براي ايجاد VPN اشاره كرد.مثالهاي ديگر پروتكلهاي GRE و L2TP هستند. جالب است اشاره كنيم كه L2TP در ترافيك لايه 2 تونل مي زند اما از لايه 3 براي اين كار استفاده مي كند. بنابراين در VPN هاي لايه شبكه قرار مي گيرد. اين لايه براي انجام رمزنگاري نيز بسيار مناسب است. در بخشهاي بعدي اين گزارش به اين سري از VPN ها به طور مشروح خواهيم پرداخت.
3- VPN لايه كاربرد : اين VPN ها براي كار با برنامه هاي كاربردي خاص ايجاد شده اند. VPN هاي مبتني بر SSL از مثالهاي خوب براي اين نوع از VPN هستند. SSL رمزنگاري را بين مرورگر وب و سروري كه SSL را اجرا مي كند، تامين مي كند.SSH مثال ديگري براي اين نوع از VPN ها است.SSH به عنوان يك مكانيزم امن و رمز شده براي login به اجزاي مختلف شبكه شناخته مي شود. مشكل VPNها در اين لايه آن است كه هرچه خدمات و برنامه هاي جديدي اضافه مي شوند ، پشتيباني آنها در VPN نيز بايد اضافه شود.
دسته بندي VPN براساس كاركرد تجاري
VPN را براي رسيدن به اهداف تجاري خاصي ايجاد مي شوند. اين اهداف تجاري تقسيم بندي جديدي را براي VPN بنا مي كنند .
1- VPN اينترانتي : اين سري از VPN ها دو يا چند شبكه خصوصي را در درون يك سازمان به هم متصل مي كنند. اين نوع از VPN زماني معنا مي كند كه مي خواهيم شعب يا دفاتر يك سازمان در نقاط دوردست را به مركز آن متصل كنيم و يك شبكه امن بين آنها برقرار كنيم.
VPN اكسترانتي : اين سري از VPN ها براي اتصال دو يا چند شبكه خصوصي از دو يا چند سازمان به كار مي روند. از اين نوع VPN معمولا براي سناريوهاي B2B كه در آن دو شركت مي خواهند به ارتباطات تجاري با يكديگر بپردازند، استفاده مي شود.






