| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
We read() a character from stdin and write() it out to stdout, saving it
to a global variable in between.
ELF binaries are inefficient; you can ask for a low alignment, but the
kernel may not be able to handle it. If you set up a high alignment then
you end up wasting an increasing amount of space in each segment
because of the constraint that the offset bear some relationship with
the loaded address.
|
|
|
|
|
|
|
|
|
| |
Let's minimize the alignment requirements of each segment's offset.
It'll make binaries take less room later. Otherwise we may need to pad
lots of 0s for segments after the first.
Generated ELF binaries continue to work natively (except ex4, but that
was already not working).
|
|
|
|
|
|
| |
Second attempt at commit 4291. We'll now not copy the headers into
memory, but we'll still allocate space for them. Still some security
benefits, and I'm gaining confidence that I understand the ELF format.
|
|
|
|
|
|
|
| |
Undo 4291; turns out the generated ELF binary was no longer running
natively on 32-bit Linux. Even with p_align set to 0.
Agh, not worth my time.
|
|
|
|
|
|
|
| |
No need for it once the program's loaded. And we keep programs from
running the header as code.
This also simplifies the header computation in the translator.
|
|
The source 'language' is still entirely open. We'll see how it evolves
as I write programs in machine code.
|