mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-22 09:21:57 -05:00
Documentation: Promote aarch64 to more supported in the docs
This commit is contained in:
parent
ee891462b8
commit
89c655529c
4 changed files with 20 additions and 14 deletions
|
@ -22,11 +22,23 @@ cp /somewhere/on/your/system/file.txt mnt/home/anon
|
|||
|
||||
This will configure your keymap to German (`de`) instead of US English. See [`Base/res/keymaps/`](../Base/res/keymaps/) for a full list. Note that the `keymap` program itself will also modify the `/etc/Keyboard.ini` config file, but this way the change will persist across image rebuilds.
|
||||
|
||||
## Selecting an architecture
|
||||
|
||||
By default, the build script will build for the architecture of your host system.
|
||||
If you want to build for a different architecture, you can specify it with the `SERENITY_ARCH` environment variable.
|
||||
For example, force a build build for `aarch64`, you can run:
|
||||
|
||||
```sh
|
||||
SERENITY_ARCH=aarch64 Meta/serenity.sh run
|
||||
```
|
||||
|
||||
Supported values for `SERENITY_ARCH` are `x86_64`, `aarch64`, and `riscv64`.
|
||||
|
||||
## Ninja build targets
|
||||
|
||||
The `Meta/serenity.sh` script provides an abstraction over the build targets which are made available by CMake. The
|
||||
following build targets cannot be accessed through the script and have to be used directly by changing the current
|
||||
directory to `Build/x86_64` and then running `ninja <target>`:
|
||||
directory to `Build/<architecture>` and then running `ninja <target>`:
|
||||
|
||||
- `ninja limine-image`: Builds a disk image (`limine_disk_image`) with Limine
|
||||
- `ninja grub-image`: Builds a disk image (`grub_disk_image`) with GRUB
|
||||
|
|
|
@ -109,8 +109,9 @@ Run the following command to build and run SerenityOS:
|
|||
Meta/serenity.sh run
|
||||
```
|
||||
|
||||
This will compile all of SerenityOS and install the built files into the `Build/x86_64/Root` directory inside your Git
|
||||
repository. It will also build a disk image and start SerenityOS using QEMU.
|
||||
This will compile all of SerenityOS and install the built files into the `Build/<architecture>/Root` directory inside your Git
|
||||
repository. It will also build a disk image and start SerenityOS using QEMU. The chosen architecture defaults to
|
||||
your host architecture. Supported architectures are x86_64, aarch64 and riscv64.
|
||||
|
||||
The first time this command is executed, it will also download some required database files from the internet and build
|
||||
the SerenityOS cross-compiler toolchain. These steps only have to be done once, so the next build will go much faster.
|
||||
|
|
|
@ -38,15 +38,8 @@ brew install gcc@13
|
|||
|
||||
# Notes
|
||||
|
||||
You can use both Intel and Apple Silicon Macs to run the x86-64 version of SerenityOS. You do not
|
||||
need to install Rosetta for this. An emulator is used when running on an Apple Silicon, so Serenity
|
||||
will be slower compared to running natively with hardware-assisted virtualization on an Intel machine.
|
||||
|
||||
If you're building on M1 Mac and have Homebrew installed in both Rosetta and native environments,
|
||||
you have to make sure that required packages are installed only in one of the environments. Otherwise,
|
||||
these installations can conflict during the build process, which is manifested in hard to diagnose issues.
|
||||
Building on M1 natively without Rosetta is recommended, as the build process should be faster without Rosetta
|
||||
overhead.
|
||||
You can use both Intel and Apple Silicon Macs to run a native architecture version of SerenityOS.
|
||||
If Rosetta 2 is installed on an Apple Silicon Mac, it should be disabled in order to build the native aarch64 version.
|
||||
|
||||
Installing macfuse for the first time requires enabling its system extension in System Preferences and then restarting your machine. The output from installing macfuse with brew says this, but it's easy to miss.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# SerenityOS
|
||||
|
||||
Graphical Unix-like operating system for x86-64 computers.
|
||||
Graphical Unix-like operating system for x86-64 and aarch64 computers.
|
||||
|
||||
[![GitHub Actions Status](https://github.com/SerenityOS/serenity/workflows/Build,%20lint,%20and%20test/badge.svg)](https://github.com/SerenityOS/serenity/actions?query=workflow%3A"Build%2C%20lint%2C%20and%20test")
|
||||
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/serenity.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:serenity)
|
||||
|
@ -26,7 +26,7 @@ You can watch videos of the system being developed on YouTube:
|
|||
|
||||
## Features
|
||||
|
||||
- Modern x86 64-bit kernel with pre-emptive multi-threading
|
||||
- Modern 64-bit kernel with pre-emptive multi-threading
|
||||
- [Browser](Userland/Applications/Browser/) with JavaScript, WebAssembly, and more (check the spec compliance for [JS](https://serenityos.github.io/libjs-website/test262/), [CSS](https://css.tobyase.de/), and [Wasm](https://serenityos.github.io/libjs-website/wasm/))
|
||||
- Security features (hardware protections, limited userland capabilities, W^X memory, `pledge` & `unveil`, (K)ASLR, OOM-resistance, web-content isolation, state-of-the-art TLS algorithms, ...)
|
||||
- [System services](Userland/Services/) (WindowServer, LoginServer, AudioServer, WebServer, RequestServer, CrashServer, ...) and modern IPC
|
||||
|
|
Loading…
Reference in a new issue