BIOS (I dont want to dump it :)? OS?

Discuss the development of software, tools, libraries and anything else that helps make ps2dev happen.

Moderators: cheriff, Herben

Post Reply
ben ogle
Posts: 2
Joined: Mon May 30, 2005 7:43 am
Contact:

BIOS (I dont want to dump it :)? OS?

Post by ben ogle »

I have been browsing the forums and the net for a few days and I have been unable to answer a few seemingly simple questions. Please excuse my n00bness.

- Whats in the BIOS? Is the entire menu system (when you load the ps2 w/o a disc) in the BIOS? Or does it just control loading of the disc or the "OS"?

- Does it have an operating system that resides on the hardware? Is it in some "external" flash ROM or something? Is it part of the BIOS?

- In the P2SDK there is a kernel file. Is this directly interacting with the hardware? Or is it a shell over the stock PS2 kernel? It seems to me to be interacting with the hardware.

- Basically I want to know what the BIOS does and what the OS does (if there is one).

From my poking around in the CVS it looks like each time a program is compiled a whole "OS" is bundled along with it. This contains the drivers, sys calls, memory management, etc. Am I way off base?

Also, Ive found that info about the basics of this stuff is really hard to come by. Ive read through all the stuff at the top of the GD forum and I've read plenty of posts on here but at this point it seems a little greek. I am just trying to build a knowledge foundation.

Ben
Guest

Re: BIOS (I dont want to dump it :)? OS?

Post by Guest »

ben ogle wrote:- Whats in the BIOS? Is the entire menu system (when you load the ps2 w/o a disc) in the BIOS? Or does it just control loading of the disc or the "OS"?
- Does it have an operating system that resides on the hardware? Is it in some "external" flash ROM or something? Is it part of the BIOS?
These two questions have the same answer. "BIOS" is often a misnomer. The basic operating software of the PS2 is in this BIOS. It includes the embedded OS kernel, devices drivers and libraries, the graphical user interfaces (known as the "browser"), DVDplayer software, etc...

All of this is stored onto a read-only ROM chip. The software cannot be changed without hardware modification. However, nearly anything can be done at runtime, including replacing some or all of it.

You will note that the same things are often called "firmware" in other similar systems and contexts. Although in those cases, it is almost always stored in some fashion that allows it to be update or replaced, such as in an EEPROM or flash memory (such as in the case of the PSP).
- In the P2SDK there is a kernel file. Is this directly interacting with the hardware? Or is it a shell over the stock PS2 kernel? It seems to me to be interacting with the hardware.
Basically its hooks into the kernel system calls provided in the "BIOS". Naturally, the PS2SDK will be making use of kernel facilities to interact with the hardware, including the PS2SDK providing its own device drivers to control the hardware directly.
- Basically I want to know what the BIOS does and what the OS does (if there is one).
As I all but directly stated, the BIOS and OS are really the same thing. Best way to find out more is start reading. Also read up on embedded OS and progamming in general. It will give you much needed concepts.
From my poking around in the CVS it looks like each time a program is compiled a whole "OS" is bundled along with it. This contains the drivers, sys calls, memory management, etc. Am I way off base?
Not the whole OS, but the homebrew device drivers. The internal Sony ones may change over time, and/or may not be completely known, since after all, we are not privy to whats inside without reverse engineering. Using the homebrew device drivers provides a consistant interface to the system thats under homebrew control.

But in nearly any case, the homebrew software is still relying on the actual kernel within the PS2 itself. In theory this kernel can be outright replaced at runtime. It is done in actuality with the PS2Linux kit, to run a Linux kernel in place of one used at boot time.
Also, Ive found that info about the basics of this stuff is really hard to come by. Ive read through all the stuff at the top of the GD forum and I've read plenty of posts on here but at this point it seems a little greek. I am just trying to build a knowledge foundation.
Well, its not basic stuff. A large number of fields are rolled into understanding all of this.
- Computer Architecture (especially of embedded systems).
- Operating Systems (embedded systems OS / kernel / device drivers)
- Compilers (for updating the compiler internals to work with it)
- Systems software (for configuring the compiler/tools toolchains)
- Graphics programming (with emphasis on game programming)
- Software engineering (in general)
- Programming languages familiarity (C, C++, MIPS ASM, scripting langs).
(basically, if you went to a school that had a *real* good, balanced CS degree program, i.e. not too theoretically focused nor primarily a programming-monkey training institute, and you paid attention, you will hopefully have a decent grounding in the material).

Some books that will be good at getting you started:
"See MIPS Run" - discussed MIPS architecture in great detail, from embedded systems point of view.
"forget the title" - book on general embedded systems OS concepts. I will plug in the title name when I get home. I have a few of these.
Sony PS2Linux Kit PS2 hardware docs - Invaluable for learning the specifics of the PS2 architecture and programming the hardware. Check out www.playstations2-linux.com as another resources for learning alot of things.
PS2DEV forums - Keep reading, there are lots of material.
cvs.ps2dev.org - Its all in the source. As you pick up more from the above resources, you will understand more and more of whats in the code.

Above all, just jump right in with the basics. Start with "hello world". It may not even work the first time because folx keep changing stuff around, which forces you to ask questions just to get a simple hello world running. ;)

If you are just starting out, you can spend years learning all of the angles in this. I know I have, just as a hobby, and I work in the IT field with CS background.
ben ogle
Posts: 2
Joined: Mon May 30, 2005 7:43 am
Contact:

Post by ben ogle »

Wow. Thanks. I know I probably sounded like a retard :) but it had to be done. I have done quite a bit of programming (as I am a CS major) including a lot of embedded sys programming in the way of old honda ecus. They are old, however, and so they do not have a real OS and are pretty archaic compared to the PS2. We pretty much (well, ok, we do) have to reverse engineer them and put modified code in the ROM.

Thanks again. It really helped.

Ben
Post Reply