Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-02-05 | Kernel: Invalidate file-backed VMO's when inodes are written. | Andreas Kling | |
The current strategy is simply to nuke all physical pages and force reload them from disk. This is obviously not optimal and should eventually be optimized. It should be fairly straightforward. | |||
2019-02-05 | FontEditor: Allow specifying which font to edit on the command line. | Andreas Kling | |
Also add a quit button. The quit button has a tendency to freeze the kernel. That doesn't seem entirely right. | |||
2019-02-05 | AK: Vector::data() shouldn't crash if the vector is empty. | Andreas Kling | |
It's up to the caller to check size() and stay within the bounds. | |||
2019-02-05 | LizaBlack8x10: Tweak some glyphs. | Andreas Kling | |
2019-02-05 | mmap all the font files! | Andreas Kling | |
Font now uses the same in-memory format as the font files we have on disk. This allows us to simply mmap() the font files and not use any additional memory for them. Very cool! :^) Hacking on this exposed a bug in file-backed VMObjects where the first client to instantiate a VMObject for a specific inode also got to decide its size. Since file-backed VMObjects always have the same size as the underlying file, this made no sense, so I removed the ability to even set a size in that case. | |||
2019-02-05 | AK: Add bounds assertions in Vector::operator[]. | Andreas Kling | |
I was sure I had this already. | |||
2019-02-04 | LizaBlack8x10: Import a very heavy variant of Liza. | Andreas Kling | |
2019-02-04 | FontEditor: Minor UI improvements. | Andreas Kling | |
- Implement focus for custom widgets. - Add two live demo labels with an English pangram in upper/lower case. | |||
2019-02-04 | Kernel: Ignore SIGCHLD by default. | Andreas Kling | |
Also use an enum for the rather-confusing return value in dispatch_signal(). I will go through the rest of the signals and set them up with the appropriate default dispositions at some other point. | |||
2019-02-04 | Kernel: Process should send SIGCHLD to its parent when it dies. | Andreas Kling | |
2019-02-04 | LibGUI: Use LightGray as the base UI color. | Andreas Kling | |
This feels nicely reminiscent of the gap in time between Win3.11 and Win95, one of my favorite eras in UI look-and-feel. | |||
2019-02-04 | LibGUI: Use LizaBold as the default button font. | Andreas Kling | |
2019-02-04 | LizaBold8x10: Import a bold variant of Liza8x10 and make it the default bold. | Andreas Kling | |
Start using it right away for window titles. | |||
2019-02-04 | ProcFS: Fix wrong linkage for /proc/cpuinfo inode. | Andreas Kling | |
2019-02-04 | LibGUI: GTextBox should only run a caret blink timer when focused. | Andreas Kling | |
2019-02-04 | Add a /bin/top program for process table monitoring. | Andreas Kling | |
It automagically computes %CPU usage based on the number of times a process has been scheduled between samples. The colonel task is used as idle timer. This is pretty cool. :^) | |||
2019-02-04 | Terminal: Fix broken parsing of background color escape. | Andreas Kling | |
2019-02-04 | Kernel: Process should disassociate from its TTY when it dies. | Andreas Kling | |
Just because we die doesn't mean we got waited on yet, so keeping around a dangling TTY pointer is just asking for trouble. | |||
2019-02-04 | Terminal: Avoid dirtying lines when clearing them has no visual effect. | Andreas Kling | |
2019-02-04 | AK: Fix leak in HashTable move assignment operator. | Andreas Kling | |
2019-02-03 | Kernel: Add a /proc/all process table dump. | Andreas Kling | |
This will be useful for implementing some process-related utilities. | |||
2019-02-03 | Get nyancat nyanning in Serenity. | Andreas Kling | |
I found a cute program that renders an animated nyancat in the terminal. This patch adds enough hackery to get it working correctly. :^) | |||
2019-02-03 | Terminal: Add limited support for 'M' escape sequence (delete line.) | Andreas Kling | |
2019-02-03 | Add /dev/{stdin,stdout,stderr} as symlinks to /proc/self/fd/{0,1,2} | Andreas Kling | |
Also change /bin/cat to open /dev/stdin if no arguments are provided. | |||
2019-02-03 | Kernel: Rewrite ProcFS. | Andreas Kling | |
Now the filesystem is generated on-the-fly instead of manually adding and removing inodes as processes spawn and die. The code is convoluted and bloated as I wrote it while sleepless. However, it's still vastly better than the old ProcFS, so I'm committing it. I also added /proc/PID/fd/N symlinks for each of a process's open fd's. | |||
2019-02-03 | LibC: strdup() forgot to allocate space for the null character. | Andreas Kling | |
2019-02-03 | SharedGraphics: Font::load_from_file() forgot to close() the font file. | Andreas Kling | |
2019-02-03 | Kernel: stat(), fstat() and lstat() didn't return some error codes. | Andreas Kling | |
2019-02-03 | Kernel: Oops, I mixed up st_dev and st_rdev in struct stat. | Andreas Kling | |
2019-02-03 | Kernel: Add /proc/self, a symlink to the /proc/$PID. | Andreas Kling | |
This will be useful for implementing things like /dev/stdin. | |||
2019-02-03 | LibC: Implement various things to get GNU bc building and running. | Andreas Kling | |
Looks like that's all we needed, and bc now runs. :^) | |||
2019-02-03 | Ext2FS: Avoid a kmallocation every time we fetch an inode from disk. | Andreas Kling | |
2019-02-03 | Terminal: Constrain the cursor inside the terminal rect. | Andreas Kling | |
2019-02-03 | Kernel: Increase default userspace stack size to 64 kilobytes. | Andreas Kling | |
2019-02-03 | WindowServer: Add some stripes to the window titles. | Andreas Kling | |
I like the look of this right now. Maybe later I'll feel differently. | |||
2019-02-03 | SharedGraphics: Add missing clipping in draw_line(). | Andreas Kling | |
2019-02-03 | guitest2: Stop showing the font test window by default. | Andreas Kling | |
2019-02-03 | FontEditor: Add text box for editing the font name. | Andreas Kling | |
2019-02-03 | Liza8x10: Tweak some glyphs. | Andreas Kling | |
2019-02-03 | Kernel: Remove unnecessary assertion in page_in_from_inode(). | Andreas Kling | |
Turns out I had confused myself about the situation. Just because a page has been paged in by another process doesn't mean that the *current* process's page directory has the present bit set! D'oh. :^) | |||
2019-02-03 | Kernel: Improve crash info if page_in_from_inode() is called redundantly. | Andreas Kling | |
2019-02-03 | Kernel: Let's have cli() and sti() clobber memory. | Andreas Kling | |
I don't like the idea of the compiler reordering anything around either cli() or sti(), so let's make sure it doesn't. | |||
2019-02-03 | Userland: Make /bin/date pretty-print the date, too. | Andreas Kling | |
2019-02-03 | Kernel: When entering page_in_from_inode(), assert that !physical_page. | Andreas Kling | |
It would be really weird to enter here with a physical page already present in the VMObject's page slot. Let's assert that this doesn't happen. | |||
2019-02-03 | FontEditor: Add a grid to the glyph editor widget. | Andreas Kling | |
2019-02-03 | Liza8x10: Tweak some glyphs. | Andreas Kling | |
2019-02-03 | Userland: Pretty-print modification times in /bin/ls. | Andreas Kling | |
2019-02-03 | Load the default font from disk in the kernel as well. | Andreas Kling | |
2019-02-03 | Make font loading use mmap(). | Andreas Kling | |
This exposed a serious race condition in page_in_from_inode(). Reordered the logic and added a paging lock to VMObject. Now, only one process can page in from a VMObject at a time. There are definitely ways to optimize this, for instance by making the locking be per-page instead. It's not something that I'm going to worry about right now though. | |||
2019-02-02 | Support font files. | Andreas Kling | |
This only works with the userspace build of SharedGraphics so far. It's also very slow at loading fonts, but that's easy to fix. Let's put fonts in /res/fonts/. |