Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-12-03 | Get rid of deprecated_enumerateDirectoryInode. | Andreas Kling | |
This was a vestige from the pre-CoreInode implementation of Ext2FS. | |||
2018-12-03 | Some coding style fixes. I'm getting more comfortable with this style. | Andreas Kling | |
2018-12-03 | Remove debug kprintfs() in VFS::mkdir. | Andreas Kling | |
2018-12-02 | Use decltype(sizeof(void*)) as a facsimile for std::size_t. | Andreas Kling | |
Clang demands that the size argument to the various operator new()'s to be exactly whatever it thinks std::size_t is. Since we can't include STL headers, this little trick will do. | |||
2018-12-02 | Make the widgets code build on macOS. | Andreas Kling | |
Funny, I haven't looked at this code in a few weeks and there's so much to change! | |||
2018-12-02 | Make it possible to build the Kernel on a macOS host. | Andreas Kling | |
It still requires an ELF compiler and linker, but at least it builds. I need to get rid of the "Unix" namespace. This does a lot of that. | |||
2018-12-02 | Move ELFLoader code into Kernel/. | Andreas Kling | |
2018-11-29 | Add TIOCGWINSZ ioctl so userland can determine terminal geometry. | Andreas Kling | |
(Don't) use this to implement short-form output in ls. I'm too tired to make a nice column formatting algorithm. I just wanted something concise when I type "ls". | |||
2018-11-28 | Fix bug where a signal-interrupted waitpid() wouldn't return EINTR. | Andreas Kling | |
2018-11-28 | Implement signal() via sigaction() and get rid of sys$signal(). | Andreas Kling | |
2018-11-28 | Let reap() communicate the dead process's exit status to the caller. | Andreas Kling | |
This way the scheduler doesn't need to plumb the exit status into the waiter. We still plumb the waitee pid though, I don't love it but it can be fixed. | |||
2018-11-28 | Drop any old signal stacks on exec(). | Andreas Kling | |
2018-11-19 | Add basic zero faults. | Andreas Kling | |
mmap() will now map uncommitted pages that get allocated and zeroed upon the first access. I also made /proc/PID/vm show number of "committed" bytes in each region. This is so cool! :^) | |||
2018-11-19 | Make /proc/PID/vm more readable. | Andreas Kling | |
And move the unreadable detail-heavy mess to /proc/PID/vmo. | |||
2018-11-19 | Some improvements to LibC malloc(). | Andreas Kling | |
2018-11-19 | Adapt kmalloc() for userspace. | Andreas Kling | |
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. | |||
2018-11-18 | Fix mkdir with relative paths. | Andreas Kling | |
2018-11-18 | Finally hook up the mkdir code to a syscall. | Andreas Kling | |
Added a /bin/mkdir that makes directories. How very neat :^) There are various limitations because of missing functionality. | |||
2018-11-17 | Various stubs while trying to get an old coreutils to build. | Andreas Kling | |
2018-11-17 | Support "ls <path>" rather than just "ls" :^) | Andreas Kling | |
2018-11-17 | Fix race condition in exec(). | Andreas Kling | |
...also hook up sys$fstat in the syscall dispatcher. | |||
2018-11-17 | Tweak default hostname. | Andreas Kling | |
2018-11-17 | Make bash-2.05b build with minimal changes. | Andreas Kling | |
This is really neat. :^) | |||
2018-11-16 | Add fcntl() F_DUPFD which is slightly different from dup2(). | Andreas Kling | |
2018-11-16 | Don't unblock a blocked process when it ignores a signal. | Andreas Kling | |
2018-11-16 | Refactor TTY signal generation a bit. | Andreas Kling | |
We now respect the VINTR and VQUIT control characters in the termios. | |||
2018-11-16 | Minor TTY tweak. | Andreas Kling | |
2018-11-16 | Add a DoubleBuffer thingy to allow TTY read/write to be interleaved. | Andreas Kling | |
I feel like this concept might be useful in more places. It's very naive right now and uses dynamically growing buffers. It should really use static size buffers and never kmalloc(). | |||
2018-11-16 | Add templated helpers for read/write validation, and one for strings, too. | Andreas Kling | |
2018-11-16 | Improve syscall address validation a bit. | Andreas Kling | |
2018-11-16 | Reimplement tcsetattr/tcgetattr as ioctls. | Andreas Kling | |
2018-11-16 | Add ioctl() and reimplement tcsetpgrp/tcsetpgrp as ioctls. | Andreas Kling | |
2018-11-15 | Some more renaming: | Andreas Kling | |
FileSystem -> FS SyntheticFileSystem -> SynthFS ProcFileSystem -> ProcFS Ext2FileSystem -> Ext2FS Ext2Inode -> Ext2FSInode | |||
2018-11-15 | Add CoreInode::reverse_lookup(). | Andreas Kling | |
Getting the absolute path of an ext2fs inode now uses the lookup cache which makes it a lot faster. | |||
2018-11-15 | Add CoreInode::lookup() for directory lookups. | Andreas Kling | |
Also add a name-to-inode lookup cache to Ext2Inode. This seems like a great speedup for filesystem traversal. | |||
2018-11-15 | More VFS cleanup. | Andreas Kling | |
2018-11-15 | A pass of style/naming cleanup in VFS. | Andreas Kling | |
2018-11-15 | Rename: | Andreas Kling | |
VirtualFileSystem -> VFS VirtualFileSystem::Node -> Vnode | |||
2018-11-13 | More work on CoreInode. | Andreas Kling | |
2018-11-13 | Add metadata to CoreInode. | Andreas Kling | |
2018-11-13 | Make page_in_from_vnode 2x faster. | Andreas Kling | |
...by adding a new class called Ext2Inode that inherits CoreInode. The idea is that a vnode will wrap a CoreInode rather than InodeIdentifier. Each CoreInode subclass can keep whatever caches they like. Right now, Ext2Inode caches the list of block indices since it can be very expensive to retrieve. | |||
2018-11-13 | Add close-on-exec flag for file descriptors. | Andreas Kling | |
I was surprised to find that dup()'ed fds don't share the close-on-exec flag. That means it has to be stored separately from the FileDescriptor object. | |||
2018-11-13 | Reduce kmalloc() traffic in directory iteration. | Andreas Kling | |
Pass the file name in a stack-allocated buffer instead of using an AK::String when iterating directories. This dramatically reduces the amount of cycles spent traversing the filesystem. | |||
2018-11-12 | Add a braindead 10x speedup to kmalloc(). | Andreas Kling | |
Skip over entirely full buckets when scanning for a big-enough memory slot. This means I can postpone writing a better kmalloc() for a while longer! :^) | |||
2018-11-12 | Make loading /bin/bash ~250x faster. | Andreas Kling | |
The ELF loader was doing huge amounts of unnecessary work. Got rid of the "export symbols" and relocation passes since we don't need them. They were useful things when bringing up the ELF loading code. Also added a simple TSC-based Stopwatch RAII thingy to help debug performance issues. | |||
2018-11-12 | Some minor termios debugging output. | Andreas Kling | |
2018-11-12 | Add primitive FIFO and hook it up to sys$pipe(). | Andreas Kling | |
It's now possible to do this in bash: cat kernel.map | fgrep List This is very cool! :^) | |||
2018-11-11 | Add a naive /bin/fgrep for testing pipes. | Andreas Kling | |
2018-11-11 | Rage hacking to get bash to run. It finally runs. So cool! :^) | Andreas Kling | |
2018-11-11 | Add really cheap atol() since sizeof(int) == sizeof(long) here anyway. | Andreas Kling | |