Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-03-02 | Kernel+Userland: Add symlink() syscall and add "-s" flag to /bin/ln. | Andreas Kling | |
It's now possible to create symbolic links! :^) This exposed an issue in Ext2FS where we'd write uninitialized data past the end of an inode's content. Fix this by zeroing out the tail end of the last block in a file. | |||
2019-03-01 | Kernel+Userland: Implement fchmod() syscall and use it to improve /bin/cp. | Andreas Kling | |
/bin/cp will now copy the permission bits from source to destination. :^) | |||
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 | LibC: fgets() should return null on 0-length EOF reads. | Andreas Kling | |
2019-02-26 | Compat work towards porting vim. | Andreas Kling | |
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 | LibC: Install crt0.o into /usr/lib | Andreas Kling | |
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: 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 | Fix a bunch of compiler warnings. Not all, but a lot. | Andreas Kling | |
2019-02-25 | Some compat work towards making GCC's libstdc++ build. | Andreas Kling | |
2019-02-24 | LibC: A bunch of compat work towards porting GCC. | Andreas Kling | |
2019-02-23 | LibC: Enough compat work to make binutils-2.32 build and run. | Andreas Kling | |
2019-02-22 | Move over to building all of userspace with i686-pc-serenity-g++. | Andreas Kling | |
2019-02-22 | Switch over to building everything with i686-elf-g++. | Andreas Kling | |
2019-02-22 | LibC: Tidy up _start a bit and rename compilation unit to "crt0" | 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-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: 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-17 | Prune compiler flags a bit. Let's go with -march=i686 for now. | Andreas Kling | |
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 | Move WindowServer to userspace. | Andreas Kling | |
This is a monster patch that required changing a whole bunch of things. There are performance and stability issues all over the place, but it works. Pretty cool, I have to admit :^) | |||
2019-02-16 | LibC: mmap() should not interpret high addresses as errors, oops! | Andreas Kling | |
2019-02-16 | Kernel: Add a simple shared memory API for two processes only. | Andreas Kling | |
And use this to implement shared bitmaps between WindowServer and clients. | |||
2019-02-15 | LibC: The standard C library needs to be able to build as pure C. | Andreas Kling | |
Looks like we can't use those comfy C++ attributes in this code then. | |||
2019-02-15 | LibC: Fix busted realloc() implementation. | Andreas Kling | |
2019-02-15 | Enable -Wimplicit-fallthrough. | Andreas Kling | |
2019-02-15 | LibC: Actually, malloc() can return null so don't lie about that. | Andreas Kling | |
2019-02-15 | Use modern C++ attributes instead of __attribute__ voodoo. | Andreas Kling | |
This is quite nice, although I wish [[gnu::always_inline]] implied inline. Also "gnu::" is kind of a wart, but whatcha gonna do. | |||
2019-02-14 | Kernel: More work on sockets. Fleshing out connect(). | Andreas Kling | |
2019-02-14 | LibC: Add socket(), bind(), listen(), accept() and connect(). | Andreas Kling | |
2019-02-14 | LibC: Remove obsolete errno codes for windowing syscalls. | Andreas Kling | |
2019-02-14 | Kernel: Begin fleshing out bind() syscall. | Andreas Kling | |
2019-02-14 | Kernel: Begin implementing UNIX domain sockets. | Andreas Kling | |
2019-02-14 | WindowServer: Convert entire API to be message-based. | Andreas Kling | |
One big step towards userspace WindowServer. :^) | |||
2019-02-13 | WindowServer: Convert the remaining menu APIs into messages. | Andreas Kling | |
2019-02-13 | WindowServer: Refactor more of the menu APIs to be message-based. | Andreas Kling | |
This is all pretty verbose but I can whittle it down later. :^) | |||
2019-02-13 | WindowServer: Begin refactoring towards a fully asynchronous protocol. | Andreas Kling | |
In order to move the WindowServer to userspace, I have to eliminate its dependence on system call facilities. The communication channel with each client needs to be message-based in both directions. | |||
2019-02-12 | Add API's and plumbing for WindowServer clients to make menus. | Andreas Kling | |
2019-02-10 | LibGUI: Start adding an automatic widget layout system. | Andreas Kling | |
My needs are really quite simple, so I'm just going to add what I need as I go along. The first thing I needed was a simple box layout with widgets being able to say whether they prefer fixed or fill for both their vertical and horizontal sizes. I also made a simple GStatusBar so FileManager can show how many bytes worth of files are in the current directory. | |||
2019-02-09 | LibC: closedir() should free the readdir() buffer and the DIR itself. | Andreas Kling | |
2019-02-08 | LibC: fgetc() and pals should return EOF on error or EOF. | Andreas Kling | |
This was the reason that "uname | figlet" wasn't working. There was nothing wrong with the pipe like I kept thinking. | |||
2019-02-08 | LibC: Add some more fake termcap entries to silence bash-5.0. | Andreas Kling | |
2019-02-08 | LibC: Implement enough missing stuff to get bash-5.0 running. :^) | Andreas Kling | |
2019-02-08 | Don't use -mregparm=3 in userspace. | Andreas Kling | |
It's pretty comfy having arguments in registers in the kernel for now though. |