Page 1 of 1

Chapter 25: Process Management 2

Posted: Wed Jan 06, 2016 2:52 am
by Mike
Hello everyone,

The initial release of the OS Development Series Chapter 25 is out. The chapter primary covers concurrent programming, scheduling, and multitasking. Other topics include IPC, Process state management, and a brief introduction to SMP. The Chapter 25 demo program should be released in about a week however most of the new code is presented throughout the chapter. From here on out, there are a lot of different directions we can take. Please let us know if you have any suggestions that you would like to see! Currently, we are considering Graphics 3, Advanced Memory Management, Virtual 8086, or hard disk devices.

Re: Chapter 25: Process Management 2

Posted: Wed Jan 06, 2016 1:28 pm
by Warsome
Hi Mike, nice to see you are still working on this tutorial, was starting to get worried that you stopped producing new articles.

The best direction from here I feel would be to complete the memory routines and implement a heap. From there we could start implementing the C standard library routines that require a heap and implement a proper new and delete for C++. I feel once we have these things in place, we could then move on to more process specific routines.

Finish each section at a time and not hop from process/memory to graphics and back again.

From Michael, long term visitor and follower of this dev series.

Re: Chapter 25: Process Management 2

Posted: Fri Jan 15, 2016 6:44 pm
by marcos
We are so very happy to read these new post. I want to thank you your effort and hard work to mantain these web. Many people is learning and sharing interests about operating system development. Really, Good news!.
About suggestions: all are of high interest: Graphics 3, Advanced Memory Management, Virtual 8086 or hard disk devices,... or power management, or network cards, USB, TCP/IP.... My vote is between "Graphics 3" and "Advanced memory Management".

Re: Chapter 25: Process Management 2

Posted: Wed Jan 20, 2016 12:48 am
by Mike
Hello everyone.

Thanks for the feedback and suggestions. We will most probably be going with the memory management topics given that we had to make some additional changes in the demo to accommodate for the lack of proper address space management and heap allocator. The next chapter have been started a few weeks ago, primary topics will include user and kernel heap allocators, including, but not limited to: free lists and stack allocations, SLAB allocators and variants; and possibly others.

We also want to cover address space management, however it may or may not be in the next chapter - we'll see. Address space management topics would include AVL trees, buddy allocators, zone and arena allocators, recursive page directory structures, self-mapping, and page swapping.

Due to unforeseen circumstances, we had to push the demo release date for chapter 25 slightly - we will release it in the next 2 days. We were originally going to run the threads in user mode, however due to the lack of proper address space management (one of the reasons we want to cover it), it would require hacks to reserve and create user space stacks for the independent threads while keeping them separate from kernel space - and we want to avoid that. We also wanted to avoid adding a large amount of code not discussed in the chapter - so we decided to keep them kernel level threads for the demo and we'll be pushing them into userspace once we implement address space management.

If there is anything specific that you would like us to cover, please let us know and thank you for your support.

Re: Chapter 25: Process Management 2

Posted: Sat Jan 23, 2016 4:01 pm
by albus
I would like to see how to imèlement the bopot fro uefi, so we will remove this stupid floppy disk think that I can't do in 64bit windows ( i really want not disable the driver signing)

Re: Chapter 25: Process Management 2

Posted: Tue Jan 26, 2016 7:09 am
by Mike
Hello everyone,

The initial release of the Chapter 25 demo software and some additional updates to the text was released. It contains about a thousand lines of new code since the process loading code was rewritten for the threading support.

Thank you for the suggestions for supporting UEFI. We do plan to write a chapter on C boot loader architecture and design for multiple firmware types, notably BIOS and UEFI support. A chapter on just UEFI firmware is also possible given how large the API is. We can certainly provide examples and address any questions or concerns on UEFI while we wait. We will hopefully be able to release our in-house boot loader later this year as an example implementation (it supports both) for anyone interested or would like to skip the boot loader stage.

We also have released copies of our boot records for our readers that prefer to use hard disks or CD's. Of course, the series boot loader and kernel would need to be updated to reflect the new file system and device. If anyone is interested, please feel free to let us know. We do plan to write a chapter on hard disks and CD's when we find a nice way to integrate the material into the series.

Thank you again for the suggestions and your support!