Project Status Technical details Developers corner Download Howto Thanks
|
Project Status July 01 2002 (release-05)
-
Incorporated mmap()ing 4K pages on Windows (Thanks to Erik
Paulson). This enables loading native linux binaries on umlwin32
without recompilation and shared libraries.
-
I have tested a few extra commands like vi, objdump, bash with colours etc.
-
Tiny CC works fine and can compile C programs on umlwin32!
-
Bugs/Limitations:
- somehow tar [jz]xfv does not work. Use gunzip | tar instead.
- I have seen glitches in terminal editing once in a while
- Ignore the error messages printed out by halt
- No job control and signal support yet.
June 28 2002 (release-04)
-
More stable build. ^-C does not kill the uml session.
/sbin/halt works and should be used for halting.
-
Mounting hostfs works fine.
Mount root filesystem rw with standard command 'mount -o remount /'
Mount hostfs by running the script '/bin/hostfs'
-
Shell features:
- Piping and redirecting works
- Cannot kill a hanging process (no job control)
- Command line editing DOESNOT work
- Other things like history, functions, aliases, etc. seem to work
- ^-D works as EOF for inputting from commandline.
-
Lots of new commands seem to be working including:
- ksh, bash (init is linked to bash)
- python (start it as 'python -i /lib/site.py, and you can import standard libraries. Ignore the error it prints upon startup)
- fileutils such as: cat, rm, cp, mkdir, mv, cksum, head, tail, wc, od etc.
- Commands like: tar, gzip/gunzip, bzip/bunzip, df, du etc
- mkfifo works and fifos actually work fine! (just make sure that fifo-reader is in background since there is no way to kill a hanging process)
June 16 2002 (release-03)
-
Patch against 2.4.18-um20
-
Fork and Exec implemented. Uses windows processes instead of
threads.
-
Integrated with the int80 syscall redirector from
LINE
-
No more GSH. KSH without jobcontrol works fine.
(/sbin/init is linked to /bin/ksh)
-
Simple constructs in ksh like alias and functions seem to
work fine.
-
Simple binaries : cat, ksh, ls, mount to demonstrate
fork()/exec()
-
All binaries are rebuilt with 64K section alignment and
statically linked
-
Image is 4096 blocksized for performance reasons
-
Tight loop in idle process eliminated (This was the couse for
99% CPU utilisation by linux.exe)
-
Does NOT support shared libraries yet
-
First time invocation of binaries can be a bit slow
-
Basically still very unstable and useful only for proof of
concept and feasibility. Needs to evolve a lot more.
-
Terminal control is non-existant. Complicated things like
command line editing and ^-C DONOT work!
-
Type exit
command at the ksh '#' prompt and then press ^-C to end the linux
session
-
BEWARE !! Sometimes this fails to kill all the linux.exe
processes. You need to kill them all manually before restaring a new
session or else things wont work !!
Use the command
ps -a | grep linux | cut -d" " -f6,7
| xargs kill -9 to kill all the linux processes.
Always verify that they are all dead with a ps -a !!
-
(Yes its a damn nuisance and I will fix it soon :) )
-
Patch against 2.4.18-um20
-
console IO now works.
-
Linux.exe tested on XP, Win 2000 Pro.
-
Very basic segv handler and syscall redirector.
-
GSH
(grrsh): A miniature shell with builtin commands, executed instead
of init and supports commands like
ls, cat, cd, pwd, cp, mkdir, mount, umount with very basic
syntax.
-
Does NOT do fork()/exec() yet.
-
Patch against 2.4.18-um20
-
This project was initiated by Dan
Aloni (da-x@gmx.net) who managed to make the whole UML compile and
build on windows. All my subsequent work is based on his
efforts.
-
Currently there isn't much that works!
The project is just starting and if you are interested in the current
state, you can build it on windows under cygwin development
environment.
-
You can run it with the special root image (see download section) and
you can see the kernel coming up, mounting the root fs, and loading
and passing control to the special version of /sbin/init which
tries to print to the console. You can also see the fcntl() system
calls being called for stdin, stdout and stderr. Thats basically
it! Still interested? Read on ...
|