summaryrefslogtreecommitdiff
path: root/Kernel
AgeCommit message (Collapse)Author
2019-04-08Kernel: Support non-blocking connect().Andreas Kling
If connect() is called on a non-blocking socket, it will "fail" immediately with -EINPROGRESS. After that, you select() on the socket and wait for it to become writable.
2019-04-07Kernel+Userland: Add the rename() syscall along with a basic /bin/mv.Andreas Kling
2019-04-07Start working on a Downloader app and backing classes in LibGUI.Andreas Kling
LibGUI is slowly becoming LibKitchensink but I'm okay with this for now.
2019-04-06Kernel: Oops, also moved FileDescriptor into FileSystem/, fix Makefile.Andreas Kling
2019-04-06Kernel: Move FIFO into FileSystem/ and Socket+LocalSocket into Net/.Andreas Kling
2019-04-06Kernel: Use alloc_fd() more instead of walking fd list manually.Andreas Kling
2019-04-06Kernel: Get rid of Kernel/types.h, separate LinearAddress/PhysicalAddress.Andreas Kling
2019-04-05Hack sync.sh script to retry umount after a short delay if it fails.Andreas Kling
I keep accumulated unwanted mounts because umount sometimes fails.
2019-04-05NetworkTask: Add a combined alarm for the all network adapters.Andreas Kling
This way we can go back to snoozing in the receiver task and stop chewing up the CPU. :^)
2019-04-05AK: Revert Eternal<T> for now since it doesn't work as intended.Andreas Kling
2019-04-05Kernel: Build with i686-pc-serenity-g++.Andreas Kling
This works just fine, and now we only need one cross-compiler. :^)
2019-04-04Kernel: Spawn /bin/Taskbar on startup.Andreas Kling
I think it's good enough now to be there by default. :^)
2019-04-03Kernel: Bump per-process file descriptor limit to 128.Andreas Kling
2019-04-03Taskbar: Start working on a taskbar app.Andreas Kling
I originally thought I would do this inside WindowServer, but let's try to make it as a standalone app that communicates with WindowServer instead. That will allow us to use LibGUI. :^)
2019-04-03AK: Add Eternal<T> and use it in various places.Andreas Kling
This is useful for static locals that never need to be destroyed: Thing& Thing::the() { static Eternal<Thing> the; return the; } The object will be allocated in data segment memory and will never have its destructor invoked.
2019-04-03Kernel: Move VM-related files into Kernel/VM/.Andreas Kling
Also break MemoryManager.{cpp,h} into one file per class.
2019-04-03Kernel: Tidy up kmalloc.cpp a tiny bit.Andreas Kling
2019-04-03Kernel: Remove unused Queue.h.Andreas Kling
2019-04-03Kernel: Remove Limits.hAndreas Kling
2019-04-03Kernel: Remove ancient nprocess and nblocked globals.Andreas Kling
These were not in sync with reality, and not used anywhere anyway.
2019-04-03Kernel: Remove unneeded kassert.h.Andreas Kling
2019-04-03Kernel: Remove now-unused _start.cppAndreas Kling
2019-04-03Kernel: Move devices into Kernel/Devices/.Andreas Kling
2019-04-03Kernel: Move ELF-related files into Kernel/ELF/.Andreas Kling
2019-04-03Kernel: Move TTY-related files into Kernel/TTY/.Andreas Kling
2019-04-03Kernel: Move FS-related files into Kernel/FileSystem/Andreas Kling
2019-04-03Kernel: Make LoopbackAdapter eternally allocated.Andreas Kling
2019-04-03AK: Remove useless ktime.hAndreas Kling
2019-04-03AK: Clean up some of the confusion that is AK/kmalloc.{cpp,h}Andreas Kling
2019-04-03Kernel: Get rid of the GPL elf.h and import exec_elf.h from OpenBSD.Andreas Kling
2019-04-02Move NetworkOrdered.h to AK/ since it's used in both kernel and userspace.Andreas Kling
2019-04-02Kernel: Move networking related files into Kernel/Net/.Andreas Kling
2019-04-02Kernel: Add a LoopbackAdapter for talking to yourself via 127.0.0.1.Andreas Kling
Choosing adapter for transmit is done by adapter_for_route_to(IPv4Address). This is just hard-coded logic right now but can be expanded to support a proper routing table. Also start moving kernel networking code into Kernel/Net/.
2019-04-01Kernel: Spawn the Launcher by default.Andreas Kling
2019-04-01Kernel: Use a multiboot header instead of a convoluted two-part bootloader.Andreas Kling
The old bootloader was hilariously complicated, requiring a floppy disk with the kernel on it, and a hard drive with the file system. This patch removes the floppy disk from the equation and replaces it with a multiboot header. This means the kernel can now be booted with qemu-system-i386 -kernel kernel
2019-04-01Kernel: Add a blunt big process lock.Andreas Kling
We can't have multiple threads in the same process running in the kernel at the same time, so let's have a per-process lock that threads have to acquire on syscall entry/exit (and yield while blocked.)
2019-03-30Kernel: Add a bit of debug output in do_exec() to learn about thread counts.Andreas Kling
2019-03-30Stopwatch: Print the result in decimal instead of hexadecimal.Andreas Kling
2019-03-27Kernel: Add Inode::truncate(size).Andreas Kling
- Use this to implement the O_TRUNC open flag. - Fix creat() to pass O_CREAT | O_TRUNC | O_WRONLY. - Make sure we truncate wherever appropriate.
2019-03-27Kernel: Save/restore the SSE context on context switch.Andreas Kling
2019-03-27Kernel: Put a bunch of debug spam behind #ifdefs.Andreas Kling
2019-03-27Kernel: Don't disable interrupts during Process destruction.Andreas Kling
2019-03-27Kernel: Don't disable interrupts during Thread destruction.Andreas Kling
2019-03-27Ext2FS: Avoid a lot of redundant writes to inode block arrays.Andreas Kling
2019-03-27Kernel: Initialize the CPU to allow SSE on startup.Andreas Kling
I still need to add support for SSE to the context switching code, but now at least one process can use it.
2019-03-27Give the emulator testing environments 128 MB of RAM.Andreas Kling
I'm working on porting GCC and it needs a fair bit of memory to run.
2019-03-27LibC: Run constructors on process startup.Andreas Kling
Cooperate with the compiler to generate and execute the _init_array list of constructor functions on userspace program statup. This took two days to get working, my goodness. :^)
2019-03-27Kernel: Load ELF executable pages lazily when possible.Andreas Kling
This currently only works for "normal" processes created by fork(). It does not work for create_user_process() processes spawned by the kernel, as those are a bit special during construction.
2019-03-27Kernel: Print an error when trying to load an incompatible ELF image.Andreas Kling
2019-03-25LibGUI+Kernel: Add a GLock class (userspace mutex.)Andreas Kling
It's basically a userspace port of the kernel's Lock class. Added gettid() and donate() syscalls to support the timeslice donation feature we already enjoyed in the kernel.