Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
ERROR: your browser is too old to run JS/Linux.
You should use a recent browser such as Firefox 4.x or Google Chrome. Event thread: load
Uncaught exception: [object DOMException]
Error thrown at line 9, column 150036 in Je(Ke, ha) in http://bellard.org/jslinux/cpux86.js:
Ne=new Uint8Array(Me,0,fd);
called from line 9, column 174320 in start() in http://bellard.org/jslinux/cpux86.js:
ya.load_binary("vmlinux26.bin",0x00100000);
called from line 1, column 0 in <anonymous function>(event):
start()
rm / -rfuname -admesg dd if=/dev/zero of=/dev/ramdisk ls dmesg
AT+CGDCONT=1,"IP","internet"\r
ATDT*99***1#\r
…
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 124k freed
но в реальности, если у вас есть линукс и есть — у вас есть все возможности
~ # ls -la total 6 drwxr-xr-x 2 root root 1024 May 17 10:56 . drwxr-xr-x 13 root root 1024 May 16 16:33 .. -rw------- 1 root root 7 May 17 10:56 .ash_history -rw-r--r-- 1 root root 166 May 15 22:15 hello.c ~ # cc hello.c -o h sh: cc: not found ~ # gcc hello.c -o h sh: gcc: not found ~ # tcc hello.c -o h ~ # ./h Hello World
/ # ls bin
addgroup dnsdomainname iplink mt setarch
adduser dumpkmap iproute mv sh
ash echo iprule netstat sleep
base64 ed iptunnel nice stat
busybox egrep kill pidof stty
cat false linux32 ping su
catv fdflush linux64 ping6 sync
chattr fgrep ln pipe_progress tar
chgrp fsync login powertop touch
chmod getopt ls printenv true
chown grep lsattr ps umount
cp gunzip lzop pwd uname
cpio gzip makemime reformime usleep
cttyhack hostname mkdir rev vi
date hush mknod rm watch
dd ionice mktemp rmdir zcat
delgroup iostat more rpm
deluser ip mount run-parts
df ipaddr mountpoint scriptreplay
dmesg ipcalc mpstat sedThe disk image is just a ram disk image loaded at boot time. It contains a filesystem generated with Buildroot containing BusyBox. I added my toy C compiler TinyCC and my unfinished but usable emacs clone QEmacs.
~ # cat bf.c
#include <tcclib.h>
s[999],*r=s,*d,c;main(a,b){char*v=1[d=b];for(;c=*v++%93;)for(b=c%7?a&&(c&17?c&1
?(*r-=c-44):(r+=c-61):c&2?putchar(*r):(*r=getchar()),0):v;b&&c|a**r;v=d)
main(!c,&b-1);d=v;}
~ # tcc -o bf bf.c
bf.c:3: warning: assignment makes pointer from integer without a cast
bf.c:3: warning: assignment makes pointer from integer without a cast
bf.c:4: warning: assignment from incompatible pointer type
bf.c:5: warning: assignment from incompatible pointer type
~ # ls -l bf
-rwxr-xr-x 1 root root 2372 May 17 13:52 bf
~ # echo '++++++++++.' | ./bf
Segmentation fault
-Да, интересный результат. А зачем он нужен?
-Это еретический вопрос. Пытаясь ответить на него, мы неизбежно упремся в неразрешимый вопрос «зачем заниматься математикой».
С использованием web-socket мы можем создать паравиртуализированный драйвер сети с выходом на железный машрутизатор и получить нормальную сеть

Эмулятор компьютера с linux на JavaScript