What should I do with my OS?
-
- Posts: 15
- Joined: Sat Sep 15, 2012 5:02 pm
- Libera.chat IRC: csacchi
What should I do with my OS?
I have a lot of things working now. I have a kernel that has Protected Mode enabled, PAE paging enabled, the fast A20 Gate enabled, and the SYSENTER/SYSEXIT instruction pair is setup. I implemented this by myself, except for the A20 gate which I got off OSDev. What should I do, and what resource would help me the most? I plan to have a simple OS with a shell, a few development tools to write simple programs, (maybe even be able to write higher-level programming languages inside), and be able to play very simple text-based games. I know this will take a long while before I even get a shell ported, but I need a good idea of what to do and a little info on how to apply what I need to do to my OS. Could you guys help?
https://github.com/christophersacchi/RazorOS
"... you notice that this scanner will... woah!"
"Moving right along!"
"That must be, uh. That must be why we're not shipping Windows 98 yet..."
"Absolutely. Absolutely."
"... you notice that this scanner will... woah!"
"Moving right along!"
"That must be, uh. That must be why we're not shipping Windows 98 yet..."
"Absolutely. Absolutely."
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: What should I do with my OS?
Did you find What_order_should_I_make_things_in yet?
- gravaera
- Member
- Posts: 737
- Joined: Tue Jun 02, 2009 4:35 pm
- Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.
Re: What should I do with my OS?
Yo:
The general order of implementation is something like Memory Management -> Threading -> Scheduling -> IRQ Management -> CPU Management, then probably a unified VFS. From there you'd build the device tree using your VFS primitives and move into loading drivers, before getting a userspace running.
Of course all of this is pretty different for each kernel, and mostly depends on design and nothing more. There is no strict "order", just a common pattern that emerges because of the most common designs.
--Peace out,
gravaera.
ヽ༼ຈل͜ຈ༽ノ Raise ur OS ヽ༼ຈل͜ຈ༽ノWhat should I do with my OS?
The general order of implementation is something like Memory Management -> Threading -> Scheduling -> IRQ Management -> CPU Management, then probably a unified VFS. From there you'd build the device tree using your VFS primitives and move into loading drivers, before getting a userspace running.
Of course all of this is pretty different for each kernel, and mostly depends on design and nothing more. There is no strict "order", just a common pattern that emerges because of the most common designs.
--Peace out,
gravaera.
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Re: What should I do with my OS?
Have fun! (Unless, your goal is something specific, in which case there's your answer)
Pick some task that seems doable and fun or necessary and complete that.
Pick some task that seems doable and fun or necessary and complete that.
Re: What should I do with my OS?
Once you have got screen out put, maybe keyboard input, some memory management going, my personal suggestion would be a crude file system. When I say crude, I mean really crude. For instance, there would only be one directory, and all the files would be contiguous. But it would allow you to revisit the virtual memory manager, because it would have something to page out to, and later the scheduler/program loader would have something to read files in from.
Of course the temporary file system would be thrown once you had implemented a full one, so you wouldn't want to spend too much time coding it.
Of course the temporary file system would be thrown once you had implemented a full one, so you wouldn't want to spend too much time coding it.
Re: What should I do with my OS?
I worked on gdt, idt, hardware interrupts, memory management, and am working on acpi (trying to figure out aml). My future plans are PCI, USB, disk, filesystem, network, video, a graphical interface, and keyboard/mouse input (in that order).
Programming is 80% Math, 20% Grammar, and 10% Creativity <--- Do not make fun of my joke!
If you're new, check this out.
If you're new, check this out.
Re: What should I do with my OS?
If you want to be a rebel, like me, you might want to consider rethinking the entire concept of an Operating System. There are thousands of OS'es that all follow the same basic pattern (Kernel, User, Rings, Files, Handles, Threads, Semaphores, Network Stacks, etc.). But since you are just getting started, you have the opportunity to completely re-think or re-imagine what a computer is, or could be. Try thinking of your ideal computer experience, and work backwards. Maybe a speech-only UI, like Jarvis from Iron Man? Just think of something crazy, or impossible. And then go do it. And just ignore all of the OSDev experts that tell you that you're crazy, and that it will never work.
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
- gravaera
- Member
- Posts: 737
- Joined: Tue Jun 02, 2009 4:35 pm
- Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.
Re: What should I do with my OS?
So many things wrong with these two sentences alone...SpyderTL wrote:There are thousands of OS'es that all follow the same basic pattern (Kernel, User, Rings, Files, Handles, Threads, Semaphores, Network Stacks, etc.). Maybe a speech-only UI, like Jarvis from Iron Man?
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Re: What should I do with my OS?
There is nothing crazy about speech recognition software. What is crazy is to confuse an application with a operating system. Amongst other things, the latter is there to provide services for the former, and to prevent applications tripping over one another - not to provide flashy front ends, which come later..SpyderTL wrote: Maybe a speech-only UI, like Jarvis from Iron Man? Just think of something crazy, or impossible. And then go do it. And just ignore all of the OSDev experts that tell you that you're crazy, and that it will never work.
- DavidCooper
- Member
- Posts: 1150
- Joined: Wed Oct 27, 2010 4:53 pm
- Location: Scotland
Re: What should I do with my OS?
Are you saying that speech recognition software is an application rather than part of the operating system? I see it as equivalent to taking input from a keyboard to control both the OS and apps, and a keyboard driver is not an app. Clearly a lot of processing needs to be done to convert sounds into phonemes, words and ultimately into meaningful ideas, but the translation involved in this isn't going to turn it into an app any more than it does when you convert one set of keyboard scan codes into another within a keyboard driver.Casm wrote:There is nothing crazy about speech recognition software. What is crazy is to confuse an application with a operating system. Amongst other things, the latter is there to provide services for the former, and to prevent applications tripping over one another - not to provide flashy front ends, which come later..
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
Re: What should I do with my OS?
While it's open question if TTS/speech recognition is part of an OS; Windows and Mac provide API for TTS and speech recognition.
For instant, think it this way, GUI is not part of an OS by text-book definition, but any OS without GUI is less impressive (except for special purpose server nodes).
For instant, think it this way, GUI is not part of an OS by text-book definition, but any OS without GUI is less impressive (except for special purpose server nodes).
Re: What should I do with my OS?
The operating system's part in speech recognition is in providing a device driver fo the audio input device, and to provide services to applications so that they can gain indirect access to that driver. Something as sophisticated as speech recognition is definitely not part of the operating system. Any more than expecting the operating system to recognise English sentences, courtesy of the keyboard, would be.DavidCooper wrote:Casm wrote:Are you saying that speech recognition software is an application rather than part of the operating system? I see it as equivalent to taking input from a keyboard to control both the OS and apps....
SpyderTL didn't seem to know what an operating system was; nor to realise that what he was talking about was something which ran on top of "Kernel, User, Rings, Files, Handles, Threads, Semaphores, Network Stacks, etc.", rather than being something which replaced them.
- DavidCooper
- Member
- Posts: 1150
- Joined: Wed Oct 27, 2010 4:53 pm
- Location: Scotland
Re: What should I do with my OS?
I can see your point of view, but in many operating systems you can type in words at a command line followed by Return or Enter to tell it what to do - this is a simple form of linguistic communication, but it is also being done within the OS. There is nothing definite about it not being part of the operating system unless you define the operating system in such a way as to exclude communication with the user, so ultimately our disagreement is really caused by using different definitions. I see it as being an essential part of the system that controls the machine whenever an external user has significant role in controlling it.Casm wrote:The operating system's part in speech recognition is in providing a device driver for the audio input device, and to provide services to applications so that they can gain indirect access to that driver. Something as sophisticated as speech recognition is definitely not part of the operating system. Any more than expecting the operating system to recognise English sentences, courtesy of the keyboard, would be.
It could be entirely contained within the kernel rather than running on top of it, and if your design is based around an intelligence in the machine which then accesses the hardware to carry out instructions given to it by a user, it is arguably that intelligence which becomes the main part of the operating system while everything else becomes peripheral to it. The intelligence would be able to take complete control over the multitasking mechanism, for example, deciding when or whether to let other threads run, and even deciding whether interrupts should be active or not. It could look at the code of drivers, apps, interrupt routines, etc. and rewrite them on the fly. Ultimately it could even eliminate the whole idea of the application and just provide all the required functionality of apps directly itself, just in the way a person could if you were interacting with a human slave instead of a computer. SpyderTL appears to be thinking in a much wider landscape rather than limiting him/herself by the way things are done today.SpyderTL didn't seem to know what an operating system was; nor to realise that what he was talking about was something which ran on top of "Kernel, User, Rings, Files, Handles, Threads, Semaphores, Network Stacks, etc.", rather than being something which replaced them.
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
Re: What should I do with my OS?
I see people mixed up kernel and operating system.
I agree TTS & speech recognition should not be part of a kernel; but it's debatable if its as a feature of an OS, no matter in form of system service , bundled add-on(eg. DirectX component) or bundled applications.
I agree TTS & speech recognition should not be part of a kernel; but it's debatable if its as a feature of an OS, no matter in form of system service , bundled add-on(eg. DirectX component) or bundled applications.
- DavidCooper
- Member
- Posts: 1150
- Joined: Wed Oct 27, 2010 4:53 pm
- Location: Scotland
Re: What should I do with my OS?
With a megalithic kernel, it appears to cover practically the entire OS, so as far as I can see there are no fixed boundaries as to what counts as in or out of either the OS or kernel. My OS should probably be considered as a megalithic kernel which includes everything that isn't an app as part of itself, and the ultimate aim is to eliminate the app too.bluemoon wrote:I see people mixed up kernel and operating system.
I agree TTS & speech recognition should not be part of a kernel; but it's debatable if its as a feature of an OS, no matter in form of system service , bundled add-on(eg. DirectX component) or bundled applications.
I was about to edit the following into my previous post, but I'll now put it here instead. If you have an intelligence as the core part of your OS and you then port that OS to another platform, that core part could be the same on both (including it's way of communicating with the external user), while all other parts of the OS may need to be radically different because of hardware differences, but it's that intelligence that dictates all the large scale structure of how work is done in the machine while all the other parts are merely needed to enable it to function usefully, so I would regard it as being the core part of the OS on that basis and everything else as exchangeable components.
Of course, if the system is then expanded to work with other languages, it may be sensible to extract some of the original language translation capability out of the intelligence part of the OS to turn it into a translation module of some kind which can be replaced with others for other languages, at which point you could start to think of that as not being part of the operating system any more, but ultimately such distinctions are artificial. A system is a collection of interacting parts, and it may be possible with many systems to replace a component with one of a different kind and then declare that the exchangeable part is no longer part of the system because it is interchangeable, but it is really still part of the system whenever it's included in it: if no part of that kind is in place, the system is incomplete and broken.
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming