تو کیبورد استاندار فارسی کاراکترهای کنترلی نوشتاری وجود داره که برای مدیریت جهت و ترتیب نوشتار تو متنهای چندزبانه (مثل فارسی که راست به چپه و انگلیسی که چپ به راسته) استفاده میشه. این کاراکترها برای کنترل درست نمایش متنهای دوسویه و پیچیده ضرورین و در استاندارد یونیکد تعریف شدن.
⦁ LRM (Left-to-Right Mark) و RLM (Right-to-Left Mark):
کاراکترهای نامرئیای که جهت نوشتار رو مشخص میکنن و اون رو تغییر میدن بدون اینکه چیزی نمایش داده بشه. مثلا RLM باعث میشه متن پس از اون راستبهچپ تفسیر بشه و LRM برعکس.
⦁ LRO (Left-to-Right Override) و RLO (Right-to-Left Override):
این کاراکترها جهت متن رو به صورت اجباری و override تعیین میکنن، یعنی تمام کاراکترهای بعدی تا پایان این حالت، به چینش مشخص شده (چپ به راست یا راست به چپ) نمایش داده میشن، حتی اگه مخالف رفتار طبیعیشون باشه.
⦁ LRE (Left-to-Right Embedding) و RLE (Right-to-Left Embedding):
مشابه LRO/RLO ولی بهصورت تعبیه (embedding) هستن، یعنی میتونن در متن اصلی جهت بخش کوچکی رو تغییر بدن اما این حالت اجباری نیست و رفتار طبیعی کاراکترهارو تغییر نمیده.
⦁ PDF (Pop Directional Formatting):
کاراکتری که پایان یک حالت override یا embedding رو نشون میده و کنترل جهت رو به حالت قبل برمیگردونه.
مثال:
<RLM>order کاراکترهای LTR مثلا اعداد پشت هم ۱ ۲ ۳ میتونن بشن <LRM>۱ ۲ ۳<RLM>!
🔘 @linux_exp | #linux #keyboard #unicode
⦁ LRM (Left-to-Right Mark) و RLM (Right-to-Left Mark):
کاراکترهای نامرئیای که جهت نوشتار رو مشخص میکنن و اون رو تغییر میدن بدون اینکه چیزی نمایش داده بشه. مثلا RLM باعث میشه متن پس از اون راستبهچپ تفسیر بشه و LRM برعکس.
⦁ LRO (Left-to-Right Override) و RLO (Right-to-Left Override):
این کاراکترها جهت متن رو به صورت اجباری و override تعیین میکنن، یعنی تمام کاراکترهای بعدی تا پایان این حالت، به چینش مشخص شده (چپ به راست یا راست به چپ) نمایش داده میشن، حتی اگه مخالف رفتار طبیعیشون باشه.
⦁ LRE (Left-to-Right Embedding) و RLE (Right-to-Left Embedding):
مشابه LRO/RLO ولی بهصورت تعبیه (embedding) هستن، یعنی میتونن در متن اصلی جهت بخش کوچکی رو تغییر بدن اما این حالت اجباری نیست و رفتار طبیعی کاراکترهارو تغییر نمیده.
بخش کوچک تحت تاثیر در این مورد عموما کاراکترهای خنثی هستن یعنی بهطور پیشفرض جهتی برای چینششون تعیین نشده مثل علائم (+/!->)
⦁ PDF (Pop Directional Formatting):
کاراکتری که پایان یک حالت override یا embedding رو نشون میده و کنترل جهت رو به حالت قبل برمیگردونه.
مثال:
<RLM>order کاراکترهای LTR مثلا اعداد پشت هم ۱ ۲ ۳ میتونن بشن <LRM>۱ ۲ ۳<RLM>!
تا جایی که فهمیدم تلگرام تو فرستادن کاراکترهای embedding و override مشکل داره.
🔘 @linux_exp | #linux #keyboard #unicode
👍4✍1❤1
Linux Experts
تو کیبورد استاندار فارسی کاراکترهای کنترلی نوشتاری وجود داره که برای مدیریت جهت و ترتیب نوشتار تو متنهای چندزبانه (مثل فارسی که راست به چپه و انگلیسی که چپ به راسته) استفاده میشه. این کاراکترها برای کنترل درست نمایش متنهای دوسویه و پیچیده ضرورین و در استاندارد…
تو تصویر پایین میتونین قسمتی از کانفیگ پیشفرض کیبورد استاندارد فارسی رو ببینید. هر ستون با یک comma (,) از ستون بعدی جدا شده و این ستونها بهترتیب نشوندهندۀ این هستن که تو حالت عادی، با shift، با altGr و با alt چه کاراکتری باید تایپ بشه.
altGr و alt با هم تفاوت دارن. altGr معمولا سمت راست صفحهکلیده.
❤2👍1
برخی مشکلات رایج در شبکه لینوکس
ارور:
Name or service not known
علل رایج:
آیپی نگرفتن کارت شبکه ، عدم شناسایی کارت شبکه ، غیرفعال بودن کارت شبکه
در صورتی که آدرس ip مانند 8.8.8.8 پینگ شود ولی دامنه پینگ نشود مشکل از nameserver ها بوده و فایل resolv.conf باید ویرایش شود
ارور:
Network is unreachable
علل:
مشکل در جدول مسیریابی ، مشکل در سرویس DHCP و یا عدم دریافت ip ، نبود default route در جدول مسیر یابی
ارور:
Connection refused
مشکل در سرویس هایی مانند ssh یا http ، اشغال بودن پورت مقصد ، مسدود بودن توسط ufw , iptables و یا فایروال های دیگر
ارور:
No route to Host
علل:
مشکل در جدول مسیریابی و default route ، پایین بودن سرویس مقصد و یا مسیر اشتباه
راهنمای سریع:
ip addr show = مشاهده آیپی و مشخصات کارت های شبکه
ip route show = مشاهده جدول مسیریابی
/etc/resolv.conf = نیم سرور ها
systemctl status NetworkManager = مشاهده سرویس نتورک منیجر(در صورت وجود داشتن)
dhclient nic0(example eth0) = درخواست دریافت آیپی از سرور
🔘 @linux_exp | #network
ارور:
Name or service not known
علل رایج:
آیپی نگرفتن کارت شبکه ، عدم شناسایی کارت شبکه ، غیرفعال بودن کارت شبکه
در صورتی که آدرس ip مانند 8.8.8.8 پینگ شود ولی دامنه پینگ نشود مشکل از nameserver ها بوده و فایل resolv.conf باید ویرایش شود
ارور:
Network is unreachable
علل:
مشکل در جدول مسیریابی ، مشکل در سرویس DHCP و یا عدم دریافت ip ، نبود default route در جدول مسیر یابی
ارور:
Connection refused
مشکل در سرویس هایی مانند ssh یا http ، اشغال بودن پورت مقصد ، مسدود بودن توسط ufw , iptables و یا فایروال های دیگر
ارور:
No route to Host
علل:
مشکل در جدول مسیریابی و default route ، پایین بودن سرویس مقصد و یا مسیر اشتباه
راهنمای سریع:
ip addr show = مشاهده آیپی و مشخصات کارت های شبکه
ip route show = مشاهده جدول مسیریابی
/etc/resolv.conf = نیم سرور ها
systemctl status NetworkManager = مشاهده سرویس نتورک منیجر(در صورت وجود داشتن)
dhclient nic0(example eth0) = درخواست دریافت آیپی از سرور
🔘 @linux_exp | #network
🔥3🍓2⚡1💅1
♨️ فوتوشاپ خط فرمان!
ImageMagick یه ابزار خط فرمان برای کار با تصویرهاست. بیشتر برای وقتی استفاده میشه که لازم باشه عکسها بهصورت خودکار پردازش بشن، بدون اینکه نرمافزاری مثل فتوشاپ باز بشه.
کارهایی مثل تغییر اندازه، بریدن، چرخوندن، اضافهکردن متن، تغییر فرمت، یا تنظیم رنگها رو میتونه انجام بده. دستورها سادهان و با چند پارامتر میتونن چندین کار پشتسرهم انجام بدن.
نمونه:
عکس ورودی تغییر اندازه میده و خروجی جدید میسازه.
ImageMagick توی سرورها و اسکریپتها زیاد استفاده میشه، چون بدون رابط گرافیکی کار میکنه و برای پردازش انبوه عکسها خیلی سریع و قابلاعتماده.
🔘 @linux_exp | #linux #imagemagick #cli
ImageMagick یه ابزار خط فرمان برای کار با تصویرهاست. بیشتر برای وقتی استفاده میشه که لازم باشه عکسها بهصورت خودکار پردازش بشن، بدون اینکه نرمافزاری مثل فتوشاپ باز بشه.
کارهایی مثل تغییر اندازه، بریدن، چرخوندن، اضافهکردن متن، تغییر فرمت، یا تنظیم رنگها رو میتونه انجام بده. دستورها سادهان و با چند پارامتر میتونن چندین کار پشتسرهم انجام بدن.
نمونه:
magick input.jpg -resize 800x600 output.jpg
عکس ورودی تغییر اندازه میده و خروجی جدید میسازه.
بهتازگی دستور اصلی که convert بود منسوخ شده و الان بهجاش باید از magick استفاده بشه.
ImageMagick توی سرورها و اسکریپتها زیاد استفاده میشه، چون بدون رابط گرافیکی کار میکنه و برای پردازش انبوه عکسها خیلی سریع و قابلاعتماده.
🔘 @linux_exp | #linux #imagemagick #cli
🔥5🆒3❤🔥2👍1🤝1
Linux Experts
😁 🔗 Source 🔘 @linux_exp | #fun
📌 معرفی Linux Mint
لینوکس مینت یکی از محبوبترین و کاربرپسندترین توزیعهای لینوکس هست که همیشه به تازهواردها پیشنهاد میشه. دلیل اصلی این محبوبیت، سادگی، پایداری و محیط کاربری آشنا اون هست که شباهت به ویندوز داره و باعث میشه مهاجرت به لینوکس برای کاربران جدید خیلی راحتتر بشه.
لینوکس مینت همیشه تلاش کرده تا رضایت کاربران فعلی خودش رو حفظ کنه، نه اینکه صرفا بهدنبال جذب کاربرهای جدید باشه.
به همین خاطر، بهجای اعمال تغییرات بزرگ و ناگهانی، روی توسعه پایدار و بهبودهای تدریجی تمرکز داره. نتیجهاش اینه که Linux Mint تجربهای آروم، قابل اعتماد و بدون دردسر ارائه میده.
♻️ چرخه انتشار لینوکس مینت
لینوکس مینت در واقع بر دو پایه یا Base عرضه میشه:
🔷 Ubuntu-based (نسخه اصلی)
🔷 Debian-based (LMDE)
هرکدوم از این نسخهها از چرخه انتشار متفاوتی پیروی میکنن:
🔵 نسخه مبتنی بر اوبونتو
🟢 نسخه مبتنی بر دبیان (LMDE)
🖥 محیطهای دسکتاپ
لینوکس مینت با چند محیط دسکتاپ (Desktop Environment) مختلف عرضه میشه تا هر کاربر بسته به سلیقهاش، ظاهر و تجربه کاربری مورد نظر خودش رو انتخاب کنه:
⚡️ Cinnamon
🧩 MATE
🧩 Xfce
✨ به صفحه دانلود مینت سر بزنید تا تصویر پیشنمایش از هر دسکتاپ رو ببینید.
🔘@linux_exp | #linux #mint #guide
لینوکس مینت یکی از محبوبترین و کاربرپسندترین توزیعهای لینوکس هست که همیشه به تازهواردها پیشنهاد میشه. دلیل اصلی این محبوبیت، سادگی، پایداری و محیط کاربری آشنا اون هست که شباهت به ویندوز داره و باعث میشه مهاجرت به لینوکس برای کاربران جدید خیلی راحتتر بشه.
لینوکس مینت همیشه تلاش کرده تا رضایت کاربران فعلی خودش رو حفظ کنه، نه اینکه صرفا بهدنبال جذب کاربرهای جدید باشه.
به همین خاطر، بهجای اعمال تغییرات بزرگ و ناگهانی، روی توسعه پایدار و بهبودهای تدریجی تمرکز داره. نتیجهاش اینه که Linux Mint تجربهای آروم، قابل اعتماد و بدون دردسر ارائه میده.
♻️ چرخه انتشار لینوکس مینت
لینوکس مینت در واقع بر دو پایه یا Base عرضه میشه:
🔷 Ubuntu-based (نسخه اصلی)
🔷 Debian-based (LMDE)
هرکدوم از این نسخهها از چرخه انتشار متفاوتی پیروی میکنن:
🔵 نسخه مبتنی بر اوبونتو
بیشتر کاربرا از این نسخه استفاده میکنن که شامل دو نوع اپدیت هست:
🔹 Major Release (اصلی):
این نسخهها تقریبا هر دو سال یکبار منتشر میشن و معمولا تغییرات بزرگ و مهمی نسبت به نسخه قبل دارن. نمونه:
20 → 21 → 22
🔸 Point Release (فرعی):
برای هر نسخه اصلی، ۳ نسخه فرعی منتشر میشه که فاصله زمانی بین هر کدوم حدود ۶ ماه هست. بهعنوان مثال:
22.1, 22.2, 22.3
این نسخهها بیشتر شامل بهبودهای جزئی، باگفیکسها، بهروزرسانی نرمافزارها و بعضی ویژگیهای تازه هستن که تجربه کاربر رو بهتر میکنن بدون اینکه سیستم رو دچار تغییرات اساسی کنن.
🟢 نسخه مبتنی بر دبیان (LMDE)
این نسخه مستقیما روی Debian Stable ساخته میشه، نه اوبونتو. به همین خاطر چرخه انتشارش کندتر و محافظهکارانهتره هست و آپدیتهای بزرگ معمولا فقط وقتی میان که دبیان نسخه جدیدی از Stable رو منتشر کنه.
هدف LMDE اینه که اگه روزی اوبونتو غیر قابل استفاده شد، لینوکس مینت همچنان با همون تجربه کاربری قابل ادامه باشه.
🖥 محیطهای دسکتاپ
لینوکس مینت با چند محیط دسکتاپ (Desktop Environment) مختلف عرضه میشه تا هر کاربر بسته به سلیقهاش، ظاهر و تجربه کاربری مورد نظر خودش رو انتخاب کنه:
⚡️ Cinnamon
محیط دسکتاپ اصلی و پیشفرض لینوکس مینت هست که توسط تیم خود Mint توسعه داده میشه. ساده، زیبا و شبیه ویندوز مناسب برای کاربران تازهوارد.
🧩 MATE
نسخه مدرنشده و فورک GNOME 2 هست؛ سبکتر از Cinnamon و مناسب سیستمهای قدیمیتر.
رابط کاربریش کلاسیکتره، اما همچنان با ثبات و کارآمد عمل میکنه.
🧩 Xfce
سبکترین نسخه لینوکس مینت. مناسب سیستم با سختافزار قدیمی یا منابع محدود. سریع، پایدار و مصرف پایین منابع.
✨ به صفحه دانلود مینت سر بزنید تا تصویر پیشنمایش از هر دسکتاپ رو ببینید.
🔘@linux_exp | #linux #mint #guide
🔥3👌2⚡1👍1
Linux Experts
📌 معرفی Linux Mint لینوکس مینت یکی از محبوبترین و کاربرپسندترین توزیعهای لینوکس هست که همیشه به تازهواردها پیشنهاد میشه. دلیل اصلی این محبوبیت، سادگی، پایداری و محیط کاربری آشنا اون هست که شباهت به ویندوز داره و باعث میشه مهاجرت به لینوکس برای کاربران…
⭕️ دیروز پشتیبانی ویندوز 10 به پایان رسید.
اگه کسی رو میشناسید که سیستمش با ویندوز 11 سازگار نیست، میتونید Linux Mint رو پیشنهاد کنید 😁
حتی Zorin OS هم توی آپدیت آخرش خودش رو برای مهاجرهای ویندوزی آماده کرده.
🔘 @linux_exp | #windows #EOL #mint
اگه کسی رو میشناسید که سیستمش با ویندوز 11 سازگار نیست، میتونید Linux Mint رو پیشنهاد کنید 😁
حتی Zorin OS هم توی آپدیت آخرش خودش رو برای مهاجرهای ویندوزی آماده کرده.
🔘 @linux_exp | #windows #EOL #mint
🥰7👍4⚡1
📌 بررسی مخازن اوبونتو
اگر به مخازن اوبونتو دقت کرده باشید میبینید که برای نظم و کنترل بهتر روی نرمافزارها، ریپازیتوریها یا همون مخازنش رو در چند بخش مختلف تقسیم کرده که هرکدوم سطح متفاوتی از پشتیبانی و مجوز دارن:
🔷 Main
🔶 Universe
🔴 Restricted
⚫️ Multiverse
💢 چرا این جداسازی انجام شده؟
همون طور که میشه حدس زد، دلیل اصلی این تقسیمبندی، شفافیت و انعطافپذیری هست. اوبونتو با این کار چند هدف رو دنبال میکنه:
• شفافیت مجوزها: کاربر دقیق بدونه چه نرمافزارهایی آزاد و یا تجاری هستن.
• پشتیبانی تفکیکشده: نرمافزارهای مهمتر (مثل Main) سریعتر بهروزرسانی بشن.
• مشارکت جامعه: بخشی مثل Universe به جامعه اجازه میده در توسعه و نگهداری پکیجها مشارکت کنن.
این جداسازی باعث میشه کاربر، توسعهدهنده و خود تیم اوبونتو بدون تداخل و دردسر بتونن مدیریت نرمافزارها، پشتیبانی و امنیت سیستم رو به شکل موثرتری انجام بدن.
🔘 @linux_exp | #linux #ubuntu
اگر به مخازن اوبونتو دقت کرده باشید میبینید که برای نظم و کنترل بهتر روی نرمافزارها، ریپازیتوریها یا همون مخازنش رو در چند بخش مختلف تقسیم کرده که هرکدوم سطح متفاوتی از پشتیبانی و مجوز دارن:
🔷 Main
این بخش شامل نرمافزارهای آزاد و متنبازه که بهصورت رسمی توسط خود Canonical پشتیبانی میشن.
نرمافزارهایی مثل GNOME، apt، bash و ابزارهای ضروری سیستم اینجا قرار دارن.
🔶 Universe
این ریپازیتوری شامل نرمافزارهای آزاد و متنبازه که توسط جامعه کاربری نگهداری میشن، نه Canonical.
یعنی آپدیت امنیتی تضمینشده نیست، ولی دسترسی به ابزارها و برنامههای بسیار بیشتری میده. مثال: htop، neovim، ffmpeg و کلی ابزار محبوب دیگه.
🔴 Restricted
برخی درایورها یا نرمافزارهای کاربردی هستن که کد منبعشون آزاد نیست ولی برای عملکرد درست سیستم ضروری هستن.
اوبونتو اینها رو توی بخش Restricted قرار میده.
مثلا درایورهای گرافیکی NVIDIA یا بعضی فریمورکهای خاص. این مخزن هم مثل main به صورت رسمی پشتیبانی و نظارت میشه.
⚫️ Multiverse
اینجا جاییه برای نرمافزارهایی که کد بسته و مجوزهای محدودتری دارن و Canonical بهصورت رسمی پشتیبانشون نیست.
مثلا نرمافزارهایی که مجوز تجاری دارن یا قوانین کپیرایت خاصی براشون صدق میکنه. نصبش به عهده خود کاربره، چون اوبونتو مسئولیتی در قبالش نداره.
یکی از مثالهای معروف، libdvdcss هست، کتابخونهایی که برای پخش DVDهای رمزگذاریشده (Encrypted DVDs) استفاده میشه و بهخاطر قوانین مربوط به DRM و کدگذاری رسانه، توی بعضی کشورها استفاده یا توزیعش ممکنه از نظر قانونی مشکلدار باشه.
💢 چرا این جداسازی انجام شده؟
همون طور که میشه حدس زد، دلیل اصلی این تقسیمبندی، شفافیت و انعطافپذیری هست. اوبونتو با این کار چند هدف رو دنبال میکنه:
• شفافیت مجوزها: کاربر دقیق بدونه چه نرمافزارهایی آزاد و یا تجاری هستن.
• پشتیبانی تفکیکشده: نرمافزارهای مهمتر (مثل Main) سریعتر بهروزرسانی بشن.
• مشارکت جامعه: بخشی مثل Universe به جامعه اجازه میده در توسعه و نگهداری پکیجها مشارکت کنن.
این جداسازی باعث میشه کاربر، توسعهدهنده و خود تیم اوبونتو بدون تداخل و دردسر بتونن مدیریت نرمافزارها، پشتیبانی و امنیت سیستم رو به شکل موثرتری انجام بدن.
🔘 @linux_exp | #linux #ubuntu
👍3✍2❤1⚡1🔥1🆒1
Linux Experts
⭕️ دیروز پشتیبانی ویندوز 10 به پایان رسید. اگه کسی رو میشناسید که سیستمش با ویندوز 11 سازگار نیست، میتونید Linux Mint رو پیشنهاد کنید 😁 حتی Zorin OS هم توی آپدیت آخرش خودش رو برای مهاجرهای ویندوزی آماده کرده. 🔘 @linux_exp | #windows #EOL #mint
♨️ در ۴۸ ساعت گذشته، Zorin OS بیش از ۱۰۰ هزار بار دانلود شده که بیش از ۷۲٪ از این دانلودها، توسط مهاجران ویندوزی بودن!
فعلا آمار توزیعهای محبوب دیگه منتشر نشده اما بنظر میرسه امسال لینوکس افزایش محبوبیت قابلتوجهی رو تجربه کنه.
🔗 Link
@linux_exp | #repost
فعلا آمار توزیعهای محبوب دیگه منتشر نشده اما بنظر میرسه امسال لینوکس افزایش محبوبیت قابلتوجهی رو تجربه کنه.
🔗 Link
@linux_exp | #repost
👍10❤4🔥4😁1
📌 آیا همه توزیعهای لینوکسی واقعا آزاد (اوپنسورس / نرمافزار آزاد) هستن؟
توی وبسایت GNU یک مقاله هست با تیتر:
"Free System Distrobution Guidelines (GNU FSDG)"
که توضیح میده فقط برخی از توزیعهای لینوکسی واقعا کامل آزاد هستن.
چرا؟ چون بیشتر توزیعهای محبوب (مثل Ubuntu، Fedora یا حتی Debian) معمولا شامل اجزایی هستن که کد منبع بسته دارن. مثلا:
• Firmwareهای غیرآزاد برای کارت صدا، گرافیک یا Wi-Fi
• کدکها و درایورهای اختصاصی
• یا حتی مخازنی (Repositories) که نرمافزارهای غیرآزاد داخلشون قرار دارن (راجع بهشون در پستهای قبل توضیح دادیم).
از دید بنیاد GNU، این یعنی اون توزیعها کامل آزاد نیستن، چون کاربر روی همه بخشهای سیستم کنترل نداره.
🧭 توزیعهای مورد تأیید GNU کدامند؟
بنیاد GNU در صفحه رسمی خودش لیستی از توزیعهایی رو منتشر کرده که از نظرش ۱۰۰٪ آزاد هستن و تمام معیارهای نرمافزار آزاد رو رعایت میکنن. از اینجا میتونید این لیست رو ببینید.
برخی از اونها عبارتاند از:
🔹 Trisquel: بر پایه اوبونتو، ولی بدون هیچ بخش close source
🔸 PureOS: توسعهیافته توسط Purism، با تمرکز بر حریم خصوصی
🔹 Parabola GNU/Linux-libre: نسخه کاملا آزاد از آرچ
تمام این توزیعها از نسخه آزاد کرنل به نام Linux-libre استفاده میکنن؛ کرنلی که هرگونه کد بسته (binary blob) ازش حذف شده.
⚖️ چرا این تفاوت مهمه؟
از نگاه GNU، موضوع فقط فنی نیست، اخلاقیه.
نرمافزار آزاد فقط به «دسترسی به کد» خلاصه نمیشه، بلکه به آزادی کاربر برای کنترل سیستم خودش مربوطه.
بنیاد GNU معتقده اگر بخشی از سیستم بسته باشه، کاربر در واقع وابسته به شرکت سازنده اون بخشه و از نظر فلسفه آزادی، هنوز واقعا آزاد نیست.
💠 جمعبندی
شخصا میگم تا وقتی که از یه توزیع لینوکسی استفاده میکنید، مهم نیست کدومه تا همینجاش هم خوب پیش اومدید :)
هرکدوم باهاش راحتترید همون رو استفاده کنید.
این پست هم صرفا برای آشنایی بیشتر با فلسفه و پشتصحنه جنبش نرمافزار آزاد بود. اگر علاقه به این سبک توزیع ها دارید لیستش رو حتما چک کنید.
🔘 @linux_exp | #gnu #linux #freesoftware #opensource
توی وبسایت GNU یک مقاله هست با تیتر:
"Free System Distrobution Guidelines (GNU FSDG)"
که توضیح میده فقط برخی از توزیعهای لینوکسی واقعا کامل آزاد هستن.
چرا؟ چون بیشتر توزیعهای محبوب (مثل Ubuntu، Fedora یا حتی Debian) معمولا شامل اجزایی هستن که کد منبع بسته دارن. مثلا:
• Firmwareهای غیرآزاد برای کارت صدا، گرافیک یا Wi-Fi
• کدکها و درایورهای اختصاصی
• یا حتی مخازنی (Repositories) که نرمافزارهای غیرآزاد داخلشون قرار دارن (راجع بهشون در پستهای قبل توضیح دادیم).
از دید بنیاد GNU، این یعنی اون توزیعها کامل آزاد نیستن، چون کاربر روی همه بخشهای سیستم کنترل نداره.
🧭 توزیعهای مورد تأیید GNU کدامند؟
بنیاد GNU در صفحه رسمی خودش لیستی از توزیعهایی رو منتشر کرده که از نظرش ۱۰۰٪ آزاد هستن و تمام معیارهای نرمافزار آزاد رو رعایت میکنن. از اینجا میتونید این لیست رو ببینید.
برخی از اونها عبارتاند از:
🔹 Trisquel: بر پایه اوبونتو، ولی بدون هیچ بخش close source
🔸 PureOS: توسعهیافته توسط Purism، با تمرکز بر حریم خصوصی
🔹 Parabola GNU/Linux-libre: نسخه کاملا آزاد از آرچ
تمام این توزیعها از نسخه آزاد کرنل به نام Linux-libre استفاده میکنن؛ کرنلی که هرگونه کد بسته (binary blob) ازش حذف شده.
⚖️ چرا این تفاوت مهمه؟
از نگاه GNU، موضوع فقط فنی نیست، اخلاقیه.
نرمافزار آزاد فقط به «دسترسی به کد» خلاصه نمیشه، بلکه به آزادی کاربر برای کنترل سیستم خودش مربوطه.
بنیاد GNU معتقده اگر بخشی از سیستم بسته باشه، کاربر در واقع وابسته به شرکت سازنده اون بخشه و از نظر فلسفه آزادی، هنوز واقعا آزاد نیست.
💠 جمعبندی
شخصا میگم تا وقتی که از یه توزیع لینوکسی استفاده میکنید، مهم نیست کدومه تا همینجاش هم خوب پیش اومدید :)
هرکدوم باهاش راحتترید همون رو استفاده کنید.
این پست هم صرفا برای آشنایی بیشتر با فلسفه و پشتصحنه جنبش نرمافزار آزاد بود. اگر علاقه به این سبک توزیع ها دارید لیستش رو حتما چک کنید.
🔘 @linux_exp | #gnu #linux #freesoftware #opensource
❤3👍3❤🔥1⚡1👏1
🌐 گاهی اوقات پیدا کردن تاریخ دقیق EOL (پایان پشتیبانی) برای یک توزیع، نرمافزار، دستگاه یا سرویس نیازمند جستجو و بررسی چندین سایت مختلف است. اما یک سایت جمعوجور وجود داره که میتونید تاریخ EOL همه چیز را یکجا و سریع پیدا کنید:
🔗 https://endoflife.date
🔘 @linux_exp | #EOL #website
🔗 https://endoflife.date
🔘 @linux_exp | #EOL #website
👍4🥰2
📚 Orphan Reaping
در سیستمعاملهای مبتنی بر یونیکس و لینوکس، orphan reaping (جمعآوری فرایند های یتیم) به فرآیند خودکار مدیریت و پاکسازی پروسههای یتیم (orphan processes) توسط سیستم init (PID 1) اشاره دارد. پروسه یتیم زمانی ایجاد میشود که پروسه والد (parent process) قبل از پروسه فرزند (child process) خاتمه یابد یا کرش کند؛ در این حالت، کرنل لینوکس PPID (Parent Process ID) پروسه فرزند را به ۱ تغییر میدهد و init را به عنوان والد جدید آن معرفی میکند. این مکانیسم، بخشی از مدیریت پروسهها (process management) در فضای کاربر است و تضمین میکند که پروسههای یتیم بدون نظارت رها نشوند، که میتواند منجر به نشت منابع (resource leaks) یا ناپایداری سیستم شود.
🔖 مکانیسم ایجاد و مدیریت Orphan Processes
پروسههای یتیم از طریق سیستمکال
⦁ پذیرش (Adoption): init به عنوان والد جدید عمل میکند و پروسه یتیم را نظارت میکند.
⦁ جمعآوری (Reaping): هنگامی که پروسه یتیم خاتمه مییابد، init وضعیت خروج آن (exit status) را با استفاده از سیگنال SIGCHLD (Child Signal) دریافت میکند. سپس، init پروسه را "reap" میکند، یعنی ورودی آن را از جدول پروسهها (process table) حذف میکند، منابع حافظه (memory)، فایلهای باز (file descriptors) و ورودیهای دیگر را آزاد میسازد، و از انباشت پروسههای مرده (dead processes) جلوگیری میکند. این فرآیند با توابع
در systemd فرایند reaping پیشرفتهتر است و از cgroups (control groups) برای نظارت بر منابع استفاده میکند، در حالی که در SysVinit، init به طور مداوم SIGCHLD را هندل میکند تا orphans را مدیریت کند. بدون reaping، orphans میتوانند به zombie processes (پروسههای زامبی) تبدیل شوند، که ورودی در process table اشغال میکنند بدون مصرف منابع، اما در مقیاس بزرگ باعث PID exhaustion میشود
🔖 تفاوت با Zombie Reaping
توجه: orphan reaping را با zombie reaping (جمعآوری پروسههای زامبی) اشتباه نگیرید: zombie زمانی است که فرزند قبل از والد خاتمه مییابد، اما والد وضعیت آن را نخوانده و پروسه در حالت "زامبی" (terminated but entry retained) میماند. والد با
اگر والد خاتمه یابد، init zombie را به عنوان orphan مدیریت و reap میکند. هر دو reaping برای حفظ پایداری سیستم (system stability) و جلوگیری از resource leaks ضروریاند، اما orphans در حال اجرا هستند، در حالی که zombies مردهاند.
🔖 شناسایی و جلوگیری از Orphan Processes
برای شناسایی orphans، از دستور
استفاده کنید
خروجی پروسههایی با PPID=1 (غیر از init خود) را نشان میدهد. در سطح برنامهنویسی، برای جلوگیری از orphans، والد باید از
در نهایت، orphan reaping یک مکانیسم resilient در لینوکس است که تضمین میکند سیستم از پروسههای بیسرپرست آسیب نبیند و منابع بهینه مدیریت شوند، به ویژه در محیطهای سرور و ابری با پروسههای متعدد.
🔘 @linux_exp | #linux #orphan_reaping #init
در سیستمعاملهای مبتنی بر یونیکس و لینوکس، orphan reaping (جمعآوری فرایند های یتیم) به فرآیند خودکار مدیریت و پاکسازی پروسههای یتیم (orphan processes) توسط سیستم init (PID 1) اشاره دارد. پروسه یتیم زمانی ایجاد میشود که پروسه والد (parent process) قبل از پروسه فرزند (child process) خاتمه یابد یا کرش کند؛ در این حالت، کرنل لینوکس PPID (Parent Process ID) پروسه فرزند را به ۱ تغییر میدهد و init را به عنوان والد جدید آن معرفی میکند. این مکانیسم، بخشی از مدیریت پروسهها (process management) در فضای کاربر است و تضمین میکند که پروسههای یتیم بدون نظارت رها نشوند، که میتواند منجر به نشت منابع (resource leaks) یا ناپایداری سیستم شود.
🔖 مکانیسم ایجاد و مدیریت Orphan Processes
پروسههای یتیم از طریق سیستمکال
fork() ایجاد میشوند، جایی که والد پروسه جدیدی میسازد اما قبل از اتمام کار فرزند، خود را با exit() خاتمه میدهد. کرنل لینوکس بلافاصله PPID را به init تنظیم میکند تا از orphan شدن جلوگیری شود این یک ویژگی POSIX-compliant است. init system (مانند SysVinit یا systemd) مسئولیت reaping را بر عهده دارد، که شامل:⦁ پذیرش (Adoption): init به عنوان والد جدید عمل میکند و پروسه یتیم را نظارت میکند.
⦁ جمعآوری (Reaping): هنگامی که پروسه یتیم خاتمه مییابد، init وضعیت خروج آن (exit status) را با استفاده از سیگنال SIGCHLD (Child Signal) دریافت میکند. سپس، init پروسه را "reap" میکند، یعنی ورودی آن را از جدول پروسهها (process table) حذف میکند، منابع حافظه (memory)، فایلهای باز (file descriptors) و ورودیهای دیگر را آزاد میسازد، و از انباشت پروسههای مرده (dead processes) جلوگیری میکند. این فرآیند با توابع
wait() یا waitpid() در سطح والد شبیهسازی میشود، اما init آن را به صورت خودکار انجام میدهد.در systemd فرایند reaping پیشرفتهتر است و از cgroups (control groups) برای نظارت بر منابع استفاده میکند، در حالی که در SysVinit، init به طور مداوم SIGCHLD را هندل میکند تا orphans را مدیریت کند. بدون reaping، orphans میتوانند به zombie processes (پروسههای زامبی) تبدیل شوند، که ورودی در process table اشغال میکنند بدون مصرف منابع، اما در مقیاس بزرگ باعث PID exhaustion میشود
🔖 تفاوت با Zombie Reaping
توجه: orphan reaping را با zombie reaping (جمعآوری پروسههای زامبی) اشتباه نگیرید: zombie زمانی است که فرزند قبل از والد خاتمه مییابد، اما والد وضعیت آن را نخوانده و پروسه در حالت "زامبی" (terminated but entry retained) میماند. والد با
wait() در حقیقت zombie را reap میکند.اگر والد خاتمه یابد، init zombie را به عنوان orphan مدیریت و reap میکند. هر دو reaping برای حفظ پایداری سیستم (system stability) و جلوگیری از resource leaks ضروریاند، اما orphans در حال اجرا هستند، در حالی که zombies مردهاند.
🔖 شناسایی و جلوگیری از Orphan Processes
برای شناسایی orphans، از دستور
ps -eo pid,ppid,cmd | grep '^[ ]*[0-9]*[ ]*1'
استفاده کنید
خروجی پروسههایی با PPID=1 (غیر از init خود) را نشان میدهد. در سطح برنامهنویسی، برای جلوگیری از orphans، والد باید از
wait() یا handler برای SIGCHLD استفاده کند تا فرزندان را قبل از خروج خود خاتمه دهد. در محیطهای کانتینری (مانند Docker)، init-like پروسهها (مانند tini) برای reaping orphans استفاده میشوند تا PID 1 را شبیهسازی کنند.در نهایت، orphan reaping یک مکانیسم resilient در لینوکس است که تضمین میکند سیستم از پروسههای بیسرپرست آسیب نبیند و منابع بهینه مدیریت شوند، به ویژه در محیطهای سرور و ابری با پروسههای متعدد.
🔘 @linux_exp | #linux #orphan_reaping #init
🔥4❤2⚡1👍1
⚡️ aria2 ابزار سبک ولی قدرتمند برای دانلود
aria2 یه ابزار خط فرمانه که برای دانلود از پروتکلهای مختلف مثل HTTP ،FTP ،BitTorrent و Metalink طراحی شده.
مزیتش اینه که میتونه فایل رو به چند بخش تقسیم کنه و هر بخش رو همزمان از چند اتصال مختلف بگیره؛ همین باعث میشه دانلودها سریعتر و پایدارتر انجام بشن.
یک نمونۀ ساده:
اگه بخواید از تمام ظرفیت اینترنت استفاده کنید، میتونید تعداد اتصالها و بخشها رو زیاد کنید و در عین حال تلاش نامحدود برای ادامۀ دانلود در صورت قطع ارتباط فعال کنید:
برای وقتی که چند تا لینک دارید، کافیه همه رو خط به خط تو فایلی مثل
aria2 پشت صحنۀ خیلی از ابزارهای دانلودمثل uGet، Motrix، Persepolis (در نسخههای قدیمی)، و حتی بعضی مدیرهای دانلود گرافیکی سبک برای سرور یا NAS استفاده شده.
تو دنیای لینوکس هم معمولاً داخل اسکریپتهای خودکار یا نصب بستهها ازش استفاده میشه چون دقیق، قابلاسکریپتنویسی و کممصرفه.
🔘 @linux_exp | #linux #commandline #tools
aria2 یه ابزار خط فرمانه که برای دانلود از پروتکلهای مختلف مثل HTTP ،FTP ،BitTorrent و Metalink طراحی شده.
مزیتش اینه که میتونه فایل رو به چند بخش تقسیم کنه و هر بخش رو همزمان از چند اتصال مختلف بگیره؛ همین باعث میشه دانلودها سریعتر و پایدارتر انجام بشن.
یک نمونۀ ساده:
aria2c https://example.com/file.iso
اگه بخواید از تمام ظرفیت اینترنت استفاده کنید، میتونید تعداد اتصالها و بخشها رو زیاد کنید و در عین حال تلاش نامحدود برای ادامۀ دانلود در صورت قطع ارتباط فعال کنید:
aria2c \
--max-connection-per-server=16 \
--split=16 \
--max-tries=0 \
https://example.com/file.iso
🔹 --max-connection-per-server تعداد اتصالهای همزمان به سرور
🔹 --split تعداد بخشهایی که فایل به اون تقسیم میشه
🔹 --max-tries=0 یعنی در صورت خطا تا بینهایت بار تلاش مجدد انجام بشه
برای وقتی که چند تا لینک دارید، کافیه همه رو خط به خط تو فایلی مثل
links.txt بنویسید و اجرا کنید:aria2c --input-file=links.txt
aria2 پشت صحنۀ خیلی از ابزارهای دانلودمثل uGet، Motrix، Persepolis (در نسخههای قدیمی)، و حتی بعضی مدیرهای دانلود گرافیکی سبک برای سرور یا NAS استفاده شده.
تو دنیای لینوکس هم معمولاً داخل اسکریپتهای خودکار یا نصب بستهها ازش استفاده میشه چون دقیق، قابلاسکریپتنویسی و کممصرفه.
وقتی با aria2 دانلود میکنید، کنار هر فایل در حال دانلود یه فایل موقت با پسوند .aria2 ساخته میشه. این فایل شامل اطلاعات پیشرفت دانلود، بخشهای دریافتشده و وضعیت اتصالاته.
اگه دانلود به هر دلیلی قطع بشه (مثلاً اینترنت قطع شه یا سیستم ریستارت شه)، تا زمانی که فایل .aria2 حذف نشده باشه، میتونید همون دستور قبلی رو دوباره اجرا کنید تا دانلود از همونجا ادامه پیدا کنه.
🔘 @linux_exp | #linux #commandline #tools
🔥7❤3⚡1👏1
🔹 آشنایی با jq — چاقوی سوئیسی برای JSON!
اگه زیاد با فایلها یا خروجیهای JSON سر و کار دارین، احتمالاً میدونین خوندن و فیلتر کردنش با ابزارهای معمول مثل grep یا awk زیاد جالب از آب در نمیاد!
اینجاست که jq به دردتون میخوره. jq یه ابزار خط فرمانه که میتونه دادههای JSON رو بخونه، فیلتر کنه، تغییر بده یا حتی قالبشونو عوض کنه.
مثلاً با یه دستور ساده میتونین فقط یه فیلد خاص رو از یه فایل JSON بزرگ بیرون بکشین:
یا حتی صرفاً فقط دادهها رو مرتب و رنگی چاپ کنین تا راحتتر خونده بشن:
برای کسایی که با APIها، دادههای ساختاریافته یا اسکریپتهای خودکار کار میکنن، jq یه ابزار واقعاً نجاتدهندهست.
🔘 @linux_exp | #linux #commandline #tools
اگه زیاد با فایلها یا خروجیهای JSON سر و کار دارین، احتمالاً میدونین خوندن و فیلتر کردنش با ابزارهای معمول مثل grep یا awk زیاد جالب از آب در نمیاد!
اینجاست که jq به دردتون میخوره. jq یه ابزار خط فرمانه که میتونه دادههای JSON رو بخونه، فیلتر کنه، تغییر بده یا حتی قالبشونو عوض کنه.
مثلاً با یه دستور ساده میتونین فقط یه فیلد خاص رو از یه فایل JSON بزرگ بیرون بکشین:
cat data.json | jq '.users[].name'
یا حتی صرفاً فقط دادهها رو مرتب و رنگی چاپ کنین تا راحتتر خونده بشن:
cat data.json | jq
برای کسایی که با APIها، دادههای ساختاریافته یا اسکریپتهای خودکار کار میکنن، jq یه ابزار واقعاً نجاتدهندهست.
در ضمن اگه میخواستین سریعتر عمل کنین میتونین جاش jaq بزنین
🔘 @linux_exp | #linux #commandline #tools
👍4🔥4🥰1😁1🍌1
📂 مفهوم File Descriptor
در لینوکس، File Descriptor یا به اختصار FD یک عدد صحیحه که سیستمعامل برای دسترسی به هر فایل، سوکت، یا حتی ورودی/خروجی (مثل کیبورد و ترمینال) استفاده میکنه.
وقتی یک پروسه فایلی رو باز میکنه، کرنل یک عدد بهش اختصاص میده که همون File Descriptor هست (توی عکس بالا خیلی خوب به تصویر کشیده شده میتونید مراحل رو دنبال کنید)
به طور استاندار هر پروسه، سه fd مهم داره:
0 → stdin (ورودی)
1 → stdout (خروجی)
2 → stderr (خطا)
گاها ازشون استفاده کردیم ولی شاید دقت نکردیم دقیقا دارن چی کار میکنن. مثلا وقتی خروجی و ارور یه دستور رو میفرستیم توی یک فایل:
دستور بالا متشکل از 2 ریدایرکت هست:
🔹 بخش اول: (
خروجی یا FD 1 متعلق به پروسه (دستور
🔸 بخش دوم: (
اگر اروری پیش بیاد، اون رو هم میفرسته همونجایی که خروجی (دسکریپتور 1) فرستاده شده.
توی تصویر بالا یک تکه کد پایتون هم هست که بصورت مصور و کامیکطور محاوره بین پروسه و کرنل رو نشون داده.
به طور کلی File Descriptor یه عدد ساده هست، اما در واقع پل ارتباطی بین برنامه و کرنل برای کار با فایلها و منابع I/O محسوب میشه.
🔘 @linux_exp | #linux #fd #file_descriptor
در لینوکس، File Descriptor یا به اختصار FD یک عدد صحیحه که سیستمعامل برای دسترسی به هر فایل، سوکت، یا حتی ورودی/خروجی (مثل کیبورد و ترمینال) استفاده میکنه.
وقتی یک پروسه فایلی رو باز میکنه، کرنل یک عدد بهش اختصاص میده که همون File Descriptor هست (توی عکس بالا خیلی خوب به تصویر کشیده شده میتونید مراحل رو دنبال کنید)
دستور lsof (کوتاه شده List Open Files) نشون میده چه فایلهایی توسط چه پروسههایی باز هستن.
به طور استاندار هر پروسه، سه fd مهم داره:
0 → stdin (ورودی)
1 → stdout (خروجی)
2 → stderr (خطا)
گاها ازشون استفاده کردیم ولی شاید دقت نکردیم دقیقا دارن چی کار میکنن. مثلا وقتی خروجی و ارور یه دستور رو میفرستیم توی یک فایل:
ls /etc > out.txt 2>&1
دستور بالا متشکل از 2 ریدایرکت هست:
🔹 بخش اول: (
ls /etc > out.txt)خروجی یا FD 1 متعلق به پروسه (دستور
ls) ریخته میشه توی فایل out.txt🔸 بخش دوم: (
2>&1)اگر اروری پیش بیاد، اون رو هم میفرسته همونجایی که خروجی (دسکریپتور 1) فرستاده شده.
توی تصویر بالا یک تکه کد پایتون هم هست که بصورت مصور و کامیکطور محاوره بین پروسه و کرنل رو نشون داده.
به طور کلی File Descriptor یه عدد ساده هست، اما در واقع پل ارتباطی بین برنامه و کرنل برای کار با فایلها و منابع I/O محسوب میشه.
🔘 @linux_exp | #linux #fd #file_descriptor
👍5🔥4🆒3❤1
❗ اطلاعیۀ تیم آرچ برای کاربران waydroid
تو نگارشهای پیش از v1.5.4-2 بستۀ waydroid آرچ لینوکس، فایلهای کش .pyc موقع اجرا ساخته میشدن که توسط پکمن شناسایی نمیشدن. این مشکل تو نگارش v1.5.4-3 برطرف شده و این فایلها در حین فرایند بستهبندی ساخته میشن.
در نتیجه موقع ارتقا ممکنه بسته با فایلهای ساختهشدۀ بدون مالک نگارشهای پیشین تداخل داشته باشه. اگه موقع بهروزرسانی به خطاهایی شبیه به این برخوردین:
میتونین با دستور زیر این فایلهارو بهطور امن بازنویسی کنین:
#linux #archlinux #packaging #news
🔘 @linux_exp ~> Source
تو نگارشهای پیش از v1.5.4-2 بستۀ waydroid آرچ لینوکس، فایلهای کش .pyc موقع اجرا ساخته میشدن که توسط پکمن شناسایی نمیشدن. این مشکل تو نگارش v1.5.4-3 برطرف شده و این فایلها در حین فرایند بستهبندی ساخته میشن.
در نتیجه موقع ارتقا ممکنه بسته با فایلهای ساختهشدۀ بدون مالک نگارشهای پیشین تداخل داشته باشه. اگه موقع بهروزرسانی به خطاهایی شبیه به این برخوردین:
error: failed to commit transaction (conflicting files)
waydroid: /usr/lib/waydroid/tools/__pycache__/__init__.cpython-313.pyc exists in filesystem
waydroid: /usr/lib/waydroid/tools/actions/__pycache__/__init__.cpython-313.pyc exists in filesystem
waydroid: /usr/lib/waydroid/tools/actions/__pycache__/app_manager.cpython-313.pyc exists in filesystem
میتونین با دستور زیر این فایلهارو بهطور امن بازنویسی کنین:
pacman -Syu --overwrite /usr/lib/waydroid/tools/\*__pycache__/\*
#linux #archlinux #packaging #news
🔘 @linux_exp ~> Source
❤6👍3🤷♂2
Linux Experts
❗ اطلاعیۀ تیم آرچ برای کاربران waydroid تو نگارشهای پیش از v1.5.4-2 بستۀ waydroid آرچ لینوکس، فایلهای کش .pyc موقع اجرا ساخته میشدن که توسط پکمن شناسایی نمیشدن. این مشکل تو نگارش v1.5.4-3 برطرف شده و این فایلها در حین فرایند بستهبندی ساخته میشن. در…
💢 معرفی Waydroid
Waydroid یه پروژۀ متنباز و آزاده که به شما اجازه میده سیستمعامل اندروید رو مستقیم داخل لینوکس اجرا کنید، بدون اینکه نیازی به شبیهسازی کامل سختافزار (مثل Android Studio Emulator یا VirtualBox) داشته باشید.
با Waydroid میتونید اپهای اندروید رو کنار اپهای لینوکسی باز کنید، بینشون جابهجا بشید یا اونا رو توی دسکتاپ خودتون پین کنید، از امکاناتی مثل صدا، شبکه و تاچ استفاده کنید.
اما Waydroid محدودیتی هم داره که به ویلند(Wayland) وابستهست. چون ویلند دسترسی مستقیمتر و مدرنتری به رندرینگ و compositor سیستم میده و بهتر میتونه گرافیکهای OpenGL و Vulkan رو بین میزبان و اندروید به اشتراک بذاره.
در مقابل، X11 ساختار قدیمیتری داره و برای این نوع یکپارچگی گرافیکی و شتاب GPU مناسب نیست. به همین خاطر، Waydroid در حال حاضر فقط روی محیطهایی که ویلند دارن (مثل گنوم یا پلاسما) بهدرستی کار میکنه.
🔘 @linux_exp | #linux #waydroid #wayland #android
Waydroid یه پروژۀ متنباز و آزاده که به شما اجازه میده سیستمعامل اندروید رو مستقیم داخل لینوکس اجرا کنید، بدون اینکه نیازی به شبیهسازی کامل سختافزار (مثل Android Studio Emulator یا VirtualBox) داشته باشید.
در واقع Waydroid از فناوری LXC (Linux Containers) استفاده میکنه تا یه محیط اندروید واقعی رو داخل یه کانتینر سبک اجرا کنه. چون این کانتینر از هستۀ لینوکس میزبان شما استفاده میکنه (نه یه کرنل جداگانه)، کارایی خیلی بالاتری نسبت به شبیهسازها داره. تا حدی که اپهای اندرویدی تقریبا با سرعت بومی اجرا میشن و از GPU واقعی سیستم برای شتاب گرافیکی استفاده میکنن.
با Waydroid میتونید اپهای اندروید رو کنار اپهای لینوکسی باز کنید، بینشون جابهجا بشید یا اونا رو توی دسکتاپ خودتون پین کنید، از امکاناتی مثل صدا، شبکه و تاچ استفاده کنید.
اما Waydroid محدودیتی هم داره که به ویلند(Wayland) وابستهست. چون ویلند دسترسی مستقیمتر و مدرنتری به رندرینگ و compositor سیستم میده و بهتر میتونه گرافیکهای OpenGL و Vulkan رو بین میزبان و اندروید به اشتراک بذاره.
در مقابل، X11 ساختار قدیمیتری داره و برای این نوع یکپارچگی گرافیکی و شتاب GPU مناسب نیست. به همین خاطر، Waydroid در حال حاضر فقط روی محیطهایی که ویلند دارن (مثل گنوم یا پلاسما) بهدرستی کار میکنه.
TL;DR
Waydroid یه راه سریع و یکپارچه برای اجرای اندروید روی لینوکسه که از کانتینر استفاده میکنه، نه شبیهسازی؛ و چون برای رندر گرافیک به ویلند وابستهست، فقط روی سیستمهایی که ویلند دارن اجرا میشه.
🔘 @linux_exp | #linux #waydroid #wayland #android
👍5🔥3⚡2🆒1
💢 توی سابردیت r/scams یک نفر پست گذاشته که چطور بعد از اجرای یه فایل مخرب، اطلاعتش از Password Manager مرورگر (کروم) دزدیده شده؛ چون کروم پسوردها رو به صورت plain text ذخیره میکنه!
داستان به این شکل بوده که مهاجم با ادعای بازیساز بودن پیام میده به قربانی و ازش میخواد که بازیش رو تست کنه. قربانی فایل بازی رو میده به آنتیویروس و اونم میگه مشکلی نیست؛ فایل رو اجرا میکنه و ازش خواسته میشه به خاطر اینکه انجین بازی درست کار کنه اون رو به صورت administrator ران کنه o_0
فرد این کار رو انجام میده و اولین اتفاقی که میوفته:
یک پنجره cmd باز میشه و مینویسه که برای مسیر زیر در آنتیویروس یک exception ساخته شد:
اینجا آنتیویروس دیگه مزاحم برنامه نمیشه و در نتیجه به دادههای داخلی کروم (مثل کوکی و پسوردها) دسترسی پیدا میکنه.
بعدش مهاجم توی دیسکورد شروع به اخاذی میکنه و برای اثبات، از فایل پسوردها اسکرینشات میفرسته — که همشون plain text بودن! جزییات بیشتر رو میتونید توی خود پست بخونید.
💠 نتیجهگیری
هدف بیشتر آگاهی از وضعیت کروم و مرورگر ها بود که اکثرا پسورد رو لوکال و بدون رمزنگاری نگه میدارن. اگه برنامهای بتونه به اون مسیرها دسترسی پیدا کنه (مثل اتفاق بالا)، عملا کل زندگیتون روی اینترنت در اختیار مهاجم قرار میگیره.
راههای مختلفی واسه حل این مشکل هست (مثل استفاده از پسورد منیجری که انکریپتد هست یا به کل استفاده نکردن ازشون) اما بخش مهم تر این هست که از تهدید احتمالی مطلع باشید.
🔘 @linux_exp | #vulnerability #chrome #fyi
داستان به این شکل بوده که مهاجم با ادعای بازیساز بودن پیام میده به قربانی و ازش میخواد که بازیش رو تست کنه. قربانی فایل بازی رو میده به آنتیویروس و اونم میگه مشکلی نیست؛ فایل رو اجرا میکنه و ازش خواسته میشه به خاطر اینکه انجین بازی درست کار کنه اون رو به صورت administrator ران کنه o_0
فرد این کار رو انجام میده و اولین اتفاقی که میوفته:
یک پنجره cmd باز میشه و مینویسه که برای مسیر زیر در آنتیویروس یک exception ساخته شد:
..AppData\Google\Chrome\Cookiesاینجا آنتیویروس دیگه مزاحم برنامه نمیشه و در نتیجه به دادههای داخلی کروم (مثل کوکی و پسوردها) دسترسی پیدا میکنه.
بعدش مهاجم توی دیسکورد شروع به اخاذی میکنه و برای اثبات، از فایل پسوردها اسکرینشات میفرسته — که همشون plain text بودن! جزییات بیشتر رو میتونید توی خود پست بخونید.
💠 نتیجهگیری
هدف بیشتر آگاهی از وضعیت کروم و مرورگر ها بود که اکثرا پسورد رو لوکال و بدون رمزنگاری نگه میدارن. اگه برنامهای بتونه به اون مسیرها دسترسی پیدا کنه (مثل اتفاق بالا)، عملا کل زندگیتون روی اینترنت در اختیار مهاجم قرار میگیره.
راههای مختلفی واسه حل این مشکل هست (مثل استفاده از پسورد منیجری که انکریپتد هست یا به کل استفاده نکردن ازشون) اما بخش مهم تر این هست که از تهدید احتمالی مطلع باشید.
🔘 @linux_exp | #vulnerability #chrome #fyi
👍5❤3🔥3🆒1