It makes perfect sense. Most hardware interfaces are standardized these days. The point is not that writing a USB driver doesn't count as OS dev, but that it's a spectrum and making BIOS calls is still on that spectrum, especially if you're writing something like, say, MS-DOS.Brendan wrote:Hi,
Then it still doesn't make any sense. Obviously the hardware interface provided by any one device isn't comparable to the standardised "driver interface/s" the OS uses as an abstraction to hide the differences between different hardware interfaces.mikegonta wrote:Given that the question was rhetorical (notice the lack of the question mark) no answer is required.Brendan wrote:Given that (as far as I know) there has never been an operating system in any USB controller or Network Interface Controller that has
ever existed; I'm not sure how to answer your question.
Given that operating system is italicized so as to indicate that it doesn't refer to the formal definition of an Operating System,
but rather the "system which operates" inside the controllers which accepts and processes the supported message interface.
In other words, (actually your words slightly paraphrased) "you're merely using functionality/interfaces someone else designed and
provided (e.g. only using USB or NIC functions designed by engineers and implemented by firmware developers".
Cheers,
Brendan
Where do I learn more about advanced OS development?
Re: Where do I learn more about advanced OS development?
Re: Where do I learn more about advanced OS development?
Hi,
If you truly aren't able to understand the difference between a standardised device driver interface that works the same for an entire category of devices (e.g. a standardised storage device driver interface that works for ATA and AHCI and USB mass storage devices and SCSI and all the different RAID controllers and NVMe and floppy and whatever else might exist now and in the future) and a hardware interface that can only work for a fraction of the devices in the entire category, then you're beyond help.
Cheers,
Brendan
No, it doesn't make sense. I'd say it's so nonsensical that the only reason anyone could've considered it worth suggesting is because they deliberately want to be argumentative despite knowing that it's pure crap.Rusky wrote:Brendan wrote:It makes perfect sense. Most hardware interfaces are standardized these days. The point is not that writing a USB driver doesn't count as OS dev, but that it's a spectrum and making BIOS calls is still on that spectrum, especially if you're writing something like, say, MS-DOS.mikegonta wrote:Then it still doesn't make any sense. Obviously the hardware interface provided by any one device isn't comparable to the standardised "driver interface/s" the OS uses as an abstraction to hide the differences between different hardware interfaces.
If you truly aren't able to understand the difference between a standardised device driver interface that works the same for an entire category of devices (e.g. a standardised storage device driver interface that works for ATA and AHCI and USB mass storage devices and SCSI and all the different RAID controllers and NVMe and floppy and whatever else might exist now and in the future) and a hardware interface that can only work for a fraction of the devices in the entire category, then you're beyond help.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re: Where do I learn more about advanced OS development?
While I agree that for most things there's probably no good reason to use the BIOS, I don't think the defining property of an OS is that it contains all of the hardware drivers. I don't think there can be any doubt that DOS is an OS. And - hey, I'm using VBE to switch video modes, does this mean I don't have an OS?Brendan wrote:If you're merely using functionality/interfaces someone else designed and provided (e.g. only using BIOS functions designed by IBM and implemented by firmware developers) then you are not developing an OS and you aren't an OS developer - you're only writing software/applications for an existing OS or environment.
The difference between a software/application for the BIOS and an OS is more about allowing independent programs to run and managing resources and providing high-level interfaces for them, like memory management functions or a file system view instead of raw disks.
Of course, that's something on which everyone has their own view. Personally, I think it's true only partially, and mostly only in the beginning. Writing the first network driver was fun, because I was learning how these things work. The second one was okay, mostly the same thing, but it worked a little different. Today, having to add support for another chip is just boring work - it doesn't bring in anything fundamentally new that feels like learning, it's just the same concept implemented differently.hgoel wrote:Personally, I think a large part of the fun in osdev is specifically learning the details of the pieces of hardware and writing drivers for them.
For me, writing hardware drivers has really become tiresome work after the first few ones, and it's not something that actually contributes much to what makes an OS different. A hardware driver just drives the hardware, and that's the same on any OS.
Re: Where do I learn more about advanced OS development?
Hi,
If you are merely/only using functionality/interfaces someone else designed and provided, then you are writing an application.
I'd say that once upon a time (a long time ago) DOS was considered an OS; but the features and functionality people expect from an OS have changed since then.
Cheers,
Brendan
You're constructing a straw man by replacing what I said ("merely using functionality/interfaces someone else designed and provided") with something entirely different ("OS contains all of the hardware drivers"). It is possible to use BIOS without making it the only device driver interface your OS has, and possible to design your own functionality/interfaces on top of BIOS.Kevin wrote:While I agree that for most things there's probably no good reason to use the BIOS, I don't think the defining property of an OS is that it contains all of the hardware drivers.Brendan wrote:If you're merely using functionality/interfaces someone else designed and provided (e.g. only using BIOS functions designed by IBM and implemented by firmware developers) then you are not developing an OS and you aren't an OS developer - you're only writing software/applications for an existing OS or environment.
If you are merely/only using functionality/interfaces someone else designed and provided, then you are writing an application.
You can't say that DOS is an OS without also saying that UEFI is an OS (because UEFI provides everything that DOS did, plus more). Is UEFI an OS?Kevin wrote:I don't think there can be any doubt that DOS is an OS.
I'd say that once upon a time (a long time ago) DOS was considered an OS; but the features and functionality people expect from an OS have changed since then.
Is "int 0x10" your only device driver interface?Kevin wrote:And - hey, I'm using VBE to switch video modes, does this mean I don't have an OS?
According to that definition; UEFI, Java virtual machines and all modern web browsers are operating systems.Kevin wrote:The difference between a software/application for the BIOS and an OS is more about allowing independent programs to run and managing resources and providing high-level interfaces for them, like memory management functions or a file system view instead of raw disks.
For me; it's the sense of accomplishment I get when something finally works like it was supposed to that makes the tiresome parts worthwhile.Kevin wrote:Of course, that's something on which everyone has their own view. Personally, I think it's true only partially, and mostly only in the beginning. Writing the first network driver was fun, because I was learning how these things work. The second one was okay, mostly the same thing, but it worked a little different. Today, having to add support for another chip is just boring work - it doesn't bring in anything fundamentally new that feels like learning, it's just the same concept implemented differently.hgoel wrote:Personally, I think a large part of the fun in osdev is specifically learning the details of the pieces of hardware and writing drivers for them.
For me, writing hardware drivers has really become tiresome work after the first few ones, and it's not something that actually contributes much to what makes an OS different. A hardware driver just drives the hardware, and that's the same on any OS.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re: Where do I learn more about advanced OS development?
Ok. So what saves the OS status of DOS is that the sound driver didn't use the BIOS? Or maybe there isn't enough of a standardised interface there for this to count?Brendan wrote:It is possible to use BIOS without making it the only device driver interface your OS has, and possible to design your own functionality/interfaces on top of BIOS.
I still think that whether something is an OS or an application is defined by what it does, not by how it's implemented.If you are merely/only using functionality/interfaces someone else designed and provided, then you are writing an application.
I haven't really spent much time on UEFI yet, but for all I know - yes, I would call it an OS. And the same for GRUB 2, probably. You can run applications on them that use high-level concepts like file systems. I think UEFI would qualify even for your definition, GRUB probably only for mine because it makes heavy use of the firmware drivers.You can't say that DOS is an OS without also saying that UEFI is an OS (because UEFI provides everything that DOS did, plus more). Is UEFI an OS?
If so, would that imply that 90% or more of the "OSes" that users in this forum write, don't actually qualify to be called an OS?I'd say that once upon a time (a long time ago) DOS was considered an OS; but the features and functionality people expect from an OS have changed since then.
The part about virtual machines (which includes modern web browsers) is an interesting thought. To make things even more interesting, we can include Windows running inside qemu-kvm.According to that definition; UEFI, Java virtual machines and all modern web browsers are operating systems.
I don't think I would count Java because the interfaces that it exposes aren't much more high-level than the interfaces it builds upon, but calling modern web browsers an OS for HTML/JS applications actually doesn't sound that unreasonable to me. It's obviously not what people (myself included) think of when talking about an OS, but it's really doing a similar job as an OS, just on a higher level. Could we reasonably find criteria that consider it not an OS while still maintaining that the Windows instance in a VM is an OS?
For me, that sense of accomplishment is different between something that actually feels new and just getting some old functionality working on another computer.For me; it's the sense of accomplishment I get when something finally works like it was supposed to that makes the tiresome parts worthwhile.
Re: Where do I learn more about advanced OS development?
DOS did not have a sound driver.Kevin wrote:Ok. So what saves the OS status of DOS is that the sound driver didn't use the BIOS?
Learn to read.
Re: Where do I learn more about advanced OS development?
You mean no sound driver was included on the DOS disks? Yes, that's true. But they did exist and were distributed with the hardware.
- Schol-R-LEA
- Member
- Posts: 1925
- Joined: Fri Oct 27, 2006 9:42 am
- Location: Athens, GA, USA
Re: Where do I learn more about advanced OS development?
Please, either agree to disagree and drop the matter, or else move the debate to it's own thread. This is getting away from the original question.
Regarding said question, the answer is dependent on what you consider 'advanced'. Are you talking 'closer to the hardware'? 'More elaborate'? 'More abstract'? 'Greater flexibility'? There are a lot of different ways that one could consider a topic 'advanced', some of which overlap and some of which are completely unrelated - it really is about as ambiguous a word as you can find.
Regarding said question, the answer is dependent on what you consider 'advanced'. Are you talking 'closer to the hardware'? 'More elaborate'? 'More abstract'? 'Greater flexibility'? There are a lot of different ways that one could consider a topic 'advanced', some of which overlap and some of which are completely unrelated - it really is about as ambiguous a word as you can find.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
Re: Where do I learn more about advanced OS development?
Which, in a sense, they all are.Brendan wrote:According to that definition; UEFI, Java virtual machines and all modern web browsers are operating systems.
Re: Where do I learn more about advanced OS development?
And which, in another sense they are not. It doesn't matter.Rusky wrote:Which, in a sense, they all are.Brendan wrote:According to that definition; UEFI, Java virtual machines and all modern web browsers are operating systems.
This is just another pointless discussion on these forums.
If a trainstation is where trains stop, what is a workstation ?
Re: Where do I learn more about advanced OS development?
Hi,
More importantly; I think we (as a community) have been relatively successful at shielding potential victims from being lured (by intentionally malicious or unintentionally malicious suggestions) towards the "use BIOS" stupidity that sabotages the victim's ability to learn anything useful for modern OS development; and partly because of this (and partly because of other factors, like GRUB and UEFI) projects aiming to create a "non-OS" are extremely rare.
Cheers,
Brendan
Originally DOS had no sound at all (other than the "beep character" for console output), and drivers for various sound cards were built directly into everything that needed sound. Much later on (and partly because the complete absence of any kind of security allowed it) various people created sound drivers (often with incompatible interfaces because there never was a standard).Kevin wrote:Ok. So what saves the OS status of DOS is that the sound driver didn't use the BIOS? Or maybe there isn't enough of a standardised interface there for this to count?Brendan wrote:It is possible to use BIOS without making it the only device driver interface your OS has, and possible to design your own functionality/interfaces on top of BIOS.
99.99% are "work in progress".Kevin wrote:If so, would that imply that 90% or more of the "OSes" that users in this forum write, don't actually qualify to be called an OS?I'd say that once upon a time (a long time ago) DOS was considered an OS; but the features and functionality people expect from an OS have changed since then.
More importantly; I think we (as a community) have been relatively successful at shielding potential victims from being lured (by intentionally malicious or unintentionally malicious suggestions) towards the "use BIOS" stupidity that sabotages the victim's ability to learn anything useful for modern OS development; and partly because of this (and partly because of other factors, like GRUB and UEFI) projects aiming to create a "non-OS" are extremely rare.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.