Commit graph

49 commits

Author SHA1 Message Date
Jeremy Soller e3161301fb Default to choosing a resolution 2016-12-27 20:47:19 -07:00
Jeremy Soller 41811ad98d Allow compiling both livedisk and harddrive 2016-11-19 20:19:41 -07:00
Jeremy Soller 8ca7ef4b64 Do not include filesystem image in harddrive 2016-11-18 08:46:11 -07:00
Jeremy Soller 8efbd9b177 Bootloader messages 2016-11-18 08:46:11 -07:00
Jeremy Soller 4fc9283aff Remove rd/wrfsbase 2016-10-31 18:04:28 -06:00
Jeremy Soller 149b0297a4 Smp (#23)
* Fire up multiple processors

* Use IPIs to wake up secondary processors

* Much better exception information

* Modifications to show more information on fault

* WIP: Use real libstd

* Add TLS (not complete)

* Add random function, export getpid, cleanup

* Do not spin APs until new context

* Update rust

* Update rust

* Use rd/wrfsbase

* Implement TLS

* Implement compiler builtins and update rust

* Update rust

* Back to Redox libstd

* Update rust
2016-10-31 10:49:00 -06:00
Jeremy Soller 2abd681c84 Add rtl8168d to makefile 2016-10-20 12:53:36 -06:00
Jeremy Soller 8e9af7c817 Fix for bootloader on new BIOS (don't know exactly why though) 2016-10-19 12:07:31 -06:00
Jeremy Soller f7672dbaf4 Bootloader fixes on systems with wrong CS 2016-10-19 10:06:37 -06:00
Jeremy Soller 1aace24eba Print error number on disk error 2016-10-19 08:47:34 -06:00
Jeremy Soller 64cfe68046 Allow x and y resolution to be saved 2016-10-18 17:04:06 -06:00
Jeremy Soller 9c2a45d0bf Mark kernel memory global 2016-10-16 16:18:01 -06:00
Jeremy Soller 224c43f761 Orbital (#16)
* Port previous ethernet scheme

* Add ipd

* Fix initfs rebuilds, use QEMU user networking addresses in ipd

* Add tcp/udp, netutils, dns, and network config

* Add fsync to network driver

* Add dns, router, subnet by default

* Fix e1000 driver. Make ethernet and IP non-blocking to avoid deadlocks

* Add orbital server, WIP

* Add futex

* Add orbutils and orbital

* Update libstd, orbutils, and orbital
Move ANSI key encoding to vesad

* Add orbital assets

* Update orbital

* Update to add login manager

* Add blocking primitives, block for most things except waitpid, update orbital

* Wait in waitpid and IRQ, improvements for other waits

* Fevent in root scheme

* WIP: Switch to using fevent

* Reorganize

* Event based e1000d driver

* Superuser-only access to some network schemes, display, and disk

* Superuser root and irq schemes

* Fix orbital
2016-10-13 17:21:42 -06:00
Jeremy Soller 64cc730eac Time (#11)
* WIP: Time syscalls

* Count time from PIT using low tickrate

* Implement realtime

* Implement nanosleep with a tight loop
2016-10-06 20:50:14 -06:00
Jeremy Soller e1025ed00f Bootloader debug - use max sector read of 128 sectors 2016-09-30 09:41:17 -06:00
Jeremy Soller c27962fd7c Fixes for bootloader unreal loading 2016-09-30 08:55:29 -06:00
Jeremy Soller d7be0fc774 Build with filesystem 2016-09-27 21:56:29 -06:00
Jeremy Soller 5721582f81 allow mode selection again 2016-09-22 17:16:32 -06:00
Jeremy Soller e3df5194fe Remove bochs breakpoint 2016-09-22 16:13:32 -06:00
Jeremy Soller 70a2faa0c7 Correctly position stack in higher half 2016-09-19 08:46:11 -06:00
Jeremy Soller da9e703c4d Remove debug break 2016-09-17 09:20:13 -06:00
Jeremy Soller 83bc8a0da5 Higher-half kernel mapping. Unmap where possible, freeing up lower memory 2016-09-14 20:47:55 -06:00
Jeremy Soller dc87afd2ac Fix userspace clone by clobbering all variables on clone 2016-09-13 20:31:45 -06:00
Jeremy Soller 0a2abe0f54 Initialize FPU and SSE on APs 2016-09-12 20:37:22 -06:00
Jeremy Soller 6560cc653b Simplify bootloader GDT 2016-09-12 15:49:54 -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 729c7fd004 Prepare for higher half 2016-09-09 18:31:48 -06:00
Jeremy Soller 3d79c653bd Enable display first to catch ps2 output 2016-09-01 20:52:52 -06:00
Jeremy Soller aad69e8a6c Reduce bootloader messages 2016-09-01 20:45:26 -06:00
Jeremy Soller 7ae58a11d7 Remove debugging times, set PIT to slower frequency 2016-09-01 16:46:34 -06:00
Jeremy Soller 6715d5c534 Arm! 2016-08-25 17:03:01 -06:00
Jeremy Soller c2a95c96d5 Fixes for real hardware 2016-08-24 20:31:59 -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 5588c38178 Add syscall handler, still work in progress
Add elf files
2016-08-18 19:44:31 -06:00
Jeremy Soller 0693540a5b Prepare for higher half - map entire lower 4 GB 2016-08-18 07:56:47 -06:00
Jeremy Soller ebf9766ef5 Map kernel in AP, WIP 2016-08-17 15:47:54 -06:00
Jeremy Soller 27d5996abf Get the APs into rust code, set stack and page table in trampoline 2016-08-16 21:25:48 -06:00
Jeremy Soller a8948fb246 Hooks to get the other CPUs into long mode 2016-08-16 20:37:38 -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 2730144e2a Move arch to seperate crate 2016-08-14 11:45:47 -06:00
Jeremy Soller 42c9ba12dc Remove interrupt setup from asm bootloader, add io module, memcpy functions, and serial driver 2016-08-14 09:31:35 -06:00
Jeremy Soller dea137be73 WIP: IDT in rust 2016-08-13 18:58:31 -06:00
Jeremy Soller d5902c5a20 Bootable kernel skeleton 2016-08-13 18:21:46 -06:00