I don't think it's so much that we aren't good enough developers, but that we work on ours OSes merely as a hobby, and most of us alone on their own OS. If you took the ten best developers in this forum and had them agree to work on a new OS full time (and had them agree on a design, too ), you would get something impressive pretty quickly. But we don't have these conditions in reality, so it's not going to happen.gerryg400 wrote:I don't see any reason why an OS written by a single person won't be used by others. Plenty of us are full time software engineers and our software is regularly used by actual people for important purposes. I don't see osdev any differently.
Writing your OS so it is used by others
Re: Writing your OS so it is used by others
-
- Member
- Posts: 396
- Joined: Wed Nov 18, 2015 3:04 pm
- Location: San Jose San Francisco Bay Area
- Contact:
Re: Writing your OS so it is used by others
with the right amount of money, anything is possible.Kevin wrote:I don't think it's so much that we aren't good enough developers, but that we work on ours OSes merely as a hobby, and most of us alone on their own OS. If you took the ten best developers in this forum and had them agree to work on a new OS full time (and had them agree on a design, too ), you would get something impressive pretty quickly. But we don't have these conditions in reality, so it's not going to happen.gerryg400 wrote:I don't see any reason why an OS written by a single person won't be used by others. Plenty of us are full time software engineers and our software is regularly used by actual people for important purposes. I don't see osdev any differently.
key takeaway after spending yrs on sw industry: big issue small because everyone jumps on it and fixes it. small issue is big since everyone ignores and it causes catastrophy later. #devilisinthedetails
Re: Writing your OS so it is used by others
I wasn't aware that you had some spare millions to spend on this.
Re: Writing your OS so it is used by others
I don't think that even someone with huge amount of money will risk and try to develop his own OS for commercial use. Nowadays it's hard even with mobile OS (Bada, Symbian, Blackberry, Windows phone, etc).
Re: Writing your OS so it is used by others
In fact with huge amount of money it is marketing that is really important. An OS is almost irrelevant. If it has something suitable for the potential clients then it's enough. All those Symbians and Badas are primitive and architecturally somewhere in the stone age, but they manage somehow to get some market share. Android is overarchitected, but it's appeal of "close to iPhone" was enough to advertise it aggressively (a lot of money) and convince hardware manufacturers to try it (another lot of money). And finally, executives usually prefer to invest in an existing OS and doing so without any clue about it's quality. That's why stone age designs are supported by big money (including Android with it's Linux core) and it can look like there's no way for new OS. But the cost of the OS is small in comparison to the marketing efforts and the only problem on the way is the choice of a team, which is capable of implementing an interesting design. Top managers can't make such choice with open eyes.SWGDev wrote:I don't think that even someone with huge amount of money will risk and try to develop his own OS for commercial use. Nowadays it's hard even with mobile OS (Bada, Symbian, Blackberry, Windows phone, etc).
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability
-
- Member
- Posts: 1146
- Joined: Sat Mar 01, 2014 2:59 pm
Re: Writing your OS so it is used by others
I hardly think Android is "stone age". Symbian and Blackberry are, but not Android. I mean, nothing beats the security model or intents API in Android.embryo2 wrote:That's why stone age designs are supported by big money (including Android with it's Linux core) and it can look like there's no way for new OS.
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
Re: Writing your OS so it is used by others
Hi,
When people start with "I'm going to try to make an OS that other people could use one day" (e.g. starting with thinking about "what reason/s can I give to convince people to switch from existing OSs they already use to my OS") it's a completely different project. It doesn't guarantee success, but it is a requirement to enable "potential success". Even then, a single person can't write an OS that other people will use - when it comes to device drivers and applications it's simply too much work for one person (and "lack of applications and drivers" will prevent people from using the OS).
What a single person can do is create an OS without many drivers and without many applications, but is enough to attract other developers; and then (with the help of others and no longer as a single person) create an OS that other people can use.
Cheers,
Brendan
When people assume "I don't think anyone will ever use this OS", it becomes a self-fulfilling prophecy. They take short-cuts (e.g. hardware auto-detection, thorough testing, etc), skip things they personally don't need (e.g. security) and don't bother with any fancy features that make development more difficult. They make decisions that ensure nobody will ever use it.gerryg400 wrote:I don't see any reason why an OS written by a single person won't be used by others. Plenty of us are full time software engineers and our software is regularly used by actual people for important purposes. I don't see osdev any differently.
When people start with "I'm going to try to make an OS that other people could use one day" (e.g. starting with thinking about "what reason/s can I give to convince people to switch from existing OSs they already use to my OS") it's a completely different project. It doesn't guarantee success, but it is a requirement to enable "potential success". Even then, a single person can't write an OS that other people will use - when it comes to device drivers and applications it's simply too much work for one person (and "lack of applications and drivers" will prevent people from using the OS).
What a single person can do is create an OS without many drivers and without many applications, but is enough to attract other developers; and then (with the help of others and no longer as a single person) create an OS that other people can use.
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: Writing your OS so it is used by others
Maybe use a tiny Linux or ReactOS system that serves solely as an emulation layer to mask hardware differences and then that is capable of booting directly into games or other OSes, which will find a much friendlier hardware execution environment. Then you could turn any PC into a standard game or multimedia console (without leaving out development tools).Brendan wrote:Hi,
When people assume "I don't think anyone will ever use this OS", it becomes a self-fulfilling prophecy. They take short-cuts (e.g. hardware auto-detection, thorough testing, etc), skip things they personally don't need (e.g. security) and don't bother with any fancy features that make development more difficult. They make decisions that ensure nobody will ever use it.gerryg400 wrote:I don't see any reason why an OS written by a single person won't be used by others. Plenty of us are full time software engineers and our software is regularly used by actual people for important purposes. I don't see osdev any differently.
When people start with "I'm going to try to make an OS that other people could use one day" (e.g. starting with thinking about "what reason/s can I give to convince people to switch from existing OSs they already use to my OS") it's a completely different project. It doesn't guarantee success, but it is a requirement to enable "potential success". Even then, a single person can't write an OS that other people will use - when it comes to device drivers and applications it's simply too much work for one person (and "lack of applications and drivers" will prevent people from using the OS).
What a single person can do is create an OS without many drivers and without many applications, but is enough to attract other developers; and then (with the help of others and no longer as a single person) create an OS that other people can use.
Cheers,
Brendan
It could be optimized to run the game in real time and maybe implement 3D effects that aren't really implemented, to try to offer a more efficient PC gaming platform.
When the machine is turned off, it can strictly store all the data on disk instead of just turning off and vanishing, so when it's used again it's immediately ready for use, unless there's a major hardware change detected (try to isolate and reconfigure only that, with a modular and inter-independent system resume).
You can make your OS portable.
You can contain it into a subdirectory in one of your existing partitions without formatting or altering it.
That will require understanding ext2, ext3, NTFS, ISO, and FAT systems mainly, but it will make the system much more usable and much less "intrusive" in practice.
You can make a boot DVD or an USB stick that offers replacing your current boot record and boot manager.
You can also make your system core capable of restoring the previous system boot sector, for example the one of Windows.
You can also offer booting your OS or the original one when you learn to do that.
YouTube:
http://youtube.com/@AltComp126
My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
http://youtube.com/@AltComp126
My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
-
- Member
- Posts: 501
- Joined: Wed Jun 17, 2015 9:40 am
- Libera.chat IRC: glauxosdever
- Location: Athens, Greece
Re: Writing your OS so it is used by others
Hi,
Regards,
glauxosdever
I definitely agree with your points. I can't add more.Brendan wrote:When people assume "I don't think anyone will ever use this OS", it becomes a self-fulfilling prophecy. They take short-cuts (e.g. hardware auto-detection, thorough testing, etc), skip things they personally don't need (e.g. security) and don't bother with any fancy features that make development more difficult. They make decisions that ensure nobody will ever use it.
When people start with "I'm going to try to make an OS that other people could use one day" (e.g. starting with thinking about "what reason/s can I give to convince people to switch from existing OSs they already use to my OS") it's a completely different project. It doesn't guarantee success, but it is a requirement to enable "potential success". Even then, a single person can't write an OS that other people will use - when it comes to device drivers and applications it's simply too much work for one person (and "lack of applications and drivers" will prevent people from using the OS).
What a single person can do is create an OS without many drivers and without many applications, but is enough to attract other developers; and then (with the help of others and no longer as a single person) create an OS that other people can use.
Regards,
glauxosdever
Re: Writing your OS so it is used by others
Android uses Linux. Linux design can be traced dow to 1970-s (or even 60-s).onlyonemac wrote:I hardly think Android is "stone age". Symbian and Blackberry are, but not Android. I mean, nothing beats the security model or intents API in Android.embryo2 wrote:That's why stone age designs are supported by big money (including Android with it's Linux core) and it can look like there's no way for new OS.
Android's security model is too rigid. They give me the choice - use it or leave it. There's no options in between. And intent based communication is also too rigid. It can start an application, but if you want something more then it's just a pain in the a$$. All the GUI related framework is flawed in the same manner. There was the JSF thechnology in Java world many years ago, it was similar to the Android's approach. And it failed miserably despite of support from Sun, IBM, WebLogic and others. It was too rigid and too inconvenient for developers. However, in the mobile land we have just two serious players - Android and iOS, so Android's way will live a bit longer than JSF had.
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability
Re: Writing your OS so it is used by others
It's possible, but quality is a very time consuming endeavor.Brendan wrote:What a single person can do is create an OS without many drivers and without many applications, but is enough to attract other developers; and then (with the help of others and no longer as a single person) create an OS that other people can use.
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability
Re: Writing your OS so it is used by others
A single person could also adapt a Linux distribution that compiled only the drivers for the present devices and also a PC emulator. Then you can use any drivers from Linux to complete this big unified abstraction layer.embryo2 wrote:It's possible, but quality is a very time consuming endeavor.Brendan wrote:What a single person can do is create an OS without many drivers and without many applications, but is enough to attract other developers; and then (with the help of others and no longer as a single person) create an OS that other people can use.
Creating such abstraction layer and emulation/virtualization including ALL modern drivers and functions to then use the machine with simplicity should be done without a doubt first before anything else along with a boot sector and boot manager (using both Sound Blaster or AC'97 capabilities and known ports making them selectable as Sound Card Modes, ATA or SATA, perfect standard VGA implementation and a set of standardized ports and memory regions for hardware and 3D acceleration up to HD screen resolutions).
Is it based in Linux? It doesn't matter. It's a different project from our own OS. It's more an open-source firmware update that standardizes all machines but without having to alter or destroy the real present motherboard firmware. It has all the drivers that we want to use, but instead of using them we can use them to standardize the hardware environment through emulation and paravirtualization.
It could fit a floppy and the only thing it would do would be presenting a standardized PC hardware and software environment to run any other system on top of it. It would make possible to even run Windows 1.0, 3.0, Windows 9x, or very old 8088 software cleanly if configured, and regulate the execution speed without modifying the old binaries. It would run no matter if it's a modern machine.
It all should fit in a small and unimportant memory region like counting and allocating from the very end of non-reserved installed RAM (to be shown as a reserved region in the BIOS memory map, and of course protected to make it impossible to access it from the upper emulated machine system presented. Like a BIOS ROM from a card, it shouldn't need to reserve memory randomly or dynamically really since it would only need the support code to sustain the emulation).
It would look like a PC with a standard BIOS, would always include legacy devices and legacy peripherals like Sound Blaster sound. It would present a BIOS setup program to configure the transparent virtual machine. It should include functions which hardware doesn't have, purely in software. At least in this way a machine version will always have those extensions present in one way or another (the same as when emulating the FPU was necessary... probably modern hardware isn't mature enough to be both fully standard and complex).
That (implementing standard capabilities in software in case they are needed... we will need that in an OS anyway) as well as the development of our actual OS should be the starting point of the actual OS tasks we should perform and implement.
YouTube:
http://youtube.com/@AltComp126
My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
http://youtube.com/@AltComp126
My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
Re: Writing your OS so it is used by others
Doesn't vmware already do this?~ wrote:A single person could also adapt a Linux distribution that compiled only the drivers for the present devices and also a PC emulator. Then you can use any drivers from Linux to complete this big unified abstraction layer.embryo2 wrote:It's possible, but quality is a very time consuming endeavor.Brendan wrote:What a single person can do is create an OS without many drivers and without many applications, but is enough to attract other developers; and then (with the help of others and no longer as a single person) create an OS that other people can use.
Creating such abstraction layer and emulation/virtualization including ALL modern drivers and functions to then use the machine with simplicity should be done without a doubt first before anything else along with a boot sector and boot manager (using both Sound Blaster or AC'97 capabilities and known ports making them selectable as Sound Card Modes, ATA or SATA, perfect standard VGA implementation and a set of standardized ports and memory regions for hardware and 3D acceleration up to HD screen resolutions).
Is it based in Linux? It doesn't matter. It's a different project from our own OS. It's more an open-source firmware update that standardizes all machines but without having to alter or destroy the real present motherboard firmware. It has all the drivers that we want to use, but instead of using them we can use them to standardize the hardware environment through emulation and paravirtualization.
It could fit a floppy and the only thing it would do would be presenting a standardized PC hardware and software environment to run any other system on top of it. It would make possible to even run Windows 1.0, 3.0, Windows 9x, or very old 8088 software cleanly if configured, and regulate the execution speed without modifying the old binaries. It would run no matter if it's a modern machine.
It all should fit in a small and unimportant memory region like counting and allocating from the very end of non-reserved installed RAM (to be shown as a reserved region in the BIOS memory map, and of course protected to make it impossible to access it from the upper emulated machine system presented. Like a BIOS ROM from a card, it shouldn't need to reserve memory randomly or dynamically really since it would only need the support code to sustain the emulation).
It would look like a PC with a standard BIOS, would always include legacy devices and legacy peripherals like Sound Blaster sound. It would present a BIOS setup program to configure the transparent virtual machine. It should include functions which hardware doesn't have, purely in software. At least in this way a machine version will always have those extensions present in one way or another (the same as when emulating the FPU was necessary... probably modern hardware isn't mature enough to be both fully standard and complex).
That (implementing standard capabilities in software in case they are needed... we will need that in an OS anyway) as well as the development of our actual OS should be the starting point of the actual OS tasks we should perform and implement.
If a trainstation is where trains stop, what is a workstation ?
Re: Writing your OS so it is used by others
It seems to be bootable from CD-ROM or DVD, but does it have as many drivers as Linux if we implemented that with it?gerryg400 wrote:Doesn't vmware already do this?
Also, it's surely the right thing to do to try to implement something like this to keep that knowledge more available as part of an OS distribution.
YouTube:
http://youtube.com/@AltComp126
My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
http://youtube.com/@AltComp126
My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
-
- Member
- Posts: 5501
- Joined: Mon Mar 25, 2013 7:01 pm
Re: Writing your OS so it is used by others
Xen is open-source and does pretty much everything you've asked for.~ wrote:It seems to be bootable from CD-ROM or DVD, but does it have as many drivers as Linux if we implemented that with it?gerryg400 wrote:Doesn't vmware already do this?
Also, it's surely the right thing to do to try to implement something like this to keep that knowledge more available as part of an OS distribution.