Writing your OS so it is used by others

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: Writing your OS so it is used by others

Post by Kevin »

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.
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.
Developer of tyndur - community OS of Lowlevel (German)
ggodw000
Member
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

Post by ggodw000 »

Kevin wrote:
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.
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.
with the right amount of money, anything is possible. [-X
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
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: Writing your OS so it is used by others

Post by Kevin »

I wasn't aware that you had some spare millions to spend on this. ;)
Developer of tyndur - community OS of Lowlevel (German)
SWGDev
Member
Member
Posts: 31
Joined: Wed Feb 10, 2016 3:29 am
Location: London, UK
Contact:

Re: Writing your OS so it is used by others

Post by SWGDev »

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).
embryo2
Member
Member
Posts: 397
Joined: Wed Jun 03, 2015 5:03 am

Re: Writing your OS so it is used by others

Post by embryo2 »

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).
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.
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 :)
onlyonemac
Member
Member
Posts: 1146
Joined: Sat Mar 01, 2014 2:59 pm

Re: Writing your OS so it is used by others

Post by onlyonemac »

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.
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.
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
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: Writing your OS so it is used by others

Post by Brendan »

Hi,
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 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.


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.
User avatar
~
Member
Member
Posts: 1226
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: Writing your OS so it is used by others

Post by ~ »

Brendan wrote:Hi,
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 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.


Cheers,

Brendan
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).

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
glauxosdever
Member
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

Post by glauxosdever »

Hi,

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.
I definitely agree with your points. I can't add more.


Regards,
glauxosdever
embryo2
Member
Member
Posts: 397
Joined: Wed Jun 03, 2015 5:03 am

Re: Writing your OS so it is used by others

Post by embryo2 »

onlyonemac wrote:
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.
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.
Android uses Linux. Linux design can be traced dow to 1970-s (or even 60-s).

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 :)
embryo2
Member
Member
Posts: 397
Joined: Wed Jun 03, 2015 5:03 am

Re: Writing your OS so it is used by others

Post by embryo2 »

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.
It's possible, but quality is a very time consuming endeavor.
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 :)
User avatar
~
Member
Member
Posts: 1226
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: Writing your OS so it is used by others

Post by ~ »

embryo2 wrote:
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.
It's possible, but quality is a very time consuming endeavor.
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.

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
gerryg400
Member
Member
Posts: 1801
Joined: Thu Mar 25, 2010 11:26 pm
Location: Melbourne, Australia

Re: Writing your OS so it is used by others

Post by gerryg400 »

~ wrote:
embryo2 wrote:
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.
It's possible, but quality is a very time consuming endeavor.
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.

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.
Doesn't vmware already do this?
If a trainstation is where trains stop, what is a workstation ?
User avatar
~
Member
Member
Posts: 1226
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: Writing your OS so it is used by others

Post by ~ »

gerryg400 wrote:Doesn't vmware already do this?
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?

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
Octocontrabass
Member
Member
Posts: 5501
Joined: Mon Mar 25, 2013 7:01 pm

Re: Writing your OS so it is used by others

Post by Octocontrabass »

~ wrote:
gerryg400 wrote:Doesn't vmware already do this?
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?

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.
Xen is open-source and does pretty much everything you've asked for.
Post Reply