Anakclusmos wrote:
look, my major point here is this:
* Linux is capable of running without a bootloader
* Linux is capable of depending (or at least being semi-dependent) on existing libraries
* It is not selective to a particular console(s)
* Though in most cases Linux runs on a low level, defining it as a kernel, there are some ports which do not. For example; as a PSP developer, I know that making a kernel for PSP is impossible as the kernel-mode EBOOT signing keys have yet to be discovered. In 1000 and 2000 models of PSP, the enabling of homebrew applications is done by using an exploit to patch a module located in flash0 and install additional modules in the same location, which allows user mode applications to access kernel mode functions. However, in the 3000 model of PSP, Sony fixed the exploit so that only kernel mode EBOOTs can write to flash. So, in those models homebrew enabling is done by patching a particular area in RAM, so the built in modules don't exist. To make up for this downfall, the pspsdk was modified so that the user's applications would be dynamically linked into the EBOOT itself. Now, the ONLY way to call kernel functions is to the kernel bridge exploit to execute code from a kernel mode PRX module that can't access any memory outside of its address space. Summing it up, though it is possible to emulate a pc on a psp, it is not possible to emulate ALL of the features of a pc on a psp. Linux would have no access to ME accelerated audio, memory access for flash0/flash1/flash2/umd, while running within the emulator. Additionally, the kernel would run freakishly slow unless it had direct access to SCE graphics functions since rendering unswizzled images to the screen reduces the framerate by about 75-80% (averaging about 60 fps without swizzling and 400+fps with swizzling and 600+fps if you also take advantage of offscreen memory). Altogether, my point is that somehow the Linux running in the video above has to somehow be accessing kernel mode functions.
In (for the love of god notice these words--->) MY OPINION, Linux can be considered as an application; a shell like DoorsCS.
Point 1, yes, it can run without a bootloader. The only case I have seen that is when the kernel is a bootloader for itself. (Some small dev boards do this)
Point 2, my 10 cents agrees.
Point 3, official, no. It has a limited amount of architectures that it will run on. Modified versions of the kernel can be run on more hardware. This still remains true on the PSP as it is running in an emulated environment.
Point 4, please, please, read what the video showed! The PSP was running an emulator. From HBL: Quote:
Half-Byte Loader (HBL) is an open source Homebrew Loader for the Sony PSP and the PS Vita. It allows to play fan-made games on any PSP up to firmware 6.60, and on the Vita up to firmware 1.61. HBL allows to run emulators for the Game Boy, Nintendo 64, Sega Megadrive, NES, Super NES… and many other applications.
Now, on to what App means... Quote:
"Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. ... Application software is contrasted with system software and middleware, which manage and integrate a computer's capabilities, but typically do not directly apply them in the performance of tasks that benefit the user. The system software serves the application, which in turn serves the user."
Now on to what a kernel is Quote:
"In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources (the communication between hardware and software components)."
The Linux kernel does nothing on its own. It you just put the kernel on a computer and nothing else, not much will happen. Apps are included running under the kernel. Now the PSP is creating a virtual computer with a virtual address space and hardware. The kernel works in a virtual space and still is a kernel because the kernel isn't executing on its own, it is being helped by the emulator and relies on other applications running under it running in the emulator.