Linux Experts – Telegram
Linux Experts
222 subscribers
11 photos
2 videos
24 links
A place where commits tell stories 📖, and bugs are features

Ctrl + Alt + Explore 🚀


Contact: @su_root_sh
Group: @Linux_ex
Download Telegram
📂 مفهوم File Denoscriptor

در لینوکس، File Denoscriptor یا به اختصار FD یک عدد صحیحه که سیستم‌عامل برای دسترسی به هر فایل، سوکت، یا حتی ورودی/خروجی (مثل کیبورد و ترمینال) استفاده می‌کنه.
وقتی یک پروسه فایلی رو باز می‌کنه، کرنل یک عدد بهش اختصاص میده که همون File Denoscriptor هست (توی عکس بالا خیلی خوب به تصویر کشیده شده میتونید مراحل رو دنبال کنید)

دستور 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 Denoscriptor یه عدد ساده هست، اما در واقع پل ارتباطی بین برنامه و کرنل برای کار با فایل‌ها و منابع I/O محسوب می‌شه.


🔘 @linux_exp | #linux #fd #file_denoscriptor
👍5🔥4🆒31
از کدوم استفاده می‌کنید؟
Anonymous Poll
67%
Desktop Environment
33%
Window Manager
اطلاعیۀ تیم آرچ برای کاربران waydroid

تو نگارش‌های پیش از 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 از فناوری LXC (Linux Containers) استفاده می‌کنه تا یه محیط اندروید واقعی رو داخل یه کانتینر سبک اجرا کنه. چون این کانتینر از هستۀ لینوکس میزبان شما استفاده می‌کنه (نه یه کرنل جداگانه)، کارایی خیلی بالاتری نسبت به شبیه‌سازها داره. تا حدی که اپ‌های اندرویدی تقریبا با سرعت بومی اجرا می‌شن و از GPU واقعی سیستم برای شتاب گرافیکی استفاده می‌کنن.

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

اما Waydroid محدودیتی هم داره که به ویلند(Wayland) وابسته‌ست. چون ویلند دسترسی مستقیم‌تر و مدرن‌تری به رندرینگ و compositor سیستم می‌ده و بهتر می‌تونه گرافیک‌های OpenGL و Vulkan رو بین میزبان و اندروید به اشتراک بذاره.
در مقابل، X11 ساختار قدیمی‌تری داره و برای این نوع یکپارچگی گرافیکی و شتاب GPU مناسب نیست. به همین خاطر، Waydroid در حال حاضر فقط روی محیط‌هایی که ویلند دارن (مثل گنوم یا پلاسما) به‌درستی کار می‌کنه.

‏TL;DR
‏Waydroid یه راه سریع و یکپارچه برای اجرای اندروید روی لینوکسه که از کانتینر استفاده می‌کنه، نه شبیه‌سازی؛ و چون برای رندر گرافیک به ویلند وابسته‌ست، فقط روی سیستم‌هایی که ویلند دارن اجرا می‌شه.


🔘 @linux_exp | #linux #waydroid #wayland #android
👍5🔥32🆒1
💢 توی ساب‌ردیت r/scams یک نفر پست گذاشته که چطور بعد از اجرای یه فایل مخرب، اطلاعتش از Password Manager مرورگر (کروم) دزدیده شده؛ چون کروم پسوردها رو به صورت plain text ذخیره میکنه!

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

فرد این کار رو انجام میده و اولین اتفاقی که میوفته:

یک پنجره cmd باز میشه و مینویسه که برای مسیر زیر در آنتی‌ویروس یک exception ساخته شد:

..AppData\Google\Chrome\Cookies

اینجا آنتی‌ویروس دیگه مزاحم برنامه نمیشه و در نتیجه به داده‌های داخلی کروم (مثل کوکی و پسوردها) دسترسی پیدا میکنه.

بعدش مهاجم توی دیسکورد شروع به اخاذی می‌کنه و برای اثبات، از فایل پسوردها اسکرین‌شات می‌فرسته — که همشون plain text بودن! جزییات بیشتر رو میتونید توی خود پست بخونید.

💠 نتیجه‌گیری

هدف بیشتر آگاهی از وضعیت کروم و مرورگر ها بود که اکثرا پسورد رو لوکال و بدون رمزنگاری نگه می‌دارن. اگه برنامه‌ای بتونه به اون مسیرها دسترسی پیدا کنه (مثل اتفاق بالا)، عملا کل زندگیتون روی اینترنت در اختیار مهاجم قرار میگیره.

راههای مختلفی واسه حل این مشکل هست (مثل استفاده از پسورد منیجری که انکریپتد هست یا به کل استفاده نکردن ازشون) اما بخش مهم تر این هست که از تهدید احتمالی مطلع باشید.


🔘 @linux_exp | #vulnerability #chrome #fyi
👍53🔥3🆒1
♨️ Debian Libre Live؛ دبیان تا حد ممکن آزاد 

پروژه Debian Libre Live که به‌تازگی معرفی شده، با هدف ارائه ایمیج لایو و نصاب دبیان که تا حد ممکن از هرگونه مؤلفه غیرآزاد (به‌ویژه firmware) خالی باشه طراحی شده. این پروژه برای معماری amd64 و arm64 هست و بر پایه همون نسخه اصلیه با تفاوت اینکه اجزای non‑free از اون حذف شده تا کاربرانی که به آزادی نرم‌افزار و شفافیت حساس هستند بتونن نسخه‌ای نزدیک به دبیان رسمی رو بدون اتکا به نرم‌افزارهای close source، اجرا و نصب کنن. 

این پروژه نقطه مقابل رای‌گیری سال ۲۰۲۲ دبیان هست برای قرار دادن firmwareهای غیرآزاد در ایمیج‌های رسمی.

ایمیجی مشابه Debian Live معمولی، اما بدون مؤلفه های غیرآزاد.


🔸 از اینجا میتونید ایمیج تازه پخته شده رو بگیرید.


🔘 @linux_exp | #debian #libre #fyi
🔥7
😂😂

🔗 source
🔘 @linux_exp | #fun #arch
😁10🌚1🙈1
💢 بالاخره نسخه جدید Pop!_OS منتشر شد: Pop!_OS 24.04 LTS به همراه COSMIC Epoch 1 (اولین نسخه پایدارِ دسکتاپ COSMIC).

چند ساعت پیش، بعد از مدت‌ها آلفا/بتا و تست‌های مختلف، COSMIC از حالت آزمایشی خارج شده و رسما استیبل حساب میشه؛ در نتیجه برای استفاده روزمره گزینه جدی‌تریه (هرچند چون «نسخه اول» محسوب میشه، هنوز ممکنه بعضی باگ‌های ریز یا کمبود فیچر نسبت به DEهای قدیمی‌تر دیده بشه).

کازمیک دسکتاپ اختصاصی System76 هستش؛ محیطی که روی کاربرهای کیبورد-محور و ورک‌فلوهای سریع هم تمرکز داره.
داستان COSMIC از جایی شروع شد که System76 تصمیم گرفت مسیرش رو از GNOME جدا کنه و برای کاهش وابستگی به اکستنشن‌ها و دردسرهای سازگاری، COSMIC رو به یک دسکتاپ مستقل تبدیل کنه.


از سایت رسمی System76 میتونید عکس هارو ببینید و ISO رو دانلود کنید

🔘 @linux_exp | #linux #popos #release
2🔥2👌1😨1🎄1
خیلی‌ها وقتی از X11 میان سمت Wayland، این سوال براشون پیش میاد که چرا اینجا مثل X نمی‌گیم Window Manager و به جاش می‌گیم compositor؟

اول فرق X و Wayland رو بفهمیم. تو دنیای X داستان این‌طوری بود:
▫️ یه X server داشتیم که کارش صحبت با کارت گرافیک و ورودی‌ها بود و پنجره‌ها رو روی صفحه می‌کشید.
▫️ یه Window Manager جدا که تصمیم می‌گرفت پنجره‌ها کجا باشن، فوکوس دست کی باشه، تایل بشن یا شناور، دکمه‌ها چه رفتاری داشته باشن و …
▫️ یه compositor (اختیاری) مثل compton یا picom که تصویر نهایی دسکتاپ رو با سایه و شفافیت و افکت‌ها ترکیب می‌کرد.
تو X این‌ها می‌تونستن توی یک برنامه هم جمع بشن. مثلاً KWin یا Mutter روی X هم WM هستن هم compositing manager. یعنی ترکیب‌شون ممنوع نبود، فقط معماری طوری بود که جدا بودن‌شون هم ممکن و رایج بود.

💠 توی Wayland چی عوض شده؟
اینجا از دید پروتکل، همیشه یک سرور Wayland وجود داره که همون چیزیه که بهش می‌گیم compositor. این سرور:
▫️ مستقیماً با DRM/KMS و کارت گرافیک کار می‌کنه.
▫️ ورودی‌ها (کیبورد، موس، تاچ و …) رو دریافت می‌کنه. 
▫️ بافرهایی که اپ‌ها رندر کردن رو می‌گیره. 
▫️ تصمیم می‌گیره هر سطح (surface) کجا و چطوری روی کدوم مانیتور نمایش داده بشه. 
▫️ در عمل، همون کارهای یک Window Manager رو هم مثل فوکوس، تایلینگ، فلو، فول‌اسکرین، ورک‌اسپیس‌ها و … انجام می‌ده.

چرا نمی‌گیم Wayland Window Manager؟
▫️ از دید فنی، نقش اصلی این برنامه کامپوزیت کردن بافرها و ساختن تصویر نهایی خروجه؛ مدیریت پنجره فقط یک بخش از ماجراست.
▫️ پروتکل Wayland حول این کامپوزیتور طراحی شده و مرکز مدیریت گرافیکه که هم با سخت‌افزار ارتباط می‌گیره، هم با اپ‌ها، هم سیاست‌های پنجره‌ها رو اجرا می‌کنه.
▫️ چیزی به‌عنوان WM مستقل که فقط سیاست بده به شکل استاندارد توی پروتکل وجود نداره؛ اگر هم بخشی از منطق به یه پروسۀ دیگه واگذار بشه، باز هم از نگاه Wayland، تصمیم‌گیرندۀ نهایی همون compositor هست و اون یکی فقط helper حساب می‌شه.
🔘 @linux_exp | #wayland #x11 #wm
👍6🔥42👏1
مشکل باز نشدن اپ‌های ترمینالی و xdg-terminal-exec

وقتی یه برنامۀ ترمینالی رو از فایل منیجر یا لانچر باز می‌کنین، سیستم باید خودش یه ترمینال انتخاب کنه. اما مشکل اینجاست که هیچ استاندارد واحدی برای این انتخاب وجود نداره.

هر دسکتاپی خودش به طریقه‌ای این رو حل کرده بود. GNOME از gnome-terminal استفاده می‌کرد، KDE از konsole و XFCE از xfce4-terminal. ویندو منیجرهای مینیمال مثل Hyprland و i3 و sway هم اصلاً هیچ استانداردی نداشتن.

به عبارت دیگه، اگه شما از یه window manager استفاده می‌کنین و مثلا ترمینال kitty رو نصب کردین، وقتی یه برنامۀ ترمینالی رو از لانچر اجرا می‌کنین، سیستم نمی‌تونه ترمینال مناسب رو برای اجرا پیدا کنه و شاید جای kitty بخواد با xterm باز کنه که روی سیستم شما نباشه.

چند سال پیش، کامیونیتی لینوکس تصمیم گرفت استانداردی برای این ایجاد کنه: xdg-terminal-exec

با استفاده از این ابزار، سیستم به سادگی از یه فایل کانفیگ ترمینال‌های مورد نظر شما رو می‌خونه و می‌دونه شما کدوم ترمینال رو ترجیح می‌دین.

در نتیجه اگه xdg-terminal-exec نصب باشه و درست تنظیم شده باشه، تمام برنامه‌های ترمینالی بدون توجه به محیطی که استفاده می‌کنین، از ترمینال مورد نظر شما استفاده می‌کنن.

‏xdg-terminal-exec به عنوان یه specification هنوز تو مرحلۀ proposal هست. اگرچه GLib نسخۀ 2.76+ ازش پشتیبانی می‌کنه، ولی خیلی از سیستم‌ها هنوز به این نسخه به‌روز نشدن بنابراین اگه از نسخه‌های قدیمی‌تر استفاده می‌کنین این روش برای شما جواب نمیده

🔘 @linux_exp | #linux #wm #xdg
4🔥3👍1🍓1
اطلاعیۀ جدید آرچ دربارۀ تغییر مهم در درایورهای NVIDIA در آرچ لینوکس

از نسخۀ 590 به بعد، درایور جدید دیگر از کارت‌های گرافیک Pascal (سری GTX 10xx) یا مدل‌های قدیمی‌تر پشتیبانی نمی‌کند. به همین دلیل بسته‌های آرچ به نسخه‌های متن‌باز جایگزین می‌شوند:
nvidia → nvidia-open
nvidia-dkms → nvidia-open-dkms
nvidia-lts → nvidia-lts-open

💠 تأثیر این تغییر:
اگر کارت گرافیک شما Pascal،‏ Maxwell یا قدیمی‌تر است، بعد از به‌روزرسانی، درایور دیگر بارگذاری نمی‌شود و ممکن است محیط گرافیکی سیستم از کار بیفتد.

کاری که باید انجام دهید (برای کاربران Pascal و قدیمی‌تر):
اگر کارت شما مثل GTX 1060،‏ GTX 970،‏ GTX 750 Ti و مشابه آنهاست:
۱. بسته‌های فعلی nvidia،‏ nvidia-lts یا nvidia-dkms را حذف کنید.
۲. بستۀ جایگزین nvidia-580xx-dkms را از AUR نصب کنید (شاخه‌ی قدیمی‌تر درایور انویدیا که هنوز از Pascal پشتیبانی می‌کند).

🦦 کسانی که کارت‌های جدیدتر مثل Turing (RTX 20xx، GTX 1650) یا جدیدتر دارند، لازم نیست کاری انجام دهند؛ سیستم خودش به درایورهای متن‌باز جدید منتقل می‌شود.

#linux #archlinux #news
🔘 @linux_exp ~> Source
3❤‍🔥1👍1🔥1
💠 آشنایی با مجموعه ابزارهای moreutils

در کنار coreutils که ابزارهای کلاسیک مثل cp،‏ ls،‏ mv و… رو فراهم می‌کنه، moreutils چند ابزار کوچیک ولی کاربردی اضافه می‌کنه که جای خالی بعضی قابلیت‌ها رو تو محیط‌های یونیکسی و لینوکسی پر می‌کنن و توی اسکریپت‌نویسی خیلی به‌درد می‌خورن.

لیست چند تا از اسکریپت‌های کاربردی moreutils رو می‌تونید در ادامه ببینید:
‏- combine: ترکیب خطوط دو فایل با منطق AND/OR
‏- errno: نمایش اسم و توضیح خطاهای استاندارد errno
‏- ifdata: گرفتن اطلاعات اینترفیس شبکه بدون پارس ifconfig
‏- ifne: اجرای برنامه فقط اگه stdin خالی نباشه
‏- isutf8: چک‌کردن معتبر بودن UTF‑8 ورودی یا فایل
‏- lckdo: اجرای فرمان با فایل قفل برای جلوگیری از اجرای همزمان
این فرمان بعد از اضافه شدن فرمان flock به util-linux منسوخ شده و تو نگارش‌های آینده حذف می‌شه

‏- mispipe: پایپ‌کردن دو فرمان، ولی برگرداندن کد خروجی فرمان اول
‏- parallel: اجرای هم‌زمان چند فرمان (چند job)
‏- pee: شبیه tee، ولی فرستادن stdin به چند پایپ
‏- sponge: گرفتن کل ورودی و آخر کار نوشتن روی فایل
‏- ts: اضافه‌کردن timestamp به ابتدای هر خط ورودی
‏- vidir: ویرایش اسم/جای فایل‌ها از داخل ادیتور
‏- vipe: بازکردن stdin در ادیتور و فرستادن خروجی ویرایش به stdout
‏- zrun: اجرای فرمان روی فایل‌های فشرده، با آنزیپ خودکار موقت

#linux #commandline #tools
🔘 @linux_exp ~> More
🔥5👌21👍1