Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-10-28 | Add basic symlink support. | Andreas Kling | |
- sys$readlink + readlink() - Add a /proc/PID/exe symlink to the process's executable. - Print symlink contents in ls output. - Some work on plumbing options into VFS::open(). | |||
2018-10-28 | Add a VFS::absolutePath(InodeIdentifier). | Andreas Kling | |
This is pretty inefficient for ext2fs. We walk the entire block group containing the inode, searching through every directory for an entry referencing this inode. It might be a good idea to cache this information somehow. I'm not sure how often we'll be searching for it. Obviously there are multiple caching layers missing in the file system. | |||
2018-10-28 | Add zone dump to /proc/mm. | Andreas Kling | |
Sweet, now we can look at all the zones (physical memory) currently in play. Building the procfs files with ksprintf and rickety buffer presizing feels pretty shoddy but I'll fix it up eventually. | |||
2018-10-28 | Add /proc/mm and a /bin/mm utility that just dumps it. | Andreas Kling | |
This shows some info about the MM. Right now it's just the zone count and the number of free physical pages. Lots more can be added. Also added "exit" to sh so we can nest shells and exit from them. I also noticed that we were leaking all the physical pages, so fixed that. | |||
2018-10-28 | Add subregions to /proc/PID/vm | Andreas Kling | |
2018-10-28 | Add sys$set_mmap_name and use it from LibC's malloc. | Andreas Kling | |
It's nice to be able to identify mmap's in /proc/PID/vm. | |||
2018-10-28 | Canonicalize the path used by sh. | Andreas Kling | |
With a bunch of LibC work to support the feature. LibC now initializes AK::StringImpl by default. It's now fine to use AK in LibC/Userland! :^) | |||
2018-10-28 | Add a simple FileSystemPath class that can canonicalize paths. | Andreas Kling | |
Also a simple StringBuilder to help him out. | |||
2018-10-28 | Add save/unsave cursor escape sequences. | Andreas Kling | |
Also added a little terminal test program called /bin/tst. | |||
2018-10-28 | Stop committing changes to _fs_contents and generate it in the sync script. | Andreas Kling | |
2018-10-28 | Colorize ls output. | Andreas Kling | |
2018-10-28 | Give the shell a nice, colorful prompt. | Andreas Kling | |
The cwd looks like crap, I need to write some code to strip out ".." and extra slashes from the path string. | |||
2018-10-28 | Add basic support for ANSI color escape sequences. | Andreas Kling | |
2018-10-27 | Implement 'H' and 'J' escape sequences. | Andreas Kling | |
2018-10-27 | Add a /bin/clear that prints the clear terminal escape sequence. | Andreas Kling | |
It doesn't work yet, but it will! | |||
2018-10-27 | Add some basic field width support to printf(). | Andreas Kling | |
Use it to make "ls" output a bit better. Also sys$spawn now fails with EACCES if the path is not a file that's executable by the current uid/gid. | |||
2018-10-27 | Rename "kernel map" concept to just "ksyms" | Andreas Kling | |
2018-10-27 | Implement loading of linked ELF executables. | Andreas Kling | |
This took me a couple hours. :^) The ELF loading code now allocates a single region for the entire file and creates virtual memory mappings for the sections as needed. Very nice! | |||
2018-10-27 | Enable A20 line at boot. | Andreas Kling | |
2018-10-27 | Better int hashing. This was going to bite me sooner or later. | Andreas Kling | |
2018-10-27 | Implement waitpid() support for getting the waitee's exit code. | Andreas Kling | |
2018-10-27 | Remove the obsolete "Userspace" stuff. | Andreas Kling | |
2018-10-27 | Turn off the floppy drive after the boot loader is finished. | Andreas Kling | |
2018-10-27 | Use Unix::stat for sys$lstat(). | Andreas Kling | |
2018-10-27 | Add some basic address validation to syscalls. | Andreas Kling | |
This is extremely ineffcient, but it doesn't really matter yet. | |||
2018-10-27 | Greatly improve /proc/PID/stack by tracing the ebp frame chain. | Andreas Kling | |
I also added a generator cache to FileHandle. This way, multiple reads to a generated file (i.e in a synthfs) can transparently handle multiple calls to read() without the contents changing between calls. The cache is discarded at EOF (or when the FileHandle is destroyed.) | |||
2018-10-26 | Add a very hackish /proc/PID/stack. | Andreas Kling | |
It walks the stack and identifies anything that looks like a kernel symbol. This could be a lot more sophisticated. | |||
2018-10-26 | Add a simple /proc/mounts that enumerates the current VFS mounts. | Andreas Kling | |
2018-10-26 | Add a /proc/kmalloc stats file. | Andreas Kling | |
2018-10-26 | Fix bug where you couldn't "cd .." into the root of a mounted fs. | Andreas Kling | |
2018-10-26 | Implement /proc/PID/vm. | Andreas Kling | |
Refactored SyntheticFileSystem to maintain an arbitrary directory structure. ProcFileSystem creates a directory entry in /proc for each new process. | |||
2018-10-26 | Add ASSERT_INTERRUPTS_DISABLED in Task::fromPID(). | Andreas Kling | |
2018-10-26 | Properly null-terminate the argv list created by sh. | Andreas Kling | |
2018-10-26 | Add sys$uname() and a /bin/uname utility. | Andreas Kling | |
2018-10-26 | Add per-task limit for open fd's. Hard-coded at 16 for now. | Andreas Kling | |
2018-10-26 | Implement sys$chdir() and teach sh+ls to cd around and browse different dirs. | Andreas Kling | |
2018-10-26 | Add memcpy() and strcmp() to LibC. | Andreas Kling | |
2018-10-26 | If spawning a task fails after we did a partial ELF load, remap current. | Andreas Kling | |
This is an annoying issue. It'd be nice if this code didn't have to worry about preserving the calling task's mappings. | |||
2018-10-26 | Remove logspam in /dev/{full,null,zero} now that they work just fine. | Andreas Kling | |
Also don't echo anything to console when putch'ing '\0'. | |||
2018-10-26 | Fix mixup between /dev/null and /dev/zero device registration. | Andreas Kling | |
2018-10-26 | Implement argc/argv support for spawned tasks. | Andreas Kling | |
Celebrate the new functionality with a simple /bin/cat implementation. :^) | |||
2018-10-26 | Add sys$gethostname and /bin/hostname | Andreas Kling | |
2018-10-25 | Add /bin/false and /bin/true for fun. :^) | Andreas Kling | |
2018-10-25 | Add gettimeofday() syscall and LibC wrappers gettimeofday() and time(). | Andreas Kling | |
This only has second accuracy right now, I'll work out subseconds later. | |||
2018-10-25 | Add a "sleep" syscall that sleeps for N seconds. | Andreas Kling | |
2018-10-25 | Implement a basic way for read() to block. | Andreas Kling | |
FileHandle gets a hasDataAvailableForRead() getter. If this returns true in sys$read(), the task will block(BlockedRead) + yield. The fd blocked on is stored in Task::m_fdBlockedOnRead. The scheduler then looks at the state of that fd during the unblock phase. This makes "sh" restful. :^) There's still some problem with the kernel not surviving the colonel task getting scheduled. I need to figure that out and fix it. | |||
2018-10-25 | If no context switch occurs, add 1 to the timesScheduled() for current. | Andreas Kling | |
This seems like more accurate accounting. | |||
2018-10-25 | Make the stage2 init task sleep dreamily when finished. | Andreas Kling | |
Something is off about scheduling, I don't think the kernel is handing out all the available time to processes that are available to run. | |||
2018-10-25 | Add a very naive block cache to the DiskBackedFileSystem. | Andreas Kling | |
This would be a lot better as an LRU. Right now it's a 32-slot hash table with random eviction. | |||
2018-10-25 | Keyboard should support the space character (jeez!) | Andreas Kling | |