Git Product home page Git Product logo

Comments (4)

tuhdo avatar tuhdo commented on August 23, 2024 19

@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.

from os01.

arichr avatar arichr commented on August 23, 2024 6

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

from os01.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.