Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8b249bd09b 
								
							 
						 
						
							
							
								
								Kernel+Userland: Implement mknod() syscall and add a /bin/mknod program.  
							
							
							
						 
						
							2019-05-03 22:59:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								03da7046bd 
								
							 
						 
						
							
							
								
								Kernel: Prepare Socket for becoming a File.  
							
							... 
							
							
							
							Make the Socket functions take a FileDescriptor& rather than a socket role
throughout the code. Also change threads to block on a FileDescriptor,
rather than either an fd index or a Socket. 
							
						 
						
							2019-05-03 20:15:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c3b7ace3e0 
								
							 
						 
						
							
							
								
								Kernel: Assign Lock names in class member initializers.  
							
							
							
						 
						
							2019-05-02 03:28:20 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								14ac77131b 
								
							 
						 
						
							
							
								
								Kernel: The exit_thread() syscall should unlock the big lock.  
							
							... 
							
							
							
							Since exit_thread() never returns, it can't rely on the syscall trap handler
to unlock the big lock before returning. 
							
						 
						
							2019-04-29 15:56:25 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d07be1087a 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add exit_thread() syscall.  
							
							
							
						 
						
							2019-04-29 15:17:20 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8cbb7f101f 
								
							 
						 
						
							
							
								
								Kernel: Have File virtuals take a FileDescriptor& rather than a Process&.  
							
							... 
							
							
							
							This will allow us to implement different behaviors depending on the role
of the descriptor a File is being accessed through. 
							
						 
						
							2019-04-29 13:58:40 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								0a0d739e98 
								
							 
						 
						
							
							
								
								Kernel: Make FIFO inherit from File.  
							
							
							
						 
						
							2019-04-29 04:55:54 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e886337a67 
								
							 
						 
						
							
							
								
								Kernel: Make ProcessTracer inherit from File.  
							
							
							
						 
						
							2019-04-28 15:02:55 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								679ac386eb 
								
							 
						 
						
							
							
								
								Kernel: "Succeed" quietly for zero-length read() and write().  
							
							
							
						 
						
							2019-04-27 16:17:24 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								490e89e240 
								
							 
						 
						
							
							
								
								LibC: Add execvpe() and make execvp()'ed children inherit environment.  
							
							
							
						 
						
							2019-04-26 03:16:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d5578826af 
								
							 
						 
						
							
							
								
								Kernel: Make it possible to look up FIFO's by ID.  
							
							... 
							
							
							
							This will be useful when implementing the /proc/PID/fd/N links where N is
a file descriptor referring to a FIFO. 
							
						 
						
							2019-04-25 13:53:24 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c5c4e54a67 
								
							 
						 
						
							
							
								
								Kernel: Process destruction should destroy all child threads.  
							
							... 
							
							
							
							We were only destroying the main thread when a process died, leaving any
secondary threads around. They couldn't run, but because they were still
in the global thread list, strange things could happen since they had some
now-stale pointers to their old process. 
							
						 
						
							2019-04-23 22:17:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								5c68929aa1 
								
							 
						 
						
							
							
								
								Kernel: Add a systrace() syscall and implement /bin/strace using it.  
							
							... 
							
							
							
							Calling systrace(pid) gives you a file descriptor with a stream of the
syscalls made by a peer process. The process must be owned by the same
UID who calls systrace(). :^) 
							
						 
						
							2019-04-22 18:44:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a9d09e9020 
								
							 
						 
						
							
							
								
								Kernel: Get rid of the "cool globals" thingy.  
							
							... 
							
							
							
							This was something I used while debugging with Computron. I haven't needed
it for months, so let's get rid of it. It's trivial to readd if needed. 
							
						 
						
							2019-04-21 12:33:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								5f63f8120c 
								
							 
						 
						
							
							
								
								Kernel: Remove "restorer" field from SignalActionData.  
							
							... 
							
							
							
							I was originally implementing signals by looking at some man page about
sigaction() to see how it works. It seems like the restorer thingy is
system-specific and not required by POSIX, so let's get rid of it. 
							
						 
						
							2019-04-20 19:32:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b2ebf6c798 
								
							 
						 
						
							
							
								
								Kernel: Shrink Thread by making kernel resume TSS heap-allocated.  
							
							
							
						 
						
							2019-04-20 19:23:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ec365b82d5 
								
							 
						 
						
							
							
								
								Kernel: Make the colonel run at "Idle" priority (the lowest possible.)  
							
							... 
							
							
							
							This means it won't hog the CPU for more than a single timeslice. :^) 
							
						 
						
							2019-04-20 15:58:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								5eedb22834 
								
							 
						 
						
							
							
								
								Sprinkle use of AK::Vector in various places.  
							
							... 
							
							
							
							Some of these are less helpful than others. Avoiding a bunch of mallocs
in the event loop wakeup code is definitely nice. 
							
						 
						
							2019-04-20 14:02:19 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1debc0a78c 
								
							 
						 
						
							
							
								
								Kernel: Reduce kmallocing in all_processes() and all_pids().  
							
							
							
						 
						
							2019-04-16 00:37:35 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ae0dc22716 
								
							 
						 
						
							
							
								
								Kernel: Make validate_read_from_kernel() return early for nullptr checks.  
							
							... 
							
							
							
							Null pointers are always invalid, so don't bother going through all the
various checks for them. 
							
						 
						
							2019-04-15 23:48:31 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								13041f894f 
								
							 
						 
						
							
							
								
								Kernel: Start using StringView in the VFS class.  
							
							... 
							
							
							
							The less kmalloc() we can do, the better. Calling kmalloc() disables all
interrupts while it runs, so it's directly affecting responsiveness. 
							
						 
						
							2019-04-15 14:57:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3f6408919f 
								
							 
						 
						
							
							
								
								AK: Improve smart pointer ergonomics a bit.  
							
							
							
						 
						
							2019-04-14 02:36:06 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								29d0412a06 
								
							 
						 
						
							
							
								
								Kernel: Remove system.h and make the uptime global a qword.  
							
							
							
						 
						
							2019-04-14 01:29:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								60a819c14a 
								
							 
						 
						
							
							
								
								Kernel: Yet more work on bringing up POSIX SHM.  
							
							
							
						 
						
							2019-04-09 02:37:38 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								26a06f3fcd 
								
							 
						 
						
							
							
								
								Kernel: More work towards POSIX SHM, also add ftruncate().  
							
							
							
						 
						
							2019-04-09 01:10:00 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								99f3cc26c3 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add stubs for POSIX shared memory API.  
							
							... 
							
							
							
							Specifically shm_open() and shm_unlink(). This patch just adds stubs. 
							
						 
						
							2019-04-08 23:44:12 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								65d6318c33 
								
							 
						 
						
							
							
								
								Kernel: Support non-blocking connect().  
							
							... 
							
							
							
							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-08 04:52:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								37ae00a4dd 
								
							 
						 
						
							
							
								
								Kernel+Userland: Add the rename() syscall along with a basic /bin/mv.  
							
							
							
						 
						
							2019-04-07 23:35:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								644c887594 
								
							 
						 
						
							
							
								
								Kernel: Move FIFO into FileSystem/ and Socket+LocalSocket into Net/.  
							
							
							
						 
						
							2019-04-06 20:29:48 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ac6c7d3e19 
								
							 
						 
						
							
							
								
								Kernel: Use alloc_fd() more instead of walking fd list manually.  
							
							
							
						 
						
							2019-04-06 14:54:32 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a58d7fd8bb 
								
							 
						 
						
							
							
								
								Kernel: Get rid of Kernel/types.h, separate LinearAddress/PhysicalAddress.  
							
							
							
						 
						
							2019-04-06 14:29:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b9738fa8ac 
								
							 
						 
						
							
							
								
								Kernel: Move VM-related files into Kernel/VM/.  
							
							... 
							
							
							
							Also break MemoryManager.{cpp,h} into one file per class. 
							
						 
						
							2019-04-03 15:13:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a095a90b51 
								
							 
						 
						
							
							
								
								Kernel: Remove ancient nprocess and nblocked globals.  
							
							... 
							
							
							
							These were not in sync with reality, and not used anywhere anyway. 
							
						 
						
							2019-04-03 13:05:20 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ab43658c55 
								
							 
						 
						
							
							
								
								Kernel: Move devices into Kernel/Devices/.  
							
							
							
						 
						
							2019-04-03 12:36:40 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								072ea7eece 
								
							 
						 
						
							
							
								
								Kernel: Move ELF-related files into Kernel/ELF/.  
							
							
							
						 
						
							2019-04-03 12:30:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9fca94269e 
								
							 
						 
						
							
							
								
								Kernel: Move TTY-related files into Kernel/TTY/.  
							
							
							
						 
						
							2019-04-03 12:28:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f9864940eb 
								
							 
						 
						
							
							
								
								Kernel: Move FS-related files into Kernel/FileSystem/  
							
							
							
						 
						
							2019-04-03 12:25:24 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d11b5407a3 
								
							 
						 
						
							
							
								
								Kernel: Get rid of the GPL elf.h and import exec_elf.h from OpenBSD.  
							
							
							
						 
						
							2019-04-03 11:30:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								649c81a714 
								
							 
						 
						
							
							
								
								Kernel: Move networking related files into Kernel/Net/.  
							
							
							
						 
						
							2019-04-02 19:54:38 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d5a9f4596b 
								
							 
						 
						
							
							
								
								Kernel: Add a blunt big process lock.  
							
							... 
							
							
							
							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-04-01 20:04:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								245c4bd7c8 
								
							 
						 
						
							
							
								
								Kernel: Add a bit of debug output in do_exec() to learn about thread counts.  
							
							
							
						 
						
							2019-03-30 21:14:40 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								44e1e7423f 
								
							 
						 
						
							
							
								
								Kernel: Put a bunch of debug spam behind #ifdefs.  
							
							
							
						 
						
							2019-03-27 15:07:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a2fe5f8517 
								
							 
						 
						
							
							
								
								Kernel: Don't disable interrupts during Process destruction.  
							
							
							
						 
						
							2019-03-27 14:38:32 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1592612a60 
								
							 
						 
						
							
							
								
								Kernel: Don't disable interrupts during Thread destruction.  
							
							
							
						 
						
							2019-03-27 14:30:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								75207ddffd 
								
							 
						 
						
							
							
								
								Kernel: Load ELF executable pages lazily when possible.  
							
							... 
							
							
							
							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-27 04:01:15 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								500df578fe 
								
							 
						 
						
							
							
								
								LibGUI+Kernel: Add a GLock class (userspace mutex.)  
							
							... 
							
							
							
							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. 
							
						 
						
							2019-03-25 13:03:49 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ab11f42094 
								
							 
						 
						
							
							
								
								Kernel: Do timekeeping manually instead of asking the RTC all the time.  
							
							... 
							
							
							
							This introduces a tiny amount of timer drift which I will have to fix
somehow eventually, but it's a huge improvement in timing consistency
as we no longer suddenly jump from e.g 10:45:49.123 to 10:45:50.000. 
							
						 
						
							2019-03-25 02:06:57 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								239c0bd6a6 
								
							 
						 
						
							
							
								
								Kernel: Make block() and yield() automatically call Scheduler::yield().  
							
							... 
							
							
							
							This exposed some places we were accidentally doing a double yield(). 
							
						 
						
							2019-03-24 01:52:10 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								5713c3a0cb 
								
							 
						 
						
							
							
								
								Kernel: Fix broken destruction order for Process/Thread.  
							
							
							
						 
						
							2019-03-24 01:20:35 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e561ab1b0b 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add a simple create_thread() syscall.  
							
							... 
							
							
							
							It takes two parameters, a function pointer for the entry function,
and a void* argument to be passed to that function on the new thread. 
							
						 
						
							2019-03-23 22:59:08 +01:00