دوره #فوق_لینوکسه_ها قسمت 6
توی این قسمت با FHS آشنا میشین FHS یه استانداردیه برای سلسله مراتب دایرکتوری ها توی لینوکس که ما از دایرکتوری / یا روت شروع کردیم و همه دایرکتوری های مهم توی لینوکس رو برسی کردیم. کاراکتر دیوایس های مهم رو برسی کردیم و اینکه چرا میگن توی لینوکس همچی فایله رو دقیق تر توی این قسمت میتونین ببینید.
https://youtu.be/G2-5cnvZwIM?si=eXjr5hv8gK1jqcDV
🐧 @Linuxor
توی این قسمت با FHS آشنا میشین FHS یه استانداردیه برای سلسله مراتب دایرکتوری ها توی لینوکس که ما از دایرکتوری / یا روت شروع کردیم و همه دایرکتوری های مهم توی لینوکس رو برسی کردیم. کاراکتر دیوایس های مهم رو برسی کردیم و اینکه چرا میگن توی لینوکس همچی فایله رو دقیق تر توی این قسمت میتونین ببینید.
https://youtu.be/G2-5cnvZwIM?si=eXjr5hv8gK1jqcDV
🐧 @Linuxor
🔥26👍8❤4🗿1
کرنل لینوکس به قدری منعطف نوشته شده که میتونه هر کارت گرافیک با تکنولوژی پیچیده ای رو ساپورت کنه.
اما تعدادی کمی از افراد هستن که میتونن برای لینوکس درایور بخصوص اونم GPU بنویسن، اگه به برنامه نویسی سطح پایین علاقه دارید پیشنهاد میکنم این داکیومنشن که اومده توضیح داده چطوری میتونید یه درایور GPU برای کرنل لینوکس بسازید رو بخونید :
https://www.kernel.org/doc/html/v4.14/gpu/index.html
شرکت هایی مثل اپل و IBM همیشه پوزیشن باز برای توسعه دهنده های کرنل دارن و متقاضی هم بسیار کم. اگه بتونید توی این حوزه برای خودتون رزومه درست کنید میتونید توی این شرکتا به راحتی استخدام بشید و حقوق سالیانه میانیگن 150 تا 250 هزار دلاری بگیرید.
🐧 @Linuxor
اما تعدادی کمی از افراد هستن که میتونن برای لینوکس درایور بخصوص اونم GPU بنویسن، اگه به برنامه نویسی سطح پایین علاقه دارید پیشنهاد میکنم این داکیومنشن که اومده توضیح داده چطوری میتونید یه درایور GPU برای کرنل لینوکس بسازید رو بخونید :
https://www.kernel.org/doc/html/v4.14/gpu/index.html
شرکت هایی مثل اپل و IBM همیشه پوزیشن باز برای توسعه دهنده های کرنل دارن و متقاضی هم بسیار کم. اگه بتونید توی این حوزه برای خودتون رزومه درست کنید میتونید توی این شرکتا به راحتی استخدام بشید و حقوق سالیانه میانیگن 150 تا 250 هزار دلاری بگیرید.
🐧 @Linuxor
🔥84👍20🤯4❤2🗿2
تزریق فرایند یا process injection یه روشیه که یک کد مخرب دلخواه رو به فرایند در حال اجرا وارد میکنن و به یه نتیجه دلخواه میرسن.
معمولا مهاجم دست روی پراسس هایی میزاره که سیستمی هستن و دسترسی بیشتری دارن و داده های حساس تری رو هندل میکنن.
اگه دوست داشتین بیشتر بدونید این مدیوم به طور خلاصه تکنیک های process injection رو توضیح داده :
https://medium.com/csg-govtech/process-injection-techniques-used-by-malware-1a34c078612c
🐧 @Linuxor
معمولا مهاجم دست روی پراسس هایی میزاره که سیستمی هستن و دسترسی بیشتری دارن و داده های حساس تری رو هندل میکنن.
اگه دوست داشتین بیشتر بدونید این مدیوم به طور خلاصه تکنیک های process injection رو توضیح داده :
https://medium.com/csg-govtech/process-injection-techniques-used-by-malware-1a34c078612c
🐧 @Linuxor
👍41💅3🗿1
تا میتونید الگوریتم یاد بگیرید. اکثر مسائلی که براتون پیش میاد الگوریتم بهینه ای قبلا براش کشف شده.
سر یه پروژه بودم به این صورت بود که باید از طریق API به یه سروری ریکوست میدادم و یه دیتایی میگرفتم.
مشکل این بود که حجم دیتایی که من میخواستم خیلی زیاد بود. و ریکوست هایی که میدادم اگه از یه حدی فراتر میرفت ارور 429 یعنی Too Many Requests میگرفتم و یه تایمی هم API_KEY رو جریمه میکرد و اون API_KEY کلا از دادن ریکوست محروم میشد و به طور مثال میگفت 30 ثانیه دیگه نمیتونی ریکوست بدی.
و مشکل اساسی این بود که API هیچ اطلاعاتی درباره سیستم flood ش نداده بود (و معمولا هم نمیدن) و نمیشد پیش بینی کرد که کی قراره API_KEY لیمیت بخوره.
من تعداد API_KEY هارو توی قدم اول افزایش دادم ولی بازم اون حجم از دیتایی که میخوام رو نتونستم دریافت کنم، چون جریمه ها زمان رو اتلاف میکرد.
و اینکه برای هر API_KEY من میومدم تعداد ریکوست های در ثانیه اش رو کم هم میکردم هم ایده خوبی نبود چون بهینه ترین حالت نبود و هزینه اضافی API_KEY رو فقط تحمیل میکرد.
در نهایت بعد از چند روز تونستم یه الگوریتمی بنویسم که با توجه به شرایط بهترین تصمیم رو میگیره و بالا ترین حجم دیتا رو از API میگیره.
قسمت جالب اینجاست که الگوریتمی که نوشتم خیلی شبیه الگوریتم AIMD توی شبکه س که 50 سال پیش نوشته شده ... و اصلا نیازی نبود انقدر به خودم زحمت بدم و چرخ رو از اول اختراع کنم !
🐧 @Linuxor
سر یه پروژه بودم به این صورت بود که باید از طریق API به یه سروری ریکوست میدادم و یه دیتایی میگرفتم.
مشکل این بود که حجم دیتایی که من میخواستم خیلی زیاد بود. و ریکوست هایی که میدادم اگه از یه حدی فراتر میرفت ارور 429 یعنی Too Many Requests میگرفتم و یه تایمی هم API_KEY رو جریمه میکرد و اون API_KEY کلا از دادن ریکوست محروم میشد و به طور مثال میگفت 30 ثانیه دیگه نمیتونی ریکوست بدی.
و مشکل اساسی این بود که API هیچ اطلاعاتی درباره سیستم flood ش نداده بود (و معمولا هم نمیدن) و نمیشد پیش بینی کرد که کی قراره API_KEY لیمیت بخوره.
من تعداد API_KEY هارو توی قدم اول افزایش دادم ولی بازم اون حجم از دیتایی که میخوام رو نتونستم دریافت کنم، چون جریمه ها زمان رو اتلاف میکرد.
و اینکه برای هر API_KEY من میومدم تعداد ریکوست های در ثانیه اش رو کم هم میکردم هم ایده خوبی نبود چون بهینه ترین حالت نبود و هزینه اضافی API_KEY رو فقط تحمیل میکرد.
در نهایت بعد از چند روز تونستم یه الگوریتمی بنویسم که با توجه به شرایط بهترین تصمیم رو میگیره و بالا ترین حجم دیتا رو از API میگیره.
قسمت جالب اینجاست که الگوریتمی که نوشتم خیلی شبیه الگوریتم AIMD توی شبکه س که 50 سال پیش نوشته شده ... و اصلا نیازی نبود انقدر به خودم زحمت بدم و چرخ رو از اول اختراع کنم !
🐧 @Linuxor
🔥74👍25👌8😐1🗿1
دوره #فوق_لینوکسه_ها قسمت 7
توی این قسمت با سخت افزار ها توی لینوکس آشنا میشید. نحوه مانت و آنمانت کردن رو میبنید، کاربرد انواع پورت ها مثل PCI و Thunderbolt و USB رو میبینید همچنین با درایور ها یا ماژول های کرنل بیشتر آشنا میشید.
https://youtu.be/F4CKztOVLPc?si=D1AMKzrPQM9DhwRc
🐧 @Linuxor
توی این قسمت با سخت افزار ها توی لینوکس آشنا میشید. نحوه مانت و آنمانت کردن رو میبنید، کاربرد انواع پورت ها مثل PCI و Thunderbolt و USB رو میبینید همچنین با درایور ها یا ماژول های کرنل بیشتر آشنا میشید.
https://youtu.be/F4CKztOVLPc?si=D1AMKzrPQM9DhwRc
🐧 @Linuxor
🔥34❤6👍1🗿1
زبان برنامه نویسی هیچ ربطی به کانتنت داخل سایت نداره.
کروم یه اکستنش داره wappalyzer میشه باهاش تکنولوژی های استفاده شده توی یک سایت رو برسی کرد.
این اکستنش هم حتی درست نمیگه، چرا؟ چونکه با استفاده از هدر x-powered-by چک میکنه و سایت دوبار این هدر رو پر کرده یه بار با php یه بار با asp.
تحلیل تکنولوژی های backend مگر با دیتا هایی که خودشون توی هدر میدن عملا غیر ممکنه.
مثلا من میتونیم سایتی بسازم که با php باشه اما وانمود کنم سایت با asp ساخته شده.
حتی جالب اینجاست routing هم میشه دستکاری کرد که اخر url سایت asp باشه ولی سایت php باشه.
مثال ساده از routing :
url.com/file.zip
الزاما به یه file زیپ اشاره نمیکنه و ممکنه file.zip یه صفحه وب باشه.
توی مورد بالا هم من حس میکنم بخاطر تغییر زبان سایت و backward compatibility این اتفاق افتاده یعنی نخواستن route هاشون تغییر کنه و زبان بکند رو تغییر دادن. در هر صورت هیچ تحلیلی در مورد زبان بکند به طور قطعی نمیشه کرد. حتی امکان داره یه شوخی باشه.
🐧 @Linuxor
کروم یه اکستنش داره wappalyzer میشه باهاش تکنولوژی های استفاده شده توی یک سایت رو برسی کرد.
این اکستنش هم حتی درست نمیگه، چرا؟ چونکه با استفاده از هدر x-powered-by چک میکنه و سایت دوبار این هدر رو پر کرده یه بار با php یه بار با asp.
تحلیل تکنولوژی های backend مگر با دیتا هایی که خودشون توی هدر میدن عملا غیر ممکنه.
مثلا من میتونیم سایتی بسازم که با php باشه اما وانمود کنم سایت با asp ساخته شده.
حتی جالب اینجاست routing هم میشه دستکاری کرد که اخر url سایت asp باشه ولی سایت php باشه.
مثال ساده از routing :
url.com/file.zip
الزاما به یه file زیپ اشاره نمیکنه و ممکنه file.zip یه صفحه وب باشه.
توی مورد بالا هم من حس میکنم بخاطر تغییر زبان سایت و backward compatibility این اتفاق افتاده یعنی نخواستن route هاشون تغییر کنه و زبان بکند رو تغییر دادن. در هر صورت هیچ تحلیلی در مورد زبان بکند به طور قطعی نمیشه کرد. حتی امکان داره یه شوخی باشه.
🐧 @Linuxor
👍64🗿2
در واقع مردم بیشتر سمت جمعیت میرن تا سمت چیز خوب، چون فکر میکنن چیز خوب سمت جمعیته.
توی دنیا مردم واتساپ رو به تلگرام ترجیح میدن. از لحاظ فنی تلگرام خیلی از واتساپ جلو تره.
مثلا برای یه شخصی که تو آمریکاس واتساپ کارشو راه میندازه، چتشو میکنه، عکس و ویدیو هم میفرسته، تماس تصویری هم میگیره. و اصلا براش مهم نیست که تلگرامی وجود داشته باشه.
فقط در یه صورت میاد تلگرام نصب کنه، که یه بیزنس من کلفت پشت تلگرام باشه و بتونه اونو تحریک کنه بجای واتساپ بیا از تلگرام استفاده کن.
قضیه لینوکس هم شبیه همینه، فقط لینوکس بیزنسی نداره که بخواد فلانی از فلان جا که براش اصلا سیستم عامل مهم نیست، رو تحریک کنه لینوکس نصب کنه.
🐧 @Linuxor
توی دنیا مردم واتساپ رو به تلگرام ترجیح میدن. از لحاظ فنی تلگرام خیلی از واتساپ جلو تره.
مثلا برای یه شخصی که تو آمریکاس واتساپ کارشو راه میندازه، چتشو میکنه، عکس و ویدیو هم میفرسته، تماس تصویری هم میگیره. و اصلا براش مهم نیست که تلگرامی وجود داشته باشه.
فقط در یه صورت میاد تلگرام نصب کنه، که یه بیزنس من کلفت پشت تلگرام باشه و بتونه اونو تحریک کنه بجای واتساپ بیا از تلگرام استفاده کن.
قضیه لینوکس هم شبیه همینه، فقط لینوکس بیزنسی نداره که بخواد فلانی از فلان جا که براش اصلا سیستم عامل مهم نیست، رو تحریک کنه لینوکس نصب کنه.
🐧 @Linuxor
👍121👎9⚡1💅1🗿1
اصل پیتر میگه انتخاب یه نفر برای تصدی یه سِمَت یا مقام، بر اساس میزان موفقیت عملکردش توی نقش فعلیش صورت میگیره نه بر اساس سنجش تواناییهاش برای ایفای نقش جدید؛
مثلا میخواید برید دانشگاه توی رشته کامپیوتر، برای قبول شدن مجبورید درس هایی بخونید که اصلا ربطی به رشتتون نداره... فقط میزان موفقیتتون توی سمت قبلیتون رو باید نشون بدید تا سازمان سنجش بفهمه شما برای دانشگاه مناسب هستین.
یا مثلا توی برنامه نویسی ممکنه شما قدرت خیلی خوبی توی مدیریت پروژه های حتی سنگین تر از پروژه فعلیتون داشته باشید، فقط چون این ماه حوصله نداشتید خوب Test Case بنویسید شمارو توی همون مرتبه کاریتون نگه دارن و بگن "این چند تا Test Case ساده نتونسته بنویسه و چرا باید ارتقاء شغلیش بدیم ؟"
🐧 @Linuxor
مثلا میخواید برید دانشگاه توی رشته کامپیوتر، برای قبول شدن مجبورید درس هایی بخونید که اصلا ربطی به رشتتون نداره... فقط میزان موفقیتتون توی سمت قبلیتون رو باید نشون بدید تا سازمان سنجش بفهمه شما برای دانشگاه مناسب هستین.
یا مثلا توی برنامه نویسی ممکنه شما قدرت خیلی خوبی توی مدیریت پروژه های حتی سنگین تر از پروژه فعلیتون داشته باشید، فقط چون این ماه حوصله نداشتید خوب Test Case بنویسید شمارو توی همون مرتبه کاریتون نگه دارن و بگن "این چند تا Test Case ساده نتونسته بنویسه و چرا باید ارتقاء شغلیش بدیم ؟"
🐧 @Linuxor
👍76👏6💩4💔4👎3
میخواید بدونید این Open Vs Code Here رو توی KDE چطور اضافه کردم ؟
کافیه دستور زیر رو بزنید :
میتونید همین کارو برای محصولات JetBrains کنید بجای code %u ادرس فایل اجرایی رو با پارامتر %u بدید.
🐧 @Linuxor
کافیه دستور زیر رو بزنید :
echo "[Desktop Entry]
Type=Service
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
MimeType=inode/directory;
Actions=openVsCode
[Desktop Action openVsCode]
Name=Open VS Code Here
Icon=com.visualstudio.code
Exec=code %u" | sudo tee /usr/share/kservices5/vscode.desktop
میتونید همین کارو برای محصولات JetBrains کنید بجای code %u ادرس فایل اجرایی رو با پارامتر %u بدید.
🐧 @Linuxor
🔥44👍25👎1
اکثر کاربرای ویندوزی برای استفاده از لینوکس توی ویندوز از ماشین مجازی و یا WSL استفاده میکنن.
برای اجرای لینوکس روی ویندوز ماشین مجازی نیاز به منابع زیادی داره و wsl هم دسترسی کاملی از لینوکس بهتون نمیده.
مایکروسافت یه پروژه داره به اسم Hyper-v که شبیه به ماشین مجازی عمل میکنه فقط با این تفاوت که روی ویندوز host نیست و native هست و سرعت خیلی بیشتری نسبت به حالت ماشین مجازی داره.
اما داکیومنشن خیلی کمی براش پیدا میشه. علیرضا یه گیت درست کرده از مرحله نصبش تا فعال کردن قابلیت های پیشرفتش رو توضیح داده.
https://github.com/ali-hasehmi/LinuxVM-HyperV
🐧 @Linuxor
برای اجرای لینوکس روی ویندوز ماشین مجازی نیاز به منابع زیادی داره و wsl هم دسترسی کاملی از لینوکس بهتون نمیده.
مایکروسافت یه پروژه داره به اسم Hyper-v که شبیه به ماشین مجازی عمل میکنه فقط با این تفاوت که روی ویندوز host نیست و native هست و سرعت خیلی بیشتری نسبت به حالت ماشین مجازی داره.
اما داکیومنشن خیلی کمی براش پیدا میشه. علیرضا یه گیت درست کرده از مرحله نصبش تا فعال کردن قابلیت های پیشرفتش رو توضیح داده.
https://github.com/ali-hasehmi/LinuxVM-HyperV
🐧 @Linuxor
👍81🔥5👎2🗿2🙏1
آیا دسترسی به اطلاعات RAM واقعا شانسیه؟
یادمه توی دانشگاه اینو از یکی استاد دانشگاهمون پرسیدم و جواب قانع کننده ای نداد که کلمه Random توی RAM چه معنی میده؟ توی این ویدیو مکانیزم RAM رو به زبون ساده گفتم و توضیح دادم که Random اصلا یعنی چی ؛
https://youtu.be/OY_9oy8WIEM?si=B6dAiZwtjdBVDCiZ
🐧 @Linuxor
یادمه توی دانشگاه اینو از یکی استاد دانشگاهمون پرسیدم و جواب قانع کننده ای نداد که کلمه Random توی RAM چه معنی میده؟ توی این ویدیو مکانیزم RAM رو به زبون ساده گفتم و توضیح دادم که Random اصلا یعنی چی ؛
https://youtu.be/OY_9oy8WIEM?si=B6dAiZwtjdBVDCiZ
🐧 @Linuxor
🔥55👍6❤🔥4🗿3
کرنل مثل یه دیوار بین سخت افزار و نرم افزار قرار گرفته و اگه یه نرم افزاری بخواد برای سخت افزار پرو بازی در بیاره کرنل این اجازه رو نمیده.
این نظارت کرنل لینوکس باعث کند شدن و اضافه سربار میشه. اما چاره ی دیگه ای نیست.
شرکت های بزرگ مثل گوگل، متا، سیسکو و ... نیاز دارن که کرنل لینوکس رو دستکاری کنن و روی سطح پایین با سخت افزار در تعامل باشن، اما دستکاری کرنل کار هرکسی نیست و بسیار خطر ناکه.
این باعث شد که یه فناوری جدید به اسم eBPF ساخته بشه که اجازه اجرای برنامه ها و دسترسی به داده های سیستمی رو داخل کرنل به برنامه ها میده.
مثلا یه DDOS با میلیون ها پکت در راهه که برسه به سرور های لینوکسی کلادفلر، کوچک ترین درگیری کرنل یا اپلیکیشن با پکت ها، مثل آب خوردن سرور های کلادفلر رو میخوابونه. اما در واقعیت کلادفلر از یه فیلترینگ خیلی قوی توی هسته لینوکس با eBPF استفاده میکنه که حتی اجازه نمیده پکت ها به لایه بالاتر از کرنل برن.
از eBPF توی اندروید برای دسترسی راحت به سخت افزار و توی شرکت هایی که ترافیک بالایی دارن مثل نتفلیکس برای مانیتورینگ شبکه استفاده میشه.
🐧 @Linuxor
این نظارت کرنل لینوکس باعث کند شدن و اضافه سربار میشه. اما چاره ی دیگه ای نیست.
شرکت های بزرگ مثل گوگل، متا، سیسکو و ... نیاز دارن که کرنل لینوکس رو دستکاری کنن و روی سطح پایین با سخت افزار در تعامل باشن، اما دستکاری کرنل کار هرکسی نیست و بسیار خطر ناکه.
این باعث شد که یه فناوری جدید به اسم eBPF ساخته بشه که اجازه اجرای برنامه ها و دسترسی به داده های سیستمی رو داخل کرنل به برنامه ها میده.
مثلا یه DDOS با میلیون ها پکت در راهه که برسه به سرور های لینوکسی کلادفلر، کوچک ترین درگیری کرنل یا اپلیکیشن با پکت ها، مثل آب خوردن سرور های کلادفلر رو میخوابونه. اما در واقعیت کلادفلر از یه فیلترینگ خیلی قوی توی هسته لینوکس با eBPF استفاده میکنه که حتی اجازه نمیده پکت ها به لایه بالاتر از کرنل برن.
از eBPF توی اندروید برای دسترسی راحت به سخت افزار و توی شرکت هایی که ترافیک بالایی دارن مثل نتفلیکس برای مانیتورینگ شبکه استفاده میشه.
🐧 @Linuxor
🔥80👍27🗿3
اگه گوشیتون آیفونه و توی انتقال دیتا به لینوکستون مشکل دارید از LocalSend استفاده کنید :
localsend.org
پ.ن : روی اندروید هم میتونید نصبش کنید.
🐧 @Linuxor
localsend.org
پ.ن : روی اندروید هم میتونید نصبش کنید.
🐧 @Linuxor
👍34🗿3🍓2