dthain / basekernel

A simple OS kernel for research, teaching, and fun.
GNU General Public License v2.0
805 stars 109 forks source link

Window Manager #202

Closed jmazanec15 closed 5 years ago

jmazanec15 commented 6 years ago

manager.c runs a list of programs in windows with the corresponding size specified.

The idea is to eventually switch between the programs running using a special key. However, this would require the parent process (manager.c) to be able stop and start its children. A new system call I believe will need to be created. However, we need to restrict a program so that it can only stop its children. I am not sure if this will require additional information for each process.

Here is my idea for how the end product will work: manager.c will keep a list of the processes it has created. Upon creation, each child process will initially be stopped until all processes are created. Then, manager.c will start the first process in its list. Then, when a special key is hidden, manager.c will stop the child and start the next process in the list. So, manager.c will run concurrently with 1 of its children at all times.

dthain commented 6 years ago

Cool so far! As we discussed, please use pipes from parent to children in order to route I/O while the children continue to run.

dthain commented 6 years ago

Great demo on Monday! Last step here is to create a syscall which creates a console object on top of an existing window. Then, the window manager can give each process its own stdout connected to the window.

dthain commented 5 years ago

Nicely done, please resolve conflicts with the base and we can merge it.

jmazanec15 commented 5 years ago

This branch could be merged with no conflicts, but #214 prevents the window manager from running snake.exe or shell.exe.

dthain commented 5 years ago

That's ok, it's not your problem, go ahead and merge.