FUZIX یک سیستم عامل قدیمی دانشگاهی و نسخهای کلون شده از یونیکس است که برای میکروپروسسور 8 بیتی Zilog Z80 نوشته شده است. این سیستم عامل در سال 2014 توسط آقای Alan Cox بهصورت عمومی منتشر شد. آقای Alan Cox که یکی از توسعه دهندگان پرکار هسته لینوکس بود، در سال 2013 از جمع توسعه دهندگان لینوکس خارج شد. وی این سیستم عامل را برای کسانی که به دنبال نوستالژی و روزهای خوب قدیم هستند، توصیه میکند. روزهایی که تمام کدها روی یک فلاپی جا میشد!
سیستم عامل FUZIX برای معماریهای دیگر، مثل 6502، 68000 و MSP430 نیز پورت شد. آقای دیوید گیون (David Given) که قبلاً این سیستم عامل را برای MSP430 و ESP8266 پورت کرده بودند، هم اکنون این سیستم عامل را برای رزبری پای پیکو با میکروکنترلر RP2040 هم پورت کردند! یعنی شما میتوانید سیستم عامل یونیکس را بر روی یک میکروکنترلر 4 دلاری اجرا کنید!
کامپایل کردن و اجرای FUZIX از منبع (Building from source)
سیستم عامل FUZIX که بر روی میکروکنترلر RP4020 اجرا میشود، نوعی یونیکس است که رابط کنسول آن پورت سریال و USART0 میکروکنترلر است. همچنین FUZIX از SD کارت پشتیبانی کرده و هم از فایلهای سیستمی و هم ناحیه swap استفاده میکند. هر چند ایمیج باینری آن به صورت آماده برای دانلود وجود دارد، اما میتوانید خودتان هم سورس آن را کامپایل کنید.
برای این کار، باید ابتدا تولچین رزبری پای پیکو (Pico) و SDK های C/C++ را بر روی سیستم خود داشته باشید.
سپس به کمک گیت، نسخه پورت شده سیستم عامل FUZIX برای رزبری پای پیکو را دریافت کنید.
Shell
1
2
3
$git clonehttps://github.com/davidgiven/FUZIX.git
$cdFUZIX
$git checkout rpipico
حال، دایرکتوری را به platform-port تغییر دهید:
Shell
1
$cdKernel/platform-rpipico/
اولین خط فایل Makefile را ویرایش کرده و مسیر pico-sdk را وارد کنید. برای بیلد کردن پروژه برای رزبری پای پیکو، باید فایل pico_setup.sh را اجرا کرده و یا طبق دستورالعملهای وب سایت رزبری پای عمل کرده و مسیر SDK را در این متغیر ذخیره کنید.
Shell
1
export PICO_SDK_PATH=/home/pi/pico/pico-sdk
بعد از این مرحله، شما هم میتوانید FUZIX UF2 و هم فایلهای سیستمی مربوط به روت را بیلد کنید.
Shell
1
2
$makeworld-j
$./update-flash.sh
اگر همه چیز درست پیش رفته باشد، شما باید یک فایل UF2 در مسیر build/fuzix.uf2 و یک فایل ایمیج به نام filesystem.img در مسیر فعلی خود داشته باشید.
حالا میتوانید به صورت معمولی فایل UF2 را بر روی رزبری پای پیکو Pico اجرا کنید.
کابل میکرو USB را به کامپیوتر متصل کنید و هنگامی که میخواهید طرف دیگر را به رزبری پای پیکو وصل کنید، دکمه BOOTSEL را نگه دارید. وقتی برد به کامپیوتر متصل شد، دکمه را رها کنید.
حافظه رزبری پای با نام RPI-RP2 باید بر روی دسکتاپ شما ظاهر شود. فایل UF2 را بر روی آن ذخیره کنید. بعد از این کار، حافظه به طور خودکار از کامپیوتر شما جدا شده و رزبری پای پیکو شما پس از ریستارت، سیستم عامل Unix را اجرا میکند. اما متأسفانه بدون فایل سیستم قادر به اجرای هیچ کاری نمیباشد.
ساخت SD کارت بوتیبل
فایل ایمیج filesystem.img که بیلد کردیم، قابل بوت شدن (Bootable) نیست. از طرفی، متأسفانه برای ساخت یک دیسک بوتیبیل برای رزبری پای پیکو، همانند نسخههای قبلی شما نمیتوانید به راحتی با نرم افزارهایی مثل Etcher و… این کار را انجام دهید. برای ساخت ایمیج بوتیبل، شما باید مراحل بعدی را نیز انجام بدهید. ابزارهای معرفی شده برای لینوکس هستند، اما در ویندوز و مک نیز تقریباً با روشی مشابه میتوانید همین مسیر را ادامه دهید.
فایل سیستم ما تنها 34 مگابایت حجم دارد، اما SD CARD های موجود، معمولاً بالای 2 گیگابایت حافظه دارند، که البته موضوع مهمی هم نیست.
SD کارت را درون رم ریدر قرار داده و آن را به کامپیوتر و یا رزبری پای (نسخه کامپیوتر) متصل کنید. ما قرار است یک جدول بر روی آن بسازیم که دو پارتیشن برای ما ایجاد کند. 2 مگابایت برای ناحیه swap و 32 مگابایت برای root سیستم عامل (فایل filesystem.img) در نظر میگیریم.
بعد از اینکه SD کارت را متصل کردید، میتوانید با دستور lsblk از طریق کامندلاین آن را مشاهده کنید. اگر حافظه شما خالی و بدون پارتیشن باشد، آن را بهصورت /dev/sda خواهید دید.
Shell
1
2
3
4
5
6
7
$lsblk
NAME MAJ:MIN RMSIZE RO TYPEMOUNTPOINT
sda8:013.7G0disk
mmcblk0179:0014.9G0disk
├─mmcblk0p1179:10256M0part/boot
└─mmcblk0p2179:2014.6G0part/
$
اما اگر کارت شما از قبل فرمت شده و آماده باشد، خروجی شبیه به زیر را خواهید دید.
Shell
1
2
3
4
5
6
7
8
$lsblk
NAME MAJ:MIN RMSIZE RO TYPEMOUNTPOINT
sda8:013.7G0disk
└─sda18:113.7G0part/media/pi/USB
mmcblk0179:0014.9G0disk
├─mmcblk0p1179:10256M0part/boot
└─mmcblk0p2179:2014.6G0part/
$
در خروجی بالا، حافظه ما بهصورت FAT و از نوع MBR فرمت شده و نام آن “USB” است. کامپیوتر شما آن را بهصورت اتوماتیک در /media/pi/USB قرار داده یا به اصطلاح mount کرده است.
اگر حافظه شما mount شده، باید با دستور زیر آن را unmount کنید:
Shell
1
$umount/dev/sda1
حال، با دستور lsblk خروجی زیر را خوهید دید:
Shell
1
2
3
4
5
6
7
8
$lsblk
NAME MAJ:MIN RMSIZE RO TYPEMOUNTPOINT
sda8:013.7G0disk
└─sda18:113.7G0part
mmcblk0179:0014.9G0disk
├─mmcblk0p1179:10256M0part/boot
└─mmcblk0p2179:2014.6G0part/
$
با پاک کردن بیت صفرم (شروع) حافظه، شما میتوانید جدول پارتیشن بندی آن را از بین ببرید.
نکته مهم: در استفاده از این دستور کاملاً دقت کنید، زیرا ممکن است اطلاعات دیگر خود را به اشتباه حذف کنید.
Shell
1
$sudo ddif=/dev/zero of=/dev/sda bs=512count=1
اگر مجدداً دستور lsblk را اجرا کنید، خواهید دید که پارتیشن شما از بین رفته است.
در مرحله بعد با استفاده از دستور fdisk یک جدول پارتیشن جدید ایجاد میکنیم.
Shell
1
$sudo fdisk/dev/sda
در اینجا حرف “o” را وارد کنید تا یک DOS disklabel ایجاد شود.
Shell
1
2
Command(mforhelp):o
CreatedanewDOS disklabel with disk identifier0x6e8481a2.
سپس با وارد کردن “n” یک پارتیشن جدید ایجاد میکنیم.
Shell
1
2
3
4
5
6
7
8
9
Command(mforhelp):n
Partition type
pprimary(0primary,0extended,4free)
eextended(container forlogical partitions)
Select(defaultp):p
Partition number(1-4,default1):1
First sector(2048-7744511,default2048):2048
Last sector,+/-sectorsor+/-size{K,M,G,T,P}(2048-7744511,default7744511):+2M
ممکن است در این مرحله پیامی مبنی بر وجود امضا (contains a vfat signature) به شما نمایش داده شده و از شما پرسیده شود که این امضا پاک شود یا خیر. در این صورت شما حرف “Y” را تایپ کنید.
در مرحله بعدی، نوع پارتیشن “7F“ تنظیم میکنیم.
Shell
1
2
3
4
Command(mforhelp):t
Selected partition1
Hex code(typeLtolist all codes):7F
Changed typeof partition'Linux'to'unknown'.
ناحیه swap سیستم عامل FUZIX ایجاد گردید. حال، باید یک پارتیشن 32 مگابایتی برای فایل سیستم ایجاد کنیم.
Shell
1
2
3
4
5
6
7
8
9
10
Command(mforhelp):n
Partition type
pprimary(1primary,0extended,3free)
eextended(container forlogical partitions)
Select(defaultp):p
Partition number(2-4,default2):2
First sector(6144-7744511,default6144):6144
Last sector,+/-sectorsor+/-size{K,M,G,T,P}(6144-7744511,default7744511):+32M
حال، برای ذخیره جدول پارتیشن بندی، “w” را وارد کنید.
در نهایت، فایل سیستم را در پارتیشن دوم کپی میکنیم.
Shell
1
2
3
4
5
$sudo ddif=filesystem.imgof=/dev/sda2
65535+0records in
65535+0records out
33553920bytes(34MB,32MiB)copied,14.1064s,2.4MB/s
$
حالا میتوانید SD کارت را eject کنید.
سیم کشی برد بورد
اگر از رزبری پای استفاده میکنید، USART رزبری پای را مطابق شکل زیر به رزبری پای پیکو متصل کنید.
اتصال رزبری پای به پیکو و SD کارت
اگر برد رزبری پای ندارید، میتوانید به کمک ماژولهای USB2TTL نیز این کار را انجام دهید.
اتصال به FUZIX با ماژول usb به TTL (سریال)
نحوه سیم کشی SD کارت به رزبری پای پیکو نیز بهصورت زیر است:
Pico
RP2040
SD Card
3V3 (OUT)
—
+3.3V
Pin 16
GP12 (SPI1 RX)
DO (MISO)
Pin 17
GP13 (SPI1 CSn)
CS
Pin 18
GND
GND
Pin 19
GP14 (SPI1 SCK)
SCK
Pin 20
GP15 (SPI1 TX)
DI (MOSI)
پس از اینکه همه سیم کشیها را به دقت انجام دادید، کارت حافظه را نیز به پیکو متصل کنید. بعد از اینکه منبع تغذیه نیز متصل شد، سیستم عامل FUZIX نیز بوت خواهد شد.
اتصال به سیستم عامل FUZIX
اگر از رزبری پای استفاده میکنید، ابتدا باید سریال USART را فعال کنید.
Shell
1
$sudo raspi-config
از طریق منوی
Interfacing Options → Serial
اگر پیام
“Would you like a login shell to be accessible over serial?”
را مشاهده کردید، “No” و اگر پیام
“Would you like the serial port hardware to be enabled?”
ظاهر شد، “Yes” را بزنید.
در هنگام خروج از تنظیمات، از شما برای راه اندازی مجدد رزبری پای سؤال میشود، با تأیید کردن آن، رزبری پای ریستارت شده و پورت سریال فعال میشود. حال میتوانید با دستور minicom به سیستم عامل FUZIX متصل شوید:
Shell
1
2
$sudo apt install minicom
$minicom-b115200-o-D/dev/serial0
به طور مشابه میتوانید بر روی سیستم عاملهای گنو/لینوکس دیگر، ویندوز و مک نیز از دستوراتی مثل minicom یا screen و… استفاده کنید.
بعد از اتصال به سیستم عامل FUZIX شما خروجی شبیه به زیر را دریافت خواهید کرد:
اگر هیچ چیزی مشاهده نکردید، کابل USB را قطع و مجدداً متصل کنید تا FUZIX ریستارت شود.
میتوانید با نام کاربری “root” بدون پسورد وارد شوید. تاریخ و ساعت درست را در سیستم عاملتان تنظیم کنید.
با وجود مشکلاتی که در پورت کردن سیستم عامل FUZIX وجود دارد، اما هم اکنون یکی از سیستم عامل های رسمی رزبری پای پیکو است.
در فروم های رزبری پای، در برخی سرور های غیر رسمی و صفحه بازخوردها در گیت هاب افراد بسیار زیادی در این زمینه فعال هستند.
همچنین مستندات مربوطه را میتوانید در این صفحه مطالعه کنید. اگر آدرس این صفحه را گم کردید، میتوانید دکمه BOOTSEL را نگه داشته و رزبری پای پیکو را از طریق USB به سیستم خود متصل کنید، و فایل INDEX.HTM را باز کنید تا شما را به این صفحه هدایت کند!
این رزبری پای جدیده رو ندارم ولی اون قسمت مطلبتون که برای فعال کردن یوزارت رزبری پای بود خییلی حال کردم. تا حالا تو منو raspi-config نرفته بودم. خیییلی باحاله. من همش با ادیتور نانو فایل های کانفیگ رو تغییر میدادم.
خسته نباشید.
سلام بسیار عالی هرچند تجربه ای تو این مورد ندارم اما بسیار لذت بخشه متشکر از زحمتتون
اوایل مقاله هم به سلطان68000اشاره کردید که برای موتورولا بود و باوجود بینظیر بودنش قربانی تبلیغات و تفکر اپل شد روحش شاد یادش گرامی ..
ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموتهای درب بازکن تا ریموتهای دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی میکنند و آنهم ارسال اطلاعات بهصورت بیسیم است....
امنیت همیشه و در همهی اعصار، مقولهی مهم و قابلتوجه ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموتهای کنترل خواهیم پرداخت....
بسیار جالب بود و انصافا هم خیلی خوب و ساده توضیح دادید، من که مشتاق شدم انجام بدم. فقط حیف که این مدل رزبری پای رو ندارم. RP2040 تو ایران اومده؟
درود بر شما، بله دوست عزیز، اگر در سامانه آی سی سیسوگ جستجو کنید، آن را پیدا خواهید کرد:
https://isee.sisoog.com
سلام خدمت شما
Zilog Z80 یک میکروپروسسور است نه میکروکنترل. لطفا تصحیح کنین
ممنون از مطالب جالبتون
سلام دوست عزیز
متشکرم برای تذکر و دقتتون، اصلاح میکنیم
پورت کردن سیستم عامل فوزیکس هم جالب بود. ممنون.
خواهش میکنم.
این رزبری پای جدیده رو ندارم ولی اون قسمت مطلبتون که برای فعال کردن یوزارت رزبری پای بود خییلی حال کردم. تا حالا تو منو raspi-config نرفته بودم. خیییلی باحاله. من همش با ادیتور نانو فایل های کانفیگ رو تغییر میدادم.
خسته نباشید.
سلام ممنون از شما
سلام بسیار عالی هرچند تجربه ای تو این مورد ندارم اما بسیار لذت بخشه متشکر از زحمتتون
اوایل مقاله هم به سلطان68000اشاره کردید که برای موتورولا بود و باوجود بینظیر بودنش قربانی تبلیغات و تفکر اپل شد روحش شاد یادش گرامی ..
سلام خواهش میکنم دوست عزیز