Jeremy Soller
f60661820d
Create example userspace scheme. Remove kernel duplication of syscalls, use syscall crate instead
2016-09-20 16:23:28 -06:00
Jeremy Soller
941fc0b494
Grant to allow passing data to scheme handler
2016-09-20 14:50:04 -06:00
Jeremy Soller
2b915953c9
Increase buffer size when reading executable, update libstd
2016-09-20 09:51:26 -06:00
Jeremy Soller
d329f7c7d2
Fix deadlock
2016-09-20 09:21:54 -06:00
Jeremy Soller
791dbfa7ad
Implement user schemes. Example in pcid. Currently deadlocks in UserInner
2016-09-20 08:47:16 -06:00
Jeremy Soller
c512d04378
WIP: User scheme
2016-09-19 21:24:54 -06:00
Jeremy Soller
abdbadfea3
Minimize locking in schemes. Reenable pcid and ion launch in init. WIP: Userspace schemes
2016-09-19 18:29:28 -06:00
Jeremy Soller
94ad63de11
Remove warnings
2016-09-19 17:28:22 -06:00
Jeremy Soller
c957c2a105
PS/2 driver convert to char
2016-09-19 10:24:19 -06:00
Jeremy Soller
727647dbf1
Seperate PS/2 keyboard and mouse driver
2016-09-19 09:43:30 -06:00
Jeremy Soller
36fde7c7c5
Allow userspace to handle IRQs (WIP). Create basic keyboard handler
2016-09-18 20:17:08 -06:00
Jeremy Soller
4bcee99d9f
Add mechanism to read IRQ count
2016-09-18 18:59:46 -06:00
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