Basic New OS hardware set

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Ready4Dis
Member
Member
Posts: 571
Joined: Sat Nov 18, 2006 9:11 am

Post by Ready4Dis »

MessiahAndrw wrote:The 'certified' list should mean the operating system supports all VMware, Microsoft Virtual Machine, QEMU, and bochs hardware. The projects list should have a certified category, listing 'usable' operating systems. Then it gives new osdevers something to aim for.

A larger requirement list should be made, with a definition on 'usable' and hardware it needs to run on.

This concept still leaves the problem of OS'es designed for other architectures.
This sounds like a much better idea, have a listing of hardware that is open format, and certify with the list. Maybe a few network cards (NE2000 would be a good start, although limited to 10mbs, that would cover a good range of nic's), the RTL, and maybe an onboard or two. Then, AC97 is fine and dandy, but SB Compatible would also be nice, and maybe another one or two onboards. CPU set, well, that should be kept to a minimum anyways, but the OS should state what it's lowest requirements are, so I know not to test it on my 486 if it requires MMX :P. I would also say it would require support for ATA, (serial ata is backward compatible right?), and maybe a specific file systems, like fat12/16/32 (can have others also, just require it to support those as well), that way, if I wanted to dual boot, I can copy files between both partitions from either OS. I do have my laptop setup this way, 3 partitions, and a custom MBR that allows me to select my boot partition, one has win xp, the other Dos, and the other whatever OS I feel like putting on it (it's only 1gb, so nothing to huge please!).
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Post by Candy »

MessiahAndrw wrote:This concept still leaves the problem of OS'es designed for other architectures.
That was why I initially thought about "some random 500mhz processor? but ... but ..." so I added x86 and forgot to remove 500mhz. I don't think it's possible to make such a consensus list for other types, since theyre both very diverse and hard to come by. All components in this list are either very common or very cheap (rtl card, ac97 audio, random cd player).

It's probably best to keep a list of machines that aren't x86 compatible but that are available for testing. I got two sparcs (sparcstation 4 and 5) here, with a 21" block of concrete to test them.
User avatar
Combuster
Member
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:

Post by Combuster »

Candy wrote:- processor with x86 instruction set support, with support for at least MMX and cmpxchg8b.
- 64MB memory (of any type)
- RTL8139 network card
- AC97 soundcard
- IDE parallel-ata compatible harddisk
- IDE parallel-ata compatible cdrom player
- UHCI or OHCI USB controller
- Video card supporting VBE 2.0+ and VGA Registers.
- 16450+ serial port (not count, type)
If you want to push it through, i'll be fine with that. However, i mentioned the SB for it being common on pretty much all older machines (i have 4 boxes with a SB: 2xsb16, sbpro, sb64gold, only one with AC97), and the fact that at least bochs and iirc also vmware emulate these. I think stating AC96 or SB would give a good coverage of emus and boxes of 2-8 years old.
Also, in the final spec state that the the amount of memory is a minimum, it reads as if it is a fixed size.

What i forgot to say is maybe a chipset limitation, i.e. PCI controller, standard programming style (or pci bios32?)
- x86-64 compatible processor
- 256MB memory of any type
- RTL8139/8169 network card
- AC97 soundcard / Intel HDA soundcard
- IDE parallel-ata or SATA AHCI harddisk
- IDE parallel-ata or SATA-AHCI dvdrom player
- EHCI USB controller
- VBE2 supporting video card
I'm not that much into the USB terrain, but is there a reason why the 'old' machine use ohci/uhci and the new machine use ehci? in that case i'd add ehci to the old machine list for completeness.
Yayyak wrote:Would it be possible to have a common set of hardware, of which we could choose components out of?
MessiahAndrw wrote:The 'certified' list should mean the operating system supports all VMware, Microsoft Virtual Machine, QEMU, and bochs hardware.
Good points. I think the we might just split the standard in two: compatible and compliant: bit of like

Compatible:
required: proc, memory, ide hd+cdrom, video card, comport (as given above)
optionally: ne2k, rtl nic, sb, ac97, usb, ...

Compliant:
required: proc, memory, ide hd+cdrom, video card, comport
- at least one ne2k or rtl
- at least one sb or ac97
- at least one standard usb controller
MessiahAndrw wrote:The projects list should have a certified category, listing 'usable' operating systems. Then it gives new osdevers something to aim for.
Good concept, however, who's going to check all 150 entries?
MessiahAndrew wrote:This concept still leaves the problem of OS'es designed for other architectures.
Let's stick with x86 (amd64) for now. It is what most of us codes for. ARM is rather widespread to come up with a small common denominator, HPPA is rare, the hardware is proprietary as hell, and i guess <5 people here work on other archs. Maybe later.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

Post by bubach »

It doesn't have to be just one network card or one soundcard, we could make lists of all soundcards, all network card etc. that is "FOS-compliant".
This would mean that it would be harder to support all FOS hardware in your OS, but also that it's not too restrictive on which hardware the user has, as long as datasheets is available.

Memory and processor type (in the x86 family), should'nt matter. I mean thats not really any problem.

Anyway, this is my opinion..
"Simplicity is the ultimate sophistication."
http://bos.asmhackers.net/ - GitHub
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

I agree with bubach, it's no good telling people that they must have this and that, as we can see you can not get people to agree.
So how about we have a list of devices that are FOS compliant.
To be "FOS compliant." it need to have the following:
1. A free datasheet.
2. A example must be available of it working on a hobby OS.
3. At least 2 example drives must be available, coded in 2 differant programming languages.
4. The example driver's must be under a free license.

The web site for FOS, will hold data sheets or links to datasheets. Example drivers and tuts for making FOS compliant drivers.

Now we need a star system, where say your OS has driver's for all the Hardware that is FOS compliant, you get 5 star's, if you have one or two drivers on the list you get 1 star etc.
This will need to be worked out more. Has for emulators, we can add some thing like a "+"
To the rating's, So if your OS run on or x86 emulators it get a + eg: five star +
Means your OS is fully compliant.
NOTE: Hobby OS does not include linux or BeOS etc.
smbogan
Member
Member
Posts: 29
Joined: Tue Nov 21, 2006 3:17 pm

Post by smbogan »

Unfortunately, you'll never get to see the operating system, because as far as I'm aware, no modern video cards have free datasheets.
Edwin
Posts: 12
Joined: Thu Dec 21, 2006 5:19 pm

Post by Edwin »

This is a great idea! However I have some suggestions:
I would suggest version numbers for "FOS" so we can update the specs without causing any confusion. (e.g."FOS 1.0")
I would also suggest some variations on the base specs, for example:
FOS 1.0b (base)
FOS 1.0d (desktop)
FOS 1.0s (server)
FOS 1.0g (graphics/games e.g. including the future open source video card: http://wiki.duskglow.com/tiki-index.php ... n-Graphics)
//edit: forgot one
FOS 1.0m (mobile)
And of course, "FOS" should eventually get a website :)
Last edited by Edwin on Thu Jan 04, 2007 12:05 pm, edited 1 time in total.
User avatar
Combuster
Member
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:

Post by Combuster »

Wheeling in some more ideas:
Apart from giving OS'es star ratings, I think we should do the same with hardware and computers:

(hardware)
1* - has freely available datasheets
2* - has one sample driver
3* - has several sample drivers (for fundamentally different OSes)
4* - complies with a common interface
5* - comes with tech support

(computers)
1* - the processor and chipset each have at least one FOS star
2* - all components required for minimal desktop use (mouse+kb+video+storage) have at least one FOS star
3* - all components have at least one FOS star (pretty much what i posted a few posts up as 'compatible')
4* - all components have at least two FOS stars
5* - all components have at least four FOS stars (as 'compliant')

(OSes)
1* - supports at least one FOS piece of hardware for the minimal set
2* - supports 5* computers
3* - supports at least 10% of FOS hardware
4* - supports at least 25% of FOS hardware
5* - supports at least 90% of FOS hardware
Dex wrote:4. The example driver's must be under a free license.
You mean PD, or would you consider GPL as 'free'
smbogan wrote:Unfortunately, you'll never get to see the operating system, because as far as I'm aware, no modern video cards have free datasheets.
Oh? Try an intel card - the world isnt all nv/ati :)
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Post by Brendan »

Hi,
Combuster wrote:Apart from giving OS'es star ratings, I think we should do the same with hardware and computers:
An archive of documentation, datasheets and reference material (and/or links to these), with a rating for each device (with or without documentation, so we can tell the difference between which devices suck and which ones haven't been researched yet) would be very nice... ;)
Combuster wrote:
Dex wrote:4. The example driver's must be under a free license.
You mean PD, or would you consider GPL as 'free'
I'd consider PD, BSD or LGPL, but not GPL. More importantly, I'd say "the example driver's must be under no restrictions", which includes source code licencing and patent problems.
Combuster wrote:
smbogan wrote:Unfortunately, you'll never get to see the operating system, because as far as I'm aware, no modern video cards have free datasheets.
Oh? Try an intel card - the world isnt all nv/ati :)
AFAIK Intel makes onboard video (chipsets) but doesn't currently make stand-alone video cards. In this case choosing a modern video card with free datasheets means excluding AMD chipsets, and therefore all of AMD's CPUs (except for those for embedded systems, where modern video isn't likely anyway).

Lately there's plenty of rumours though - Intel creating a brand name for stand-alone cards with better performance than their current video, and AMD opening it's (recently purchased) ATI video cards (and a few other rumours about hyper-transport, GPUs in CPU sockets, mix & match multi-core, etc).


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.
ineo
Posts: 19
Joined: Wed Oct 18, 2006 3:20 am

Hardware Standard ?

Post by ineo »

It sounds like a good idea to give a label to a supported hardware platform, but I think we should not stick to it.

Why not create a hardware matrix with the rows representing the OS support and the columns the hardware ? It could be on the wiki.

I know it sounds less exciting than defining a standard, but I think we will be able to have a quick overview of the OS supported hardware more easily. Eventually one column may represent the conformance to the defined standard.

Just the opinion of a casual OS developer ;) (and yes mine still doesn't work on real hardware :S )
INeo
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

One thing we need to make it very easy to see good hardware from bad, from the OS Dev point of view.
And remember this will add to making Hobby OS coding easier, as it does not stop you supporting any other devicer's.
But how many time have you seen this ? posted, "i want to add drivers to my OS, which should i support first ?" or "where can i can info on this hardware".

We can point then to the FOS web site, and say if it not on the list, your out of luck.
Dragon_Hilord
Posts: 3
Joined: Tue Jan 02, 2007 2:21 pm
Location: Saint John, NB.

Post by Dragon_Hilord »

Well, a good platform could be the late power PC architecture. Think of it like Latin :lol:.

I don't really like standards all that much, and don't typically swear by any, but I'll be damned if it doesn't run Linux, *BSD, or React OS. Some more sub-standards:
  • FOS 1.0p - "Previous" Hardware. We're talking anything prior to the Pentium line.
  • FOS 1.0c - "Console" hardware. Nice and static, no funny blips to be afraid of.
I'd actually prefer that there isn't standard boxes but rather individual pieces of hardware (eg. AC97 and Soundblaster Classic are both pretty well-known and widely used by some people). For things like nVidia, there is always asking nVidia VERY sweetly and nicely for some kind of older documents. People always are going after them for the latest and greatest; why not try and get some older stuff to begin with?

The only license for this type of thing is PD or BSD. GPL is too restrictive, and I personally don't have any taste for the GPLv3. That or a custom license that would give good freedom to OS developers other than Microsoft :lol:. Last thing we need is them to announce our hard work has just been patented under their name :wink:.

Some typical stuff I have and run into around the house:
  • Pentium 1 -> 4
  • 386+
  • AC97
  • Soundblaster Classic (think prior to '97)
  • Audlib
Cheers, DH.
Post Reply