اجرای سیستمعامل لینوکس روی رایانهی مک M1 باعث شد جزئیات بیشتری از معماری پیچیدهی این پردازندهی اپل فاش شود که برپایهی معماری آرم ساخته شده است.
Corellium شرکتی نرمافزاری است که در زمینهی طراحی راهکارهای مجازیسازی (Virtualization) تخصص دارد و بهتازگی موفق شده است سیستمعامل لینوکس را به یکی از رایانههای مک مبتنیبر پردازندهی M1 پورت کند و سپس با موفقیت، تقریبا تمامی اجزای سیستم را بهکار بیندازد. طبق گزارش خبرگزاری تامز هاردور، شرکت Corellium در فرایند پورتکردن لینوکس به مک M1، جزئیات جالبی دربارهی پردازندهی M1 اپل و معماری آن کشف کرد.
چند هفته پیش، در گزارشی اعلام شد استارتاپی با نام Corellium موفق شده است با اتکا بر روشی خاص، لینوکس را روی رایانهی مک M1 اپل اجرا کند. در آن زمان، لینوکس اجرا شد؛ اما از بسیاری از قابلیتها پشتیبانی نمیکرد و همین موضوع باعث شده بود رایانهی مک M1 مجهز به لینوکس تا حد زیادی کاربردی نباشد.
Corellium بهبودهای بیشتری روی سیستم اِعمال کرد و درنهایت، موفق شد اکثر قابلیتها (شامل وایفای) را راهاندازی کند و این یعنی اکنون عملا امکان استفاده از لینوکس روی جدیدترین مکها وجود دارد. بااینحال، کل پروژهی اجرای سیستمعاملی بهغیر از سیستمعامل پیشفرض اپل روی مکها اثر جانبی جالبی داشت و نشان داد که سیستم-روی-چیپ جدید اپل از چه جوانبی با دیگر پردازندههای ساختهشده برپایهی معماری آرم متفاوت است.
بر کسی پوشیده نیست که اپل مدتها است میکوشد با تمرکز روی هستههای اختصاصی که با استفاده از معماری آرم میسازد، در گوشیهای سری آیفون و تبلتهای سری آیپد قدرت پردازشی بسیار زیادی ارائه دهد. اپل برخلاف رقبایش، سراغ استفاده از تعداد هستهی بیشتر نرفته است؛ بلکه تلاش کرده نسلبهنسل عملکرد تراشههایش را در زمینهی پردازش وظایف تکتردی و تکهستهای تقویت کند. براساس یافتههای Corellium، افزونبر هستههای سفارشی بهنظر میرسد اپل از معماری بسیار سفارشی برای سیستم استفاده میکند.
تقریبا در تمامی سیستمهای ۶۴ بیتی مبتنیبر آرم، سیستم وقتی روشن میشود، با بهرهگیری از رابطی به نام PSCI فرمور را فرامیخوانند. بااینحال در پردازندهی M1 اپل، هستههای پردازندهی مرکزی (CPU) آدرسی را اجرا میکنند که رجیستر MMIO مشخص کرده و سپس سراغ اجرای کرنل میروند. بهعلاوه، سیستمهای اپل از کنترلری اختصاصی با عنوان Apple Interrupt Controller (موسوم به AIC) استفاده میکنند که با استانداردهای آرم سازگار نیست.
در همین حین، وقفههای تایمر (Timer Interrupts) به FIQ متصل هستند. FIQ قابلیتی مبهم در معماری سیستم اپل است که بهطورعمده روی سیستمهای ۳۲ بیتی آرم استفاده میشود؛ سیستمهایی که با لینوکس سازگار نیستند. سیستمعامل برای اینکه بتواند کاری کند پردازندههای متنوع درون رایانهی مجهز به M1 باهم تعامل برقرار کنند، باید مجموعهای از وقفههای میانپردازندهای (IPI) را ارائه دهد. IPIها پیشتر همچون IRQهای سنتی مدیریت میشدند؛ اما در پردازندهی M1، اپل از رجیسترهای هستهی پردازنده بهمنظور ارسال و شناساسایی IPIها استفاده میکند؛ زیرا IPIها متکیبر FIQ هستند.
اقدامات عجیب اپل در اینجا بهپایان نمیرسند و M1 مشخصههای بحثبرانگیز دیگری را شامل میشود. برای مثال، کنترلر وایفای و بلوتوث اپل با استفاده از پروتکلی غیراستاندارد برپایهی PCIe به سیستم-روی-چیپ متصل میشود که خوشبختانه نرمافزار مجازیسازی Corellium از آن پشتیبانی میکند.
برای پیچیدهترشدن شرایط، PCIe اپل و کنترلر یکپارچهی Synopsys DWC3 USB سراغ استفاده از سیستم اختصاصی اپل در زمینهی مدیریت دادههای ورودیخروجی حافظه (IOMMU) میروند که با نام DART شناخته میشود. افزونبراین، I2C اپل فرموری سفارشی دارد که برپایهی پروتکلی اختصاصی ساخته شده است. این پروتکل استفاده از درگاه USB Type-A را غیرممکن میکند.
استفاده از معماری سیستم اختصاصی اتفاقی جدید برای اپل نیست و این شرکت پیشتر هم سابقهی انجام چنین کاری را دارد. انجام این کار باعث میشود پورتکردن سیستمعاملهای دیگر به پلتفرمهای اپل و اجراکردن این سیستمعاملها در حالت مجازیسازیشده بسیار سختتر شود.
منبع – زومیت