summaryrefslogtreecommitdiff
path: root/Kernel/sync.sh
AgeCommit message (Collapse)Author
2019-02-08Userland: Add a /bin/pape helper program to switch the desktop wallpaper.Andreas Kling
2019-02-08WindowServer: Support desktop wallpapers.Andreas Kling
For now, you don't get to choose the wallpaper, but it's still pretty cool.
2019-02-07Start working on a simple Launcher app.Andreas Kling
Let GButton have an optional icon (GraphicsBitmap) that gets rendered in the middle of the button if present. Also add GraphicsBitmap::load_from_file() which allows mmap'ed RGBA32 files. I wrote a little program to take "raw" files from GIMP and swizzle them into the correct byte order.
2019-02-05Clock: Turns the clock window from guitest2 into a separate program.Andreas Kling
We can't not have a desktop clock app. :^)
2019-02-04Add 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-03Add /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-02Start working on a simple graphical font editor.Andreas Kling
Editing fonts by editing text files is really slow and boring. A simple font editor seems like a good way to take LibGUI for a spin.
2019-01-30Rename the default user to "anon" and give him a home directory.Andreas Kling
2019-01-30Add a /dev/pts filesystem and make PTY allocation dynamic.Andreas Kling
You can now open as many PTY pairs as you like. Well, it's actually capped at 8 for now, but it's just a constant and trivial to change. Unregistering a PTY pair is untested because I didn't want to start mucking with that in Terminal right now.
2019-01-29Implement basic chmod() syscall and /bin/chmod helper.Andreas Kling
Only raw octal modes are supported right now. This patch also changes mode_t from 32-bit to 16-bit to match the on-disk type used by Ext2FS. I also ran into EPERM being errno=0 which was confusing, so I inserted an ESUCCESS in its place.
2019-01-28Expose the kernel log buffer through /proc/dmesg.Andreas Kling
Also add a /bin/dmesg program for convenience.
2019-01-28Add support for removing directories.Andreas Kling
It's really only supported in Ext2FS since SynthFS doesn't really want you mucking around with its files. This is pretty neat though :^) I ran into some trouble with HashMap while working on this but opted to work around it and leave that for a separate investigation.
2019-01-27Userland: Make a simple /bin/cp for copying files.Andreas Kling
2019-01-22Add unlink() syscall and /bin/rm.Andreas Kling
This patch adds most of the plumbing for working file deletion in Ext2FS. Directory entries are removed and inode link counts updated. We don't yet update the inode or block bitmaps, I will do that separately.
2019-01-20Start bringing up LibGUI properly (formerly Widgets.)Andreas Kling
2019-01-18Add a simple /bin/sysctl that wraps the files in /proc/sys.Andreas Kling
2019-01-16Rework WindowServer to use select() in its main event loop.Andreas Kling
The system can finally idle without burning CPU. :^) There are some issues with scheduling making the mouse cursor sloppy and unresponsive that need to be dealt with.
2019-01-16Add a PTY multiplexer (/dev/ptmx) device.Andreas Kling
When you open /dev/ptmx, you get a file descriptor pointing to one of the available MasterPTY's. If none are available, you get an EBUSY. This makes it possible to open multiple (up to 4) Terminals. :^) To support this, I also added a CharacterDevice::open() that gets control when VFS is opening a CharacterDevice. This is useful when we want to return a custom FileDescriptor like we do here.
2019-01-15Add basic PTY support.Andreas Kling
For now, there are four hard-coded PTYs: /dev/pt{m,s}[0123] Use this in the Terminal to open a pty pair and spawn a shell.
2019-01-15Start working on a graphical Terminal program.Andreas Kling
2019-01-14Start refactoring the windowing system to use an event loop.Andreas Kling
Userspace programs can now open /dev/gui_events and read a stream of GUI_Event structs one at a time. I was stuck on a stupid problem where we'd reenter Scheduler::yield() due to having one of the has_data_available_for_reading() implementations using locks.
2019-01-13Start working on a GUI kernel API.Andreas Kling
2018-12-21Add a simple /bin/more.Andreas Kling
2018-12-21Get rid of three test utilities that I no longer need.Andreas Kling
2018-12-20Add sync() syscall and a /bin/sync.Andreas Kling
It walks all the live Inode objects and flushes pending metadata changes wherever needed. This could be optimized by keeping a separate list of dirty Inodes, but let's not get ahead of ourselves.
2018-12-19Implement utime() along with a naive /bin/touch.Andreas Kling
This synchronous approach to inodes is silly, obviously. I need to rework it so that the in-memory CoreInode object is the canonical inode, and then we just need a sync() that flushes pending changes to disk.
2018-11-29Add 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-18Finally 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-16Add fcntl() F_DUPFD which is slightly different from dup2().Andreas Kling
2018-11-11Add a naive /bin/fgrep for testing pipes.Andreas Kling
2018-11-11Add ispunct() to LibC + some minor cleanups.Andreas Kling
2018-11-09Fix some paging related bugs exposed by the spawn stress test.Andreas Kling
- Process::exec() needs to restore the original paging scope when called on a non-current process. - Add missing InterruptDisabler guards around g_processes access. - Only flush the TLB when modifying the active page tables.
2018-11-06Add strsignal() and improve sharing signal numbers between LibC and kernel.Andreas Kling
2018-11-05Replace zones with individually tracked physical pages.Andreas Kling
It's just a simple struct { ref_count, paddr }. This will allow me to implement lazy zeroing and COW pages.
2018-11-02Implement fork()!Andreas Kling
This is quite cool! The syscall entry point plumbs the register dump down to sys$fork(), which uses it to set up the child process's TSS in order to resume execution right after the int 0x80 fork() call. :^) This works pretty well, although there is some problem with the kernel alias mappings used to clone the parent process's regions. If I disable the MM::release_page_directory() code, there's no problem. Probably there's a premature freeing of a physical page somehow.
2018-10-31Fix busted display of tty names in /proc/summary.Andreas Kling
2018-10-31Add a /bin/tty command that prints the current tty.Andreas Kling
Also fix ttyname() syscall to include "/dev/" in the name.