Age | Commit message (Collapse) | Author |
|
system() will now fork off a child process and execute the command via
/bin/sh -c. There are probably some things to fix here, but it's a start.
|
|
It's not thread-safe yet, and there is lots of room for improvement.
Still it's a lot faster than the first-fit bitmap-based one it replaces.
|
|
This makes it easier to quickly determine if a userspace process is getting
bogged down in memory allocation.
|
|
Memory returned by malloc() is normally memset with 0x85.
Memory passed to free() is normally memset with 0x82.
These behaviors can now be disabled by setting one or both of
LIBC_NOSCRUB_MALLOC and LIBC_NOSCRUB_FREE in your environment. :^)
|
|
|
|
This is really making me question not using 64-bit integers more.
|
|
Now we can build GCC with --with-newlib, which hopefully cuts down on weird
toolchain build issues.
|
|
|
|
|
|
This is a solid speedup on PNG loading, and basically everything else.
Once again I find a way to defer writing a better allocator for now. :^)
|
|
|
|
|
|
It now builds and runs in the small-featureset configuration. :^)
|
|
|
|
Move syscall to int 0x82 since using int 0x80 was kinda prone to fork bombs
when building things on Linux. :^)
|
|
|
|
|
|
I had to change PhysicalPage around a bit for this. Physical pages can now
be instantiated for any arbitrary physical address without worrying that
such pages end up in the kernel page allocator when released.
Most of the pieces were already in place, I just glued everything together.
|
|
|
|
|
|
|
|
Looks like that's all we needed, and bc now runs. :^)
|
|
This patch adds vprintf(), sig_atomic_t, random() and strdup().
bc doesn't build yet, but it will.
|
|
|
|
|
|
For now, there are four hard-coded PTYs: /dev/pt{m,s}[0123]
Use this in the Terminal to open a pty pair and spawn a shell.
|
|
This is pretty cool. :^)
GraphicsBitmaps are now mapped into both the server and the client address
space (usually at different addresses but that doesn't matter.)
Added a GUI syscall for getting a window's backing store, and another one
for invalidating a window so that the server redraws it.
|
|
The kernel now bills processes for time spent in kernelspace and userspace
separately. The accounting is forwarded to the parent process in reap().
This makes the "time" builtin in bash work.
|
|
And move the unreadable detail-heavy mess to /proc/PID/vmo.
|
|
|
|
A slightly more useful malloc() for userspace. The max allocation limit
is still 128 kB, but at least now free() is able to recycle memory.
|
|
|
|
|
|
|
|
|
|
|
|
First of all, change sys$mmap to take a struct SC_mmap_params since our
sycsall calling convention can't handle more than 3 arguments.
This exposed a bug in Syscall::invoke() needing to use clobber lists.
It was a bit confusing to debug. :^)
|
|
|
|
I ran out of steam writing library routines and imported two
BSD-licensed libc routines: sscanf() and getopt().
I will most likely rewrite them sooner or later. For now
I just wanted to see figlet running.
|
|
It's nice to be able to identify mmap's in /proc/PID/vm.
|
|
With a bunch of LibC work to support the feature. LibC now initializes
AK::StringImpl by default. It's now fine to use AK in LibC/Userland! :^)
|
|
I added a dead-simple malloc that only allows allocations < 4096 bytes.
It just forwards the request to mmap() every time.
I also added simplified versions of opendir() and readdir().
|