ll: Linux_Logo in assembly language
latest version is 0.36
20 Architectures, Smallest Linux executable is 905 bytes! (on
crisv32)
NEWS:
- I released version 0.36 on 3 March 2009. It removed some
extraneous unneeded files from the distribution.
- I released version 0.35 on 13 February 2009. Added z80 support.
- I released version 0.34 on 28 January 2009. Added pdp-11 support.
- I released version 0.33 on 21 January 2009. Added m88k support.
- I released version 0.32 on 7 January 2009. Added crisv32 support.
- I released version 0.31 on 9 September 2007. Added 6502 support.
BACKGROUND:
This is a port of my linux_logo program
to use raw assembly language. By using assembly and syscalls, you
can have extremely fast and small binaries that don't use libc at all!
So far I have
6502, alpha, arm, arm_thumb, avr32,
crisv32, ia64, m68k, m88k, mips,
parisc, pdp-11, ppc, s390, sh3,
sparc, vax, x86, x86_64, and z80
versions.
If you have an unsupported architecture and will be willing to give
me a shell account on your machine, let me know.
It would be great if every Linux-supported architecture
had its own assembly version of linux_logo.
DOWNLOADS:
PUBLICATIONS:
DOCUMENTATION:
Linux assembly source files for your viewing pleasure:
Non-linux versions:
8 and 16-bit versions:
Here is a comparison of the size of the binaries after having
sstrip run on them:
| Architecture | Size |
| pdp-11 | 890 bytes |
| crisv32 | 905 bytes |
| avr32 | 914 bytes |
| z80 | 920 bytes |
| x86 | 976 bytes |
| arm_thumb | 989 bytes |
| sh3 | 994 bytes |
| vax | 1010 bytes |
| m68k | 1014 bytes |
| x86_64 | 1036 bytes |
| s390 | 1096 bytes |
| PowerPC | 1206 bytes |
| arm | 1218 bytes |
| m88k | 1240 bytes |
| MIPS | 1292 bytes |
| 6502 | 1394 bytes |
| SPARC | 1397 bytes |
| PA-RISC | 1400 bytes |
| alpha | 1957 bytes |
| itanium | 2874 bytes |
For a bit of commentary on why the sizes end up the way they do, see
the README
You might ask if all the above works? Yes. Written and tested on:
- alpha: "bmul", our dual 21264. Also original thanks to the (now defunct) Compaq testdrive.
- arm: "lindt", my gumstix system.
- avr32: I have an Atmel NGW100.
- crisv32: I used qemu.
- ia64: "itanium", our creatively named ia64 machines.
Also, original thanks to the (now defunct) Compaq testdrive.
- m68k: the aranym emulator, emulating an Atari running Linux.
- mips: "perugina", a debian SGI Indy we have at work.
- parisc: "feodora", an HP-PARISC machine we have at work.
- ppc: "henparma" my 2001 iBook
- s390: the Hercules
emulator. Also, originally thanks to
IBM zSeries Testdrive
- sh3: qemu-sh4, and eventually on a dreamcast
- sparc: "valor" a 24 processor niagara server we have at work.
- vax: simh simulator
- x86: "hal" my aging K6-2+ FIC PA-2007 machine
- x86_64: domori cluster at work
Non-Linux versions:
Yet to come:
- Non Linux: amd29k, att92k (crisp/hobbit)
- All other known Linux architectures:
thumb2, sh4, blackfin, frv, h8300, i960, m32r, v850, xtensa,
microblaze (in progress), mn10300, s+core, trimedia
Back to My Assembly Tricks Page
©VMW Web Design (vince _at_ deater.net): 3 March 2009