سادگی زیباست...

بررسی انواع معماری های سیستم عامل و برنامه های سیستمی و روشهای توسعه آنها

سادگی زیباست...

بررسی انواع معماری های سیستم عامل و برنامه های سیستمی و روشهای توسعه آنها

سادگی زیباست...

۶ مطلب در مهر ۱۳۹۲ ثبت شده است

12 اکتبر، مصادف است با درگذشت پدر سیستم عامل یونیک و زبان C. کسی تو دنیا نمیتونه منکر تاثیر این دو دست آورد در علم کامپیوتر و زندگی بشری بشه. اگر مقایسه کنیم زبانها و سیستم عاملهایی که در آن زمان عرضه شدند و اینکه چند درصر از اونها تونستن زنده بمونن و هنوز هم کارایی داشته باشن، بیشتر به بزرگی کار دنیس ریچی پی میبریم.

او به همراه کنت تامسون بارها جوایز متعددی را برای طراحی سیستم عامل یونیکس دریافت کرده است. همچنین به همراه برایان کریگان کتاب زبان برنامه نویسی سی را نوشته و این دو تقریباً اکثر مواقع در کنار هم نام برده می‌شوند «K&R» حتماً متوجه شدید که حرف R از آن ریچی است.

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

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

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

۱ موافقین ۲ مخالفین ۱ ۲۱ مهر ۹۲ ، ۱۹:۳۰
حامد شیخلو

مجازی سازی توابع شبکه

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



این تکنولوژی در سال 2012 در آزمایشگاه AT&T، BT، china mobile و چندین آزمایشگاه دیگر ارائه شد.
در حالی که سیستم‌های شبکه مبتنی بر PC از سال‌های دهه 80 در دسترس بوده است، اما این سیستم‌ها بیشتر توسط سازمان‌های کوچک مورد استفاده قرار می‌گرفت و به عنوان یک راه حل ارزان قیمت برای شبکه‌هایی که قصد یا توانایی خرید ابزارهای اختصاصی را نداشتند مورد استفاده قرار میگرفت.
در سال‌های اخیر، پیشرفت عمده در تکنولوژی کارت‌های شبکه پرسرعت برای سیستم‌های شخصی صورت گرفته و همچنین شرکت‌هایی مانند اینتل بر روی چیپ های خود قابلیت‌های مناسب پردازشی برای کارهای شبکه ای قرار داده است.
امروزه بسیاری از شرکت‌ها برای مدیریت بسته های شبکه ای امکانات مناسبی بر روی پردازشگرهای خود قرار داده‌اند، مثلاً پردازشگرهای اینتل، می‌توانند با برنامه نویسی دوباره به صورت پردازشگر شبکه فعالیت کنند.

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

  •     استفاده از منابع به صورت بهینه تر: مجازی سازی این امکان را می‌دهد که یک منبع تنها در صورت نیاز به یک سیستم اختصاص داده شود.
  •     فراهم آوردن یک سرویس بدون نیاز به حضور فیزیکی یک متخصص.
  •     کاهش در پیچیدگی سیستم.
  •     کاهش در پیچیدگی هزینه راه اندازی و هزینه نگهداری.
CloudNFV
پروژه CloudNFV یک سکوی باز برای راه اندازی NFV بر پایه پردازش ابری و تکنیک های  SDN  در یک محیط با چندین تولید کننده است.
http://www.cloudnfv.com/WhitePaper.pdf
۴ موافقین ۰ مخالفین ۱ ۲۱ مهر ۹۲ ، ۱۵:۳۰
حامد شیخلو
شبکه بندی توصیف شده نرم‌افزاری، یک روند جدید در شبکه کامپیوتری است که در سال 2008 توسط دانشگاه برکلی و استنفورد ابداء شده است. این روش به مدیر شبکه (administrator) اجازه می‌دهد تا سرویس‌های لایه پایین شبکه خود را با یک لایه تجرید مدیریت کند. این کار با جدا کردن سیستمی که درباره محل ارسال ترافیک تصمیم گیری می‌کند، از سیستمی که این ترافیک را فوروارد می‌کند، انجام می‌شود.
شبکه بندی بر اساس پروتکل اینترنت IP، بر مبنای AS ها تشکیل شده است. این پیاده سازی، گسترش شبکه را با گسترش تعداد این سیستم‌ها به عنوان هاپ امکان پذیر می‌سازد. این هاپ ها بسته‌ها را به مقصد معین بعدی انتقال می‌دهند. این روش هم ساده است و هم قابلیت گسترش مناسب دارد. مفهوم AS مطرح شده در این روش، اجازه تغییر مقصد مشخص بدون تغییر مشخصه خودش همراه با همکاری سرویس تحویل بسته، نمی‌دهد. به این معنی که یک مقصد در صورتی می‌تواند محل خود را تغییر دهد و همان شناسه قبلی را داشته باشد، که مسیر تحویل بسته به آن این امکان را بدهد. محل جغرافیایی مقصدها، که با کارت شبکه آن‌ها مشخص می‌شود، مشخص کننده شناسه آن‌ها است. استفاده تنها از AS ها، قابلیت استفاده از روش‌های دیگر شناسایی که مبتنی بر کیفیت باشند را دشوار می‌کند، مانند گروه بندی منطقی، کنترل دسترسی، کیفیت سرویس و امثال این‌ها.

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

یکی از کاربردهای اساسی این روش، در IaaS است. ترکیب این روش با پردازش مجازی و ذخیره سازی مجازی، امکان شبیه سازی تخصیص منابع ارتجاعی را می‌دهد و اگر هر کدام از سازمان‌های استفاده کننده از این فن‌آوری به مدیریت ترافیک بسیار زیادی احتیاج داشته باشند، می‌تواند این کار را انجام دهد. تخصیص منابع در این روش به صورت ایستا به فراخوانی بین پردازشی تبدیل می‌شود.
۰ موافقین ۰ مخالفین ۱ ۱۹ مهر ۹۲ ، ۲۳:۰۰
حامد شیخلو
این کتاب به نظر من بهترین کتاب شبکه موجود هستش (البته از جهاتی).  تو این کتاب، برعکس خیلی از کتابهای شبکه، به جای شروع از لایه پایین شبکه (لایه فیزیکی و سیگنالینگ)، از لایه 7 شروع میکنه. کامپیوتری ها به خاطر اینکه تو مباحث سیگنالینگ پایه خوبی ندارند، این فصل های اولیه باعث میشه که علاقه کم بشه به خوندن ادامه کتاب، یا اینکه کل لایه های پایین شبکه خونده نمیشه و پایه ضعیف میشه.

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

۰ موافقین ۰ مخالفین ۱ ۰۸ مهر ۹۲ ، ۲۰:۰۸
حامد شیخلو

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

در این ویرایش مطالب زیر اضافه شده است:

  • مسائل تاثیرگذار در طراحی سیستم عامل در پردازنده های چند هسته ای
  • ماشین مجازی و روشهای پیاده سازی (فصل 2)
  • مثالهای جدید در زمانبندی (فصل 10)
  • معماری مبتنی بر سرویس (فصل 16)
  • تحلیل میزان کارایی سیستم عامل
  • مباحث مرتبط با b-tree (فصل 12)
  • OS/161 که یک سیستم عامل آموزشی است
از لینک زیر، کتاب رو دانلود کنید
۰ موافقین ۱ مخالفین ۱ ۰۸ مهر ۹۲ ، ۱۹:۴۵
حامد شیخلو

در شبکه های کامپیوتری، port knocking یک روش برای باز کردن پورت مشخص در دیواره آتش، با دریافت درخواست از شبکه خارجی است. این پورت مشخص از خارج شبکه و با انجام عمل پویش مانند پورت اسکن کاملا بسته به نظر میرسد، اما برای درخواست مشخص شده، باز می‌شود. این عمل باز کردن پورت کاملا به صورت اتوماتیک انجام می‌شود. یکی از انواع روشهای knocking با عنوان single packet authentication شناخته می‌شود که در آن، یک بسته اطلاعاتی کد شده، فرستاده می‌شود تا پورت ارتباطی برای ادامه باز شود.
حفاظ‌ها (firewall) در معماری امنیت شبکه، برای فیلتر کردن بسته‌ها یا اعتبارسنجی یک پروتکل استفاده می‌شوند و در این دو کار، به خوبی عمل می‌کنند. اما حفاظ‌ها اطلاعات کمی درباره برنامه‌ها و روند استفاده شبکه برای هر کدام از آن‌ها و همچنین کاربران شبکه دارد، این مساله باعث بروز دو مشکل می‌شود:
1 محدود کردن دسترسی به شبکه داخلی از طریق بیرون.
2 محدود کردن دسترسی کاربران داخلی به تعداد محدود پورت‌های مشخص.
توجه شود که خود محدودیت‌های اعمال شده برای کاربران، به دلیل محدود کردن روشهای سو استفاده و حمله به شبکه است و اگر روشی باشد که بدون محدود کردن کاربران مجاز، بتواند در برابر کاربردهای غیر مجاز به خوبی عمل کند، روش مناسب‌تری خواهد بود.
معماری نرمافزارهای شبکه بر اساس معماری clinet-server می‌باشد. قسمت clinet که معمولا یک رابط کاربری است برای ارتباط با کاربر، اتصال به server و درخواست یک سرویس خاص از آن. برای مثال یک مرورگر اینترنت به server متصل می‌شود و درخواست خود را برای یک صفحه یا سند خاص به آن می‌دهد. کاربردهای Peer-to-Peer هم نقش server را دارد و هم نقش clinet را. برنامه ای مثل پراکسی، برای مرورگر یک برنامه سرور ایت و برای وب سرور یک کلاینت حساب می‌شود.
پروتکل اینترنت IP چه مشکلات امنیتی اساسی دارد؟

  • هر کاربر میتواند با روند ip spoofing خود را جای هر ip دیگر نشان دهد.
  • در پروتکل tcp عدد ابتدایی قابلیت حدس زدن را دارد، بنابراین امکان سرقت نشست session hijack بسیار افزایش میابد.
  • بسیاری از پروتکل های مسیریابی موجود در اینترنت ناامن طراحی شده اند.
  • بسته ip قابلیت تکه تکه frangmentation را دارند، که به یک attacker اجازه میدهد بسته اطالعاتی را به چند قسمت تقسیم کند و در چند بخش بفرستد تا نتوان جامعیت آن را کشف کرد.

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

سرویس port knocking در مقابل یک بسته حاوی درخواست که کدگذاری نیز شده است، آن را به سرویس‌های دیگر که خود را ثبت کرده‌اند تحویل می‌دهد، و اگر سرویسی توانست پیام دریافتی را کدگشایی کند، پورت مورد نظر باز خواهد شد.

یک تز فوق لیسانس با موضوع برسی کارایی و افزایش کارایی حفاظ ها با این روش با عنوان زیر در لینک http://www.ciphertext.info/papers/thesis-degraaf.pdf برای مطالعه کاملتر وجود دارد.

۰ موافقین ۰ مخالفین ۱ ۰۸ مهر ۹۲ ، ۱۶:۱۷
حامد شیخلو