دایره امن ترجنس

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

  • ۰
  • ۰

 

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

 

انتزاع یا Abstraction

 

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

 

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

 

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

 

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

 

اینجا من از یک سطح انتزاعی برای توصیف ماشینم استفاده کردم. یعنی مثلا به جای اینکه بگویم موتورش، یک موتور 4.5 لیتری و 8 سیلندر هستش که 380 اسب بخار قدرت دارد و گشتاوری حدود 450 نیوتون بر متر تولید می‌کند، فقط گفتم موتور قدرتمندی دارد!

 

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

 

پس در نتیجه به‌جای اینکه شما را با جزیی‌ترین خصوصیات موتور ماشین درگیر کنم، فقط به شما گفتم که موتور قدرتمندی است!

 

انتزاع در کامپیوتر

 

همین مسائل در کامپیوتر نیز هست. وقتی شما از کامپیوتر می‌خواهید برای شما عدد 2 را با عدد 3 جمع کند، دیگر کاری ندارید که سیستم‌عامل و CPU چطور به کمک یکدیگر این عملیات را انجام می‌دهند.

 

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

 

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

 

مجازی‌سازی چیست؟

 

اسم واضحی دارد! قرار است چیزی را مجازی کنیم. یعنی یک چیزی وجود واقعی دارد و ما می‌خواهیم آن را مجازی کنیم.

 

اجازه بدید با یک مفهوم آشنا مثل شبکه مجازی شروع کنیم:

 

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

 

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

 

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

 

پس با سه اصطلاح انتزاع، مجازی‌سازی و توهم آشنا شدیم.

 

مجازی‌سازی در کامپیوتر

 

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

 

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

 

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

 

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

 

کاربرد مجازی‌سازی و انتزاع دقیقا همینجاست!

 

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

 

همین توهم نیز در رابطه با CPU و I/O برای هر پراسس ایجاد می‌شود. یعنی این توهم برای هر پراسس ایجاد می‌شود که CPU و I/O همواره در اختیار او هستند.

 

 

آکادمی ترجنس

دایره امن ترجنس

ویدئوهای رایگان امنیت و هک

ویدئوها در آپارات

 

  • thregence security
  • ۰
  • ۰

promiscuous

در دنیای شبکه و امنیت، قطعا نام حالت Promiscuous به گوشتان خورده است. این حالتی است که در برخی عملیات مربوط به شبکه روشن می‌شود. عموما در بحث Sniffing بسته‌های شبکه و یا Intercept کردن آن‌ها این حالت کاربرد دارد. اما این حالت چیست و چه کاربردی دارد؟

  • thregence security
  • ۰
  • ۰

 

unix

 

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

  • thregence security
  • ۰
  • ۰

linux

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

  • thregence security
  • ۰
  • ۰

 

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

  • thregence security
  • ۰
  • ۰

ransomware

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

  • thregence security
  • ۰
  • ۰

 

waf

WAF چیست؟

حتما در زمینه وب با اصطلاح WAF یا همان فایروال وب اپلیکیشن (Web Application Firewall) برخورد داشته‌اید. ابزاری است که به شما کمک می‌کند تا از وب سایت (در اصل وب اپلیکیشن Web Application) خود مراقبت کنید! بنابراین با اضافه کردن یک WAF به ساختار وب سایت خود، بین وب اپلیکیشن و دنیای بیرون یک لایه محافظتی ایجاد می‌کنید.

 

  • thregence security