newbie question

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

Moderators: cheriff, Herben

Post Reply
crispie
Posts: 4
Joined: Sun Feb 29, 2004 3:01 am

newbie question

Post by crispie »

Hi folks,

since a while I look to the ps2-homebrew scene, and its very interesting and often i thought about participating, so I tried to find some information regarding the architecture of the ps2-homebrew-software..

The most interesting for me I want to know is, if there is some kind of kernel. You always use the standard libraries for network, access to devices, like hdd or pads, some kind of glibc-pendant (which i use in linux) and so on, do this libraries for itself make some syscalls to the kernel?
or do they access the hardware directly?

When I looked through the sources, i couldnt find any hints to a kernel. I looked to sjeeps pgen, and in the file open area there seemed to be some device descriptors, like mc0, mc1, cdrom0, hd... or so
is this stuff provided from a kind of kernel? or just provided from a kind of direct-hardware-accessing-device-framework-implemted in a library, which was linked to the executable?

I am not very experienced with that stuff, but I am curious, so i would be happy to find someone who could answer me that question.

thanks in advance,
crispie.

p.s. sorry for my english, its not my native language..
mrbrown
Site Admin
Posts: 1537
Joined: Sat Jan 17, 2004 11:24 am

Post by mrbrown »

If you have the ps2lib source, then ee/libkernel/ contains calls into the kernel that runs on the EE. kernel.S contains system calls - these are direct entrypoints into the kernel API. A large portion of libkernel is an API that is used to communicate with the PS2's I/O Processor (IOP). The devices that you see (mc0;, cdrom0:, etc.) are written to run on the IOP, but accessed through fileio.c and other portions of libkernel on the EE.

The IOP also runs a kernel, but it doesn't use system calls, but instead a library system that is somewhat simliar to shared libraries under Unix or DLLs under Win32. You can see how that's implemented by reading the source in the iop/ directory of the ps2drv project.

If you have more specific questions, let us know.
Post Reply