Univerbity
332 subscribers
87 photos
1 video
10 links
Welcome to Universe of Bits!
Contact : @farzadoxo
Download Telegram
یکی از بزرگترین شکست های فضایی مربوط به ماموریت mars climate orbiter میشه. چون یه اشتباه ساده داخل کد واحد اندازه گیری باعث از بین رفتن یه فضا پیمای چند میلیون دلاری شد!🚀

در ۲۳ سپتامبر ۱۹۹۹، وقتی فضاپیما به مریخ رسید، ارتباط با اون به‌طور ناگهانی قطع شد.
تحقیق بعدی نشان داد علت اصلی، خطا در تبدیل واحدهای اندازه‌گیری بین دو تیم مهندسی بود.

تیم Lockheed martin از پوند-ثانیه و تیم JPL ناسا از نیوتون-ثانیه برای محاسبه توی کد استفاده کرده بودن!

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

@Univerbity
🤯9🤣5
یه نوع باگ بامزه تو مهندسی نرم افزار و برنامه نویسی داریم به نام Heisenbug 🧪

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

وقتی شما ابزار دیباگ یا لاگ اضافه میکنید شرایط اجرای برنامه یا اسکریپت تغییر میکنه و این تغییر میتونه منجر به حل باگ بشه!

نام این پدیده برگرفته از اصل عدم قطعیت هایزنبرگ در فیزیک هستش🧲

@Univerbity
🔥14
یکی از کشفیات باحال انسان پیوندی بین علم بیولوژی و کامپیوتره🧬💻

این کشف به Dna storage مشهوره‌.به این معنا که به جای استفاده از دیوایس ها ذخیره سازی مرسوم از DNA برای ذخیره سازی دیتا استفاده کرد!
درست شنیدی! هر گرم DNA میتونه تا 215 ترابایت دیتا رو برای سالیان سال بدون آسیب توی خودش حفظ کنه.💾

ساختار DNA طوری هستش که بدون نیاز به هیچگونه ماده این کارو انجام میده. این یعنی حجم ذخیره سازی نامحدود اونم توی یک گرم DNA.
البته سرعت ذخیره سازی پایین تری نسب به حافظه های الکترونیکی داره!🐌

مهندسیش هم اینجوریه که بیت های 0 و 1 به صورت توالی های A, T, C, G تبدیل و رمزنگاری میشن و تو DNA ذخیره میشن و برای بازیابی اطلاعات هم این توالی ها به بیت های صفر و یک بر میگردن.

این فناوری هنوز به بهره برداری تجاری نرسیده
@Univerbity
🤯13🔥2
زیپ بمب یه نوع بمب فشردست که به صورت عمدی طوری طراحی شده که هنگام استخراج سیستم رو از کار بندازه 💣

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

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

@Univerbity
🔥13
وقتی تو ترمینال یه دستور ping میزنی فک میکنی پکتی که ارسال میشه کجا میره؟🤔

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

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

جوابش خیر هستش چون وقتی پکت ارسال میشه همراهش یه پارامتر بامزه به نام TTL سند میشه. Ttl مخفف Time to live هستش.این پارامتر عمر یه پکت رو مشخص میکنه و وقتی به 1 برسه یعنی عمر اون پکت به پایان رسیده و وقتش رسیده که Dropشه.

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

@Univerbity
🔥132
یه Esolang(زبان های برنامه نویسی عجیب) دیگه پیدا کردم به نام Snusp 👀

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

این زبان مستقیما روی مموری کامپایل میشه و هر خونه مموری یه عدد قرار میگیره(کد شده به باینری).
کامپایلر این زبان کلا 8 تا دستور داره و اصلی ترین هاش >< هستن برای حرکت به خونه بعدی و قبلی و مقدار ها هم با + و - تغییر میکنن.
مثلا:
>+++++.

مقدار خونه دوم رو به 5 افزایش میده و با . مقدار اسکی عدد 5 رو چاپ میکنه.(درسته اسکی5 وجود نداره ولی نمیتونم 65 بار + بنویسم تا A چاپ شه جا نمیشه😂)
(البته اسکی 5 وجود داره منتها جزو کارکتر کنترل ها یا htw هاست و دیده نمیشه)

خلاصه که زبون عجیبیه و کلا Esolang ها برای تفریح و یادرگیری ساخته میشن :)

@Univerbity
🔥13🤯3
یکی از مکانیزم های کرنل لینوکس برای جلوگیری از kernel panic (کرنل پنیک) سیستمیه به نام OOM Killer 🔫

این سیستم برای اینکه کرنل با Out of memory مواجه نشه میاد مموری(چه ram چه swap) رو که داره پر میشه یا به اصطلاح داره Runnig out میشه رو بررسی میکنه و سرویس هایی که یا داره مموری زیادی مصرف میکنه یا از لحاظ سیستمی از اهمیت کمی برخورداره رو kill میکنه😐
بله همینقدر راحت :)

این عمل با پارامتری به نام oom_score انجام میشه و به هر پراسس و سرویس یه عدد اختصاص میده که هر چی این عدد بزرگتر باشه احتمال کیل شدن یه پراسس بیشتر میشه!

یه هک بامزه: میتونید oom_score هر پراسی رو از فایلی به این آدرس ببینید😉:
/proc/<pid>/oom_score

پ.ن: تصویر از یه میم تو ردیته 🎃

@Univerbity
🔥94
شاید براتون پیش اومده باشه که یه فایل حجیم داشته باشید ولی فضای اشغالیش روی دیسک کمتر از حجم واقعیشه 🤔

واقعیت اینه که فایل سیستم میاد و بخش هایی از فایل که بیت های صفرش خیلی زیاده رو با یه متادیتا به نام Hole نشونه گذاری میکنه و اینجوری حجم فایل کلی کم میشه.0⃣

به این عمل میگن File sparse که اکثرا فایل سیستم ها برای کاهش و یا مصرف بهینه دیسک انجام میدن👌

وقتی فایلی هم بخواد توسط منبعی استفاده بشه این متادیتا ها به بیت های اصلی بر میگردن (اگر از فایل اسپارس پشتیبانی نکنه اون منبع)📁

@Univerbity
🔥93
به یه چیز خیلی بامزه برخوردم 😀
توی مانیتور ها و نمایشگر ها ما کلی LED داریم دیگه و این ال ای دی ها فقط میتونن رنگ هاشون رو از ترکیب سیستم رنگ RGB بسازن.🖥
اگه نمیدونید R:red G:green B:blue

ینی کلا سه تا رنگ داریم اما بین این سه تا رنگ یکیشون خیلی سخت ساخته میشه!🔵🟢🔴

رنگ آبی برای تولید شدن نیاز به طول موج کوتاه تر و انرژی بیشتر داره.یعنی با طول موج 450 نانومتری انرژی مصرف میکنه و این موجب کاهش عمر و زود تر از بین رفتن آلیاژ های به کار رفته تو ساخت LED و در نهایت مانیتور میشه. از یه طرفم توی دیوایس های شارژی چالش محسوب میشه چون مصرفش بیشتر دو تا رنگ دیگه یعنی سبز و قرمزه!⚡️

همچنین بازدهی از نظر نوری توی رنگ آبی فقط 25 درصده در صورتی که این مقدار توی دو رنگ دیگه حدود صد درصده!🔋

@Univerbity
🔥13🤯6
ابزار less برای پیجینگ فایل های متنی تو سیستم های یونیکسی و لینوکسی هستش اما نمیخام این ابزارو معرفی کنم بلکه میخوام دلیل نام گذاری این ابزار و یه شوخی بامزه ای که با یه ابزار دیگه کرده بگم.

تو دوره سیستم عامل Dos یه ابزاری رو داس وجود داشته به نام more که کارش همین پیجینگ بوده. البته این ابزار الان رو لینوکسم هست.
لس هم اسمش رو مخالف more نام گذاشت و شد less :)

یه شعار و شوخی بامزه ای هم کرد با more که شعارش این بود:
less is more than more

"لس بیشتر از موره" یا "کم بیشتر از بیشتره" یا هر چی که خودتون ترجمه میکنید 😁

پ.ن: عکس مرتبط پیدا نکردم از پینترست همینجوری یه چیزی برداشتم :)

@Univerbity
🔥11😁4
اگه بخوای به یه نفر زور بگی اون فرد باید چه خصوصیتی داشته باشه؟ خب طبیعتا انتخابت یه آدم nice و قطعا نمیخای بری به یه ادم خشن و گولاخ زور بگی(چون میزنه میترکونتت دیگه)😁

لینوکس هم رفتارش با پراسس ها دقیقا همینجوریه و در واقع الویت بندی پروسه ها رو با ملاکی به نام Niceness (مهربون بودن یا نایس بودن یا هر چی که خودتون ترجمه میکنید) انجام میده.

اینجوریه که هر پروسه زمان ساخته شدن یه مقدار نایسنس بهش اختصاص داده میشه که یه عدد بین 19 و -20 هستش. هر چی این مقدار کمتر باشه یعنی پروسه بی اعصاب تره (از لحاظ فنی یعنی اهمیت بالایی داره و خیلی مهمه) و هر چیم بیشتر باشه ینی نایس تره و خیلی برای سیستم حیاتی نیست.

بخش زور گوییش اینجاست که وقتی سیستم داره مموری یا CPU کم میاره این وظیفه سیستم عامله که با پارامتررنایسنس تشخصی بده کی تو اولیته تا بهش منابع رو اختصاص بده! 👊

بقیه پروسه ها که نایسنس بیشتری دارن میتونن swap بشن یا برای cpu بیشتر صبر کنن ولی پروسه هایی که نایسنس کمتری دارن همیشه تو الویتن و باید سریع بهشون سی پی یو و مموری واقعی برسه!

دنیا لینوکس نیست، یکم نایس تر باش :)

@Univerbity
😁11🔥5
یه مدت کوتاهی نبودم درگیر یه سری قضایا بودم ولی یه چیز باحال پیدا کردم گفتم براتون بذارم اینجا :)

توی سیستم های مختلف حالا چه تو پروتکل های شبکه یا حتی سیستم عامل ها یه خطایی داریم به نام parity error که با پارامتر parity bit تشخیص داده میشه.🤖

کامپیوتر برای اینکه بفهمه دیتا سالم رسیدهرمیاد یه بیت به اخر دیتا اضافه میکنه. این بیت کمک میکنه تا بشه فهمید تعداد بیت های 1 تو کل دیتا زوجه یا فرد (حالا بسته به معماری)
اگه دیتا بعد از رسیدن تعداد بیت های 1 با چیزی که باید نخونه این خطا رخ میده و مبنی بر خرابی یا دستکاری دیتا هستش!👾

@Univerbity
11😁1
Univerbity
به یه چیز خیلی بامزه برخوردم 😀 توی مانیتور ها و نمایشگر ها ما کلی LED داریم دیگه و این ال ای دی ها فقط میتونن رنگ هاشون رو از ترکیب سیستم رنگ RGB بسازن.🖥 اگه نمیدونید R:red G:green B:blue ینی کلا سه تا رنگ داریم اما بین این سه تا رنگ یکیشون خیلی سخت ساخته…
قبلا یه پست درباره رنگ آبی توی LED ها گذاشتم و یکی از بچه ها گفت که ای کاش توضیح بیشتر میدادی. دیروز خیلی اتفاقی یه شورت ویدیو تو یوتوب دیدم که کلی اطلاعات بهم داد.😄

به طور کلی LED ها با عملی به نام رقص الکترون ها(Electron Dance) کار میکنن.
وقتی به الکترون ها انرژی وارد میکنیم وارد یه حالت پرشی میشن.اما خب این پرش خیلی طول نمیکشه و زود میوفتن پایین(به اصطلاح سقوط یا Fall back down میشن).⬇️
(من بهش میگم FBD!)

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

چالش اصلی پیدا کردن ماده ایه بتونه برای این پرش عظیم انرژی تولید کنه.این قضیه تا دهه 90 میلادی طول کشید تا بلخره عنصری به نام Gallium Nitride پیدا شد که میتونست این کارو بکنه.🌈

تو کامنتا چن تا چیز باحال ازش میذارم:)
@Univerbity
🔥82
این عکسو احتمالا دیده باشید.
با خودتون شاید فکر کردید که طراح های مایکروسافت ریدن ولی اینطور نیست.

این طراحی نوک کج کرسر ها به ویندوز ختم نمیشه بلکه خیلی خیلی قدیمیه و الان تو همه محیط گرافیکی های لینوکسی و سیستم عامل ها وجودداره.🖱
این یه استاندارد قدیمی از زمان Xerox PARC و مک ها قدیمی هستش که چند تا دلیل داره.
مهمترین دلیلش بر میگرده به مغز انسان.مغز ما جهت های مورب رو سریع تر تشخیص میده و فلش نوک کج کمک میکنه حرکت موس رو بهتر حس کنی.

از طرفی نوک فلش دقیقا همون نقطه فعاله چون کجه وقتی رو متن کلیک میری نوکش دقیق تر میوفته رو هدف و خود فلش مزاحم دیدت نمیشه.

البته چند بار هم سعی کردن که درستش کن منتها چون کاربرا عادت کرده بودن شکست خورد🤷‍♂

@Univerbity
8🤯1
خیلی با خودم کلنجار رفتم که چیزی بذارم یا نه ولی تمام امیدم به دیشب بود که خب نزدن و نا امید شدم و دیگم دلیلی برای پست گذاشتن نیست.(البته با اتفاقاتی که افتاده قطعی اینترنت بیشتر شبیه جوکه🖤)

بعد از تقریبا ۳ هفته قطعی مطلق اینترنت خواستم دو تا راه کار بدم واسه اینجور مواقع(از اونجایی تقی به توقی میخوره اینترنتو قطع میکنن).

وقتایی که اینترنت قطع میشه و ملی میشه(البته که از لحاظ فنی اینترنت ملی نمیشه و بهتره برای توصیف این آشغالی که دستمون میدن کلمه شبکه داخلی رو بذاریم روش) نصب پکیج هم برای سیستم های لینوکسی امکان پذیر نیست.
اینجا شما میتونید روی هر توزیعی از لینوکس که هستید mirror هاتون رو ست کنید روی میرور سرور های داخلی مثل چیزی که arvancloud داره ارائه میده.(برای همه دیسترو ها)
برای مثال برای آرچ:
$~ nano /etc/pacman.d/mirrorlist

داخلش url میرور رو اضافه میکنید:
Server = https://mirror.arvancloud.ir/archlinux/$repo/os/$arch
و بعدشم:
sudo pacman -Syyu

اینجوریه که به جای اینکه پکیج ها از ریپوزیتوری های رسمی pacman دانلود بشه از میرور سرور های آروان کلاد دانلود میشه.
و البته که معایبی هم داره این کار مثل:
- بروز نبودن بعضی پکیج ها(برای پکیج هایی مثل دیسکورد که اگه آخرین ورژن نباشن اصلا باز نمیشن. البته یادم نبود تو اینترنت قطع دیسکورد به چه کار میاد)
- نداشتن بعضی پکیج ها (مثلا من تست کردم uvicorn رو نداشت)

تو قطعی اینترنت طبیعتا pip هم کار نمیکنه(برای پایتون) ولی با انجام متد بالا که گفتم نصب ماژول های پایتونی با فرمت python3-name (به جای name اسم کتابخانه یا ماژول) امکان پذیر میشه.
مثال:
sudo pacman -S python3-fastapi

این روش هم طبیعتا معایبی داره مثل:
- بروز نبودن خیلی از ماژول ها و کتابخونه ها
- نصب مستقیم روی پایتون اصلی سیستم(روی venv ها اعمال نمیشه).


اینا مواردیه که شاید خیلیا ندونن و تو قطعی اینترنت خیلی به کارشون بیاد و البته که امیدوارم در آینده قطعی اینترنت و کسانی که قطعش میکنن در کار نباشن :)

#به_امید_آزادی ✌️🕊
14🔥1💔1
قطعی اینترنت باعث شد بیشتر کتاب بخونم و واسه یادگیری دنبال منابع آفلاین بگردم و خب چی بهتر از کتاب(قبلا خیلی کتاب خون بودم🙂)

داشتم متد های قدیمی مموری منیجینگ رو میخوندم که به یکی از ابتدایی ترین روش های مدیریت حافظه رسیدم به نام تک برنامگی ساده(SSPMM) که طرز کارش خیلی ساده و بامزه بود.
اینجوری که در هر لحظه یک برنامه در حال اجرا باشه و هنگامی که برنامه میاد تو مموری کل مموری رو در اختیار میگیره. اگرم که حافظه کافی نباشه کلا برنامه اجرا نمیشه :/

این متود دو تا حالت داره ینی وجه کاربر و وجه ممتاز که سیستم عامل میره تو وجه ممتاز و برنامه هم میره تو وجه کاربر. مثلا فرض کنید سیستم1 مگابایت مموری داره.
فرض بگیر حدود 370 کیلوبایت رم برای سیستم عامل میره و 640 کیلوبایت هم فرض میگیرم خالی میمونه. اینجوری اون برنامه میره تو اون 640 کیلوبایت و ادرس های تولید شده هم نمیتونن بیشتر از N باشن(تو عکس میبینید).

مقدار این N هم که محدودیت حافظه هستش تو یه رجیستر به نام limit regiater تو CPU ذخیره میشه که بیشتر نشه.(اگر ادرس تولید شده بزرگتر از N بود یه وقفه(interupt) از نوع program fault رخ میده.💥

@Univerbity
🔥123
اکسل داره تبدیل میشه به یه زبان برنامه نویسی😐
جدی میگم.
عملا کار هایی که با زبان های معمولی میشه کرد رو با اکسل هم میشه کرد.

چند تا نمونه پروژه عملی مثل یه CPU با معماری 16 بیتی ، موتور گرافیکی و رندر کننده و بازی Doom هستش که خیلی سر و صدا کردن تو اینترنت و همشون هم رو گیتهاب هستن یه سرچ بزنید میبینید.

البته تمام این پروژه ها بدون اسکریپت های VB هستش ها!
جدیدا هم مایکروسافت lambda(فانکشن های ناشناس) رو اضافه کرده که کم کم داره اکسل رو به یه زبان برنامه نویسی تبدیل میکنه.

@Univerbity
😐6🔥2
این چند روز درگیر درایور گرافیک سیستمم بودم و به یه چیز جالب بر خوردم. 🪐

بعد از نصب درایور کارت گرافیک دیدم اصن سیستم تصویر نمیده :/
بعد از کلی ور رفتن متوجه شدم که باید به صورت دستی لود شدن ماژول های مربوطه رو تو فایلشون قرار بدم:
sudo nano /etc/mkinitcpio.conf

باید پارامتر MODULES رو مقدار دهی میکردم:
MODULES=(radeon amdgpu)
بعد از اینکه فایلو ریرایت کردم و یه sudo mkinitcpio -P زدم و ریبوت کردم دیدم بازم تصویر نمیده و نکته اصلی اینجا بود!!

همونطور که میبینید من ماژول radeon رو اول نوشتم و بعد amdgpu و مهندسی لینوکس اینجوریه که میاد ماژول ها رو بر اساس ترتیبی که تو فایل کانفیگ نوشتی لود میکنه و وقتی radeon لود میشد اصطلاحا کارت گرافیک رو claim میکرد و اجازه لود شدن رو به amdgpu نمیداد چون کارت گرافیک دست خودش بود و ماژول amdgpu نمیتونست لود بشه! (با بررسی لاگ ها فهمیدم):
dmesg | grep amdgpu

درایور radeon قدیمه و الان amdgpu جاشو گرفته و احتمالا باگی چیزی داشته یا ساپورت نمیشه دیگه که به من تصویر نداده و وقتی amdgpu رو الویت اول گذاشتم درست شد!🐧


@Univerbity
🔥111
Univerbity
تو سیستم عامل های شبه یونیکسی(Unix Like) چیزی وجود داره به نام Kernel Panic 😵 کرنل پنیک وقتی اتفاق می افته که هسته سیستم عامل دچار مشکل غیر قابل حلی بشه و نتونه به درستی کار کنه.در اینجا سیستم برای جلوگیری از خرابی و آسیب های بیشتر خودش رو متوقف میکنه و معمولا…
قبلا درباره کرنل پنیک زیاد نوشتم ولی یه سوال بامزه دارم!🙂

چرا Kernel panic داریم ولی User space panic نه؟ 🤪
شوخی کردم ولی جدی چرا کرنل پنیک میکنه ولی user space نه؟

خب جوابش خیلی مشخصه برای جواب دادن بهش یکم باید عمیق بشیم:
اول از همه CPU چند تا رینگ داره. تو رینگ 0 کرنل اجرا میشه و تو رینگ 3 هم user space (تو پست بعدی مفصل رینگ های cpu رو توضیح میدم).
حالا اگر یه برنامه user space خراب کنه یه جایی فقط پراسس خودش میمیره و بقیه سیستم ادامه میدن ولی اگر کرنل خراب کنه کل سیستم میره زیر سوال.
یا حتی اگه یه برنامه عادی به آدرس اشتباهی دست بزنه cpu یه وقفه یا exception میزنه و خلاص (segment fault یا page fault و...) ولی اگه کرنل همین اشتباه رو بکنه مدیریت مموری،زمانبند ها،درایور ها،هندل کننده های وقفه و ... همه به فنا میرن و دیگه هیچ لایه پایین تری نیست که نجاتش بده(البته بسته به دیدتون میتونه لایه بالاتر باشه🤷‍♂)

چرا خب recover نمیکنه؟ چون کرنل مرجع نهاییه و اگه مثال user space یه جایی خراب کنه کرنل میتونه isolate اش کنه ولی اگه خود کرنل خراب شه کی isolate اش کنه؟🥲

@Univerbity
🔥81
قرار شد درباره رینگ های CPU صحبت کنیم 💫

رینگ های سی پی یو یا Privilege rings یه مکانیزم امنیتی توی cpu هستش که مشخص میکنه کد ها با چه سطح از دسترسی اجرا بشن.
اصلا ایده اصلیش اینه که همه برنامه ها نباید به همه چیز دسترسی داشته باشن.
مثلا یه برنامه کاربری(User space) نباید بره به رجیستر های سخت افزاری دست بزنه یا حافظه کرنل رو تغییر بده.💥

رینگ ها چند تا هستن که اصلی ترینشون همون رینگ های 0 و 3 هستند که به ترتیب مختص برنامه های کرنل و userspace هستن.

@Univerbity
🔥9