Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
tbodt authored Nov 30, 2017
1 parent 761a157 commit 2e4b750
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,25 @@ Roadmap:
- [x] Busybox vi (VIM MASTER RACE)
- [x] Busybox login
- [ ] Busybox getty
- [ ] Port the thing to Darwin/iOS, release on the app store
- [x] Busybox wget
- [x] Alpine package manager
- [x] Port the thing to Darwin/iOS
- [ ] QEMU cpu test program
- [ ] Busybox wget

Build system is meson. Run programs with `./ish program`. If you're not sure what to run, there are some test programs in (you guessed it) `tests`. Run `ninja busybox` to download and build busybox.
# Hacking

You can also replace `ish` with `tools/ptraceomatic` to run the program in a real process and single step and compare the registers at each step. I use it for debugging. Requires 64-bit Linux 4.11 or later.
You'll need these things to build the project:

- Python 3
- Ninja
- Meson

To set up your environment, cd to the project and run `meson build`. Then run `ninja` in the build directory to build.

Run programs with `./ish program`. If you're not sure what to run, there are some test programs in (you guessed it) `tests`. Run `ninja busybox` to download and build busybox.

To set up a self-contained Alpine linux filesystem, download the Alpine minirootfs tarball for i386 from the alpine website and run the `tools/fakefsify.py` script. Specify the minirootfs tarball as the first argument and the name of the output directory as the second argument. Then you can run things inside the Alpine filesystem with `./ish -r alpine/data /bin/login`, assuming the output directory is called `alpine`.

You can replace `ish` with `tools/ptraceomatic` to run the program in a real process and single step and compare the registers at each step. I use it for debugging. Requires 64-bit Linux 4.11 or later.

To compile the iOS app, just open the Xcode project and click run. There are scripts that should download and set up the alpine filesystem and create build directories for cross compilation and so on automatically.

0 comments on commit 2e4b750

Please sign in to comment.