게임보이 어드밴스 상의 유닉스

cjh의 이미지

http://www.kernelthread.com/publications/gbaunix/

다이렉트 포팅은 아니고 SIMH PDP-11 에뮬레이터를 엊고 그 위에서 PDP-11용 UNIX 5th Edition을 돌리는 형태군요. 하여튼 대단합니다. :P

http://www.kernelthread.com/publications/gbaunix/images/gbaunix.gif

ejungw의 이미지

게임보이같은.. 가전기기에 리눅스 올린건 어떻게 키보드 입력을 어떻게 하나 궁금했는데...

Quote:

The simulator contains SIMH at its core. I have attempted to make minimal modifications to SIMH itself, abstracting GBA specific functionality into a logically separate layer that SIMH talks to. This layer could be thought of as having the following components:

TTY Output: gbaunix provides an illusion of a text terminal to SIMH. All TTY output is re-routed to GBA routines that format it, and send it to the GBA's framebuffer. Text-scrolling is done, if necessary. printf() is implicitly converted to a two step operation: sprintf() into a formatting buffer, followed by displaying the buffer on the screen.
TTY Input: gbaunix does not have an input mechanism currently. You can only execute a canned sequence of UNIX shell commands. The sequence must be specified at compile-time as an array of strings in gba/gba_kbd.h in the source. While UNIX is running, pressing the START button feeds the next command line into the TTY's input buffer. gbaunix can either simply poll for keypresses, or can use the GBA's keypad interrupt. The latter ensures that no keypresses are missed. An example sequence is shown below:

/* gba/gba_kbd.h */

const char *gba_kbdinput[] = {
"unix\r",
"root\r",
"chdir /work\r",
"ls -l\r",
"./fact 100\r",
"cat hanoi.c\r",
"./hanoi\r",
"./hanoi 3\r",
"chdir /tmp\r",
"echo 'main() { printf(\"Hello, World!\\n\"); }' \
> hello.c\r",
"cc hello.c\r",
"./a.out\r",
... /* more commands */
NULL,
};

이렇게 하는군요..

음.. PC처럼 입력되면 재밌을텐데.. ^^

segfault의 이미지

GBA에서 사용하는 ARM에 MMU가 포함되어 있는지요?

그럼 리눅스도 올릴 수 있으려나...

saxboy의 이미지

MMU가 없을때 쓰라고 uClinux가 있지요.