بله | کانال مطالب سهراب (بدون اینترنت)
م

مطالب سهراب (بدون اینترنت)

۱۷عضو
به پیشنهاد پارسا، یک دوره درمورد Traefik هم قراره ضبط کنم.

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

@SohrabContents

۱۰:۵۴

و همینطور توی ذهنم هست که یک پادکستی رو هم راه بندازم، ولی چون تجربش رو ندارم و زیاد هم پرحرف نیستم، این یک مورد احتمالاً بیشتر زمان‌بر بشه.


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

@SohrabContents

۱۱:۰۲

thumbnail
خب این رو تازه دیدم و حقیقتاً دیدم ویدئو بگیرم بهتر از اینه که ده خط درموردش تایپ کنم و تلگرام پولکی بگه بیا پرمیوم بخر.
یک فورک از کی‌دی‌ای ۶ گرفتن به اسم سونیک تا x11 رو حفظ کنن.


@SohrabContents

۱۱:۱۷

یک چیزی پیدا کردم به اسم fil-c که توی توییتر دیدمش :))
اگر با C یا C++ کار کرده باشید، احتمالاً با مشکلات امنیتی حافظه آشنا هستید. Fil-C یک پیاده‌سازی کاملاً امن از C و C++ است که با کدهای موجود شما سازگاره. بیشتر برنامه‌ها رو میشه با Fil-C کامپایل کرد و بدون تغییر یا با تغییرات جزئی اجرا کرد. تفاوت اصلی اینه که تمام خطاهای مربوط به حافظه رو میگیره و برنامه رو قبل از بروز مشکل متوقف میکنه.
‏Fil-C چطور این کار رو انجام میده؟ با ترکیب دو چیز: یک garbage collector همزمان و فناوری InvisiCaps که مخفف Invisible Capabilities هست.
‏InvisiCaps به هر اشاره‌گر یک مجموعه دسترسی میده که مشخص میکنه کجا میتونه دسترسی داشته باشه و کجا نمیتونه. هر بار که از یک اشاره‌گر استفاده میکنید، InvisiCaps بررسی میکنه که آیا این اشاره‌گر حق دسترسی به اون قسمت از حافظه رو داره یا نه.
بیایید با چند مثال توضیح بدیم. فرض کنید یک آرایه ده تایی ساختید و سعی میکنید به عضو یازدهم دسترسی پیدا کنید. در C معمولی، این کار ممکنه برنامه رو کرش کنه یا اطلاعات دیگه رو خراب کنه. با Fil-C، به محض تلاش برای خروج از مرز آرایه، برنامه متوقف میشه و دقیقاً مشخص میکنه کجا اشتباه رخ داده.
یا use-after-free که یکی از باگ‌های رایجه. شما یک تکه حافظه رو free میکنید، ولی بعد همچنان سعی میکنید ازش استفاده کنید. در C معمولی، این میتونه به مشکلات جدی منجر بشه چون اون قسمت حافظه ممکنه اکنون متعلق به چیز دیگه‌ای باشه. با Fil-C، اگر این کار رو بکنید، برنامه فوراً پنیک میکنه و متوقف میشه.
یا double free که یعنی دو بار یک حافظه رو free کنید، یا invalid free که یعنی چیزی رو free کنید که با malloc ساخته نشده. همه اینها در Fil-C شناسایی میشن.
‏garbage collector در Fil-C به صورت همزمان کار میکنه، یعنی در پس‌زمینه اجرا میشه و برنامه شما رو کند نمیکنه. وقتی free رو صدا میزنید، این GC به صورت اتمیک تمام اشاره‌گرهایی که به اون حافظه اشاره میکردن رو غیرفعال میکنه. یعنی اگر بعد از free بخواید ازشون استفاده کنید، برنامه فوراً میفهمه و پنیک میکنه.
‏Fil-C هر عملیات ناامن C و C++ رو چک میکنه. برخلاف بعضی زبان‌های دیگه که یک کلمه کلیدی unsafe دارن، Fil-C اصلاً چنین چیزی نداره. همه جا امنه و همه جا چک میشه. البته یک FFI محدود به کدهای ناامن داره، ولی بسیار محدوده.
وقتی کدتون رو با Fil-C کامپایل میکنید، این کامپایلر در سطح LLVM IR تغییرات رو اعمال میکنه. LLVM IR یک نمایش میانی از کد شماست. Fil-C همه عملیات روی اشاره‌گرها رو تبدیل میکنه به کدی که بررسی‌های لازم رو انجام میده.
مثلاً اگر کد ساده‌ای دارید که ptr[i] رو میخونه، Fil-C اون رو تبدیل میکنه به چیزی که ابتدا اعتبار ptr رو بررسی میکنه، سپس بررسی میکنه که i در محدوده باشه، بعد بررسی میکنه که دسترسی به این قسمت حافظه مجاز باشه، و در نهایت مقدار رو میخونه. همه این بررسی‌ها به صورت خودکار اضافه میشن.
چون Fil-C یک ABI متفاوت نسبت به C معمولی داره که بهش Yolo-C گفته میشه، نمیتونید کتابخانه‌های کامپایل شده با کامپایلر عادی رو استفاده کنید. ABI یعنی Application Binary Interface و مشخص میکنه که توابع و کتابخانه‌ها چطور با هم ارتباط برقرار میکنن. بنابراین باید کتابخانه‌ها رو هم با Fil-C کامپایل کنید.
افراد دیگه‌ای هم شروع به ساخت توزیع‌های خودشون از Fil-C کردن. Mikael Brockman یک بسته Nix به نام Filnix ساخته. Nix یک سیستم مدیریت بسته است که تکرارپذیری و قابلیت اطمینان رو تضمین میکنه. Daniel J Bernstein هم یادداشت‌های زیادی درباره استفاده از Fil-C نوشته و اسکریپت‌هایی برای راه‌اندازی Filian ارائه داده. Filian یک نسخه Debian با Fil-C هست.
علاوه بر امنیت حافظه، Fil-C امکانات پیشرفته‌ای هم ارائه میده که در C معمولی وجود ندارن. میتونید قابلیت‌های اشاره‌گرها رو بررسی کنید و از ویژگی‌های پیشرفته GC استفاده کنید. این API به خوبی مستندسازی شده و استفاده ازش ساده است.
‏runtime در Fil-C بزرگتر از C معمولی هست و یک مکانیزم safepoint ارائه میده که برای پشتیبانی از GC دقیق و مدیریت امن سیگنال‌ها لازمه. این runtime همچنین توابع کمکی برای عملیاتی که سنگین هستن رو فراهم میکنه.
https://fil-c.org
@SohrabContents

۱۱:۳۹

thumbnail
بلاگم رو به‌روز کردم ظاهرش رو، حالا قراره بیشتر توش فعال بشم و الان به این شکل شده.
blogfa.sohrabbehdani.ir

@SohrabContents

۱۹:۱۹

thumbnail

۱۹:۱۹

thumbnail
توی این ویدئو رفتیم سراغ دستور pwd تا ببینیم دقیقاً چی‌کار می‌کنه و یک پیاده‌سازی ساده از اون رو داخل سی پلاس پلاس (بله سی پلاس پلاس) انجام دادیم.

تماشا از یوتوب


تماشا از پیرتوب

@SohrabContents

۷:۳۱

thumbnail
فری‌بی‌اس‌دی ۱۵ هم عرضه شد.


https://www.FreeBSD.org/releases/15.0R/relnotes/


@SohrabContents

۱۰:۳۸

thumbnail
‏Lepton معرفی شد لایه اندروید Valve روی لینوکس undefined
‏ولو داره لایه اندروید خودش روی لینوکس بر پایه Waydroid رو با اسم رسمی Lepton آماده می‌کنه ، فعلا میدونیم قراره روی کیت واقعیت مجازی جدیدشون یعنی Steam Frame اجرای APKهای اندروید رو برای دولوپرها ممکن کنه.
‏Lepton از نظر نام‌گذاری کنار Proton قرار می‌گیره ، Proton برای اجرای بازی‌های ویندوز روی لینوکسه، Lepton هم برای اپ‌ها و بازی‌های اندروید روی لینوکس طراحی شده و فعلاً تو SteamDB صفحهٔ مخصوص خودش رو داره، هرچند جزئیاتش هنوز خیلی کمه و دقیق نمیدونیم.
‏نکته جالب اینه که Steamworks SDK اخیرا پشتیبانی Linux ARM و Android گرفته و احتمال می‌ره در آینده بشه Lepton رو روی SteamOS و دسکتاپ لینوکس هم اجرا کرد، نه فقط روی Steam Frame (هنوز رسمی تایید نشده).‏بیشتر بدون: GamingOnLinux
@GamerTux | @GamerTuxChat

۱۶:۵۴

thumbnail
تراپیست: لبوبونتو وجود نداره و نمیتونه بهت آسیب بزنه.

لبوبونتو:
#fun@SohrabContents

۱۷:۲۱

آلپاین ۳.۲۳ منتشر شد و تیم آلپاین اعلام کرد این نسخه یک به‌روزرسانی جدی در زیرساخت و زنجیره ابزارهای سیستم به حساب میاد. در این ریلیز، کرنل لینوکس به نسخه 6.18 ارتقا پیدا کرده و مجموعه ابزارهای اصلی مثل GCC 15، LLVM 21، Rust 1.91 و Node.js LTS 24.11 به‌روز شدن.تیم توسعه همچنین اعلام کرده که apk-tools v3 حالا به‌صورت رسمی وارد خط پایدار شده. این نسخه از apk با اینکه همچنان از فرمت بسته‌های نسل قبل استفاده می‌کنه، اما هسته ابزار مدیریت بسته‌ها را به‌طور کامل داخلش بازطراحی شده. کاربرای عادی مشکلی با این نخواهند داشت، اما توسعه‌دهندگانی که از libapk استفاده می‌کنن باید انتظار تغییرات API را داشته باشن.
در ادامه، آلپاین اعلام کرده که شاخهٔ linux-edge حذف شده و هستهٔ linux-stable به‌عنوان جایگزین معرفی میشه که این کرنل از نظر پیکربندی مشابه linux-lts هستش اما به‌روزرسانی‌های سریع‌تر و کوتاه‌مدت‌تر را دنبال می‌کنه. سیستم‌هایی که قبلاً edge رو استفاده می‌کردند هم به‌طور خودکار به stable منتقل میشن.
موضوع ادغام مسیرهای /usr که قرار بود در نسخه ۳.۲۳ انجام بشه هم به تعویق افتاده و تیم توسعه خبر داده که به‌دلیل چالش‌های فنی، زمان‌بندی جدید بعداً منتشر میشه.
می‌تونید تغییرات کامل رو از پیوند زیر بخونید:

https://alpinelinux.org/posts/Alpine-3.23.0-released.html

@SohrabContents

۲۰:۰۸

نسخه‌های جدید پارچ لینوکس برای معماری ARM و رزبری‌پای ۴ به بالا منتشر شدند!
ایمیج‌های ARM Generic و Raspberry Pi 4/۵ الان با ساختار کاملاً بازنویسی‌شده، تمیزتر، سبک‌تر و پایدارتر از همیشه آماده دانلود هستن.
دانلود برای آرم جنریک و رزبری‌پای:
https://mirror.parchlinux.ir/aarch64/
https://mirror.parchlinux.ir/rpi-aarch64/
تست کنید، لذت ببرید و مثل همیشه فیدبک‌تون رو در فروم پارچ برامون بفرستید undefined
توجه!این نسخه‌ها از نظر معماری و طراحی آزمایشی محسوب می‌شوند، زیرا ساختار بیلد این نسخه‌ها مجدداً از پایه طراحی شده بنابراین نیازمند آزمایش و بازخورد هستند.
با تشکر از نوبَرکلادundefined
@ParchLinux

۱۲:۴۴

thumbnail
پک‌من یک پرچم ترکیبی داره که براتون پیوند دانلود یک بسته رو چاپ می‌کنه که بعداً بتونید این رو دستی دانلود کنید :)
این می‌تونه برای دوستانی که می‌خوان بسته‌ها رو دریافت کنن و به صورت محلی جا‌به‌جا کنن خیلی بدرد می‌خوره چون با یک ابزار خارجی مثل آریا میشه به‌راحتی و سریعتر از خود مدیربسته‌هم حتی این بسته‌ها رو دریافت کرد.

pacman -Sp <package>

@SohrabContents

۱۸:۵۳

thumbnail
:))))))))))
احتمالا وایب‌کد شده و ری‌اکت نیتیو باشه.

@SohrabContents

۱۵:۰۴

مطالب سهراب (بدون اینترنت)
undefined بعد از این همه سال بالاخره مایکروسافت منوی run ویندوز ۱۱ رو دارک کرد. این پیشرفت بزرگ در زمینه رابط کاربری رو به کاربران این سیستم‌عامل تبریک عرض می‌کنم. @SohrabContents
البته احتمالا چون در انجام این شکست خورده اومدن بازنویسیش کردن.

@SohrabContents

۱۵:۱۰

آقا یه بنده خدایی میگفت تمام ابزار های روی کالی رو‌ استفاده میکنه و همش به دردش میخورهhttps://www.kali.org/tools/all-tools/
اولا به من بگو تو یه تنه تمام تخصص های توی زمینه offensive رو رنده کردی یعنی؟دو یه خیلی از ابزارها دارن یه کار مشترکو انجام میدن همشونو با هم ران میکنی ؟سه مجدداً یه سری از ابزارای کاربردی اصلا رو کالی نیستن تو ریپو هاشم نیستن تا جایی که میدونم چهار یه سری دیگه از ابزار ها ام به روز نیستن خودت باید بیلد بگیری چجوری شما یه تنه از تمام ابزار ها استفاده میکنی؟ undefined

۱۶:۵۶

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

https://x.com/SBehdani/status/1997386854232940686?s=20

@SohrabContents

۱۹:۳۵

thumbnail
نسخه تحت خط‌فرمان میرورمن رو با راست امروز تمومش کردم.
https://git.parchlinux.com/tools/mirrorman-cli
و احتمالاً نسخه پایتونی رو دور این هسته‌ای که با راست هستش بازنویسی کنم تا سرعتش بیشتر بشه و یک‌سری از مشکلات رو مخش حل بشه.
برای tui از کتابخانه Ratatui استفاده کردم که خیلی جالبه.
@SohrabContents

۹:۴۰

thumbnail
پروژه QT برای اتصال QT به زبان‌های دیگه یک چیزیو داره به اسم پل.
https://www.qt.io/development/qt-bridges
که قطعاً فکر کنم چند نفری وقتی می‌خواستن با راست کیوت بنویسن، باهاش برخورد کردن.


در ادامه توضیح میدم که چرا این وجود داره و چرا کیوت مثل جی‌تی‌کی نمی‌تونه بایند مستقیم ارائه بده برای زبان های مختلف و همیشه پای سی پلاس پلاس درمیونه.

@SohrabContents

۸:۳۸

تفاوت اساسی بین Qt و GTK توی معماری و زبون پیاده‌سازیشونه. GTK از همون اول با C خالص و GObject نوشته شده. GObject یه سیستم شی‌گرایی‌ه که روی C ساخته شده و این باعث شده GTK به صورت ذاتی قابلیت بازنگری داشته باشه. یعنی فراداده‌ی کامل کلاس‌ها، متدها و ویژگی‌ها توی زمان اجرا در دسترسه.
وقتی می‌خوای برای پایتون یا روبی یا هر زبون دیگه‌ای بایندینگ GTK بنویسی، کافیه به بازنگری GObject وصل بشی و تموم اطلاعات لازم رو استخراج کنی. به همین خاطره که PyGObject می‌تونه به صورت خودکار تموم رابط‌های GTK رو نمایش بده بدون اینکه نیازی باشه هر تابع رو دستی بپیچونی.
‏Qt اما ماجرای متفاوتی داره. Qt با سی‌پلاس‌پلاس نوشته شده و خیلی شدید به ویژگی‌های پیچیده‌ی سی‌پلاس‌پلاس وابسته‌ست. کامپایلر فراشیء که قلب سیستم فراشیء Qt هست، قبل از کامپایل اصلی اجرا میشه و کد سی‌پلاس‌پلاس اضافی تولید می‌کنه. این کدها برای پشتیبانی از سیگنال‌ها، شکاف‌ها، ویژگی‌های پویا و بازنگری محدود Qt لازم هستن.
حالا وقتی می‌خوای Qt رو از پایتون صدا بزنی، با چندتا مشکل روبرو میشی. اولش اینکه باید رابط دوتایی سی‌پلاس‌پلاس رو مدیریت کنی که خودش یه کابوسه چون استاندارد نشده و بین کامپایلرها فرق می‌کنه. دومش اینکه Qt از قالب‌های سنگین، بارگذاری عملگر، وراثت چندگانه و یه عالمه ویژگی دیگه‌ی سی‌پلاس‌پلاس استفاده می‌کنه که مستقیم به زبون‌های دیگه نگاشت نمیشن.

به همین دلیل پروژه‌هایی مثل PyQt و PySide نیاز به ابزارهایی مثل SIP و Shiboken دارن. این ابزارها عملاً یه لایه‌ی کامل از کد پوششی تولید می‌کنن که بین دنیای پایتون و دنیای سی‌پلاس‌پلاس پل می‌زنن. این پوشش‌ها باید تبدیل نوع انجام بدن، مدیریت حافظه رو هندل کنن، و تموم خصوصیات عجیب غریب سی‌پلاس‌پلاس رو به یه چیز پایتونی تبدیل کنن.
‏GTK چون از اول با C نوشته شده، این مشکلات رو نداره. C یه رابط دوتایی ساده و پایدار داره و تقریباً هر زبون برنامه‌نویسی مدرنی می‌تونه مستقیم با C حرف بزنه. رابط تابع خارجی برای C خیلی ساده‌تر از سی‌پلاس‌پلاسه.
جالبش اینه که این "محدودیت" Qt در عین حال یکی از قدرت‌هاشم هست.
‏ Qt رابط‌های خیلی غنی‌تر و پیچیده‌تری نسبت به GTK داره و این پیچیدگی بعضی وقتا به نفع توسعه‌دهنده تموم میشه. ولی قیمتش همین پیش‌نیازی به پل‌ها و پوشش‌های پیچیده‌ست :)

@SohrabContents

۸:۴۴