Як триває розробка Asahi Linux: проєкту для запуску Linux на Apple M1

2 хв. читання

Розробник Гектор Мартін розповів про прогрес у розробці Asahi Linux — це проєкт для перенесення Linux на пристрої Apple з чипами M1.

Виявилось, що Asahi Linux вже цілком працює на пристроях M1, але з певними обмеженнями — наприклад, поки що бракує прискорення графіки. Окрім цього, Мартін розповів про складнощі й проблеми, що виникли під час зворотного проєктування.

Розробник не намагався розібрати драйвери macOS, а натомість створив гіпервізор між macOS і апаратною частиною M1. В такий спосіб він вирішив прозоро перехопити доступ до апаратного забезпечення. Керувати гіпервізором можна через код Python, що запускається на окремій машині.

Гіпервізор m1n1 базується на проєкті mini, який Гектор Мартін раніше створив для Nintendo Wii. Він підтримує завантаження стороннього коду та дозволяє керувати пристроєм в режимі реального часу зі свого комп'ютера.

Одна з найбільших проблем полягає в тому, що Apple додала співпроцесор до контролера дисплея (DCP). Мартін пише, що Apple «взяла половину свого драйвера macOS C++, перемістила її в DCP і створила інтерфейс виклику віддалених процедур, щоб кожна половина могла викликати методи об'єктів C++ на іншому процесорі!».

Зрештою, завдяки гіпервізору команді вдалося реалізувати графіку без розривів: з подвійною буферизацією, апаратним прискоренням курсора, масштабуванням тощо.

Але з'ясувалось, що інтерфейс DCP нестабільний і змінюється в кожній версії macOS. Тож Asahi Linux буде підтримувати лише певні «золоті» версії прошивки (та користувачі все одно зможуть оновлювати свій macOS).

asahi-bootpicker

Перша Asahi Linux буде підтримувати прошивку з macOS 12 Monterey, зараз проєкт на стадії попереднього перегляду. Мартін пише, що Asahi Linux вже можна використовувати для розробки, хоча вона працює недосконало і бракує прискорення графічного інтерфейсу. Наступним кроком буде робота з драйвером ядра графічного процесора, каже розробник. Детальніше про перенесення Linux на M1 можна прочитати на сайті проєкту.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 1.6K
Приєднався: 1 рік тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід