Forwarded from Md Daily (Mahan)
داشتم یه ویدیو تو یوتیوب تحت عنوان What Happens When a Program Calls Sleeps میدیدم که خیلی جالب بود اگه تا حالا از تابع sleep توی برنامهنویسی استفاده کردید، شاید براتون سوال شده که چرا اسمش «sleep» هست و نه مثلاً «wait» یا «delay»؟ این ویدیو یه سفر جذاب به پشت صحنهی این تابع سادهست که پر از نکات سختافزاری و نرمافزاریه. این تابع تقریباً توی همه زبانهای برنامهنویسی هست (تو جاوااسکریپت داستانش فرق داره).
اولین چیزی که ویدیو بهش میپردازه، اینه که تابع sleep چطور توی دنیای واقعی کار میکنه. میره سراغ سختافزار و نشون میده که چطور با استفاده از فلیپفلاپها (یه جور مدار الکترونیکی که مثل سلولهای حافظه کار میکنن) میشه یه تایمر ساخت.
این تایمرها توی سیپییو مثل یه ساعت شنی دیجیتال عمل میکنن: یه عدد اولیه میگیرن و با هر تیک ساعت، شمارش معکوس میکنن تا به صفر برسن. وقتی یه برنامه sleep رو صدا میزنه، سیستمعامل با یه system call این تایمر رو تنظیم میکنه و وقتی تایمر به صفر رسید، با یه interrupt برنامه رو بیدار میکنه.
ولی یه چالش بزرگ وجود داره: تعداد تایمرهای سختافزاری توی یه چیپ محدوده. مثلاً اگه فقط دو تا تایمر داشته باشیم و سه تا برنامه بخوان sleep کنن، یکی باید منتظر بمونه! اینجا نرمافزار وارد بازی میشه. ویدیو توضیح میده که چطور سیستمعامل با یه تکنیک هوشمندانه، فقط با یه تایمر میتونه چندین برنامه رو مدیریت کنه. برنامههایی که sleep صدا میزنن، توی یه «صف خواب» میرن و سیستمعامل با یه تایمر و یه سری محاسبات، مطمئن میشه که هر کدوم سر وقت بیدار بشن.
بعدش، ویدیو یه روش قدیمیتر به اسم busy waiting رو بررسی میکنه که توی اون، برنامه با یه حلقهی بیفایده، پردازنده رو مشغول نگه میداشت تا زمان بگذره. این روش نه تنها دقت پایینی داره (چون به سرعت پردازنده و نوع دستورات بستگی داره)، بلکه کلی از منابع سیستم رو هدر میده و حتی میتونه سیستم رو قفل کنه! خوشبختانه، سیستمعاملهای مدرن با استفاده از برنامهریزی پردازنده (CPU scheduling) این مشکل رو حل کردن. وقتی برنامه sleep رو صدا میزنه، عملاً به سیستمعامل میگه: «من برای یه مدت نمیخوام پردازنده رو اشغال کنم، بذار بقیه کار کنن.»
یه نکتهی جالب دیگه اینه که دقت sleep همیشه ۱۰۰٪ نیست. چون بعد از بیدار شدن، برنامه میره توی صف آماده و اگه سیستم شلوغ باشه، ممکنه یه کم بیشتر منتظر بمونه. برای همین، وقتی از sleep استفاده میکنید، زمان دادهشده یه حداقل تضمینشدهست، نه یه عدد دقیق. این موضوع توی سیستمهای عمومی (غیر real-time) کاملاً عادیه و ویدیو خیلی خوب توضیح میده که چرا نباید انتظار دقت میکروثانیهای داشته باشیم.
در نهایت، ویدیو به این میرسه که چرا اسم این تابع «sleep» هست. «wait» میتونه گنگ باشه و به هر نوع انتظاری اشاره کنه (مثل busy waiting)، ولی «sleep» یعنی برنامه کاملاً غیرفعال میشه، منابع رو آزاد میکنه و مثل وقتی که ما میخوابیم، منتظر میمونه تا بیدار بشه. این اسم حسابی به ماهیت این تابع میخوره!
اگه کنجکاو شدید که جزئیات بیشتری دربارهی این موضوع بدونید، این ویدیو پر از توضیحات باحال و انیمیشنهای جذابه که مفاهیم پیچیده رو ساده میکنه. حتماً یه سر بزنید و خودتون ببینید:
📹 https://www.youtube.com/watch?v=e5g8eYKEhMw
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
اولین چیزی که ویدیو بهش میپردازه، اینه که تابع sleep چطور توی دنیای واقعی کار میکنه. میره سراغ سختافزار و نشون میده که چطور با استفاده از فلیپفلاپها (یه جور مدار الکترونیکی که مثل سلولهای حافظه کار میکنن) میشه یه تایمر ساخت.
این تایمرها توی سیپییو مثل یه ساعت شنی دیجیتال عمل میکنن: یه عدد اولیه میگیرن و با هر تیک ساعت، شمارش معکوس میکنن تا به صفر برسن. وقتی یه برنامه sleep رو صدا میزنه، سیستمعامل با یه system call این تایمر رو تنظیم میکنه و وقتی تایمر به صفر رسید، با یه interrupt برنامه رو بیدار میکنه.
ولی یه چالش بزرگ وجود داره: تعداد تایمرهای سختافزاری توی یه چیپ محدوده. مثلاً اگه فقط دو تا تایمر داشته باشیم و سه تا برنامه بخوان sleep کنن، یکی باید منتظر بمونه! اینجا نرمافزار وارد بازی میشه. ویدیو توضیح میده که چطور سیستمعامل با یه تکنیک هوشمندانه، فقط با یه تایمر میتونه چندین برنامه رو مدیریت کنه. برنامههایی که sleep صدا میزنن، توی یه «صف خواب» میرن و سیستمعامل با یه تایمر و یه سری محاسبات، مطمئن میشه که هر کدوم سر وقت بیدار بشن.
بعدش، ویدیو یه روش قدیمیتر به اسم busy waiting رو بررسی میکنه که توی اون، برنامه با یه حلقهی بیفایده، پردازنده رو مشغول نگه میداشت تا زمان بگذره. این روش نه تنها دقت پایینی داره (چون به سرعت پردازنده و نوع دستورات بستگی داره)، بلکه کلی از منابع سیستم رو هدر میده و حتی میتونه سیستم رو قفل کنه! خوشبختانه، سیستمعاملهای مدرن با استفاده از برنامهریزی پردازنده (CPU scheduling) این مشکل رو حل کردن. وقتی برنامه sleep رو صدا میزنه، عملاً به سیستمعامل میگه: «من برای یه مدت نمیخوام پردازنده رو اشغال کنم، بذار بقیه کار کنن.»
یه نکتهی جالب دیگه اینه که دقت sleep همیشه ۱۰۰٪ نیست. چون بعد از بیدار شدن، برنامه میره توی صف آماده و اگه سیستم شلوغ باشه، ممکنه یه کم بیشتر منتظر بمونه. برای همین، وقتی از sleep استفاده میکنید، زمان دادهشده یه حداقل تضمینشدهست، نه یه عدد دقیق. این موضوع توی سیستمهای عمومی (غیر real-time) کاملاً عادیه و ویدیو خیلی خوب توضیح میده که چرا نباید انتظار دقت میکروثانیهای داشته باشیم.
در نهایت، ویدیو به این میرسه که چرا اسم این تابع «sleep» هست. «wait» میتونه گنگ باشه و به هر نوع انتظاری اشاره کنه (مثل busy waiting)، ولی «sleep» یعنی برنامه کاملاً غیرفعال میشه، منابع رو آزاد میکنه و مثل وقتی که ما میخوابیم، منتظر میمونه تا بیدار بشه. این اسم حسابی به ماهیت این تابع میخوره!
اگه کنجکاو شدید که جزئیات بیشتری دربارهی این موضوع بدونید، این ویدیو پر از توضیحات باحال و انیمیشنهای جذابه که مفاهیم پیچیده رو ساده میکنه. حتماً یه سر بزنید و خودتون ببینید:
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
What Happens When a Program Calls Sleeps?
Use code coredumped at the link below to get an exclusive 60% off an annual Incogni plan:
https://incogni.com/coredumped
Join CodeCrafters and learn by creating your own: Redis, Git, Http server, Interpreter, Grep... in your favorite programming language:…
https://incogni.com/coredumped
Join CodeCrafters and learn by creating your own: Redis, Git, Http server, Interpreter, Grep... in your favorite programming language:…
Forwarded from Laravel News
Generate HTTP Fixtures from Live API Calls in Laravel https://laravel-news.com/http-fixtures-laravel-package
Laravel News
Generate HTTP Fixtures from Live API Calls in Laravel - Laravel News
The HTTP Fixtures package for Laravel generates fake JSON responses for external API calls in tests. It simplifies creating mock responses by integrating with Faker to generate realistic test data.
Forwarded from DevTwitter | توییت برنامه نویسی
تو دیسکهای SSD مفهومی داریم به اسم Terabytes Written یا TBW که نشون میده تا چه حجمی از دیتا میتونیم روی دیسک بنویسیم. مثلاً SSD با 600TBW میتونه 600 ترابایت دیتا بنویسه قبل از اینکه عمر مفیدش تموم بشه.
برای اینکه عمر SSD رو متوجه بشیم، میتونیم TBW رو با استفاده از ابزارهای دیسک مثل CrystalDiskInfo یا smartctl چک کنیم.
مثلاً عدد ۶۰۰ برای TBW: اگه کاربر معمولی باشیم و فرض کنیم روزی ۱۰۰ گیگ اطلاعات رو دیسک مینویسم، حدود ۱۶ سال طول میکشه تا به عدد 600TBW برسیم!
@DevTwitter | <Mohammad/>
برای اینکه عمر SSD رو متوجه بشیم، میتونیم TBW رو با استفاده از ابزارهای دیسک مثل CrystalDiskInfo یا smartctl چک کنیم.
مثلاً عدد ۶۰۰ برای TBW: اگه کاربر معمولی باشیم و فرض کنیم روزی ۱۰۰ گیگ اطلاعات رو دیسک مینویسم، حدود ۱۶ سال طول میکشه تا به عدد 600TBW برسیم!
@DevTwitter | <Mohammad/>
Forwarded from محتوای آزاد سهراب
آلفا هفتم از میزکار کازمیک عرضه شد.
تغییرات خیلی خوبی داشته. (هنوز میانبر تغییر زبان کیبورد نداره)
https://blog.system76.com/post/cosmic-alpha-7-never-been-beta
@SohrabContents
تغییرات خیلی خوبی داشته. (هنوز میانبر تغییر زبان کیبورد نداره)
https://blog.system76.com/post/cosmic-alpha-7-never-been-beta
@SohrabContents
Forwarded from دستاوردهای یادگیری عمیق(InTec)
۱ هفتهاس دارم نسخه جدید
مشکلات :
۱- خیلی زود
۲- خیلی تغییر syntax داره و استانداردهای پروژه رو عوض میکنه.
۳- خیلی وقتا حتی توی context های کوچیک فراموش میکنه که یک متغییر یا تابع یا ... جای دیگری تعریف شده.
مزیت:
اگر داکیومنت کتابخونه، خیلی جدید باشه؛ میتونید لینک رو بهش بدید و بعد ازش port کردن کدها رو بخواید.
توی این مورد عملکرد فوقالعادهای داره
(فکر کنم بخاطر همین هم ماکروسافت برای پورت کردن کدها به
اما ۳ مورد دیگه رو هم تست کردم همزمان :
مورد اول،
مورد دوم،
خروجیش اصلا قابل مقایسه با نسخههای قبلی نیست.
ولی بعد از چند هفته از
که خب با توجه به اینکه ۹۹٪ مواقع
در نهایت
اما
برای همین خیلی وقتا باید بهش بگم دقیقاً چی نیاز هست.
مواردی مثل
این تستهارو کامل روی نسخههای رایگان انجام دادم که همه دوستان هم بتونند استفاده کنند.
شاید باورتون نشه، اما برای یکی که میدونه چیکار داره میکنه، حتی نیازی به خرید هم نمیبینم دیگه، درنهایت نکته آخر اینکه :
اگر پرامپتهای کوچیک و ساده دارید هم سراغ
Duckduckgo ai
بدون هیچ محدودیتی دسترسی به مدلهای سبک شرکتهای مختلف رو کامل رایگان بهتون میده و
بیشترین استفاده من پس به این ترتیب هست :
آخری خیلی جوابای خوبی میده ولی خب محدودیتش توی ۲ هفته اخیر خیلی زیاد شده برای همین مجبورم کمتر استفاده کنم.
پینوشت:
پرامپت برای همه مدلها یکسان داده میشد. کپی و پیست بسیار داشتم.
ChatGPT رو روی کد بیس بیش از ۱۵۰۰ خط تست میکنم.مشکلات :
۱- خیلی زود
context رو فراموش میکنه.۲- خیلی تغییر syntax داره و استانداردهای پروژه رو عوض میکنه.
۳- خیلی وقتا حتی توی context های کوچیک فراموش میکنه که یک متغییر یا تابع یا ... جای دیگری تعریف شده.
مزیت:
اگر داکیومنت کتابخونه، خیلی جدید باشه؛ میتونید لینک رو بهش بدید و بعد ازش port کردن کدها رو بخواید.
توی این مورد عملکرد فوقالعادهای داره
(فکر کنم بخاطر همین هم ماکروسافت برای پورت کردن کدها به
Rust از مدلهای هوش مصنوعی بر پایه chatgpt استفاده میکنه)اما ۳ مورد دیگه رو هم تست کردم همزمان :
Grok3, Gemini2.5 Pro, Deepseekمورد اول،
grok بدون شک بسیار عالی جواب میده؛ بخصوص وقتی پرامپت هارو کمی جزئی بهش میدید. همواره رنک اول من هست.مورد دوم،
gemini؛ نمیدونم تیم deepmind چیکار کرد ولی بنظر میاد بعد از کار روی پروتئین و دستاوردهای اون سمت تازه فرصت کردند منابع کافی در اختیار اینکار بذارند.خروجیش اصلا قابل مقایسه با نسخههای قبلی نیست.
ولی بعد از چند هفته از
experimental گذشتن، دیگه روی کدهای بزرگ خیلی زود بسته میشه دسترسی نهایتاً ۳ تا پرامپت و بعد از اون باید خرید اکانت بزنم.که خب با توجه به اینکه ۹۹٪ مواقع
403 میگیرم با vpn برام ارزش خرید نداره.در نهایت
deepseek همیشه جواب میده (اگر سرورهاش شلوغ نباشه) محدودیت هم ندارم با ip ایران راحت وصل میشه و سرعت خوبی هم داره.اما
consistency بین پرامپتها نداره و ممکنه یک راهکار رو با مثلاً regex بهتون بده و برای تابع بعدی از Trie استفاده کنه و ... برای همین خیلی وقتا باید بهش بگم دقیقاً چی نیاز هست.
مواردی مثل
claude, .... رو هم تست نمیکنم. این تستهارو کامل روی نسخههای رایگان انجام دادم که همه دوستان هم بتونند استفاده کنند.
شاید باورتون نشه، اما برای یکی که میدونه چیکار داره میکنه، حتی نیازی به خرید هم نمیبینم دیگه، درنهایت نکته آخر اینکه :
اگر پرامپتهای کوچیک و ساده دارید هم سراغ
chatgpt نرید؛ Duckduckgo ai
بدون هیچ محدودیتی دسترسی به مدلهای سبک شرکتهای مختلف رو کامل رایگان بهتون میده و
history رو هم فقط روی سیستم خودتون نگهداری میکنه.بیشترین استفاده من پس به این ترتیب هست :
Duckduckgo
Grok3
Deepseek
Chatgpt (if search needed)
Gemini2.5 pro (review final result)آخری خیلی جوابای خوبی میده ولی خب محدودیتش توی ۲ هفته اخیر خیلی زیاد شده برای همین مجبورم کمتر استفاده کنم.
پینوشت:
پرامپت برای همه مدلها یکسان داده میشد. کپی و پیست بسیار داشتم.
Duckduckgo
DuckDuckGo AI Chat at DuckDuckGo
DuckDuckGo. Privacy, Simplified.
Forwarded from جامعهٔ فارسی زبان کیدیای (Sohrab)
کمپین پایان ۱۰ با کمک بنیاد کیدیای راهاندازی شده و هدفش آگاه کردن افراد نسبت به گزینههای جایگزین بعد از پایان پشتیبانی از ویندوز ۱۰ هستش.
ترجمه فارسی وبسایت این کمپین ارسال شده و در دست برسی هستش.
شما هم میتونید با طراحی پوستر، ایجاد جشن نصب توزیع و همچنین راهاندازی جلساتی برای آگاهسازی افراد نسبت به پایان ویندوز ۱۰، در این کمپین مشارکت کنید.
🔗 https://endof10.org/
@kde_fa
ترجمه فارسی وبسایت این کمپین ارسال شده و در دست برسی هستش.
شما هم میتونید با طراحی پوستر، ایجاد جشن نصب توزیع و همچنین راهاندازی جلساتی برای آگاهسازی افراد نسبت به پایان ویندوز ۱۰، در این کمپین مشارکت کنید.
🔗 https://endof10.org/
@kde_fa
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 سیستم پرامپت های لو رفته و فاش شده از مدل های زبانی و پلتفرم هایی مثل Cursor رو توی این ریپازیتوری ببینید !
خیلی میتونه بهتون کمک بکنه این سیستم پرامپت ها که هم ایده ازش بگیرید هم توی پروژه هاتون استفاده کنید .
گیت هاب :
https://github.com/alipyth/-
</Ali Jahani>
@TheRaymondDev
خیلی میتونه بهتون کمک بکنه این سیستم پرامپت ها که هم ایده ازش بگیرید هم توی پروژه هاتون استفاده کنید .
گیت هاب :
https://github.com/alipyth/-
</Ali Jahani>
@TheRaymondDev
GitHub
GitHub - alipyth/-: سیستم پرامپت های مدل های زبانی
سیستم پرامپت های مدل های زبانی. Contribute to alipyth/- development by creating an account on GitHub.
Forwarded from کدنویس یکروزه (پدرام رحیمی)
Forwarded from DevTwitter | توییت برنامه نویسی
داشتم مستندات رسمی APIهای ChatGPT رو بررسی میکردم که یه نکته مهم دیدم.
خیلی زیاد پیش اومده که کاربرا میپرسن:
«چرا این مدل قبلاً یه جور جواب میداد، الان یه چیز دیگه میگه؟»
مثلاً میگن قبلاً جوابش بهتر (یا بدتر) بود، یا لحنش عوض شده و...
جواب خیلی واضح تو خود داکیومنت OpenAI اومده:
اونجا گفته شده که مدلها تو نسخههای مختلفشون ممکنه رفتار متفاوتی داشته باشن. یعنی حتی اگه دقیقاً همون سوال قبلی رو دوباره بپرسید، چون نسخه جدیدتری از مدل فعال شده، جوابش ممکنه فرق کنه.
این تغییرات هم میتونه توی لحن، دقت، ساختار جواب یا حتی خود محتوای پاسخ باشه.
از اونجایی که خود ChatGPT همیشه از آخرین نسخه مدل استفاده میکنه، این تغییرات کاملاً طبیعی و قابل انتظاره.
خلاصه اگه در مدلی از open ai نسبت به گذشته تغییرات حس کردید، دلیلش اینه که مدل آپدیت شده؛ نه اینکه شما کار خاصی کرده باشید یا مدل خراب شده باشه. خود OpenAI هم گفته که این تغییرات بخشی از روند طبیعی بهروزرسانی مدله.
@DevTwitter | <Amir Javadzadeh/>
خیلی زیاد پیش اومده که کاربرا میپرسن:
«چرا این مدل قبلاً یه جور جواب میداد، الان یه چیز دیگه میگه؟»
مثلاً میگن قبلاً جوابش بهتر (یا بدتر) بود، یا لحنش عوض شده و...
جواب خیلی واضح تو خود داکیومنت OpenAI اومده:
اونجا گفته شده که مدلها تو نسخههای مختلفشون ممکنه رفتار متفاوتی داشته باشن. یعنی حتی اگه دقیقاً همون سوال قبلی رو دوباره بپرسید، چون نسخه جدیدتری از مدل فعال شده، جوابش ممکنه فرق کنه.
این تغییرات هم میتونه توی لحن، دقت، ساختار جواب یا حتی خود محتوای پاسخ باشه.
از اونجایی که خود ChatGPT همیشه از آخرین نسخه مدل استفاده میکنه، این تغییرات کاملاً طبیعی و قابل انتظاره.
خلاصه اگه در مدلی از open ai نسبت به گذشته تغییرات حس کردید، دلیلش اینه که مدل آپدیت شده؛ نه اینکه شما کار خاصی کرده باشید یا مدل خراب شده باشه. خود OpenAI هم گفته که این تغییرات بخشی از روند طبیعی بهروزرسانی مدله.
@DevTwitter | <Amir Javadzadeh/>
Forwarded from کدنویس یکروزه (پدرام رحیمی)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from کانال اطلاعرسانی توزیع پارچ (Sohrab)
صفحه نحوه نصب پارچ در ویکی پارچ نوشته شد.
https://wiki.parchlinux.com/fa/installation
این صفحه به مرور بهبود خواهد یافت، ایرادات این صفحه را میتوانید در زیر همین پست اعلام کنید.
@ParchLinux
https://wiki.parchlinux.com/fa/installation
این صفحه به مرور بهبود خواهد یافت، ایرادات این صفحه را میتوانید در زیر همین پست اعلام کنید.
@ParchLinux
Forwarded from فروشگاه اکانت های پرمیوم | خرید هوش مصنوعی
🔥 تخفیف ویژه اشتراکهای دانشجویی هوش مصنوعی به مدت محدود!
💯 اشتراک بهترین سرویس های هوش مصنوعی جهان، ویژه برنامهنویسی، پژوهش، مقاله نویسی، تجزیه و تحلیل مقالات، PDF و... با بهترین قیمت
🛍 جهت مشاوره و خرید:
💬 t.iss.one/PremiumAIs
⚡️اطلاع از سایر پیشنهادات ویژه:
📣 t.iss.one/BEST4PREMIUMS
💯 اشتراک بهترین سرویس های هوش مصنوعی جهان، ویژه برنامهنویسی، پژوهش، مقاله نویسی، تجزیه و تحلیل مقالات، PDF و... با بهترین قیمت
➕ ChatGPT Plus (یکماهه ۱،۵۴۹)✨ اختصاصی روی ایمیل شخصی شما با پشتیبانی تا آخرین روز اشتراک
➕ Perplexity Pro (شش ماهه ۲,۱۹۰)
➕ Gemini Advanced (پانزده ماهه ۳،۹۰۰)
➕ Super Grok (یکماهه ۱,۷۹۰)
➕ You.com Pro (دوازده ماهه ۳,۹۰۰)
🛍 جهت مشاوره و خرید:
💬 t.iss.one/PremiumAIs
⚡️اطلاع از سایر پیشنهادات ویژه:
📣 t.iss.one/BEST4PREMIUMS
Forwarded from SoniaCircuit (Sony)
https://trackingai.org/home
این سایت میاد تست IQ مدل های هوش مصنوعی رو به صورت هفتگی میذاره و test score هایی که گذاشته آمار جالبی نشون میده که میتونه به کارتون بیاد از کدوم llm استفاده کنید.
#llm #ai
این سایت میاد تست IQ مدل های هوش مصنوعی رو به صورت هفتگی میذاره و test score هایی که گذاشته آمار جالبی نشون میده که میتونه به کارتون بیاد از کدوم llm استفاده کنید.
#llm #ai
Forwarded from DevTwitter | توییت برنامه نویسی
اینجا میتونید بیش از ۴۳ میلیون کتاب و ۹۸ میلیون مقاله رو رایگان مطالعه یا دانلود کنید.
welib.org
@DevTwitter | <Ayub Kokabi/>
welib.org
@DevTwitter | <Ayub Kokabi/>
Forwarded from Seyed Mahdi Notes (Seyed Mahdi)
Forwarded from Linuxor ?
Media is too big
VIEW IN TELEGRAM
آیا فقط کلیک کردن روی لینک های ناشناس خطری هم داره؟ آیا الکی بولدش کردن که روی لینک ها کلیک نکنیم؟
@Linuxor
@Linuxor
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰نقطهضعف امنیتی خطرناک در io_uring لینوکس، حملات مخفی روتکیت را ممکن میکند
🔹یک ضعف امنیتی مهم در سیستمعامل لینوکس، مربوط به رابطی به نام io_uring، باعث شده است که روتکیتها (نرمافزارهای مخرب با دسترسی سطح بالا) بتوانند بدون شناسایی توسط نرمافزارهای امنیتی پیشرفته در سطح سازمانی، فعالیت کنند.
🔹این مشکل را پژوهشگران شرکت امنیتی ARMO کشف کردهاند. آنها برای نشان دادن جدیت این تهدید، یک روتکیت آزمایشی به نام Curing طراحی کردند تا نشان دهند که حمله از این مسیر نهتنها ممکن، بلکه عملی و خطرناک است.
🔹رابط io_uring یک رابط در هسته لینوکس است که از سال ۲۰۱۹ در نسخه ۵.۱ معرفی شد و هدف آن انجام عملیات ورودی/خروجی بهشکل کارآمد و غیرهمزمان است. این سیستم به جای استفاده از فراخوانیهای سیستمی (syscalls) که معمولاً باعث کندی و توقف برنامهها میشوند، از ساختارهایی به نام حلقههای اشتراکی (ring buffers) استفاده میکند تا درخواستهای I/O را در صف بگذارد و آنها را بدون توقف برنامه انجام دهد.
🔹رابط io_uring توانایی انجام بیش از ۶۰ نوع عملیات مختلف را دارد، از جمله خواندن و نوشتن فایل، ایجاد و قبول ارتباطات شبکهای، اجرای فرایندهای جدید، تغییر مجوز فایلها، و خواندن محتوای پوشهها؛ که همه اینها ابزارهای قدرتمندی برای ساخت روتکیت محسوب میشوند.
📍بهدلیل همین خطرات، گوگل تصمیم گرفته که io_uring را بهطور پیشفرض در اندروید و ChromeOS (که هر دو از هسته لینوکس استفاده میکنند) غیرفعال کند.
شرکت امنیتی ARMO پیشنهاد میکند که برای رفع این مشکل، باید از تکنولوژی KRSI (Kernel Runtime Security Instrumentation) استفاده شود که امکان اتصال برنامههای eBPF به رویدادهای امنیتی در سطح هسته را فراهم میکند.
📌نویسنده: حسین سیلانی
📌منبع : آکادمی کندوی دانش
https://learninghive.ir
🔹یک ضعف امنیتی مهم در سیستمعامل لینوکس، مربوط به رابطی به نام io_uring، باعث شده است که روتکیتها (نرمافزارهای مخرب با دسترسی سطح بالا) بتوانند بدون شناسایی توسط نرمافزارهای امنیتی پیشرفته در سطح سازمانی، فعالیت کنند.
🔹این مشکل را پژوهشگران شرکت امنیتی ARMO کشف کردهاند. آنها برای نشان دادن جدیت این تهدید، یک روتکیت آزمایشی به نام Curing طراحی کردند تا نشان دهند که حمله از این مسیر نهتنها ممکن، بلکه عملی و خطرناک است.
🔹رابط io_uring یک رابط در هسته لینوکس است که از سال ۲۰۱۹ در نسخه ۵.۱ معرفی شد و هدف آن انجام عملیات ورودی/خروجی بهشکل کارآمد و غیرهمزمان است. این سیستم به جای استفاده از فراخوانیهای سیستمی (syscalls) که معمولاً باعث کندی و توقف برنامهها میشوند، از ساختارهایی به نام حلقههای اشتراکی (ring buffers) استفاده میکند تا درخواستهای I/O را در صف بگذارد و آنها را بدون توقف برنامه انجام دهد.
🔹رابط io_uring توانایی انجام بیش از ۶۰ نوع عملیات مختلف را دارد، از جمله خواندن و نوشتن فایل، ایجاد و قبول ارتباطات شبکهای، اجرای فرایندهای جدید، تغییر مجوز فایلها، و خواندن محتوای پوشهها؛ که همه اینها ابزارهای قدرتمندی برای ساخت روتکیت محسوب میشوند.
📍بهدلیل همین خطرات، گوگل تصمیم گرفته که io_uring را بهطور پیشفرض در اندروید و ChromeOS (که هر دو از هسته لینوکس استفاده میکنند) غیرفعال کند.
شرکت امنیتی ARMO پیشنهاد میکند که برای رفع این مشکل، باید از تکنولوژی KRSI (Kernel Runtime Security Instrumentation) استفاده شود که امکان اتصال برنامههای eBPF به رویدادهای امنیتی در سطح هسته را فراهم میکند.
📌نویسنده: حسین سیلانی
📌منبع : آکادمی کندوی دانش
https://learninghive.ir
Forwarded from گنوم فارسی
مشکل استفادهٔ زیاد حافظه در افزایهٔ فلتپک نرمافزارهای گنوم که باعث میشد این برنامه در حالت پسزمینه تا چند صد مگابایت رم اشغال کنه شناسایی و رفع شد و اوایل خرداد ماه در انتشار ۴۸٫۲ گنوم منتشر خواهد شد 🎉
این مشکل به دست یک تازهکار به نام اوون چیاونتون شناسایی، بررسی و رفع شد. شما هم برای مشارکت در گنوم و نرمافزارهای آزاد نیازی به دانش و تجربهٔ فوقالعاده ندارید و فقط علاقه و پشتکار برای پیشرفتتون کافیه.
https://gitlab.gnome.org/GNOME/gnome-software/-/issues/941#note_2417546
این مشکل به دست یک تازهکار به نام اوون چیاونتون شناسایی، بررسی و رفع شد. شما هم برای مشارکت در گنوم و نرمافزارهای آزاد نیازی به دانش و تجربهٔ فوقالعاده ندارید و فقط علاقه و پشتکار برای پیشرفتتون کافیه.
https://gitlab.gnome.org/GNOME/gnome-software/-/issues/941#note_2417546
Forwarded from Code Module | کد ماژول
چطور اکانت گیتهابم رو حفظ کنم؟ مروری بر 2FA و اهمیت مدیریت دسترسیها 🔥
چند روز پیش یک مشکلی با سیستم 2FA داشتم که خیلی به موقع خودش رو نشون داد. به اپ 2FA در گوشیم دسترسی نداشتم و از اون بدتر، ریکاوری کدهایی که باید ذخیره میکردم رو اصلاً نداشتم! (که خب معمولاً خیلیا همینطوری هستن). این شد که یک وضعیت بحرانی پیش اومد و من به از تمام اکانتهای گیتهابم اومده بودم بیرون. تنها راه دسترسی به اکانتم هم یه PAT یا (Personal Access Token) بود که به سختی ساعتها گشتم تا پیداش کنم و در نهایت تونستم وارد بشم. ولی این اتفاق به من یادآوری کرد که چقدر مهمه چند تا نکته امنیتی ساده رو برای اکانت گیتهابمون فعال کنیم تا مثل من یهو از زندگی ناامید نشین!
1- سیو کردن ریکاوری کدها
اولین و مهمترین چیزی که باید انجام بدید اینه که ریکاوری کدها رو دانلود کنید و حتما یه جایی ذخیره کنید. نوشتن اونا توی جایی که به راحتی بهش دسترسی داشته باشید (مثلاً یه فایل امن یا یه اپ مخصوص ذخیرهسازی پسورد) خیلی میتونه کمککننده باشه. این کار رو حتما انجام بدید که اگر روزی روزگاری به اپ 2FA دسترسی نداشتید، راحت بتونید وارد بشید.
2- فعال کردن SSH
یکی دیگه از کارهایی که به شدت توصیه میکنم، فعال کردن SSH برای اکانت گیتهاب هست. این کار کمک میکنه که بدون نیاز به وارد کردن پسورد یا توکن، بتونید به راحتی به گیتهاب دسترسی پیدا کنید.
نحوه فعال سازی SSH:
- ابتدا باید یک کلید SSH بسازید (با استفاده از
- بعد از ساخت کلید، باید اون رو به گیتهاب اضافه کنید از طریق تنظیمات SSH Keys در گیتهاب.
3- اکسس توکن (PAT)
همچنین به جای استفاده از پسورد برای احراز هویت، میتونید از اکسس توکنها (PAT) استفاده کنید. این توکنها برای ارتباط امنتر با گیتهاب خیلی مفید هستند.
نحوه فعال سازی PAT:
- به تنظیمات اکانت گیتهاب برید.
- در قسمت Developer Settings، گزینه Personal Access Tokens رو پیدا کنید.
- توکن جدید بسازید و سطوح دسترسی مورد نظر رو انتخاب کنید.
مهم:
اگر هیچ کدوم از این روشها رو برای اکانتتون فعال نکردید، گیتهاب هیچ تضمینی نمیده که بتونید اکانتتون رو بازیابی کنید. نهایتاً ممکنه مجبور میشید ایمیل رو unlink کنید و یه اکانت جدید بسازید، ولی حتی در این صورت هم تاریخچه کامیتها و اطلاعات دیگه رو ممکنه از دست بدید.
#github
@CodeModule
چند روز پیش یک مشکلی با سیستم 2FA داشتم که خیلی به موقع خودش رو نشون داد. به اپ 2FA در گوشیم دسترسی نداشتم و از اون بدتر، ریکاوری کدهایی که باید ذخیره میکردم رو اصلاً نداشتم! (که خب معمولاً خیلیا همینطوری هستن). این شد که یک وضعیت بحرانی پیش اومد و من به از تمام اکانتهای گیتهابم اومده بودم بیرون. تنها راه دسترسی به اکانتم هم یه PAT یا (Personal Access Token) بود که به سختی ساعتها گشتم تا پیداش کنم و در نهایت تونستم وارد بشم. ولی این اتفاق به من یادآوری کرد که چقدر مهمه چند تا نکته امنیتی ساده رو برای اکانت گیتهابمون فعال کنیم تا مثل من یهو از زندگی ناامید نشین!
1- سیو کردن ریکاوری کدها
اولین و مهمترین چیزی که باید انجام بدید اینه که ریکاوری کدها رو دانلود کنید و حتما یه جایی ذخیره کنید. نوشتن اونا توی جایی که به راحتی بهش دسترسی داشته باشید (مثلاً یه فایل امن یا یه اپ مخصوص ذخیرهسازی پسورد) خیلی میتونه کمککننده باشه. این کار رو حتما انجام بدید که اگر روزی روزگاری به اپ 2FA دسترسی نداشتید، راحت بتونید وارد بشید.
2- فعال کردن SSH
یکی دیگه از کارهایی که به شدت توصیه میکنم، فعال کردن SSH برای اکانت گیتهاب هست. این کار کمک میکنه که بدون نیاز به وارد کردن پسورد یا توکن، بتونید به راحتی به گیتهاب دسترسی پیدا کنید.
نحوه فعال سازی SSH:
- ابتدا باید یک کلید SSH بسازید (با استفاده از
ssh-keygen در ترمینال).- بعد از ساخت کلید، باید اون رو به گیتهاب اضافه کنید از طریق تنظیمات SSH Keys در گیتهاب.
3- اکسس توکن (PAT)
همچنین به جای استفاده از پسورد برای احراز هویت، میتونید از اکسس توکنها (PAT) استفاده کنید. این توکنها برای ارتباط امنتر با گیتهاب خیلی مفید هستند.
نحوه فعال سازی PAT:
- به تنظیمات اکانت گیتهاب برید.
- در قسمت Developer Settings، گزینه Personal Access Tokens رو پیدا کنید.
- توکن جدید بسازید و سطوح دسترسی مورد نظر رو انتخاب کنید.
مهم:
اگر هیچ کدوم از این روشها رو برای اکانتتون فعال نکردید، گیتهاب هیچ تضمینی نمیده که بتونید اکانتتون رو بازیابی کنید. نهایتاً ممکنه مجبور میشید ایمیل رو unlink کنید و یه اکانت جدید بسازید، ولی حتی در این صورت هم تاریخچه کامیتها و اطلاعات دیگه رو ممکنه از دست بدید.
#github
@CodeModule