1
0
Fork
You've already forked XBin
0
The XBin User Space and consolidated Linux Distro therein
  • Assembly 62.9%
  • Shell 35.5%
  • Makefile 1.6%
Find a file
2026年06月29日 19:41:01 +00:00
jmp0 remove deadnames from files 2026年06月29日 19:41:01 +00:00
Limine @7a9013f305 remove deadnames from files 2026年06月29日 19:41:01 +00:00
scripts remove deadnames from files 2026年06月29日 19:41:01 +00:00
src remove deadnames from files 2026年06月29日 19:41:01 +00:00
.gitignore update gitignore to maintain concurrency 2026年05月18日 22:12:45 +00:00
.gitmodules add gitmodules 2026年05月18日 22:06:36 +00:00
COPYING Init new repo 2026年04月12日 20:38:32 +00:00
README.org update to v00.01.00 2026年05月18日 22:22:58 +00:00

XBin

XBin is the name of the file format and user space that lies in src/ xbin.S is a file generated by scripts/mklib.sh, which requires a file named xbin.lst to build As you might see by peering at the .gitignore, these files are ignored.

Tell me more

XBin was written, by me, by hand, to be the smallest I could see it being.

This project does not need a linker whatsoever, unless utilizing Boks/Linux to build. However, a version of NASM is required, alongside many GNU utilities likely shipped with your machine.

And the scripts/?

Indeed, this project ships with a fair many scripts. Only build.sh takes arguments The arguments are like this:

scripts/build.sh x_sudo x_uid x_gid [BOKS]

First, we must go over the way in which sudo works. Our loader, xbin.s, utilizes a fixed offset by which to search for the executable name sudo. For normal use, where you would type bin/sudo, an offset of 04 would be used. This number must always be in hex. ./bin/sudo would be 06

Next, x_uid and x_gid. These are but two more fields, stored in the ELF header, for the purposes of privilege de-escalation. These two should be set to, in decimal (base-10) the UID and GID by which the loader should move down to.

Finally, the BOKS. Should the string be literally "BOKS", two binaries will be disabled from xhelp.

Boks

*Boks*/Linux is the name of the Linux distro that is made when BusyBox ash and the XBin collection are used together scripts/mkboks.sh may be used to generate boks.img

Licensing

Should you be curious about licensing information, scripts/mkboks.sh has ability to create files.

It is worth noting that, while I do not hold rights or stake in the development of BusyBox or Linux, I am well within my rights to distribute code distributing source material (in the case of BusyBox) or the system calls (in the case of Linux's system call exception)

On the contrary, I do hold full licensing powers over the files located in src/ and scripts/ Under the powers provided and bestowed upon me by RMS, GNU, the FSF and my keyboard, I provide my code under the GNU General Public License version 3, or later should a one become available.

Versions!

00

00

01

While I have been developing this for quite a while, this is the first real release. However, I don't feel as though it is truly fit for a full release.

I do have a pager (more) in the works, however it is not currently in working order.

02

I am dropping the more implementation in assembly in lieu of a potential shell-based replacement.

03

I am happy to announce an implementation of more in pure ash!

04

I added head, tail, and added multi-file support to readlink

05

I optimized register use, as well as fixing an issue where xhelp showed the wrong help for kill

06

I added swapon and swapoff because it is useful in Linux

07

I added a tasteful highlight to more, and I added jmp0, which is a kernel module I created to do one thing... It executes any code pointed to in rbx in Ring 0. Why you'd ever want that I haven't a clue. But it's here and you can have it.

01

00

It sure has been a while since I pushed a commit... so I added a "few" things. I also updated xlib, because xbin was getting rather big. Anyway, I don't know what this project is anymore... hah.