می خوام یکسری کارها که همیشه تو لیست بوده رو تیک بزنم، بخصوص ویدئوها رو. این قسمت می رم سراغ گپ در مورد بی اس دی ها و نصب یکیشون.
داستان بی اس دی خیلی جالب و آموزنده است: یک یونیکس آزاد حتی بهتر از لینوکس که مدت ها قبل از لینوکس ظاهر شد ولی به دلایل متنوعی از جمله شکایت AT&T و جامعه پشتش، میدون رو به لینوکس واگذار کرد. هرچند که الان در سرورهای زیادی روی اینترنت شامل واتس اپ و نتفلیکس و محصولات اپل و پلی استیشن و جونیپر و غیره و غیره حضوری پر رنگ داره. توی این قسمت نگاهی به این قصه ها می کنم و با کمی توضیح یه بی اس دی نصب می کنم و روش بسته اضافه می کنم.
یکی از مشکلات دائمی امنیتی که دائما – بخصوص توی پروژه های مهم – اسمش رو می شنویم، باگ ها و حمله های اورفلو است. چه استک اورفلو و چه بافراورفلو. در این ویدئوی دو قسمتی، اول نگاهی به مفهوم کلی و معماری ای می کنم که باعث این مشکلات می شه و بعد یک نمونه استک اورفلوی ساده رو نشون می دم و توی ویدئوی دوم سراغ نوشتن یه برنامه کوتاه دارای مشکل بافراورفلویی می رم که به کاربر اجازه می ده بدون داشتن رمز عبور، وارد یه سیستم بشه و با دیباگر گنو، وضعیت پیش اومدنش رو در سطح کدهای حافظه بررسی می کنم. خوش بگذره و حواستون باشه که یکی از بهترین روش های یاد گیری یه چیز، تکرار کردنش است.
این دو وئدیو کمی سطح بالاتر هستن و اگر دیدین و همه اش رو متوجه نشدین، می تونن راهنمایی باشن برای اینکه چه چیزهایی رو دنبال کنین و بخونین.
این کاری بود که وقتی من کردم کلی ذوق داشتم. با اولین ADSLی که گرفتیم: روی یه لینوکس وب سرور راه انداختم و بعد با تنظیمات روتر و دینامیک دی ان اس کاری کردم که وب سرور من از همه دنیا قابل دیدن باشه. تقریبا ۳ سال قبل یکی ازم خواست این رو توضیح بدم و … الان بالاخره به قدیمی ترین ایمیل اینباکسم پاسخ میدم و اگر براتون جالبه و نکردین، پیشنهاد می کنم شما هم سراغش برین که کلی هیجان داره (:
اگر دوست داشتین این مطلب رو به شکل ویدئویی توی آپارات ببینین.
توی این روزهای بیکاری نسبی، یه ایده خوب زنده کردن کامپیوترهای قدیمی است. اگر سیستمی دارین که فکر می کنین دیگه به درد نمی خوره و داره خاک می خوره، میشه ازش چیزهای بانمکی ساخت. از یه ترمینال مخصوص کارهای ادمینی یا یه سرور خونگی ساده گرفته تا دستگاهی مخصوص تمرین کردن لینوکس یا یاد گرفتن پایتون تا صفحه ای که اطلاعات رو نشون می ده تا از همه بهتر: یه ور رفتن به یه لینوکس جدید برای سرگرمی توی یه بعد از ظهر.
در صورتی که می خواین سراغ این مساله برین دو تا چیز لازم دارین: یه کامپیوتر نسبتا قدیمی که داره خاک می خوره و یه لینوکس جدید ولی جمع و جور و بامزه. اولی از شما و این هم پیشنهادهای من برای دومی ها:
لوبونتو
همینکه از «یه لینوکس سبک برای یه کامپیوتر قدیمی» حرف بزنین، خیلی ها به لوبونتو اشاره می کنن. لینوکسی مشابه اوبونتو ولی با میز کاری بسیار سبک تر. اما در واقع لوبونتو برای کارکرد خوب نیاز به حدود ۱ گیگ رم و یه سی پی یوی بهتر از پنتیوم ۲ داره که شاید بالاتر از سطح کامپیوتر قدیمی شما باشه. اما در عوض با لوبونتو به یه لینوکس کامل میرسین، در واقع برای من لوبونتو یکی از گزینه های روزمره است و چیز فان خاصی نیست. فقط نسبت به اوبونتو کمی سبکتره.
پورتئوس
دلیل حضور پورتئوس در اینجا به طور خاص اینه که مبتنی بر گنو/لینوکس اسلکور است و تجربه متفاوتی به شما می ده و چیزهای جدیدی یاد مگیرین. پورتئوس می تونه از روی رم اجرا بشه و طراحی شده که کاملا پرتابل باشه و از روی یو اس بی ران بشه. این گنو/لینوکس ۳۰۰ مگی به شما اجازه می ده بین سینامون و ماته و خیلی چیزهای دیگه انتخاب کنین. نکته باحالتر اینه که یه نسخه مخصوص کیوسک هم داره که باهاش می تونین دسکتاپ هایی رو بسازین که مثلا توی یه فروشگاه هر کسی می تونه باهاش تعامل کنه یا چیزهایی که می خواین رو نشون بده بدون اینکه درگیر امن کردنش بشین.
پاپی لینوکس
حالا که داریم کوچیکتر و سبکتر می شیم، وقتشه از پاپی لینوکس بگیم. یه گنو لینوکس که از ۲۰۰۳ با ماست و توی ۳۰۰ مگ یا کمتر اجازه می ده هر کار مرسومی رو بکنیم. با دسکتاپ قشنگ و بسیار آسون و امکان ریمستر کردن راحت. پاپی مدعی است که بر اساس نیازها و ابزارهای خودش ساخته شده و یک توزیع مثل بقیه توزیع ها نیست بلکه یه ایده و ترکیب است که می تونه رو بقیه توزیع ها پیاده بشه. در نتیجه شما می تونین پاپی لینوکسی بر اساس مثلا ابوونتو یا اسلکور یا رزبین داشته باشین و از پکیج های اون توزیع ها استفاده کنین. همچنین می تونین بر اساس یه پاپی، ریمستر بسازین و توزیع خودتون رو داشته باشین. ایده ای که خیلی ها دوستش دارن. راستش رو ب خواین پاپی همیشه از توزیع های مورد علاقه و مورد تست و حتی خیلی وقت ها مورد استفاده من بوده [و هست!].
تاینی کور لینوکس
از اسمش هم معلومه که اولا کوچیه و ثانیا فقط کور. شما توی تاینی کور با یه توزیع گنو/لینوکس مرسوم روبرو نیستین بلکه با یه حداقل ۱۱ مگی روبرو هستین که می تونین خودتون چیزهای دیگه رو بهش اضافه کنین. یا اگر بخواین جلوتر شروع کنین، با یه کورپلاس ۱۰۶ مگی که کارت شبکه وایرلس شما رو هم می شناسه و گزینههایی برای مدیر پنجره و غیره هم داره. همونطور که گفتم یاد گرفتن تاینی کور کمی متفاوت است. هم به خاطر کوچیکی هم به خاطر فلسفه خاصش که خودش رو روی رم لود می کنه و بعد اپلکیشن ها رو از دیسک می خونه و تو رم لود می کنه و اصولا ایده اش به نصب شدن نیست. از اینجا بیشتر ور برین
البته جا داره از چیزهایی مثل DSL هم یاد کنیم که متاسفانه مدتها است توسعه فعال نداره یا از LFS که بیشتر برای یاد گرفتن اسفاده می شه. اما دلیل انتخاب ۴ توزیع بالا این بوده که در سطوح مختلف می تونن واقعا یه کامپیوتر سال ها خاموش رو نه فقط روشن که به یه ابزار مورد استفاده تبدیل کنن.
یکی از آدمهای مشهور دنیای رباتسازی به نام Gui Cavalcanti تماسی از یه متخصص پزشکی دریافت کرده؛ با یک سوال واضح: آیا می تونیم تجهیزات پزشکی مورد نیاز وضعیت کرونایی رو به شکل آزاد طراحی و اجرا کنیم؟
مساله اینه که ما با یکی از واگیریهای بزرگ و سریع روبرو هستیم و تقریبا هر ۲ یا ۳ روز، میزان مبتلایان دوبرابر میشن. با این روند در چند ماه اکثر جمعیت کره زمین درگیر خواهند بود و طبق آمار بین ۱۵ تا ۲۰ درصد کسانی که مبتلا میشن نیازمند کمکهای بیمارستانی شامل سیستمهای تنفس مصنوعی هستن و اگر گسترش با همین سرعت ادامه پیدا کنه، ما خیلی زود تجهیزات بیمارستانی و بخصوص دستگاههای تنفسی کم خواهیم آورد. درخواست و هدف این گروه اینه که متخصصین نرم افزار، سخت افزار، پرینت سه بعدی، پزشکها و هکرها و سازندهها رو دور هم جمع کنه تا نمونههای آزادی از دستگاههای مورد نیاز طراحی کنن، نمونههایی با ایده نرم افزار آزاد که نتیجه اش طرحهایی بشه که به هر کس، هر شرکت و هر کشور و سازمانی اجازه بده با حداقل امکانات دستگاهها رو تولید کنه.
یکی از اهداف اصلی رسیدن به یک دستگاه تنفس مصنوعی است. دستگاهی هوا رو مرطوب کنه، با اکسیژن مخلوط کنه و بعد اونو با فشار مناسب به ریههای بیمار پمپ کنه. در صورتی که نقشه آزاد این سیستم ایجاد بشه، میشه اونو به کارخونه ها و کارگاهی مختلف داد تا شروع به ساختش کنن. حتی اگر کارخونهها سراغش نرن، افراد داوطلب میتونن با استفاده از تجهیزاتی که هر جایی پیدا می شه (مثلا آردوینو) اونو بسازن و استفاده کنن.
البته در کنار این، طرح های دیگه هم در حال پیشرفت هستن. مثلا سیستمهای بازیابی ماسکهای ان۹۵ یا طرحهایی برای ساخت ماسکهای ان۹۵ در خانه یا ساخت سیستمهای فشار معکوس برای اتاقهای قرنطینه (اتاق قرنطینه فشار هوای پایینتری داره تا هواش رو به بیرون جریان پیدا نکنه). با داشتن این سیستمها راحتتر می شه باشگاههای ورزشی یا دفترهای کار رو به اتاق های قرنطینه تبدیل کرد.
پروژههای متنوعی هم شروع شدن. مثلا این این پروژه روی گیت هاب طرحی است که اجازه می ده شما یه سیستم فشار هوای دائم رو به سادگی به یک سیستم تنفس مصنوعی خانگی تبدیل کنین که البته به خاطر نداشتن مجوزهای FDA فعلا قابل استفاده بیمارستانی نیست و معلومه که برای تبدیل شدن به چیزی عملیاتی و عمومی نیاز به کار بیشتر داره ولی قدمهای اول مثبتی است.
خلاصه که برنامه نویسها و هکرها و سازنده ها هم بیکار ننشستن و نشون می دن که ایدههای آزادی نرم افزار چقدر می تونه برای جوامع کارا باشه. حتی می شه امیدوار بود که بعد از عبور از این شرایط بحران هم ایده ادامه پیدا کنه و انحصار تولید ابزارهایی که به سلامت و نیازهای عمومی جوامع وابسته هستن از انحصار شرکت های بزرگ بیرون بیاد.
اصلیترین روش کنترل کرونا در کشورهایی که تونستن کنترلش کنن، حداقل کردن رفت و آمد و تجمع و قرنطینه بود و هنوزم اصلیترین توصیه عمومی «حفظ فاصله اجتماعی» یا چنین چیزی است. یعنی تو خونه بشینیم و تماس ها رو حداقل کنیم؛ احتمالا اگر از همون اول اصطلاح شکستن زنجیره انتقال تبلیغ و اجرا میشد، الان یکی از بدترین کشورها از نظر کرونا نبودیم.
بخشی از این فاصله گرفتن اجتماعی به «کار در خانه» و home office یا همون دورکاری است و لازمه این تو خونه نشستن و دورکاری، داشتن اینترنت. هر کسی که توی خونه میشینه برای اتصال دائمش به شرکت و کار کردن نیاز به انواع ارتباط داره. از VPNی که کار می کنه تا پهنای باند کافی برای تماس تصویری و انتقال فایل و غیره. تازه احتمالا بخش بزرگی از زمانی که کار نمی کنیم رو هم به دیدن فیلم و آموزش و انواع استریمها اختصاص دادهایم. چه از داخلیها چه از خارجی های سانسور شده.
این وضعیت مخصوص ایران هم نیست. تقریبا همه دنیای فنی همین شده و دائما میبینیم که شرکتها دارن پهنای باند رو داوطلبانه افزایش میدن یا محدودیت حجم رو بر میدارن. مثلا کامکست گفته پهنای باند سرویسهای بسیار ارزونش رو اونقدر بالا برده که جزو اینترنت باندپهن حساب می شه (در مقیاس جهانی، نه این اصطلاح پرسرعت مسخره ما) یا ورزیون گفته ۵۰۰ میلیون دلار در شبکه ۵جی سرمایه اضافه میکنه تا آماده افزایش درخواست باشه. نمونههای دیگه هم هستن از جمله هند که فایبرنت بدون هیچ هزینه اضافه، سرعت همه رو به ۳۰۰ مگ افزایش داده. در ایران هم گفته شده می تونیم ۱۰۰گیگ اینترنت بگیریم که البته عجایب و پیچیدگیهاش رو در خیلی سرویس دهنده ها داره و برای کاربرهای حرفه ای بیشتر ضرر است چون سرعت ها خیلی کمتر شدن.
دلیل اینها از یکطرف فشار دولت ها و سازمان های جهانی به کار کردن در خانه است و از اونطرف وابسته به اینکه شرکت های اینرتنتی نمی خوان با محدود کردن استفاده از اینترنت در شرایط بحران یا افزایش هزینه آدمها، بدنام بشن. اتفاقی که قبلا یه بار برای وریزون افتاد.
اما مساله جالب اینجاست که چرا این اتفاق فقط در شرایط بحران باید بیافته؟ و چرا ایران هنوز درست انجامش نداده؟ در سطح جهانی می تونیم بپرسیم که اگر سیستم داره با سرعت بالاتر برای همه کار می کنه، چرا در مواقع عادی کندش می کنن؟ فقط برای پول بیشتر؟ منطقیه؟ خب یه اشتراک ماهانه می تونه هم شرکت رو بچرخونه و هم به همه اینترنت درست بده. اما در سطح ایران هم حرف های جالبی هست. اولا باید خواست که کل وی پی ان ها درست کار کنن. وی پی ان در جهان ابزار اتصال آدم ها به شرکت ها و شبکه هاشون است و الان تو ایران هم باید همین کارکرد رو داشته باشه. ثانیا بالا رفتن سرعت اینترنت باعث امکان کار درستتر و ضربه کمتر به شرکت ها و کارمندهاش می شه. چرا نباید یه سرعت حداقل گذاشت و از همه شرکت ها خواست که بهش پایبند باشن؟ اینطوری شاید حداقل این شرایط بحران بتونه قدمی باشه به سمت درک اینکه اینترنت به جای یه ابزار فساد و نیازمند سانسور و سرکوب حکومت، یه ابزار ارتباطی واقعی در جهان است و امنیت و پرایوسی و سرعت خوب توش، از پارامترهای مهم یکی از زیرساختهای مهم یک جامعه. فرض کنین ما الان یه اینترنت آزاد و باز داشتیم که سرعت و حجمش دردسر نبود و می تونستیم با وی پی ان های درست و درمون به شرکت ها وصل بشیم و کار کنیم و زمان تفریح رو هم از حجم عظیم دیتای یوتوب و استریم های دیگه بهره مند باشیم، واقعا چقدر زندگی فرق می کرد؟ یادمون باشه که اینترنت درست و درمون یکی از حقوق بشر است و نداشتنش در مواقع بحران، بخشی از بحران.
پارسال اعلام کردم که به مناسب سیل، یه دوره کامل بلاکچین و بیت کوین بر اساس دوره ای که توی پرینستون تدریس می شه برگزار می کنم و از دوستان خواستم ۱۰ میلیون تومن به مناسبتش کمک مالی کنن که صد در صدش برسه به سیل زدهها. کمک دوستان و شرکت های مختلف به ۱۴ میلیون رسید و صد در صدش رو دادیم به سیل زده ها و دوره لایو استریم و همزمان ضبط شد که در نهایت به حدود ۵۵۰ دقیقه ویدئوی خالص رسیدیم.
نکته مهم اینه که این دوره فنی است و با جزییات دقیق برای کسانی که دوست دارن دقیقا ماجرا رو درک کنن. درسته که این دوره درباره خرید و فروش و ماین و هم کمی حرف می زنه ولی کارش پول در آوردن نیست بلکه یاد گرفتن تکنولوژی است. اینجا به الگوریتم ها نگاه می کنیم، سورس رو می خونیم و به تکنولوژی پشت این ماجرا میپردازیم و در نهایت هم یک با بازنویسی یک بلاکچین ساده، مفاهیم رو مرور می کنیم.
ویدئوها آزاد هستن و هر جور بازنشرشون با ذکر منبع کاملا آزاده و تشویق شده (: همچنین یک نسخه آزاد از کتاب Bitcoin and Cryptocurrency Technologies از اینجا قابل دانلود است و اسلایدهای استفاده شده در درس هم اینجاست و معلومه که استفاده از اینها هم آزاد است، با ذکر منبع.
امیدوارم به درد بخوره و خوش باشین و خندون و همیشه در حال یاد گرفتن.