Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Sooo, how can I start learning about OSs

Sooo, how can I start learning about OSs

Scheduled Pinned Locked Moved The Lounge
questionlearning
22 Posts 20 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F FosanzDev

    I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

    A Offline
    A Offline
    AndrewGT
    wrote on last edited by
    #13

    If you are looking at ESP8266 then Linux is too big by far. I'd suggest looking at FreeRTOS. It is not a full featured OS but it does have a scheduler that you have a hope of understanding, code for task switching and the bonus of exploring a real-time OS, and it fits on a ESP8266.

    1 Reply Last reply
    0
    • F FosanzDev

      I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

      M Offline
      M Offline
      Member_14660942
      wrote on last edited by
      #14

      Go for books by

      Andrew S Tanenbaum

      It is *the* book on this subject. I cannot praise it enough. This guy wanted his students to learn this subject so bad that he wrote an operating system from scratch (Minix, the actual birthplace of Linux).

      1 Reply Last reply
      0
      • F FosanzDev

        I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

        O Offline
        O Offline
        One of the Other Terry
        wrote on last edited by
        #15

        I've been working through a course on Udemy called Developing a Multithreaded Kernel From Scratch by Daniel McCarthy. This course is kind of a walkthrough and you will have to put in work on the side to fully understand some of the topics. Develop a Multithreaded Kernel From Scratch. Much of the material seems to come from OSDev, but for me that is okay. I'm fine with repackaging content so I can code along because more important than reading about stuff is doing stuff. When I want to know how something works in more detail I can go read more details on OSDev and other sites. I think this is my first interaction on Code Project. I've been lurking for a couple decades I'd imagine. This topic is something that I think is so beneficial these days I was compelled to provide more information. If you're familiar with the Udemy game then play it and wait for course to be lower price. I don't know or am not affiliated with Daniel, but I've enjoyed a couple of his walkthrough style courses.

        “The purpose of thinking is to let the ideas die instead of us dying.” - Alfred Whitehead

        C 1 Reply Last reply
        0
        • F FosanzDev

          I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

          J Offline
          J Offline
          Jeremy Falcon
          wrote on last edited by
          #16

          Microsoft officially released the source code to DOS 1.25 and 2.0. It can also help give you ideas about OS design. [GitHub - microsoft/MS-DOS: The original sources of MS-DOS 1.25 and 2.0, for reference purposes](https://github.com/microsoft/MS-DOS)

          Jeremy Falcon

          1 Reply Last reply
          0
          • F FosanzDev

            I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

            B Offline
            B Offline
            Bruce Patin
            wrote on last edited by
            #17

            I started by learning about IBM OS/360 and IBM System\370 Principles of Operation. Everthing was based on Linked Lists. If modern processors included certain features that were used in these machines, we would not have nearly as many hacking successes.

            1 Reply Last reply
            0
            • F FosanzDev

              I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #18

              You're going to have to do some reading on your own ... a superficial knowledge of a complex subject will mean you won't understand much of what you are told to do. Things like: Operating Systems Fundamentals.

              "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

              1 Reply Last reply
              0
              • F FosanzDev

                I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

                S Offline
                S Offline
                sasadler
                wrote on last edited by
                #19

                You could look at uC/OS by Jean Labrosse. It's a small real time kernel developed back in the early 90's. He's got a few books out on uC/OS versions (version 1, 2 and 3). I've got the original book and it explains how things work pretty well. I actually used uC/OS in a project at work way back when. It pretty much got me started using RTOSes.

                1 Reply Last reply
                0
                • O One of the Other Terry

                  I've been working through a course on Udemy called Developing a Multithreaded Kernel From Scratch by Daniel McCarthy. This course is kind of a walkthrough and you will have to put in work on the side to fully understand some of the topics. Develop a Multithreaded Kernel From Scratch. Much of the material seems to come from OSDev, but for me that is okay. I'm fine with repackaging content so I can code along because more important than reading about stuff is doing stuff. When I want to know how something works in more detail I can go read more details on OSDev and other sites. I think this is my first interaction on Code Project. I've been lurking for a couple decades I'd imagine. This topic is something that I think is so beneficial these days I was compelled to provide more information. If you're familiar with the Udemy game then play it and wait for course to be lower price. I don't know or am not affiliated with Daniel, but I've enjoyed a couple of his walkthrough style courses.

                  “The purpose of thinking is to let the ideas die instead of us dying.” - Alfred Whitehead

                  C Offline
                  C Offline
                  cegarman
                  wrote on last edited by
                  #20

                  Hi, Go check out grc.com. The entire site is written in assembler and does provide a means of getting in to assembler. That will get you familiar with a language that works the bits and bytes directly.

                  Regards, Cegarman document code? If it's not intuitive, you're in the wrong field :D

                  1 Reply Last reply
                  0
                  • F FosanzDev

                    I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

                    N Offline
                    N Offline
                    Nelek
                    wrote on last edited by
                    #21

                    You already have a lot of indications on how to do it. I just say... tough topic, brave intention. Go for it, work hard and good luck :)

                    M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.

                    1 Reply Last reply
                    0
                    • F FosanzDev

                      I really want to get into low-level programming and understand OS. How can I get myself into it? Like is there some material you know that it could be interesting to start designing basic OS such as MINIX or programming an ESP8266 board?

                      J Offline
                      J Offline
                      Juan Pablo Reyes Altamirano
                      wrote on last edited by
                      #22

                      Here's a reimplementation of Unix V. 6 for modern hardware that was made precisely for the learning of operating system design. Called XV6, it's all in C so it's very simple. 6.1810 / Fall 2022[^] Some reference: xv6 - Wikipedia[^]

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups