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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								c02c6fef28 
								
							 
						 
						
							
							
								
								Kernel+ProcessManager: Show per-process syscall counts.  
							
							... 
							
							
							
							Added a simple syscall counter to the /proc/all contents. :^) 
							
						 
						
							2019-04-17 23:16:14 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								37ae00a4dd 
								
							 
						 
						
							
							
								
								Kernel+Userland: Add the rename() syscall along with a basic /bin/mv.  
							
							
							
						 
						
							2019-04-07 23:35:26 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								ea801a99dc 
								
							 
						 
						
							
							
								
								Kernel: Bump per-process file descriptor limit to 128.  
							
							
							
						 
						
							2019-04-03 23:48:59 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								60d25f0f4a 
								
							 
						 
						
							
							
								
								Kernel: Introduce threads, and refactor everything in support of it.  
							
							... 
							
							
							
							The scheduler now operates on threads, rather than on processes.
Each process has a main thread, and can have any number of additional
threads. The process exits when the main thread exits.
This patch doesn't actually spawn any additional threads, it merely
does all the plumbing needed to make it possible. :^) 
							
						 
						
							2019-03-23 22:03:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bc1da7f1fd 
								
							 
						 
						
							
							
								
								Kernel: Snooze the NetworkTask until there are incoming packets to process.  
							
							... 
							
							
							
							This is accomplished using a new Alarm class and a BlockedSnoozing state.
Basically, you call Process::snooze_until(some_alarm) and then the scheduler
won't wake up the process until some_alarm.is_ringing() returns true. 
							
						 
						
							2019-03-20 17:09:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								313ee8dd19 
								
							 
						 
						
							
							
								
								Move Lock from AK to Kernel, since it only works inside the kernel.  
							
							
							
						 
						
							2019-03-16 13:18:22 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								66d55f8e0c 
								
							 
						 
						
							
							
								
								IPv4: More work on the TCP implementation.  
							
							... 
							
							
							
							I can now establish a connection to my little test server on the host. 
							
						 
						
							2019-03-14 00:20:44 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								562663df7c 
								
							 
						 
						
							
							
								
								Add support for socket send/receive timeouts.  
							
							... 
							
							
							
							Only the receive timeout is hooked up yet. You can change the timeout by
calling setsockopt(..., SOL_SOCKET, SO_RCVTIMEO, ...).
Use this mechanism to make /bin/ping report timeouts. 
							
						 
						
							2019-03-13 13:15:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a7d5e9781a 
								
							 
						 
						
							
							
								
								Kernel+LibC+Userland: Yet more networking bringup hacking.  
							
							... 
							
							
							
							All ICMP sockets now receive all ICMP packets. All this buffering is gonna
need some limits and such. 
							
						 
						
							2019-03-12 17:27:07 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a017a77442 
								
							 
						 
						
							
							
								
								Kernel+LibC+Userland: Start working on an IPv4 socket backend.  
							
							... 
							
							
							
							The first userland networking program will be "ping" :^) 
							
						 
						
							2019-03-12 15:51:42 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								eda0866992 
								
							 
						 
						
							
							
								
								Add a C++ helper class for working with shared buffers.  
							
							... 
							
							
							
							This is a bit more comfortable than passing the shared buffer ID manually
everywhere and keeping track of size etc. 
							
						 
						
							2019-03-08 12:24:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e56fe71dbc 
								
							 
						 
						
							
							
								
								Kernel: And some more KResult/KResultOr<T> porting work.  
							
							
							
						 
						
							2019-03-06 22:30:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								028afabf6b 
								
							 
						 
						
							
							
								
								Kernel: Port more code to KResult and KResultOr<T>.  
							
							
							
						 
						
							2019-03-06 22:14:31 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1cc32ebc7e 
								
							 
						 
						
							
							
								
								Kernel: Remove "requested wakeups" feature.  
							
							... 
							
							
							
							I only needed this to support the WindowServer living inside the kernel.
Now that it's been migrated to userspace, this can go. :^) 
							
						 
						
							2019-03-05 13:34:36 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								91031346e5 
								
							 
						 
						
							
							
								
								Kernel: More signal handling improvements.  
							
							... 
							
							
							
							Finally fixed the weird flaky crashing when resizing Terminal windows.
It was because we were dispatching a signal to "current" from the scheduler.
Yet another thing I dislike about even having a "current" process while
we're in the scheduler. Not sure yet how to fix this.
Let the signal handler's kernel stack be a kmalloc() allocation for now.
Once we can do allocation of consecutive physical pages in the supervisor
memory region, we can use that for all types of kernel stacks. 
							
						 
						
							2019-03-05 12:52:35 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								251293f2e1 
								
							 
						 
						
							
							
								
								Kernel: Block a signal from being dispatched again until handler returns.  
							
							... 
							
							
							
							We don't handle nesting yet, but this is a step in the right direction. 
							
						 
						
							2019-03-05 10:34:08 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								2c5a378ccc 
								
							 
						 
						
							
							
								
								Kernel+Userland: Add symlink() syscall and add "-s" flag to /bin/ln.  
							
							... 
							
							
							
							It's now possible to create symbolic links! :^)
This exposed an issue in Ext2FS where we'd write uninitialized data past
the end of an inode's content. Fix this by zeroing out the tail end of
the last block in a file. 
							
						 
						
							2019-03-02 01:52:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1b16a29044 
								
							 
						 
						
							
							
								
								Kernel+Userland: Implement fchmod() syscall and use it to improve /bin/cp.  
							
							... 
							
							
							
							/bin/cp will now copy the permission bits from source to destination. :^) 
							
						 
						
							2019-03-01 10:39:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e427b514dc 
								
							 
						 
						
							
							
								
								Kernel: Implement basic SIGSTOP and SIGCONT support.  
							
							
							
						 
						
							2019-02-28 12:27:26 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1d2529b4a1 
								
							 
						 
						
							
							
								
								Add chown() syscall and a simple /bin/chown program.  
							
							
							
						 
						
							2019-02-27 12:32:53 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e421c10735 
								
							 
						 
						
							
							
								
								More compat work towards porting vim.  
							
							... 
							
							
							
							It now builds and runs in the small-featureset configuration. :^) 
							
						 
						
							2019-02-27 00:02:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9624b54703 
								
							 
						 
						
							
							
								
								More moving towards using signed types.  
							
							... 
							
							
							
							I'm still feeling this out, but I am starting to like the general idea. 
							
						 
						
							2019-02-25 22:06:55 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								beda478821 
								
							 
						 
						
							
							
								
								Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t.  
							
							... 
							
							
							
							Dealing with the unsigned overflow propagation here just seems unreasonably
error prone. Let's limit ourselves to 2GB buffer sizes instead. 
							
						 
						
							2019-02-25 21:21:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								15fb917f28 
								
							 
						 
						
							
							
								
								Convert more RetainPtr use to Retained.  
							
							
							
						 
						
							2019-02-25 16:04:08 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f98dcbf1d6 
								
							 
						 
						
							
							
								
								Kernel: Respect the process umask in open() and mkdir().  
							
							
							
						 
						
							2019-02-22 02:39:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6d3e12899b 
								
							 
						 
						
							
							
								
								Kernel: Pass process arguments directly on the stack.  
							
							... 
							
							
							
							Get rid of the convoluted get_arguments and get_environment syscalls.
This patch also adds a simple /bin/env that just prints its environment. 
							
						 
						
							2019-02-22 01:55:22 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e969419202 
								
							 
						 
						
							
							
								
								Kernel: Don't allocate and discard an extra stack for every process.  
							
							
							
						 
						
							2019-02-22 00:27:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								920e8e58ed 
								
							 
						 
						
							
							
								
								Kernel+Userland: Implement setuid() and setgid() and add /bin/su  
							
							... 
							
							
							
							Also show setuid and setgid bits in "ls -l" output. :^) 
							
						 
						
							2019-02-21 23:38:10 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f0a869ea50 
								
							 
						 
						
							
							
								
								Kernel: Process::cwd_inode() should return a reference.  
							
							... 
							
							
							
							There's always a current working directory inode. 
							
						 
						
							2019-02-21 16:19:07 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f5f136931a 
								
							 
						 
						
							
							
								
								Kernel: Start adding various file system permission checks.  
							
							... 
							
							
							
							Fail with EACCES in various situations. Fix userland bugs that were exposed. 
							
						 
						
							2019-02-21 15:45:31 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7d288aafb2 
								
							 
						 
						
							
							
								
								Kernel: Add link() syscall to create hard links.  
							
							... 
							
							
							
							This accidentally grew into a little bit of VFS cleanup as well.
Also add a simple /bin/ln implementation to exercise it. 
							
						 
						
							2019-02-21 13:26:40 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								cf8dd312ab 
								
							 
						 
						
							
							
								
								Kernel: Fix String leaks in exec().  
							
							... 
							
							
							
							When the kernel performs a successful exec(), whatever was on the kernel
stack for that process before goes away. For this reason, we need to make
sure we don't have any stack objects holding onto kmalloc memory. 
							
						 
						
							2019-02-17 10:18:25 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								459cc23441 
								
							 
						 
						
							
							
								
								Kernel: Remove Process::gui_client_id().  
							
							
							
						 
						
							2019-02-17 09:05:49 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								809266a9fb 
								
							 
						 
						
							
							
								
								Kernel: Remove tracking of bitmap memory.  
							
							... 
							
							
							
							There are no more kernel bitmaps. It's much better this way. 
							
						 
						
							2019-02-17 01:16:38 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								640360e958 
								
							 
						 
						
							
							
								
								Move WindowServer to userspace.  
							
							... 
							
							
							
							This is a monster patch that required changing a whole bunch of things.
There are performance and stability issues all over the place, but it works.
Pretty cool, I have to admit :^) 
							
						 
						
							2019-02-17 00:13:47 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4ea28bf0a5 
								
							 
						 
						
							
							
								
								Kernel: Add a simple shared memory API for two processes only.  
							
							... 
							
							
							
							And use this to implement shared bitmaps between WindowServer and clients. 
							
						 
						
							2019-02-16 12:13:43 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7210d2ade5 
								
							 
						 
						
							
							
								
								Kernel: Remove knowledge about BochsVGADevice from Process.  
							
							
							
						 
						
							2019-02-16 10:40:47 +01:00