m1n1

A bootloader and experimentation playground for Apple Silicon (by AsahiLinux)

M1n1 Alternatives

Similar projects and alternatives to m1n1

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better m1n1 alternative or higher similarity.

m1n1 reviews and mentions

Posts with mentions or reviews of m1n1. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-15.
  • Asahi Linux project's OpenGL support on Apple Silicon officially surpasses Apple
    2 projects | news.ycombinator.com | 15 Feb 2024
    One of the coolest things (IMO) about the entire Asahi effort, and why I'm not at all surprised that they surpassed Apple, was the dedicated effort to build bespoke developer-friendly Python tooling early in the reverse engineering process.

    https://asahilinux.org/2021/08/progress-report-august-2021/

    > Since the hypervisor is built on m1n1, it works together with Python code running on a separate host machine. Effectively, the Python host can “puppeteer” the M1 and its guest OS remotely. The hypervisor itself is partially written in Python! This allows us to have a very fast test cycle, and we can even update parts of the hypervisor itself live during guest execution, without a reboot.

    > We then started building a Python implementation of this RPC protocol and marshaling system. This implementation serves a triple purpose: it allows us to parse the DCP logs from the hypervisor to understand what macOS does, it allows us to build a prototype DCP driver entirely in Python, and it will in the future be used to automatically generate marshaling code for the Linux kernel DCP driver.

    Code here: https://github.com/AsahiLinux/m1n1/blob/main/proxyclient/m1n...

    If you watch any of Asahi Lina's streams from the time before they had working drivers, she's able to weave together complex bitflag-manipulating pipelines at the speed of thought with self-documenting code, all in Python running on the host machine, all while joking with viewers via her adorable avatar. I've never seen anything like it before. The whole workflow is a tremendous and unprecedented accomplishment by the entire Asahi team.

  • Strange (scheduling?) latency on the host when KVM guest runs something demanding
    2 projects | /r/AsahiLinux | 4 May 2023
    I wrote a m1n1 experiment to test IRQ delivery in EL1 and noticed something was weird. I already knew about that IRQ control register (3 masks IRQs entirely and is the default, that whole thing took like a day or two back when I first added M1 Pro/Max support), so I tried other values and 2 fixed it.
    2 projects | /r/AsahiLinux | 4 May 2023
    Turns out there is some issue with IRQ delivery that breaks in VM guests when a certain undocumented register is 0 (the value we were previously using), but it works with 2. No, I have no idea why or what is going on here...
  • Everything we know about the Apple Neural Engine (ANE)
    9 projects | news.ycombinator.com | 25 Mar 2023
  • Updates galore! November 2022 Progress Report
    2 projects | news.ycombinator.com | 22 Nov 2022
    What makes you say there isn't community participation? The repo for m1n1, at least, has 42 contributors according to Github[1]. There's plenty more reporting bugs and such, and their IRC channel seems relatively active.

    1: https://github.com/AsahiLinux/m1n1

  • Asahi Lina (Linux Developer VTuber) wants to write the new Apple Silicon GPU driver for Linux in Rust!
    3 projects | /r/linux | 11 Aug 2022
    That shim/stub is m1n1. It is the bootloader for Asahi Linux, but also makes it possible to talk to the hardware over USB as just described by Lina. marcan even implemented a small hypervisor in m1n1, so it can be used to run MacOS and trace how MacOS is accessing the hardware.
    3 projects | /r/linux | 11 Aug 2022
    Yes! The shim is called m1n1 and it actually is also the bootloader that Asahi Linux uses. You can run csrutil disable && nvram boot-args=-v in recovery mode from an Asahi machine and it'll go into a 5-second countdown on boot during which you can connect to the proxy via USB! Then you can run Python experiment scripts, use an interactive shell, or just load a Linux kernel to test from the host.
  • rand() may call malloc()
    2 projects | news.ycombinator.com | 8 Apr 2022
    The solution isn't to stop using rand(). The solution is to stop using newlib.

    If you're doing your own custom memory management like this, you shouldn't even have a malloc implementation at all. newlib is too bloated for even your use case. At this point, chances are you're using a trivial subset of the C library and it'd be easy to roll your own. You can import bits and pieces from other projects (I personally sometimes copy and paste bits from PDClib for this). In such a tight embedded project, chances are you don't even have threads; why even pull in that reentrancy code?

    Freestanding C code with no standard library isn't scary. If you need an example, look at what we do for m1n1:

    https://github.com/AsahiLinux/m1n1/tree/main/src

  • The first Asahi Linux Alpha Release is here
    5 projects | news.ycombinator.com | 18 Mar 2022
    correct, i forgot some context, apple allowed raw images to be used now, this is what i described being used in the cpu manufacturing process for testing units. this was not always an option. i meant this pseudo-feature being made public, not asahi which has been public and apple has been aware of for over a year

    see here:

    https://github.com/AsahiLinux/m1n1/commit/0d4fb00ceb8a14f083...

    https://news.ycombinator.com/item?id=29591578

  • Apple Helps Asahi Linux
    2 projects | news.ycombinator.com | 17 Dec 2021
    The changes are in macOS’s bootloader. Previously, the bootloader was only designed to load a macOS kernel executable, which was stored on disk as a Mach object file with some particular constraints. The Asahi project had to use a rather ugly linker script to generate an executable that “looks like like” a macOS kernel but is actually a first-stage Linux bootloader [1].

    In macOS 12.1, Apple engineers changed the format of the kernel image, which broke the Asahi install process. However, they also added a “raw image mode” which allows the bootloader to load things that don’t look like macOS kernels — it’s an officially-supported boot flow for the Asahi project to use going forwards without fear of macOS updates breaking it again. (Plus, it makes that linker script much simpler [2]).

    [1]: https://github.com/AsahiLinux/m1n1/blob/84acf60c24b8c9e28e60...

  • A note from our sponsor - InfluxDB
    www.influxdata.com | 28 Mar 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →

Stats

Basic m1n1 repo stats
17
3,326
9.2
about 2 months ago

AsahiLinux/m1n1 is an open source project licensed under MIT License which is an OSI approved license.

The primary programming language of m1n1 is Python.

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com