summaryrefslogtreecommitdiff
path: root/Kernel
AgeCommit message (Collapse)Author
2019-02-22Switch over to building everything with i686-elf-g++.Andreas Kling
2019-02-22Throw away the Clock app since we now have a clock in the menubar. :^)Andreas Kling
2019-02-22Start fixing things up to build with a proper cross-compiler.Andreas Kling
2019-02-22Ext2FS: Tweak a debug message to print file mode in octal.Andreas Kling
2019-02-22Kernel: Respect the process umask in open() and mkdir().Andreas Kling
2019-02-22Kernel: 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-22Kernel: Don't allocate and discard an extra stack for every process.Andreas Kling
2019-02-21Kernel+Userland: Implement setuid() and setgid() and add /bin/suAndreas Kling
Also show setuid and setgid bits in "ls -l" output. :^)
2019-02-21Kernel: sigpending() and sigprocmask() should validate memory writes.Andreas Kling
2019-02-21Kernel: 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-21Kernel: Add file permission checks to utime() syscall.Andreas Kling
2019-02-21Kernel: Process::cwd_inode() should return a reference.Andreas Kling
There's always a current working directory inode.
2019-02-21Kernel: 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-21Kernel: Start adding various file system permission checks.Andreas Kling
Fail with EACCES in various situations. Fix userland bugs that were exposed.
2019-02-21Add a simple /bin/df which gathers its info from /proc/df.Andreas Kling
2019-02-21Kernel: 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-20Support 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-20Ext2FS: Remove the inode cache lock in favor of one big lock instead.Andreas Kling
2019-02-20Kernel: 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-20Kernel: 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-20WindowServer: Support resizing windows.Andreas Kling
This is pretty limited and not entirely stable, but it does work! :^)
2019-02-20Ext2FS: Lock a lot. Go way overkill with locking for now.Andreas Kling
2019-02-20Kernel: Reduce code duplication in exception handlers.Andreas Kling
2019-02-20LibGUI: 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-19Kernel: Fix wrong calculation of current Unix timestamp.Andreas Kling
2019-02-17Kernel: 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-17Prune compiler flags a bit. Let's go with -march=i686 for now.Andreas Kling
2019-02-17Kernel: 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-17Add 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-17Spawn 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-17Kernel: 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-17Kernel: 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-17Kernel: Have devices automagically register themselves with the VFS.Andreas Kling
2019-02-17Kernel: Fix String leaks in exec().Andreas Kling
When the kernel performs a successful exec(), whatever was on the kernel stack for that process before goes away. For this reason, we need to make sure we don't have any stack objects holding onto kmalloc memory.
2019-02-17Kernel: Add SocketRole::Listener and report the role nicely in /proc/PID/fds.Andreas Kling
2019-02-17Kernel: Report the correct name for NullDevice.Andreas Kling
2019-02-17Kernel: Remove Process::gui_client_id().Andreas Kling
2019-02-17Kernel: Rename BochsVGADevice to BXVGADevice.Andreas Kling
2019-02-17Kernel: Rename Keyboard to KeyboardDevice.Andreas Kling
2019-02-17Kernel: munmap() should round up to nearest page size, just like mmap().Andreas Kling
The mismatch between the two was causing some trouble if you'd mmap e.g 1KB and then try to munmap() it. The kernel would whine that it couldn't find any such mapping (because mmap() actually rounded the 1KB to a 4KB page.)
2019-02-17Kernel: Remove tracking of bitmap memory.Andreas Kling
There are no more kernel bitmaps. It's much better this way.
2019-02-17Kernel: FileDescriptor::absolute_path() should "support" sockets.Andreas Kling
2019-02-17Start the WindowServer process with high priority.Andreas Kling
2019-02-17Move 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-16Kernel: 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-16Kernel: Rename create_framebuffer_wrapper() to create_for_physical_range().Andreas Kling
Maybe there will be other types of physical ranges to map in the future. This API doesn't seem at all specific to framebuffers. Also tidy up a bit in BochsVGADevice.
2019-02-16Kernel: Remove knowledge about BochsVGADevice from Process.Andreas Kling
2019-02-16Kernel: Add ioctls to BochsVGADevice for mode setting and page flipping.Andreas Kling
Use these in WindowServer instead of poking at the BochsVGADevice directly.
2019-02-16Kernel: Make BochsVGADevice a BlockDevice and support mmapping it.Andreas Kling
Currently you can only mmap the entire framebuffer. Using this when starting up the WindowServer gets us yet another step closer towards it moving into userspace. :^)
2019-02-16Kernel: Add empty BlockDevice class.Andreas Kling