Tiny Core Linux
General TC => General TC Talk => Topic started by: danielibarnes on May 24, 2011, 07:31:57 PM
-
Using the Javascript PC Emulator (http://bellard.org/jslinux/tech.html), I was able to run Micro Core 3.6 in Firefox 4. I was surprised at how simple it was. A few notes:
- Set memory in jslinux.js to 32MB
- Add "noswap nozswap embed nodhcp nofstab ramdisk_size=16384" command line options in jslinux.js
- Use the config_linux-2.6.20 provided in the linuxstart.tar.gz and modify it with:
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
CONFIG_LOCALVERSION="-tinycore"
- Patch kernel using patch_linux-2.6.20
- Add to /etc/inittab (comment out tty1 line):
::respawn:/sbin/getty -L ttyS0 115200 vt100
- Add to /opt/bootlocal.sh:
stty -F /dev/ttyS0 rows 30
chown root:staff /dev/clipboard
- Merge root.bin and microcore.gz into a 12MB ext2 image
Screenshots (must be logged in to view):
screen1.png: booting to a command prompt
screen2.png: top
screen3.png: TERM=xterm-color vifm
screen4.png: lynx accessing copy of Tiny Core home page served via lighttpd-nodeps
[ Edit ] Added fourth screen shot and clarified notes
-
I'm still laughing :D
-
I'm still laughing :D
If it had a virtual network adapter, I could run a web server within my browser ... :)
-
I'm still laughing :D
If it had a virtual network adapter, I could run a web server within my browser ... :)
I've never much cared about, but isn't "Opera Unite" a ready made webserver in a browser?
-
I've never much cared about, but isn't "Opera Unite" a ready made webserver in a browser?
To quote, "Opera Unite is not designed to replace professional Web servers (http://unite.opera.com/develop/faq/#php) ..." I was able to run lynx, and I considered installing busybox-httpd or my lighttpd-nodeps extension. I couldn't think of anything cool to do with it aside from having a web server serve web pages to a web browser within a web browser.
-
If it had a virtual network adapter, I could run a web server within my browser ... :)
Then we've been laughing about exactly the same thing :D
-
I still can't see why do that (the emulator). Hey all, let's run a heavy-as-is emulator on top of an interpreted language, on top of an already-heavy app, lol. :D
-
I still can't see why do that
Read the page I linked in my original post, at the very bottom:
What's the use ?
I did it for fun, just because newer Javascript Engines are fast enough to do complicated things. Real use could be:
Benchmarking of Javascript engines (how much time takes your Javascript engine to boot Linux ?). For this particular application, efficient handling of 32 bit signed and unsigned integers and of typed arrays is important.
- Learning to use command line Unix tools without leaving the browser.
- Client side processing using an x86 library, for example for cryptographic purposes. For such application, the x86 emulator can be modified to provide an API to load x86 dynamic libraries and to provide a js-ctypes like API to call the C/C++ functions from javascript.
- A more advanced version would allow to use old DOS PC software such as games.
-
I still can't see why do that (the emulator). Hey all, let's run a heavy-as-is emulator on top of an interpreted language, on top of an already-heavy app, lol. :D
Proof of concept of maximizing overhead? ;)
-
Sometimes we try things just to see if they can be done or as a learning experience, regardless of
how useful they may or may not be. I once made a bootable floppy with a 2.6.28 kernel, uclibc and
busybox. I used a 1.4Mb floppy formated to 1.722Mb and had 180Kb to spare. Did it serve a useful
purpose? Not really, but I got the satisfaction of knowing I could do it and learned a lot along the way.
-
I'm just as guilty in doing things like that too ;) Guess the part I don't get is making it a public project, my crazies tend to stay inside.
-
You learn a lot by experimenting.
I have tried a lot of things which worked, and a lot of things which did not work.
I have learnt during the process.
-
I suggested to my friend who was skeptical, now that I'll show him this page he'll be knocked ;D