Forwarded from Code Module | کد ماژول (𔓙)
بدرود با نوشتن دستی API ها و تایپ هاشون ☃️
پکیج Orval یک ابزار هوشمنده که از روی فایل OpenAPI یا Swagger (که بکاند دولوپر برات میفرسته)، به صورت خودکار ریکوستها و تایپ مدل ها و رسپانس هارو برای کار با API میسازه.
تو پروژههای بزرگ که تعداد APIها زیاده (مثلاً ۵۰ تا endpoint یا بیشتر)، نوشتن دستی اون همه ریکوست و تایپ خیلی وقتگیره و امکان بروز اشتباه و باگ هست.
ویژگی و مزیت های Orval
🌪تولید خودکار کد API: از روی فایل OpenAPI (.yaml) یا (json.) Swagger، بهصورت خودکار توابع ریکوست (GET, POST, …) میسازه.
🌪تولید تایپ های TypeScript: تایپ مدلهای داده و رسپانس هارو کامل جنریت میکنه.
🌪هماهنگی کامل با بکاند: وقتی بکاند تغییر میکنه، فقط نیازه یک بار کامند Orval رو اجرا کنی تا همهچی آپدیت بشه.
🌪پشتیبانی از کتابخونههای مختلف: بر اساس نیازتون میتونه خروجی رو برای Axios، Fetch API، React Query، SWR و … تولید کنه.
🌪امکان Mock کردن API: بدون نیاز به سرور واقعی، پاسخهای فیک Mock میسازه.
🌪 ساختار تمیز و سازمانیافته کدها: خروجیها منظم، خوانا و آماده استفاده در پروژه هستن.
🔗 Document
#orval
@CodeModule @CodeModuleGap
پکیج Orval یک ابزار هوشمنده که از روی فایل OpenAPI یا Swagger (که بکاند دولوپر برات میفرسته)، به صورت خودکار ریکوستها و تایپ مدل ها و رسپانس هارو برای کار با API میسازه.
تو پروژههای بزرگ که تعداد APIها زیاده (مثلاً ۵۰ تا endpoint یا بیشتر)، نوشتن دستی اون همه ریکوست و تایپ خیلی وقتگیره و امکان بروز اشتباه و باگ هست.
این پکیج ساخته شده تا:
سرعت توسعه رو بالا ببره.
هماهنگی با بکاند رو حفظ کنه.
خطاهای تایپی و ارتباطی رو از بین ببره.
ویژگی و مزیت های Orval
🌪تولید خودکار کد API: از روی فایل OpenAPI (.yaml) یا (json.) Swagger، بهصورت خودکار توابع ریکوست (GET, POST, …) میسازه.
🌪تولید تایپ های TypeScript: تایپ مدلهای داده و رسپانس هارو کامل جنریت میکنه.
🌪هماهنگی کامل با بکاند: وقتی بکاند تغییر میکنه، فقط نیازه یک بار کامند Orval رو اجرا کنی تا همهچی آپدیت بشه.
🌪پشتیبانی از کتابخونههای مختلف: بر اساس نیازتون میتونه خروجی رو برای Axios، Fetch API، React Query، SWR و … تولید کنه.
🌪امکان Mock کردن API: بدون نیاز به سرور واقعی، پاسخهای فیک Mock میسازه.
🌪 ساختار تمیز و سازمانیافته کدها: خروجیها منظم، خوانا و آماده استفاده در پروژه هستن.
🔗 Document
#orval
@CodeModule @CodeModuleGap
Forwarded from Code Module | کد ماژول (𔓙)
حالا مگه بک اند دولوپر زیر بار سواگر type safe میره؟😞
Forwarded from Arvin
آموزش اندروید مقدماتی
شروع مسیر اندروید با یادگیری مفاهیم کاربردی و توسعه اپلیکیشن ساده با کاتلین.
فقط ۲۴ ساعت فرصت داری این دوره رو با ۴۰ درصد تخفیف اونم به صورت قسطی ثبتنام کنی!
🔗 https://quera.org/r/pi1sv
شروع مسیر اندروید با یادگیری مفاهیم کاربردی و توسعه اپلیکیشن ساده با کاتلین.
فقط ۲۴ ساعت فرصت داری این دوره رو با ۴۰ درصد تخفیف اونم به صورت قسطی ثبتنام کنی!
🔗 https://quera.org/r/pi1sv
Forwarded from Shayan GeeDook🐧
درود دوستان چطورین، کسی در زمینه دیتا آنالیز و ویژوالایز کردن دیتا و همچنین در زمینه تبدیل محصول به سمت ابری ممنون میشم جهت مشاوره و چند سوال به من وقتشو بده ممنون میشم با تشکر🙏❤️
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
در CSS سه واحد جدید برای Viewport معرفی شده که مشکل ارتفاع در موبایل را حل میکنند. پیشتر استفاده از 100vh باعث میشد بخشهای تمامصفحه دقیق نمایش داده نشوند، چون نوار ابزار مرورگر هنگام اسکرول ظاهر یا ناپدید میشود و ارتفاع واقعی تغییر میکند. حالا با سه واحد جدید این مشکل رفع شده است:
1. lvh (Large Viewport Height)
بیشترین ارتفاع زمانی که نوار ابزار پنهان است.
کاربرد: برای بخشهای فولاسکرین.
2. svh (Small Viewport Height)
کمترین ارتفاع زمانی که نوار ابزار دیده میشود.
کاربرد: برای اجزایی مثل هدر یا فوتر ثابت.
3. dvh (Dynamic Viewport Height)
ارتفاع پویا بین lvh و svh.
کاربرد: برای بخشهای تطبیقی.
اگر چند بخش 100dvh داشته باشید، با ظاهر شدن نوار ابزار ممکن است صفحه بپرد.
جمعبندی:
- نمایش ثابت: svh
- فولاسکرین واقعی: lvh
- رفتار تطبیقی: dvh
این واحدها جایگزین vh نیستند، بلکه ابزارهایی برای کنترل دقیقتر در موبایلاند. CSS امروز هوشمندتر و دقیقتر شده و کنترل بیشتری بر طراحی رابطها میدهد.
@DevTwitter | <Hesam Valizadeh/>
1. lvh (Large Viewport Height)
بیشترین ارتفاع زمانی که نوار ابزار پنهان است.
کاربرد: برای بخشهای فولاسکرین.
height: 100lvh;
2. svh (Small Viewport Height)
کمترین ارتفاع زمانی که نوار ابزار دیده میشود.
کاربرد: برای اجزایی مثل هدر یا فوتر ثابت.
height: 100svh;
3. dvh (Dynamic Viewport Height)
ارتفاع پویا بین lvh و svh.
کاربرد: برای بخشهای تطبیقی.
height: 100dvh;
اگر چند بخش 100dvh داشته باشید، با ظاهر شدن نوار ابزار ممکن است صفحه بپرد.
جمعبندی:
- نمایش ثابت: svh
- فولاسکرین واقعی: lvh
- رفتار تطبیقی: dvh
این واحدها جایگزین vh نیستند، بلکه ابزارهایی برای کنترل دقیقتر در موبایلاند. CSS امروز هوشمندتر و دقیقتر شده و کنترل بیشتری بر طراحی رابطها میدهد.
@DevTwitter | <Hesam Valizadeh/>
Forwarded from CleverDevs (CleverDevs Ads)
این یه چالشه که با مهارت های مختلفتون باید مرحله بعدی رو پیدا کنید . اگه دیدید جایی سخت شد میتونید از فایل راهنماش استفاده کنید
ببینید تا کدوم مرحله میتونید جلو برید
فقط اینکه اسپویل نکنید تو کامنتا
https://a.voorivex.academy
@CleverDevs - @CleverDevsGp
ببینید تا کدوم مرحله میتونید جلو برید
فقط اینکه اسپویل نکنید تو کامنتا
https://a.voorivex.academy
@CleverDevs - @CleverDevsGp
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی ابزار «قطرهچکان» (Eyedropper) سایتها از مرز مرورگر رد میشه!
چند روز پیش داشتم از یک سایت آنلاین Shadow Generator استفاده میکردم که متوجه یک نکته عجیب شدم: ابزار قطرهچکان رنگ اون سایت، علاوه بر فضای داخل مرورگر، به کل دسکتاپ و محیط سیستم عامل من هم دسترسی داشت!
اولش شک کردم... مگه میشه؟ چطور یک وبسایت میتونه بدون نصب افزونه، اطلاعات پیکسل رو از خارج از پنجره مرورگر بخونه؟ این که کاملاً خلاف اصول امنیتی مرورگره!
بعد از کمی تحقیق، متوجه شدم که این قابلیت بهخاطر یک پیشرفت جدید در دنیای وب به نام EyeDropper API امکانپذیر شده.
ماجرا از این قراره:
که EyeDropper API یک رابط برنامهنویسی جدید برای مرورگرهای مبتنی بر کرومیوم (مثل کروم و اج) است.
این API به سایتها اجازه میده که ابزار بومی (Native) انتخاب رنگ مرورگر رو فعال کنن.
این قابلیت، مرز بین اپلیکیشنهای تحت وب و نرمافزارهای دسکتاپ رو باریکتر کرده و برای ابزارهای طراحی وب (مثل انتخابکنندههای رنگ یا ویرایشگرهای عکس) واقعاً یک تحول محسوب میشه.
لینک سایت:
https://folge.me/tools/tailwind-shadow-generator
@DevTwitter | <Ali shabani/>
چند روز پیش داشتم از یک سایت آنلاین Shadow Generator استفاده میکردم که متوجه یک نکته عجیب شدم: ابزار قطرهچکان رنگ اون سایت، علاوه بر فضای داخل مرورگر، به کل دسکتاپ و محیط سیستم عامل من هم دسترسی داشت!
اولش شک کردم... مگه میشه؟ چطور یک وبسایت میتونه بدون نصب افزونه، اطلاعات پیکسل رو از خارج از پنجره مرورگر بخونه؟ این که کاملاً خلاف اصول امنیتی مرورگره!
بعد از کمی تحقیق، متوجه شدم که این قابلیت بهخاطر یک پیشرفت جدید در دنیای وب به نام EyeDropper API امکانپذیر شده.
ماجرا از این قراره:
که EyeDropper API یک رابط برنامهنویسی جدید برای مرورگرهای مبتنی بر کرومیوم (مثل کروم و اج) است.
این API به سایتها اجازه میده که ابزار بومی (Native) انتخاب رنگ مرورگر رو فعال کنن.
این قابلیت، مرز بین اپلیکیشنهای تحت وب و نرمافزارهای دسکتاپ رو باریکتر کرده و برای ابزارهای طراحی وب (مثل انتخابکنندههای رنگ یا ویرایشگرهای عکس) واقعاً یک تحول محسوب میشه.
لینک سایت:
https://folge.me/tools/tailwind-shadow-generator
@DevTwitter | <Ali shabani/>
Forwarded from محتوای آزاد سهراب (Sohrab)
Forwarded from Rust for Python developers
این متن
از کتاب
بنظرم خیلی درسته؛ حالا که درگیر کد زدن هستم واقعاً متوجه میشم خیلی پیش میاد یک مفهوم رو بفهمی و به راحتی کدهای دیگران رو بخونی و متوجه بشی!
اما اینکه خودت اون کد رو بنویسی و همه چیز درست و تا حد خوبی بهینه و idiomatic باشه خیلی چیز متفاوتی هست، اما
خیلی وقتا میزان خطاهایی که میگیرفتم، یا توضیحات clippy و ... باعث میشد پنیک کنم و هی تغییرات بیشتر بدم.
بعضی وقتا دست کشیدن و فکر کردن مجدد باعث میشه کد بهتری بزنم، خیلی وقتا شده کد رو زدم و بعد از چندتا اجرا و ... برگشتم و
با اینکه کد اول خیلی خفنتر هم بوده شاید (چون از بچهها شنیدم) اما ترجیح میدم کدم راحتتر خونده و درک بشه تا خفنتر بنظر بیاد.
و درنهایت، اگر
چندتا توضیح:
پروژه
دلیل خوندن این کتاب هم این نیست که میخوام به دنیای امنیت برگردم (گذشتهها گذشته) فقط چون کتابی برای optimization پیدا نکردم دارم این کتاب رو میخونم.
توی همهی زبانهای برنامهنویسی کتابهای مربوط به امنیت و نفوذ و توسعه ابزارهای نفوذ معمولاً کدهای بهینهتری دارند.
اینم از من به شما
خلاصهای از نکات مهم.
It took me nearly 1 year of full-time programming in Rust to become proficient and no longer
have to read the documentation every 5 lines of code
از کتاب
Black hat Rustبنظرم خیلی درسته؛ حالا که درگیر کد زدن هستم واقعاً متوجه میشم خیلی پیش میاد یک مفهوم رو بفهمی و به راحتی کدهای دیگران رو بخونی و متوجه بشی!
اما اینکه خودت اون کد رو بنویسی و همه چیز درست و تا حد خوبی بهینه و idiomatic باشه خیلی چیز متفاوتی هست، اما
Favor getting things done rather than the perfect design that will never ship. It’s
far better to re-work an imperfect solution than to never ship a perfect system.
خیلی وقتا میزان خطاهایی که میگیرفتم، یا توضیحات clippy و ... باعث میشد پنیک کنم و هی تغییرات بیشتر بدم.
If you are fighting with the limits of the language, it may mean that you are doing something wrong. Stop what you are doing, take a break, and think about how you can do things differently.
بعضی وقتا دست کشیدن و فکر کردن مجدد باعث میشه کد بهتری بزنم، خیلی وقتا شده کد رو زدم و بعد از چندتا اجرا و ... برگشتم و
refactor کردم و کد خیلی بهتر اجرا شده!با اینکه کد اول خیلی خفنتر هم بوده شاید (چون از بچهها شنیدم) اما ترجیح میدم کدم راحتتر خونده و درک بشه تا خفنتر بنظر بیاد.
و درنهایت، اگر
Error handling رو درست انجام داده باشید unwrap, expect همه جا نداشته باشید توی پروداکشن هیچ موقع کد کرش نمیکنه و این خیلی چیز جذابی هست.چندتا توضیح:
پروژه
jsedit استثنا بود چون میخواستم بعنوان cookbook نگهش دارم؛ که چیزای پر تکرار توی سختترین حالتش همیشه دمه دستم باشه.دلیل خوندن این کتاب هم این نیست که میخوام به دنیای امنیت برگردم (گذشتهها گذشته) فقط چون کتابی برای optimization پیدا نکردم دارم این کتاب رو میخونم.
توی همهی زبانهای برنامهنویسی کتابهای مربوط به امنیت و نفوذ و توسعه ابزارهای نفوذ معمولاً کدهای بهینهتری دارند.
اینم از من به شما
خلاصهای از نکات مهم.
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️ مدیریت حافظههای کش در کرنل لینوکس
🔹سیستمعامل لینوکس بهصورت هوشمند از حافظهی RAM نهفقط برای اجرای برنامهها، بلکه برای افزایش کارایی I/O از طریق مکانیزمهای Cache و Buffer استفاده میکند.
🔹کرنل لینوکس برای آزادسازی حافظهی کش، از الگوریتم معروف LRU (Least Recently Used) بهره میبرد.
وقتی سیستم با کمبود RAM روبهرو میشود، کرنل صفحاتی را که کمتر استفاده شدهاند (مثل *Page Cache* یا *Dentry Cache*) آزاد میکند تا فضای بیشتری برای پردازشها فراهم شود.
🔻 سه سطح آزادسازی حافظه در کرنل:
🔻 Drop Clean Pages → صفحات کش تمیز که نیاز به نوشتن مجدد ندارند.
🔻 Write Back Dirty Pages → صفحاتی که تغییر کردهاند، ابتدا روی دیسک نوشته میشوند.
🔻 Shrink Slab Objects → پاکسازی ساختارهای کرنلی مانند *inode* و *dentry cache*.
🔹 مشاهده وضعیت Cache
برای بررسی وضعیت کش، از دستورات زیر استفاده کنید:
📘 انواع حافظههای Cache در لینوکس
🔹 Page Cache
دادههای فایلهایی که از دیسک خوانده میشوند، در حافظه نگهداری میشوند.
🎯 هدف: افزایش سرعت خواندن فایلها.
🔹 Buffer Cache
شامل اطلاعات متادیتا (metadata) مربوط به بلاکهای دیسک است.
🎯 هدف: بهبود عملکرد نوشتن روی دیسک.
🔹 Dentry Cache
مسیرها و نام فایلها (directory entries) را در حافظه ذخیره میکند.
🎯 هدف: افزایش سرعت دسترسی به فایلها و دایرکتوریها.
🔹 Inode Cache
ساختارهای *inode* فایلها را در حافظه نگه میدارد.
🎯 هدف: کاهش بار روی فایلسیستم و تسریع عملیات فایل.
نویسنده: حسین سیلانی.اموزش بیشتر در:
https://learninghive.ir
🔹سیستمعامل لینوکس بهصورت هوشمند از حافظهی RAM نهفقط برای اجرای برنامهها، بلکه برای افزایش کارایی I/O از طریق مکانیزمهای Cache و Buffer استفاده میکند.
🔹کرنل لینوکس برای آزادسازی حافظهی کش، از الگوریتم معروف LRU (Least Recently Used) بهره میبرد.
وقتی سیستم با کمبود RAM روبهرو میشود، کرنل صفحاتی را که کمتر استفاده شدهاند (مثل *Page Cache* یا *Dentry Cache*) آزاد میکند تا فضای بیشتری برای پردازشها فراهم شود.
🔻 سه سطح آزادسازی حافظه در کرنل:
🔻 Drop Clean Pages → صفحات کش تمیز که نیاز به نوشتن مجدد ندارند.
🔻 Write Back Dirty Pages → صفحاتی که تغییر کردهاند، ابتدا روی دیسک نوشته میشوند.
🔻 Shrink Slab Objects → پاکسازی ساختارهای کرنلی مانند *inode* و *dentry cache*.
🔹 مشاهده وضعیت Cache
برای بررسی وضعیت کش، از دستورات زیر استفاده کنید:
$ free -h
$ cat /proc/meminfo | grep -E "Cached|Buffers|Slab"
$ vmstat -s | grep cache
📘 انواع حافظههای Cache در لینوکس
🔹 Page Cache
دادههای فایلهایی که از دیسک خوانده میشوند، در حافظه نگهداری میشوند.
🎯 هدف: افزایش سرعت خواندن فایلها.
🔹 Buffer Cache
شامل اطلاعات متادیتا (metadata) مربوط به بلاکهای دیسک است.
🎯 هدف: بهبود عملکرد نوشتن روی دیسک.
🔹 Dentry Cache
مسیرها و نام فایلها (directory entries) را در حافظه ذخیره میکند.
🎯 هدف: افزایش سرعت دسترسی به فایلها و دایرکتوریها.
🔹 Inode Cache
ساختارهای *inode* فایلها را در حافظه نگه میدارد.
🎯 هدف: کاهش بار روی فایلسیستم و تسریع عملیات فایل.
نویسنده: حسین سیلانی.اموزش بیشتر در:
https://learninghive.ir
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
نکته #لینوکس_پیشرفته 2
⭐️ مدیریت حافظههای کش در کرنل لینوکس
🔹سیستمعامل لینوکس بهصورت هوشمند از حافظهی RAM نهفقط برای اجرای برنامهها، بلکه برای افزایش کارایی I/O از طریق مکانیزمهای Cache و Buffer استفاده میکند. در کرنلهای مدرن لینوکس (از حدود سال ۲۰۰۱ به بعد)، Page Cache و Buffer Cache ادغام شدهاند
🔹کرنل لینوکس برای مدیریت و آزادسازی این حافظههای کش، از الگوریتمهای پیشرفتهای مانند LRU/Active و Inactive بهره میبرد. وقتی سیستم با کمبود RAM روبهرو میشود، کرنل ابتدا صفحات کماستفادهتر (غیرفعال) را از کشهایی مانند Page Cache یا Slab آزاد میکند.
🔻 مراحل کلی آزادسازی حافظه کش توسط کرنل:
🔻آزاد کردن صفحات تمیز (Clean Pages): این صفحات یک کپی معتبر در دیسک دارند و میتوانند بلافاصله دور ریخته شوند.
🔻نوشتن صفحات کثیف (Dirty Pages): صفحاتی که تغییر کردهاند، ابتدا باید روی دیسک نوشته (Sync) شوند تا پس از آن به عنوان صفحه تمیز آزاد گردند.
🔻کوچک کردن حافظه Slab: در این مرحله ساختارهای کرنلی کماستفاده مانند dentry و inode cache آزاد میشوند.
🔹 مشاهده وضعیت Cache
برای بررسی وضعیت کش، از دستورات زیر استفاده کنید:
📘 انواع حافظههای کش در لینوکس
🔹 Page Cache
دادههای فایلها و دادههای خوانده شده از دیسک در این حافظه نگهداری میشوند.
🎯 هدف: افزایش سرعت عملیات خواندن و نوشتن (از طریق بهتعویق انداختن نوشتن).
🔹 Dentry Cache
ساختارهای مربوط به مسیرها و نام فایلها (directory entries) را در حافظه ذخیره میکند.
🎯 هدف: افزایش سرعت دسترسی به فایلها و دایرکتوریها.
🔹 Inode Cache
ساختارهای *inode* فایلهای باز شده را در حافظه نگه میدارد.
🎯 هدف: کاهش بار روی فایلسیستم و تسریع عملیات فایل.
*(توضیح: در کرنلهای مدرن، "Buffers" عمدتاً به متادیتای فایلسیستم و دادههای بلاکدیوایس در حال انتقال اشاره دارد).*
نویسنده: حسین سیلانی. آموزش بیشتر در:
https://learninghive.ir
⭐️ مدیریت حافظههای کش در کرنل لینوکس
🔹سیستمعامل لینوکس بهصورت هوشمند از حافظهی RAM نهفقط برای اجرای برنامهها، بلکه برای افزایش کارایی I/O از طریق مکانیزمهای Cache و Buffer استفاده میکند. در کرنلهای مدرن لینوکس (از حدود سال ۲۰۰۱ به بعد)، Page Cache و Buffer Cache ادغام شدهاند
🔹کرنل لینوکس برای مدیریت و آزادسازی این حافظههای کش، از الگوریتمهای پیشرفتهای مانند LRU/Active و Inactive بهره میبرد. وقتی سیستم با کمبود RAM روبهرو میشود، کرنل ابتدا صفحات کماستفادهتر (غیرفعال) را از کشهایی مانند Page Cache یا Slab آزاد میکند.
🔻 مراحل کلی آزادسازی حافظه کش توسط کرنل:
🔻آزاد کردن صفحات تمیز (Clean Pages): این صفحات یک کپی معتبر در دیسک دارند و میتوانند بلافاصله دور ریخته شوند.
🔻نوشتن صفحات کثیف (Dirty Pages): صفحاتی که تغییر کردهاند، ابتدا باید روی دیسک نوشته (Sync) شوند تا پس از آن به عنوان صفحه تمیز آزاد گردند.
🔻کوچک کردن حافظه Slab: در این مرحله ساختارهای کرنلی کماستفاده مانند dentry و inode cache آزاد میشوند.
🔹 مشاهده وضعیت Cache
برای بررسی وضعیت کش، از دستورات زیر استفاده کنید:
$ free -h
$ cat /proc/meminfo | grep -E "Cached|Buffers|SReclaimable"
$ vmstat -s | grep cache
📘 انواع حافظههای کش در لینوکس
🔹 Page Cache
دادههای فایلها و دادههای خوانده شده از دیسک در این حافظه نگهداری میشوند.
🎯 هدف: افزایش سرعت عملیات خواندن و نوشتن (از طریق بهتعویق انداختن نوشتن).
🔹 Dentry Cache
ساختارهای مربوط به مسیرها و نام فایلها (directory entries) را در حافظه ذخیره میکند.
🎯 هدف: افزایش سرعت دسترسی به فایلها و دایرکتوریها.
🔹 Inode Cache
ساختارهای *inode* فایلهای باز شده را در حافظه نگه میدارد.
🎯 هدف: کاهش بار روی فایلسیستم و تسریع عملیات فایل.
*(توضیح: در کرنلهای مدرن، "Buffers" عمدتاً به متادیتای فایلسیستم و دادههای بلاکدیوایس در حال انتقال اشاره دارد).*
نویسنده: حسین سیلانی. آموزش بیشتر در:
https://learninghive.ir
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
نکته #لینوکس_پیشرفته 1
⭐️ مفهوم Namespaces در لینوکس
🔹در سیستمعامل لینوکس، مکانیزم Namespace یکی از بنیادیترین قابلیتهای ایزولاسیون (Isolation) است که به هر گروه از پردازهها اجازه میدهد دیدگاه جداگانهای نسبت به منابع سیستم داشته باشند.
به بیان سادهتر، هر Namespace مثل یک “جهان کوچک” درون کرنل است که قوانین خودش را برای منابعی مانند پردازهها (PIDs)، شبکه (Network)، سیستم فایل (Mounts)، کاربران (Users) و فضای بینپردازهای (IPC) دارد.
🔹وقتی یک پردازه درون Namespace خاصی ایجاد میشود، فقط منابع همان Namespace را میبیند؛ بهعنوان مثال، اگر دو container روی یک ماشین در حال اجرا باشند، هر دو میتوانند پردازهای با PID=1 داشته باشند، بدون اینکه تداخلی بین آنها پیش بیاید.
🔹این ویژگی، یکی از پایههای اصلی فناوریهای Containerization مانند Docker و LXC (Linux Containers) است. Namespaceها با استفاده از پرچمهای clone() یا فراخوان سیستمی unshare() ساخته میشوند و از طریق ترکیب چند نوع Namespace، میتوان محیطهای کاملاً ایزوله (مانند container) ایجاد کرد.
مطالعه پست کامل
⭐️ مفهوم Namespaces در لینوکس
🔹در سیستمعامل لینوکس، مکانیزم Namespace یکی از بنیادیترین قابلیتهای ایزولاسیون (Isolation) است که به هر گروه از پردازهها اجازه میدهد دیدگاه جداگانهای نسبت به منابع سیستم داشته باشند.
به بیان سادهتر، هر Namespace مثل یک “جهان کوچک” درون کرنل است که قوانین خودش را برای منابعی مانند پردازهها (PIDs)، شبکه (Network)، سیستم فایل (Mounts)، کاربران (Users) و فضای بینپردازهای (IPC) دارد.
🔹وقتی یک پردازه درون Namespace خاصی ایجاد میشود، فقط منابع همان Namespace را میبیند؛ بهعنوان مثال، اگر دو container روی یک ماشین در حال اجرا باشند، هر دو میتوانند پردازهای با PID=1 داشته باشند، بدون اینکه تداخلی بین آنها پیش بیاید.
🔹این ویژگی، یکی از پایههای اصلی فناوریهای Containerization مانند Docker و LXC (Linux Containers) است. Namespaceها با استفاده از پرچمهای clone() یا فراخوان سیستمی unshare() ساخته میشوند و از طریق ترکیب چند نوع Namespace، میتوان محیطهای کاملاً ایزوله (مانند container) ایجاد کرد.
مطالعه پست کامل
Forwarded from Linuxor ?
Forwarded from Armon technical logs (armon Taheri)
از لطف دوستان و تبریک هاشون بسیار متشکرم
Forwarded from Linuxor ?
این استار هایی که توی تلگرام میزنید اینکانسیستنته، یعنی مثلا همین الان دوتا بود بعد شد یکی،
چون ستاره ها روی بلاک چینه و تراکنش ها توی تلگرام زمان میبرن تلگرام اولش اعتماد میکنه و ستاره رو میزنه بعد میبینه ندارینش واقعیشو آپدیت میکنه. (بلخره ری اکشنه و باید سریع باشه نمیشه ری اکشن بزنید بعدش اعمال شه)
کلا توی کامپیوتر به چیزی میگن اینکاسیستنت که دیتا توی سرور های مختلف باهم یکسان نباشه. (هیچ راه حلی هم تقریبا برای حل مشکلش نیست)
@Linuxor
چون ستاره ها روی بلاک چینه و تراکنش ها توی تلگرام زمان میبرن تلگرام اولش اعتماد میکنه و ستاره رو میزنه بعد میبینه ندارینش واقعیشو آپدیت میکنه. (بلخره ری اکشنه و باید سریع باشه نمیشه ری اکشن بزنید بعدش اعمال شه)
کلا توی کامپیوتر به چیزی میگن اینکاسیستنت که دیتا توی سرور های مختلف باهم یکسان نباشه. (هیچ راه حلی هم تقریبا برای حل مشکلش نیست)
@Linuxor
Forwarded from Shayan GeeDook🐧
این بشر خیلی خفنه یه سری مباحثی رو بردیم جلو که واقعاً دم عرفان گرم که وقت گذاشت و مبحث هایی که توشون مشکل و مسئله داشتم رو روشن کرد. اقا خیلی عشقی ❤️🔥
@erfuuan
@erfuuan