Commit Graph

187 Commits

Author SHA1 Message Date
Jeremy Soller
483d466b1a Add fsync. Add env scheme, currently hardcoded to get ion to launch. Make serial IRQ send data to debug scheme 2016-09-18 17:55:35 -06:00
Jeremy Soller
1b056395bb Canonicalize paths in open 2016-09-18 12:54:10 -06:00
Jeremy Soller
cfbaccf4d2 Complete execve - add argument support using safe ABI 2016-09-17 21:44:50 -06:00
Jeremy Soller
57f5699664 Update libstd. Add CWD and associated syscalls. Remove debugging 2016-09-17 19:01:34 -06:00
Jeremy Soller
dfbcca99dd Add exit status to status enum 2016-09-17 09:23:36 -06:00
Jeremy Soller
b8d19746e4 Fix creation of kstack 2016-09-17 09:18:35 -06:00
Jeremy Soller
3e726a5d0d Implement the typical use of waitpid 2016-09-16 18:50:47 -06:00
Jeremy Soller
e680a84a57 Allow cloning of files and memory 2016-09-16 18:27:54 -06:00
Jeremy Soller
8ee9f1d7da work on shared memory accross threads 2016-09-16 17:51:27 -06:00
Jeremy Soller
0b2fd79816 Panic upon use of unsupported flags 2016-09-16 13:45:00 -06:00
Jeremy Soller
6ad843184d Collapse status of context into one status variable 2016-09-16 11:10:53 -06:00
Jeremy Soller
fbbfe16764 Organize context module 2016-09-16 10:44:52 -06:00
Jeremy Soller
997e229f27 Do not have interrupts enabled during context switch 2016-09-15 08:40:16 -06:00
Jeremy Soller
53a5a9188a Remove debugging 2016-09-15 08:39:20 -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
b01a918556 WIP: Create new page table for clone 2016-09-14 22:21:52 -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
6e16298e71 WIP: Copy usermode stack 2016-09-13 21:27:27 -06:00
Jeremy Soller
dc87afd2ac Fix userspace clone by clobbering all variables on clone 2016-09-13 20:31:45 -06:00
Jeremy Soller
ce50faf7ca Allow cloning of kernel threads. Userspace breaks potentially due to stack aliasing 2016-09-13 20:06:39 -06:00
Jeremy Soller
4341a2d725 Use flush_all instead of flush for performance 2016-09-13 11:20:55 -06:00
Jeremy Soller
6d675fc43a Map kernel TLS to general area 2016-09-12 15:02:03 -06:00
Jeremy Soller
1298e38ed8 cr3 in context 2016-09-12 12:21:34 -06:00
Jeremy Soller
85fef883d6 Implement exit, partly 2016-09-11 22:03:03 -06:00
Jeremy Soller
aa2915001e Clear memory on demand 2016-09-11 21:47:44 -06:00
Jeremy Soller
9796d21906 Add comments 2016-09-11 21:35:02 -06:00
Jeremy Soller
0d101ae5fa Cleanup heap management 2016-09-11 21:18:18 -06:00
Jeremy Soller
bcd318d80b Store context memory information 2016-09-11 21:04:34 -06:00
Jeremy Soller
f0431f4de1 Allow exec, emulate clone by pretending to be child 2016-09-11 18:03:10 -06:00
Jeremy Soller
2fffe3ee77 Fix close, add dup 2016-09-11 17:31:21 -06:00
Jeremy Soller
951831c4bb Improve init process, debug missing syscalls, fix error codes in syscall return 2016-09-11 16:48:58 -06:00
Jeremy Soller
c9a4b3882c PCI driver WIP 2016-09-11 15:56:48 -06:00
Jeremy Soller
8563961f28 Flush TLB correctly when remapping
Seperate mouse and keyboard structs in PS/2 driver
2016-09-11 15:02:35 -06:00
Jeremy Soller
44e8b99b46 Implement exec
Implement brk
2016-09-10 22:06:09 -06:00
Jeremy Soller
f2ca411cd6 Load init from initfs 2016-09-10 19:42:26 -06:00
Jeremy Soller
842826c1b0 Implement sched_yield, enable interrupts in userspace 2016-09-10 19:18:59 -06:00
Jeremy Soller
bd7bca30fa Remove debugging messages, launch elf on APs 2016-09-10 19:03:31 -06:00
Jeremy Soller
0b1265d87e Seperate kernel and userspace targets 2016-09-09 19:08:04 -06:00
Jeremy Soller
9040789987 Remove debug warnings 2016-09-09 17:30:22 -06:00
Jeremy Soller
aeadd17bb5 Connect schemes so that they can be used 2016-09-08 20:06:33 -06:00
Jeremy Soller
9afe0645e1 Cleanup to use question mark 2016-09-08 19:31:26 -06:00
Jeremy Soller
46f9f90e3c Add syscall library, make init program Rust 2016-09-08 19:10:50 -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
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
53c71d9183 Warnings removal 2016-09-01 11:14:47 -06:00
Jeremy Soller
f784e9a06a Fill in all exception and IRQ entries. Handle PIT, keyboard IRQs 2016-08-31 17:45:21 -06:00
ticki
a9a8c2b340 Merge branch 'master' of github.com:redox-os/kernel 2016-08-31 17:02:47 +02:00
ticki
03e7f221a8 Add the Fd definition file.
Damn, I forgot to `git add` it.
2016-08-31 17:01:08 +02:00
Jeremy Soller
165485b721 Add file descriptor type 2016-08-30 16:27:10 -06:00
Jeremy Soller
de761ce921 Merge branch 'master' of https://github.com/redox-os/kernel 2016-08-30 16:23:56 -06:00
Jeremy Soller
d3dfff8d51 Improvements for context switching 2016-08-30 16:23:51 -06:00
ticki
94a1a0fa0c Newtype file descriptors.
To avoid various bugs regarding the typing of file descriptors, we
newtype them into a simple wrapper type.

- Document some stuff.
2016-08-29 11:58:31 +02:00
Jeremy Soller
6e3f59ba8e Simple, unsafe context switch 2016-08-28 18:38:53 -06:00
Jeremy Soller
6715d5c534 Arm! 2016-08-25 17:03:01 -06:00
Jeremy Soller
c9d338715d Fix the build. Sorry 2016-08-24 19:30:14 -06:00
Jeremy Soller
2be7ccaec2 Arch context in kernel context 2016-08-24 10:35:42 -06:00
Jeremy Soller
5b9c821ff5 Initialize contexts, add getpid 2016-08-20 14:32:45 -06:00
Jeremy Soller
3b8f396229 Context list class, static context ID magic 2016-08-20 13:43:35 -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
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
71a17070b1 Remove clone from context 2016-08-18 09:02:31 -06:00
Jeremy Soller
490dd16776 Refactor context list 2016-08-18 08:30:45 -06:00
Jeremy Soller
2de2d4cac4 Cleanup schemes list, remove lazy_static 2016-08-18 08:10:08 -06:00
Jeremy Soller
8ddddcec9f Print out more useful information about AP and BSP, create kmain_ap 2016-08-17 19:38:04 -06:00
Jeremy Soller
0d995bfb5c Keep track of AP count, allocate bigger AP stack, stack trace function 2016-08-17 19:34:33 -06:00
Jeremy Soller
b756dd59eb Remove warnings 2016-08-17 16:54:48 -06:00
Jeremy Soller
d383cfb595 Lazy static init of schemes 2016-08-16 11:04:14 -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
9f0819dafb Bump allocator 2016-08-14 22:05:32 -06:00
Jeremy Soller
19077d69db WIP: Schemes 2016-08-14 21:38:32 -06:00
Jeremy Soller
8a6d9b8c9d Test for BadFile 2016-08-14 19:17:55 -06:00
Jeremy Soller
d97e2e4b4a Add stdout/stderr tests 2016-08-14 18:22:50 -06:00
Jeremy Soller
4e270bb807 Add context and file structs 2016-08-14 18:16:56 -06:00
Jeremy Soller
49739d47e8 WIP: Exec 2016-08-14 16:07:41 -06:00
Jeremy Soller
a490ff13ae Add syscall module 2016-08-14 15:58:35 -06:00
Jeremy Soller
29b6544d8f Add test architecture 2016-08-14 14:59:18 -06:00
ticki
1c9b6361c9 Merge branch 'master' of github.com:redox-os/kernel 2016-08-14 20:55:19 +02:00
ticki
740aabad90 Interrupt tables.
We add lookup table for interrupt descriptions containing information
about the CPU exceptions etc.
2016-08-14 20:54:23 +02:00
Jeremy Soller
ef22aafb60 Add comment 2016-08-14 12:11:53 -06:00
Jeremy Soller
2730144e2a Move arch to seperate crate 2016-08-14 11:45:47 -06:00
ticki
3967c0f291 Strongly typed virtual/physical memory seperation.
This minicommit introduces two newtpyes, `Physical` and `Virtual`,
respectively. These serves as a way to segregate the different forms of
addresses to avoid the issues we had in the old kernel.
2016-08-14 19:21:21 +02:00
ticki
f8bd171efd Rename the src directory to kernel. 2016-08-14 18:42:32 +02:00