Conrad Pankoff 
								
							 
						 
						
							
							
							
							
								
							
							
								738f9de9a9 
								
							 
						 
						
							
							
								
								Kernel: Add KParams class for accessing kernel cmdline parameters ( #188 )  
							
							
							
						 
						
							2019-06-04 03:54:27 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Conrad Pankoff 
								
							 
						 
						
							
							
							
							
								
							
							
								c02b8b715d 
								
							 
						 
						
							
							
								
								Kernel: Implement MBR partition loader ( #168 )  
							
							... 
							
							
							
							This implements a basic MBR partition loader, which removes the reliance
on a hard-coded filesystem offset in the stage2 init. 
							
						 
						
							2019-06-02 14:57:44 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Conrad Pankoff 
								
							 
						 
						
							
							
							
							
								
							
							
								32d78a8526 
								
							 
						 
						
							
							
								
								Kernel: Rename OffsetDiskDevice to DiskPartition  
							
							
							
						 
						
							2019-06-02 12:37:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Conrad Pankoff 
								
							 
						 
						
							
							
							
							
								
							
							
								6f43f81fb4 
								
							 
						 
						
							
							
								
								Kernel: Implement OffsetDiskDevice to prepare for partition support  
							
							... 
							
							
							
							This implements a passthrough disk driver that translates the read/write
block addresses by a fixed offset. This could form the basis of MBR
partition support if we were to parse the MBR table at boot and create that
OffsetDiskDevice dynamically, rather than seeking to a fixed offset.
This also introduces a dependency in the form of grub. You'll need to have
32-bit grub binaries installed to build the project now.
As a bonus, divorcing Serenity from qemu's kernel loading means we can now
*technically* boot on real hardware. It just... doesn't get very far yet.
If you write the `_disk_image` file to an IDE hard drive and boot it in a
machine that supports all the basic PC hardware, it *will* start loading
the kernel. 
							
						 
						
							2019-06-02 12:37:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4320c5fd58 
								
							 
						 
						
							
							
								
								Kernel: Make better use of the multiboot info.  
							
							... 
							
							
							
							Define the multiboot info struct properly so we don't have to grab at byte
offsets in the memory access checker code. Also print kernel command line
in init(). 
							
						 
						
							2019-06-02 09:53:42 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robin Burchell 
								
							 
						 
						
							
							
							
							
								
							
							
								d31ce9eccd 
								
							 
						 
						
							
							
								
								Misc: Add a simple init process  
							
							... 
							
							
							
							This doesn't do much right now, just fork off a bunch of stuff and set priorities. 
							
						 
						
							2019-05-30 02:57:15 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Christopher Dumas 
								
							 
						 
						
							
							
							
							
								
							
							
								dd84dcf31f 
								
							 
						 
						
							
							
								
								Launcher loads applications from Launcher.ini, is started by default, and is resized automatically  
							
							... 
							
							
							
							Co-Authored-By: Andreas Kling <awesomekling@gmail.com> 
							
						 
						
							2019-05-24 20:40:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e24e486714 
								
							 
						 
						
							
							
								
								Snake: Flesh out a basic snake game :^)  
							
							
							
						 
						
							2019-04-20 03:24:50 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								0e6b273620 
								
							 
						 
						
							
							
								
								LibGUI: Start working on GTableView inline editing.  
							
							... 
							
							
							
							This is pretty shaky still, but the basic idea is that you subclass GModel
and return true for editable indices. The table view also needs to have its
editable flag set. 
							
						 
						
							2019-04-18 22:27:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									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