「Bootstrappable」の版間の差分
ナビゲーションに移動
検索に移動
Kusanaginoturugi (トーク | 投稿記録) (新規作成) |
Kusanaginoturugi (トーク | 投稿記録) (英語版へのリンクを追加) |
||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
[[Category:セキュリティ]] |
[[Category:セキュリティ]] |
||
+ | [[en:Bootstrappable]] |
||
− | [https://bootstrappable.org/ Bootstrappable Builds] allows us to bootstrap Arch Linux easily from scratch using a minimal set of binaries. Allowing a minimal set of binaries to be audited and together with reproducible builds provide confidence that you are running the code which you expect to run. |
||
+ | [https://bootstrappable.org/ Bootstrappable Builds] は、最小限のバイナリセットを使ってゼロから Arch Linux を簡単にブートストラップすることを可能にします。最小限のバイナリセットを監査し、再現可能なビルドを可能にすることで、あなたが期待するコードを実行しているという確信を得ることができます。 |
||
== Bootstrapping Arch Linux == |
== Bootstrapping Arch Linux == |
||
+ | [https://www.gnu.org/software/mes/ Mes] は Arch Linux を最小限の (32bit) バイナリとソースコードからコンパイルされたシステムからブートストラップするために利用されるプロジェクトです。Arch Linux では、mes から C コンパイラのブートストラップを開始し、後で最初のブートストラップバイナリを監査可能な最小限の量に減らすことができます。 |
||
− | [https://www.gnu.org/software/mes/ Mes] is a project which can be utilised to bootstrap Arch Linux from a minimal set of (32bit) binaries having the rest of the system compiled from source code. For Arch Linux we can start bootstrapping a C compiler from mes and later reduce the initial bootstrap binaries to a minimal auditable amount. |
||
+ | [[GCC]] をブートストラップするためのロードマップです。 |
||
− | The roadmap to bootstrapping [[GCC]]: |
||
+ | |||
+ | * Mesをリポジトリに登録する |
||
+ | * Mes で Mes をコンパイル(他のディストリビューション Debian, Guix, NixOS と比較も可能) |
||
− | * Bring Mes into the repository |
||
− | * Compile Mes with Mes (and compare it with other distributions Debian, Guix, NixOS) |
||
MES=mes AR=mesar CC=mescc ./configure.sh --host=i686-unknown-linux-gnu |
MES=mes AR=mesar CC=mescc ./configure.sh --host=i686-unknown-linux-gnu |
||
V=2 MES=mes AR=mesar GUILE_LOAD_PATH=/usr/share/mes/module/ ./bootstrap.sh |
V=2 MES=mes AR=mesar GUILE_LOAD_PATH=/usr/share/mes/module/ ./bootstrap.sh |
||
− | * Compile a [https://gitlab.com/janneke/tinycc/tree/mes-0.21 patched tcc-boot0] |
||
− | * Compile a tcc-boot with a tiny [https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/tcc-boot-0.9.27.patch patch] |
||
− | * System utilities |
||
− | * GCC-2.95.3 (GCC 4.0.4 can also be bootstrapped directly from TCC if musl libc is built first) |
||
+ | * [https://gitlab.com/janneke/tinycc/tree/mes-0.21 パッチを適用したtcc-boot0] をコンパイルする |
||
− | More information: |
||
+ | * 小さな[https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/tcc-boot-0.9.27.patch パッチ]で tcc-boot をコンパイルします。 |
||
+ | * システムユーティリティ |
||
+ | * GCC-2.95.3 (GCC 4.0.4 は musl libc を最初にビルドすれば TCC から直接ブートストラップすることもできます) |
||
+ | |||
+ | 詳細はこちら。 |
||
* https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm |
* https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm |
||
* https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/ |
* https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/ |
2022年1月24日 (月) 12:37時点における最新版
Bootstrappable Builds は、最小限のバイナリセットを使ってゼロから Arch Linux を簡単にブートストラップすることを可能にします。最小限のバイナリセットを監査し、再現可能なビルドを可能にすることで、あなたが期待するコードを実行しているという確信を得ることができます。
Bootstrapping Arch Linux
Mes は Arch Linux を最小限の (32bit) バイナリとソースコードからコンパイルされたシステムからブートストラップするために利用されるプロジェクトです。Arch Linux では、mes から C コンパイラのブートストラップを開始し、後で最初のブートストラップバイナリを監査可能な最小限の量に減らすことができます。
GCC をブートストラップするためのロードマップです。
- Mesをリポジトリに登録する
- Mes で Mes をコンパイル(他のディストリビューション Debian, Guix, NixOS と比較も可能)
MES=mes AR=mesar CC=mescc ./configure.sh --host=i686-unknown-linux-gnu V=2 MES=mes AR=mesar GUILE_LOAD_PATH=/usr/share/mes/module/ ./bootstrap.sh
- パッチを適用したtcc-boot0 をコンパイルする
- 小さなパッチで tcc-boot をコンパイルします。
- システムユーティリティ
- GCC-2.95.3 (GCC 4.0.4 は musl libc を最初にビルドすれば TCC から直接ブートストラップすることもできます)
詳細はこちら。
- https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm
- https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/
- https://github.com/fosslinux/live-bootstrap/blob/master/parts.rst
Bootstrapping Languages
For languages which are self-hoisting (require itself to build a new version) we want a path from a C compiler to for example Rust.
Rust
There is a Rust C++ implementation which can compile Rust 1.19.0 called mrustc. Guix has more information in this blog post.
Java (openjdk)
A path to bootstrapping JDK is described here