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..
newbie question
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.
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.