Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-02-27 | Kernel: chmod() should allow superuser to change mode bits of any file. | Andreas Kling | |
2019-02-27 | Add chown() syscall and a simple /bin/chown program. | Andreas Kling | |
2019-02-27 | More compat work towards porting vim. | Andreas Kling | |
It now builds and runs in the small-featureset configuration. :^) | |||
2019-02-26 | LibC: Make errno codes be #defines instead of enum values. | Andreas Kling | |
It turns out that a lot of 3rd party software does things like: #ifdef EINTR ... #endif This won't work if EINTR is an enum. So much for that nice idea. | |||
2019-02-26 | Compat work towards porting vim. | Andreas Kling | |
2019-02-26 | Kernel: Simplify ELF loading a bit. | Andreas Kling | |
Instead of iterating over the sections and memcpy()ing per-section, do all the copying based on program headers instead. | |||
2019-02-26 | Compat work towards making bash-5.0 build with less patches. | Andreas Kling | |
Hacked implementations of sigsetjmp() and siglongjmp(). I didn't know about these APIs until just now, but I hope I got them right. | |||
2019-02-26 | More compat work. Rename libraries from LibFoo.a => libfoo.a | Andreas Kling | |
This makes it more straightforward to build a cross-compiler toolchain. Also move math stuff from LibC to LibM. | |||
2019-02-26 | More compat work. | Andreas Kling | |
Move syscall to int 0x82 since using int 0x80 was kinda prone to fork bombs when building things on Linux. :^) | |||
2019-02-25 | More moving towards using signed types. | Andreas Kling | |
I'm still feeling this out, but I am starting to like the general idea. | |||
2019-02-25 | Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t. | Andreas Kling | |
Dealing with the unsigned overflow propagation here just seems unreasonably error prone. Let's limit ourselves to 2GB buffer sizes instead. | |||
2019-02-25 | Kernel: Add KResult and KResultOr<T> classes. | Andreas Kling | |
The idea here is to combine a potential syscall error code with an arbitrary type in the case of success. I feel like this will end up much less error prone than returning some arbitrary type that kinda sorta has bool semantics (but sometimes not really) and passing the error through an out-param. This patch only converts a few syscalls to using it. More to come. | |||
2019-02-25 | Convert more RetainPtr use to Retained. | Andreas Kling | |
2019-02-25 | AK: Add Retained<T>, like RetainPtr, but never null. | Andreas Kling | |
Also use some Clang attribute wizardry to get a warning for use-after-move. | |||
2019-02-24 | Kernel: Make dump_backtrace() kinda sorta work. | Andreas Kling | |
2019-02-24 | Ext2FS: Don't copy more than sizeof(ext2_inode) bytes of raw inode data. | Andreas Kling | |
Some file systems have inodes larger than sizeof(ext2_inode) so this would stomp all over unrelated data. | |||
2019-02-23 | LibC: Enough compat work to make binutils-2.32 build and run. | Andreas Kling | |
2019-02-22 | Switch over to building everything with i686-elf-g++. | Andreas Kling | |
2019-02-22 | Throw away the Clock app since we now have a clock in the menubar. :^) | Andreas Kling | |
2019-02-22 | Start fixing things up to build with a proper cross-compiler. | Andreas Kling | |
2019-02-22 | Ext2FS: Tweak a debug message to print file mode in octal. | Andreas Kling | |
2019-02-22 | Kernel: Respect the process umask in open() and mkdir(). | Andreas Kling | |
2019-02-22 | Kernel: Pass process arguments directly on the stack. | Andreas Kling | |
Get rid of the convoluted get_arguments and get_environment syscalls. This patch also adds a simple /bin/env that just prints its environment. | |||
2019-02-22 | Kernel: Don't allocate and discard an extra stack for every process. | Andreas Kling | |
2019-02-21 | Kernel+Userland: Implement setuid() and setgid() and add /bin/su | Andreas Kling | |
Also show setuid and setgid bits in "ls -l" output. :^) | |||
2019-02-21 | Kernel: sigpending() and sigprocmask() should validate memory writes. | Andreas Kling | |
2019-02-21 | Kernel: Add file permission checks to link() syscall. | Andreas Kling | |
Also use the new name, not the old name, for the new link, duh. | |||
2019-02-21 | Kernel: Add file permission checks to utime() syscall. | Andreas Kling | |
2019-02-21 | Kernel: Process::cwd_inode() should return a reference. | Andreas Kling | |
There's always a current working directory inode. | |||
2019-02-21 | Kernel: Separate VFS stat() from open(). | Andreas Kling | |
It was very confusing that you had to open a FileDescriptor in order to stat a file. This patch gives VFS a separate stat() function and uses it to implement the stat() and lstat() syscalls. | |||
2019-02-21 | Kernel: Start adding various file system permission checks. | Andreas Kling | |
Fail with EACCES in various situations. Fix userland bugs that were exposed. | |||
2019-02-21 | Add a simple /bin/df which gathers its info from /proc/df. | Andreas Kling | |
2019-02-21 | Kernel: Add link() syscall to create hard links. | Andreas Kling | |
This accidentally grew into a little bit of VFS cleanup as well. Also add a simple /bin/ln implementation to exercise it. | |||
2019-02-20 | Support resizing the Terminal app. | Andreas Kling | |
I set it up so that TIOCSWINSZ on a master PTY gets forwarded to the slave. This feels intuitively right. Terminal can then use that to inform the shell or whoever is inside the slave that the window size has changed. TIOCSWINSZ also triggers the generation of a SIGWINCH signal. :^) | |||
2019-02-20 | Ext2FS: Remove the inode cache lock in favor of one big lock instead. | Andreas Kling | |
2019-02-20 | Kernel: If someone else zero-fills a shared VMO page, don't freak out. | Andreas Kling | |
Just map the new page and move on. | |||
2019-02-20 | Kernel: Don't remove from SharedBuffer map while iterating it. | Andreas Kling | |
This was causing a finalizer crash when handling a process that co-owned multiple shared buffers. | |||
2019-02-20 | WindowServer: Support resizing windows. | Andreas Kling | |
This is pretty limited and not entirely stable, but it does work! :^) | |||
2019-02-20 | Ext2FS: Lock a lot. Go way overkill with locking for now. | Andreas Kling | |
2019-02-20 | Kernel: Reduce code duplication in exception handlers. | Andreas Kling | |
2019-02-20 | LibGUI: Add a GToolBar class that can be populated with GActions. | Andreas Kling | |
The same action can be added to both a menu and a toolbar. Use this to put a toolbar into FileManager. This is pretty neat. :^) | |||
2019-02-19 | Kernel: Fix wrong calculation of current Unix timestamp. | Andreas Kling | |
2019-02-17 | Kernel: Run the sync daemon once every second. | Andreas Kling | |
This is obviously not a final design, but 10 seconds was way too long. | |||
2019-02-17 | Prune compiler flags a bit. Let's go with -march=i686 for now. | Andreas Kling | |
2019-02-17 | Kernel: Shrink kmalloc() chunk size from 128 to 64. | Andreas Kling | |
This sacrifices some speed for more space. I don't want to work on a new allocator right this moment, so this buys me some time. | |||
2019-02-17 | Add ability to switch video modes from the system menu. | Andreas Kling | |
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. | |||
2019-02-17 | Spawn Launcher and FileManager on startup by default again. | Andreas Kling | |
I disabled this while debugging WindowServer-in-userspace, and now that it works fine we can bring these back up. | |||
2019-02-17 | Kernel: Give each FileDescriptor a chance to co-open sockets. | Andreas Kling | |
Track how many fds are open for a socket's Accepted and Connected roles. This allows fork() to clone a socket fd without a subsequent close() walking all over the parent process's fd. | |||
2019-02-17 | Kernel: socket() with SOCK_CLOEXEC was setting the wrong fd flag. | Andreas Kling | |
Turns out FD_CLOEXEC and O_CLOEXEC are different values. Silly mistake. I noticed that Terminal's shell process still had the Terminal's window server connection open, albeit in a broken state. | |||
2019-02-17 | Kernel: Have devices automagically register themselves with the VFS. | Andreas Kling | |