WangRunji
56fcad245a
update kernel to 2018 edition
2018-11-19 20:11:17 +08:00
lcy1996
b2fec2b16b
Fix a bug in context for smp
2018-11-17 21:34:21 +08:00
lcy1996
9d803e87d9
replace some unwrap() and comment the cow pgfault handler
2018-11-17 16:25:24 +08:00
WangRunji
df485d506e
simplify ProcessManager
...
- given that a proc can only be waited by its parent, wait_queue is no longer needed.
2018-11-17 12:58:40 +08:00
WangRunji
ef75c8a072
fix unwrap panic. now user shell is working.
2018-11-17 12:40:51 +08:00
WangRunji
da399dca96
remove Process struct
2018-11-16 22:27:03 +08:00
WangRunji
205f90a264
Merge branch 'dev' into g4-merge
...
# Conflicts:
# crate/memory/src/cow.rs
# crate/memory/src/memory_set.rs
# crate/memory/src/paging/mod.rs
# crate/memory/src/swap/mod.rs
# crate/process/src/lib.rs
# crate/process/src/process_manager.rs
# crate/process/src/processor.rs
# crate/process/src/thread.rs
# crate/riscv
# kernel/Cargo.lock
# kernel/src/arch/riscv32/compiler_rt.rs
# kernel/src/arch/riscv32/consts.rs
# kernel/src/arch/riscv32/context.rs
# kernel/src/arch/riscv32/interrupt.rs
# kernel/src/arch/riscv32/memory.rs
# kernel/src/arch/riscv32/mod.rs
# kernel/src/arch/riscv32/paging.rs
# kernel/src/arch/x86_64/driver/ide.rs
# kernel/src/arch/x86_64/interrupt/handler.rs
# kernel/src/arch/x86_64/mod.rs
# kernel/src/console.rs
# kernel/src/consts.rs
# kernel/src/fs.rs
# kernel/src/lib.rs
# kernel/src/memory.rs
# kernel/src/process/context.rs
# kernel/src/process/mod.rs
# kernel/src/syscall.rs
# kernel/src/trap.rs
2018-11-16 18:58:29 +08:00
WangRunji
d27ac65df3
fix load program slice error
2018-11-16 01:33:25 +08:00
WangRunji
9b3294a5f2
fix clear bss when load user program. 'sh' works!
2018-11-16 00:17:05 +08:00
WangRunji
44bf3fb07a
impl sys_exec
2018-11-15 23:41:22 +08:00
chenqiuhao
4d8d48cf4d
repair some bugs and move child control to processmanager
2018-11-14 18:36:47 +08:00
lcy1996
c5499a62c5
Fix bug in swap in/out. Address ailign to 4K.
2018-11-14 00:32:59 +08:00
chenqiuhao
6652f8daf6
repair some bugs
2018-11-13 22:52:11 +08:00
lcy1996
5ee44588e0
Enlarge the physical and kernel heap memory. Fix the bug in map the kernel.
2018-11-09 11:08:45 +08:00
lcy1996
9adcea44d5
Code transplanting: Fix bugs. Pass test 'spin'
2018-11-08 19:21:13 +08:00
WangRunji
124a5e0d5d
impl sys_dup
...
- Fix exit_code: i32
- Convert Box<File> to Arc<Mutex<File>> in Context
2018-11-08 00:21:20 +08:00
WangRunji
128257c395
impl argc & argv for user process
2018-11-07 23:28:07 +08:00
equation314
5610d0bdb0
aarch64: context switch is runnable!
2018-11-07 22:07:59 +08:00
WangRunji
e27aea47e1
impl file syscalls, without test
2018-11-07 13:35:59 +08:00
equation314
a91534e34d
aarch64: implement context switch, but not tested
2018-11-06 21:44:12 +08:00
lcy1996
a145909998
Fix compile error after merge for the new processor.
2018-11-05 22:16:45 +08:00
lcy1996
fcdee71f9d
Merge confilt
2018-11-05 21:31:04 +08:00
lcy1996
c8ea2cb0cf
Fix bug and enable swap in/out and frame delayed allocating.
2018-11-05 20:37:05 +08:00
chenqiuhao
87506b000d
debug for process
2018-11-05 19:31:45 +08:00
chenqiuhao
2002ddd5fa
move processor from wrj
2018-11-03 21:45:03 +08:00
lcy1996
b1425a53f9
finish frame delayed allocating
2018-11-03 14:33:36 +08:00
WangRunji
b7d6b2989d
Fix bugs. Pass test 'spin'
...
- Fix ACK IRQ on x86.
- Add process exit handler.
2018-11-01 21:10:19 +08:00
WangRunji
6fc23e1134
Ugly impl sys_wait(0)
2018-11-01 00:45:02 +08:00
WangRunji
74facd8e87
Use Vec to replace array in ProcessManager.
2018-11-01 00:16:32 +08:00
lcy1996
edde416052
Finish swap for multi-user process
2018-10-30 12:45:09 +08:00
WangRunji
72dc3f62ad
Remove kernel stack from MemorySet.
2018-10-27 15:17:15 +08:00
WangRunji
85a1dca684
Use weak linkage to provide dependencies for process::thread.
2018-10-24 21:32:23 +08:00
WangRunji
80b161db98
Recover set_priority and fork
2018-10-24 21:29:41 +08:00
WangRunji
5db908b1c5
Separate ProcessManager to a mod.
2018-10-24 00:38:22 +08:00
WangRunji
f7eb09e856
Multicore processing WORKS! Basically ...
...
- Rewrite processor.rs
Refactor to `Processor` & `ProcessManager`
- Use Box<dyn> instead of generic.
- Wait/sleep/wakeup is not supported yet.
I'm considering to implement them with WaitQueue.
2018-10-24 00:28:29 +08:00
lcy1996
63349ade19
Finish add more comment for kernel and finish set user memory swappable.
2018-10-23 00:00:09 +08:00
lcy1996
e4300d3515
Add more comment in kernel but not finished
2018-10-05 10:58:15 +08:00
WangRunji
ff8930a36c
Make frame allocator smaller. Fix serial stupid bug.
2018-08-07 15:09:11 +08:00
WangRunji
a2111a928f
Move thread mod to ucore-process crate
2018-07-17 19:06:30 +08:00
WangRunji
6022ec8efc
Fix load user program out of range
2018-07-17 11:45:55 +08:00
WangRunji
52d3443e05
Recover idle process. Make shell wait for the user it spawned.
2018-07-17 10:47:05 +08:00
WangRunji
c8a9eaf3e6
Split process mod to extern crate
2018-07-17 01:56:28 +08:00
WangRunji
37a6df252f
Refactor process mod
2018-07-17 00:23:02 +08:00
WangRunji
1ad3ed738e
Can run user program in RV32
2018-07-14 11:56:55 +08:00
WangRunji
4faa8a65ae
Move kernel to a new directory
2018-07-13 12:25:39 +08:00