-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Hihi! Here a newbie on the topic who just though would be cool to do this! I'm very curious and like to test new things, I has been following this topic and slowly trying to learn, from that the posts has been great, there is something I would point out but will be for later.
What I want to point out as impressions is maybe from the perspective of who is motivated and have not had formal preparation or not much relations to the topic, which is like my case where most of what I know has been self-learn, and note that we can't know all, we will always lack of something, always something new we can to learn.
I has been doing the second VGA part, is not much but I has been very motivated, until now, there two major points I would love to see as improvements on the documentation.
What covers an OS?
Oks, probably ppl here already knows things about programming, but... how much of what we do, how much of the programs, depends on the OS and why? reading the posts I discovered that is the OS who handle memory, threads and a lot of features, while may be basic for some ppl, I really did not know who was in charge of that, maybe was even a library (not the kernel) who does it, so our first point are:
- be able to know what an OS does
- what is in charge of
- what could it be in charge of
- what is in apps (and not in the kernel)
- what a OS can not be charge
- what belongs to hardware
Be able to set some constrains to explain this limits even at the big picture would help a lot to get and see the potential, which open the second point.
What can we do with our own OS
When we are able to know what a OS can do, and we are with motivation our mind can go to at least 3 main ideas
- Rewrite something
- Implement something new
- Reimplement something different/better
So, now I ask myself which superpowers can I get from do my own SO, which ideas fit here, what crazy ideas, which freedom I get controlling even the SO!! would be nice be even to have a small list of crazy ideas.
This point also set some constraints to where would have some sense to touch, for example, if compile an app for linux, makes similar ASM instructions for the new OS, maybe there is no advantage for this app there, or I'm wrong and there is advantages, even if the ASM is similar.
As you can see in this point, when we know what a OS does, we can also understand better, how a SO would impact in applications, and how we can adapt the applications to or SO or otherwise.
I would like a very simple example of how a code is generated different in linux than windows, ideally seeing more than "the threads lib who communicate with the kernel has changed". Maybe a SO can change all, a mistery to me rn :) (is not to go deep, just to have a comparative of the impact of the SO on the apps)
Hardware vs SO
Oks, when I was reading the first VGA part was...
"how 0xb8000 already exists? the SO even does not exists yet and there is memory available with functionalities"
As you can already know, know deeper hardware is a topic it self for this, if the memory already exists means the SO is not in charge on part of this work, is the hardware it self who allow us to do things, so there the question, what belongs to SO and what belongs to the hardware?
From that post I can get, the memory address exists, and each hardware can have different special memory spaces to do different things, but is not only that, as newbie I really do not know, from the SO perspective, what and how can I access?
This is a crucial question, know the tools a SO is based, maybe in our arch, how it changes if we move to other arch?, maybe different hardware allow different features, maybe other unusual peripherals? how the SO can access and control each part of the hardware? how the SO relates and works with hardware would be nice to know this, at least enough to be able to get better understanding of the posts.
Final comments
Oks, how to make a OS is a very big topic, I do not think the post should have all what I'm asking about, but I wanted to show what a newbie would not know, which is the barriers to go further with the posts, get a better understanding and continue on.
The posts already makes a lot of clarifications to make our life easier, is very very appreciated.
About the topics I posted above, is also a good option just have external references, a lot of this questions are not rust related, so just have somewhere to read, fill our curiosity and continue with the posts would be nice :D
Maybe you would like to add some sections, but is open, I have already make my points.