Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3817f5f619 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add a DebugLogDevice that forwards everything to I/O port 0xe9.  
							
							... 
							
							
							
							This is then used to implement the userspace dbgprintf() in a far more
efficient way than what we had before. :^) 
							
						 
						
							2019-04-18 16:08:52 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								33920df299 
								
							 
						 
						
							
							
								
								AK: Try to use StringViews more for substrings and splitting.  
							
							
							
						 
						
							2019-04-16 02:39:16 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								6f90f41516 
								
							 
						 
						
							
							
								
								VisualBuilder: Add some more GWidget default properties.  
							
							
							
						 
						
							2019-04-12 14:47:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								0f5114852a 
								
							 
						 
						
							
							
								
								Kernel: Spawn text editor by default while I work on it.  
							
							
							
						 
						
							2019-04-12 00:58:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								93b76628a5 
								
							 
						 
						
							
							
								
								GGroupBox: Improve appearance with new FrameShape::Box style.  
							
							
							
						 
						
							2019-04-11 14:27:31 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								ec7817af37 
								
							 
						 
						
							
							
								
								Kernel: Spawn /bin/Taskbar on startup.  
							
							... 
							
							
							
							I think it's good enough now to be there by default. :^) 
							
						 
						
							2019-04-04 20:19:07 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								ab43658c55 
								
							 
						 
						
							
							
								
								Kernel: Move devices into Kernel/Devices/.  
							
							
							
						 
						
							2019-04-03 12:36:40 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								649c81a714 
								
							 
						 
						
							
							
								
								Kernel: Move networking related files into Kernel/Net/.  
							
							
							
						 
						
							2019-04-02 19:54:38 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								94c68dc55a 
								
							 
						 
						
							
							
								
								Kernel: Spawn the Launcher by default.  
							
							
							
						 
						
							2019-04-01 22:04:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ee4d7c18c8 
								
							 
						 
						
							
							
								
								Kernel: Use a multiboot header instead of a convoluted two-part bootloader.  
							
							... 
							
							
							
							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-01 21:43:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								750d79dcaf 
								
							 
						 
						
							
							
								
								Kernel: Initialize the CPU to allow SSE on startup.  
							
							... 
							
							
							
							I still need to add support for SSE to the context switching code, but now
at least one process can use it. 
							
						 
						
							2019-03-27 13:40:00 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								9120b05a40 
								
							 
						 
						
							
							
								
								Rename DNSLookupServer => LookupServer.  
							
							
							
						 
						
							2019-03-20 04:26:30 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								0e4a1936ca 
								
							 
						 
						
							
							
								
								LibC: Implement gethostbyname() by talking to the DNSLookupServer.  
							
							... 
							
							
							
							We now talk to the lookup server over a local socket and it does the lookup
on our behalf. Including some retry logic, which is nice, because it seems
like DNS requests disappear in the ether pretty damn often where I am. 
							
						 
						
							2019-03-20 01:15:22 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								35098cbde1 
								
							 
						 
						
							
							
								
								Kernel: Add a NetworkTask and a received network packet queue.  
							
							... 
							
							
							
							It will be easier to deal with incoming packets in a separate task. 
							
						 
						
							2019-03-11 12:43:45 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								97664fad60 
								
							 
						 
						
							
							
								
								Kernel: A bunch of hacking towards initial Ethernet support.  
							
							
							
						 
						
							2019-03-10 20:59:23 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								405413c354 
								
							 
						 
						
							
							
								
								Kernel: Start adding support for E1000 network adapters.  
							
							
							
						 
						
							2019-03-10 15:25:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7d1142c7d9 
								
							 
						 
						
							
							
								
								Make it possible to sort a GTableModel by column+order.  
							
							... 
							
							
							
							This is accomplished by putting a GSortingProxyTableModel between the model
and the view. It's pretty simplistic but it works for this use case. :^) 
							
						 
						
							2019-03-09 13:33:52 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a738b5cb69 
								
							 
						 
						
							
							
								
								TextEditor: Open an empty document by default.  
							
							
							
						 
						
							2019-03-07 17:15:59 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9158de6c41 
								
							 
						 
						
							
							
								
								Begin working on a graphical TextEditor.  
							
							... 
							
							
							
							It's gonna be a wrapper around a new GTextEditor widget so I can easily
reuse the functionality anywhere I need it. :^) 
							
						 
						
							2019-03-07 00:31:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								166aadc4e1 
								
							 
						 
						
							
							
								
								ProcessManager: Start working on a graphical process manager.  
							
							... 
							
							
							
							I need a table view widget for this thing, so I'm also using this to
prototype a model/view thingy. 
							
						 
						
							2019-02-28 01:43:50 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								2cfcbdc735 
								
							 
						 
						
							
							
								
								AK: Add Retained<T>, like RetainPtr, but never null.  
							
							... 
							
							
							
							Also use some Clang attribute wizardry to get a warning for use-after-move. 
							
						 
						
							2019-02-25 12:43:52 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d4973842c9 
								
							 
						 
						
							
							
								
								Kernel: Run the sync daemon once every second.  
							
							... 
							
							
							
							This is obviously not a final design, but 10 seconds was way too long. 
							
						 
						
							2019-02-17 15:18:35 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ff786aa38a 
								
							 
						 
						
							
							
								
								Spawn Launcher and FileManager on startup by default again.  
							
							... 
							
							
							
							I disabled this while debugging WindowServer-in-userspace, and now that it
works fine we can bring these back up. 
							
						 
						
							2019-02-17 11:31:52 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b6bf26430d 
								
							 
						 
						
							
							
								
								Kernel: Have devices automagically register themselves with the VFS.  
							
							
							
						 
						
							2019-02-17 10:38:07 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bd2fdcbbaa 
								
							 
						 
						
							
							
								
								Kernel: Rename BochsVGADevice to BXVGADevice.  
							
							
							
						 
						
							2019-02-17 08:41:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								10b43f3d1d 
								
							 
						 
						
							
							
								
								Kernel: Rename Keyboard to KeyboardDevice.  
							
							
							
						 
						
							2019-02-17 08:39:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								53c69dbade 
								
							 
						 
						
							
							
								
								Start the WindowServer process with high priority.  
							
							
							
						 
						
							2019-02-17 00:21:26 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								799177feda 
								
							 
						 
						
							
							
								
								Kernel: Make BochsVGADevice a BlockDevice and support mmapping it.  
							
							... 
							
							
							
							Currently you can only mmap the entire framebuffer.
Using this when starting up the WindowServer gets us yet another step
closer towards it moving into userspace. :^) 
							
						 
						
							2019-02-16 09:57:42 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								994279d56c 
								
							 
						 
						
							
							
								
								Kernel: Add Device base class for CharacterDevice.  
							
							... 
							
							
							
							..to prepare for adding a BlockDevice class. 
							
						 
						
							2019-02-16 00:47:20 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								022f7790db 
								
							 
						 
						
							
							
								
								Use modern C++ attributes instead of __attribute__ voodoo.  
							
							... 
							
							
							
							This is quite nice, although I wish [[gnu::always_inline]] implied inline.
Also "gnu::" is kind of a wart, but whatcha gonna do. 
							
						 
						
							2019-02-15 12:30:48 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								18210c606d 
								
							 
						 
						
							
							
								
								Kernel: Remove GUIEventDevice.  
							
							... 
							
							
							
							It's no longer used since all communication now happens across sockets. :^) 
							
						 
						
							2019-02-15 08:59:55 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c5a00a56c8 
								
							 
						 
						
							
							
								
								WindowServer: Put a clock in the top right corner of the screen.  
							
							... 
							
							
							
							This way we don't even need the Clock app anymore. Very cool :^) 
							
						 
						
							2019-02-13 09:27:08 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								111589a558 
								
							 
						 
						
							
							
								
								Kernel: Make sure processes always start out with fds 0, 1 and 2 open.  
							
							... 
							
							
							
							If we don't have a TTY for the process, fall back to /dev/null. 
							
						 
						
							2019-02-12 11:25:25 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f311d0f353 
								
							 
						 
						
							
							
								
								Kernel: Don't bother trying to pass environment to init's testing processes.  
							
							
							
						 
						
							2019-02-12 10:19:52 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4d5fe39494 
								
							 
						 
						
							
							
								
								FileManager: Start building a file manager.  
							
							
							
						 
						
							2019-02-09 09:22:04 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								887b4a7a1a 
								
							 
						 
						
							
							
								
								Start working on a simple Launcher app.  
							
							... 
							
							
							
							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-07 23:17:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								71b9ec1ae0 
								
							 
						 
						
							
							
								
								Kernel: Add basic process priority support.  
							
							... 
							
							
							
							For now, the WindowServer process will run with high priority,
while the Finalizer process will run with low priority.
Everyone else gets to be "normal".
At the moment, priority simply determines the size of your time slices. 
							
						 
						
							2019-02-07 12:21:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3fc3a8d7bc 
								
							 
						 
						
							
							
								
								Kernel: Remove some unnecessary zero initialization now that BSS is cleared.  
							
							
							
						 
						
							2019-02-07 10:31:32 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6cba80510e 
								
							 
						 
						
							
							
								
								Kernel: Add a Finalizer process to take care of dying processes.  
							
							... 
							
							
							
							Instead of processes themselves getting scheduled to finish dying,
let's have a Finalizer process that wakes up whenever someone is dying.
This way we can do all kinds of lock-taking in process cleanup without
risking reentering the scheduler. 
							
						 
						
							2019-02-06 18:45:21 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a1b63bb6d4 
								
							 
						 
						
							
							
								
								Bootloader: Locate the kernel's data segment and clear it.  
							
							... 
							
							
							
							This was a constant source of stupid bugs and I kept postponing it because
I wasn't in the mood to write assembly code. Until now! :^) 
							
						 
						
							2019-02-06 16:02:10 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								731fc5a7c8 
								
							 
						 
						
							
							
								
								Kernel: Much improved BochsVGA (BXVGA) support.  
							
							... 
							
							
							
							Instead of cowboy-calling the VESA BIOS in the bootloader, find the emulator
VGA adapter by scanning the PCI bus. Then set up the desired video mode by
sending device commands. 
							
						 
						
							2019-02-06 10:17:26 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d0078b6574 
								
							 
						 
						
							
							
								
								Clock: Turns the clock window from guitest2 into a separate program.  
							
							... 
							
							
							
							We can't not have a desktop clock app. :^) 
							
						 
						
							2019-02-05 09:44:13 +01:00