Commit graph

49 commits

Author SHA1 Message Date
Jeremy Soller
e110ab81b8 WIP: VESA driver. Make initfs generated by code 2016-09-20 21:52:45 -06:00
Jeremy Soller
941fc0b494 Grant to allow passing data to scheme handler 2016-09-20 14:50:04 -06:00
Jeremy Soller
0b3be623fc Move PS/2 driver to userspace 2016-09-19 17:19:49 -06:00
Jeremy Soller
727647dbf1 Seperate PS/2 keyboard and mouse driver 2016-09-19 09:43:30 -06:00
Jeremy Soller
cfbaccf4d2 Complete execve - add argument support using safe ABI 2016-09-17 21:44:50 -06:00
Jeremy Soller
4e78a12002 Do not halt on page fault, do a stack dump 2016-09-17 08:13:09 -06:00
Jeremy Soller
33e098c124 Fix implementation of clone and exec. Now the init process can load and execute the pci driver 2016-09-15 08:35:07 -06:00
Jeremy Soller
c000820d72 Move kernel heap into kernel PML4, now a single PML4 needs to be copied to initialize a new table 2016-09-14 21:28:09 -06:00
Jeremy Soller
6e16298e71 WIP: Copy usermode stack 2016-09-13 21:27:27 -06:00
Jeremy Soller
3f9012b931 Restore page fault handler 2016-09-13 20:35:01 -06:00
Jeremy Soller
dc87afd2ac Fix userspace clone by clobbering all variables on clone 2016-09-13 20:31:45 -06:00
Jeremy Soller
6d675fc43a Map kernel TLS to general area 2016-09-12 15:02:03 -06:00
Jeremy Soller
11eddfecd1 Cleanup PML4 entries, pass correct cpu ID to trampoline 2016-09-12 13:06:00 -06:00
Jeremy Soller
44e8b99b46 Implement exec
Implement brk
2016-09-10 22:06:09 -06:00
Jeremy Soller
ce717ff277 Reorganize kernel memory mappings 2016-09-10 18:48:27 -06:00
Jeremy Soller
fcec69efdc remove bochs breaks 2016-09-08 15:53:45 -06:00
Jeremy Soller
a5d79d7957 Nographic mode, fix userspace transition by setting kernel TLS back on syscall 2016-09-08 15:45:26 -06:00
Jeremy Soller
fb0df8530d Debug reads writes better, set up stdio for BSP 2016-09-07 21:32:09 -06:00
Jeremy Soller
850792bbf1 Load a very simple ELF and launch it in usermode 2016-09-07 21:16:30 -06:00
Jeremy Soller
486b11eb1c Force scancode set, combine keyboard packets 2016-09-02 14:47:56 -06:00
Jeremy Soller
f45958f449 Fix stack trace, WIP usermode 2016-09-02 12:27:45 -06:00
Jeremy Soller
f14569e313 Only one AP can start at a time 2016-09-01 17:08:43 -06:00
Jeremy Soller
0ccfd2125a Improve efficiency of kernel console 2016-09-01 14:39:45 -06:00
Jeremy Soller
d7d61f82af Draw on VESA for console using ransid 2016-09-01 11:51:33 -06:00
Jeremy Soller
543ef3d96f Add serial init and serial interrupts 2016-09-01 11:10:56 -06:00
Jeremy Soller
722d738254 Fix mouse position, map display on APs 2016-09-01 08:12:50 -06:00
Jeremy Soller
f784e9a06a Fill in all exception and IRQ entries. Handle PIT, keyboard IRQs 2016-08-31 17:45:21 -06:00
Jeremy Soller
234fb64999 Add display 2016-08-24 20:10:55 -06:00
Jeremy Soller
f6e57ff5d1 Add arch context, WIP switching 2016-08-22 19:56:35 -06:00
Jeremy Soller
7a59e08e70 Fix thread locals 2016-08-20 08:39:03 -06:00
Jeremy Soller
8ddd0ad3f0 WIP: Thread control block and TSS in kernel 2016-08-19 17:38:37 -06:00
Jeremy Soller
0501b2580d Setup independent page tables, map heap to a single location 2016-08-19 14:53:16 -06:00
Jeremy Soller
7aafc165ec Use x86 crate for definition of TSS and GDTR, WIP: loading TSS 2016-08-19 13:09:00 -06:00
Jeremy Soller
55a0154eac Switch to goblin as executable parser 2016-08-19 07:57:24 -06:00
Jeremy Soller
5588c38178 Add syscall handler, still work in progress
Add elf files
2016-08-18 19:44:31 -06:00
Jeremy Soller
b0797a5d8a Allocate a very small 4K stack for the other CPUs, increase count to 4 2016-08-17 17:40:18 -06:00
Jeremy Soller
979d80a8c7 Fix locking in serial port 2016-08-17 17:24:10 -06:00
Jeremy Soller
78432b3875 Move frame allocation to two global functions, locking happens inside them 2016-08-17 16:26:43 -06:00
Jeremy Soller
ebf9766ef5 Map kernel in AP, WIP 2016-08-17 15:47:54 -06:00
Jeremy Soller
08900d56c8 Changes to allow for detection and init of ASPs 2016-08-16 18:04:15 -06:00
Jeremy Soller
7a1c263bc1 WIP: ACPI
Map and find ACPI tables, starting with RSDT
2016-08-15 18:37:58 -06:00
Jeremy Soller
fda1ab2327 Global allocator, page table - protected by spinlock 2016-08-15 16:29:54 -06:00
Jeremy Soller
617516b949 Move main to start 2016-08-15 15:32:33 -06:00
Jeremy Soller
eccb99d67d Use linked list allocator 2016-08-15 15:27:32 -06:00
Jeremy Soller
2a66a84a50 Cleanup, use spinlock for allocator 2016-08-15 15:01:24 -06:00
Jeremy Soller
cc8fe85e6a GDT and IDT in kernel space
Paging constructs completed, remap kernel before jumping to kmain
Panic will do a stack trace
Remove SSE from none target
2016-08-15 14:34:20 -06:00
Jeremy Soller
465363f0a1 Add simple paging, use rust libcore and compile without sse 2016-08-15 11:30:14 -06:00
Jeremy Soller
b130f9a860 Magic to make interrupt functions easy to write 2016-08-14 12:08:42 -06:00
Jeremy Soller
2730144e2a Move arch to seperate crate 2016-08-14 11:45:47 -06:00