Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is the project still active? #172

Open
arichr opened this issue Aug 8, 2023 · 2 comments
Open

Is the project still active? #172

arichr opened this issue Aug 8, 2023 · 2 comments

Comments

@arichr
Copy link

arichr commented Aug 8, 2023

In continuation of #169, #157, #126, #116, #107.

I'm aware that creating duplicates of the same issue is against the GitHub Community Guidelines. Nevertheless, I would really like to see this book continued in the future.

@tuhdo , your project is a great introduction to OS development and still relevant ✨

@tuhdo
Copy link
Owner

tuhdo commented Aug 25, 2023

@arichr Glad that you find the book useful. A few years back, I had a plan to continue the book, which was roughly like this:

  • After writing your own simple bootloader, we start incorporating syslinux to load our bare-metal application (our "OS" in this case) directly in 32-bit mode. syslinux can also be used to call BIOS interrupts, so you can use it to access the 16-bit interrupt facility (similar to how DOS used the interrupts).

  • Then, you learn to build 32-bit code that call 16-bit interrupts by switching back to 16-bit mode, call the interrupts and switch back to 32-bit mode again. However, to do this, code layout is switched between 32-bit to 16-bit code as well, but GCC cannot compile C to 16-bit mode, but OpenWatcom compiler can: https://www.openwatcom.org/. Then, instead of writing assembly for 16-bit code, you write C.

  • Why bother doing all this 16/32-bit mode-switching gymnastics? Because to lessen the burden of implementing firmware to communicate with hardware devices. An OS needs drivers to communicate and manage hardware, but at this learning stage, learning how to write code that manages CPU and memory at bare-metal level is difficult enough.

  • Then, you start implementing OS-related algorithms.

That was the plan. Hopefully, I can make it real in the next few years. For now, I am busy with my daily job and my family.

@arichr
Copy link
Author

arichr commented Aug 28, 2023

Thank you for your response. It is great just to know that you are doing well. Please take your time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants