mboost-dp1
x86-emulator i Javascript - kan boote Linux
- Forside
- ⟨
- Forum
- ⟨
- Software
Awesome: http://bellard.org/jslinux/
Giver et linux-prompt med nogle programmer installeret. Der er bla. en C-compiler (tcc). Jeg har ikke prøvet selv, men det skulle være muligt at skrive et C-program, compile det og køre det.
Giver et linux-prompt med nogle programmer installeret. Der er bla. en C-compiler (tcc). Jeg har ikke prøvet selv, men det skulle være muligt at skrive et C-program, compile det og køre det.
Jeg prøvede at køre bash fork bomb (Chrome/Windows):
Det lykkedes, men der var nogle problemer.
1) Dansk tastatur fungerer ikke så godt.
2) "&" ligger på shift-7 på et engelsk tastatur, men jeg får en double-quote. Det virker dog som "&" alligevel.
3) : er ikke et acceptabel funktionsnavn i den shell der bruges (busybox sh?), så erstat kolon med et bogstav.
Men så virker det også. Det er lidt interessant at forking (processer, tråde...) virker, når nu Javascript ikke understøtter det.
:(){ :|:& };:
Det lykkedes, men der var nogle problemer.
1) Dansk tastatur fungerer ikke så godt.
2) "&" ligger på shift-7 på et engelsk tastatur, men jeg får en double-quote. Det virker dog som "&" alligevel.
3) : er ikke et acceptabel funktionsnavn i den shell der bruges (busybox sh?), så erstat kolon med et bogstav.
Men så virker det også. Det er lidt interessant at forking (processer, tråde...) virker, når nu Javascript ikke understøtter det.
Hvis I ikke har ram nok så kan i køre følgende:
javascript:ya=new ea();Qe=new vf();If=128*1024*1024;ya.phys_mem_resize(If);ya.load_binary("vmlinux26.bin",0x00100000);Jf=ya.load_binary("root.bin",0x00400000);start=0x10000;ya.load_binary("linuxstart.bin",start);ya.eip=start;ya.regs[0]=If;ya.regs[3]=Jf;ya.cycle_count=0;ya.ld8_port=Qe.ld8_port.bind(Qe);ya.ld16_port=Qe.ld16_port.bind(Qe);ya.ld32_port=Qe.ld32_port.bind(Qe);ya.st8_port=Qe.st8_port.bind(Qe);ya.st16_port=Qe.st16_port.bind(Qe);ya.st32_port=Qe.st32_port.bind(Qe);ya.get_hard_intno=Qe.pic.get_hard_intno.bind(Qe.pic);xf=Date.now();setTimeout(yf,10);
:D
javascript:ya=new ea();Qe=new vf();If=128*1024*1024;ya.phys_mem_resize(If);ya.load_binary("vmlinux26.bin",0x00100000);Jf=ya.load_binary("root.bin",0x00400000);start=0x10000;ya.load_binary("linuxstart.bin",start);ya.eip=start;ya.regs[0]=If;ya.regs[3]=Jf;ya.cycle_count=0;ya.ld8_port=Qe.ld8_port.bind(Qe);ya.ld16_port=Qe.ld16_port.bind(Qe);ya.ld32_port=Qe.ld32_port.bind(Qe);ya.st8_port=Qe.st8_port.bind(Qe);ya.st16_port=Qe.st16_port.bind(Qe);ya.st32_port=Qe.st32_port.bind(Qe);ya.get_hard_intno=Qe.pic.get_hard_intno.bind(Qe.pic);xf=Date.now();setTimeout(yf,10);
:D
myplacedk (4) skrev:Det er lidt interessant at forking (processer, tråde...) virker, når nu Javascript ikke understøtter det.
Man kan sagtens implementere tråde uden at have preemptive multitasking eller parallellitet.
#18
Jeg tror ikke at det er et krav at have drivere for at køre en xserver. Man kan bare lave det hele i hukommelsen, og så bruge x-forwarding til en pc med skærm.
Jeg tror ikke at det er et krav at have drivere for at køre en xserver. Man kan bare lave det hele i hukommelsen, og så bruge x-forwarding til en pc med skærm.
#17
Jeg vil tro alt der kan compiles med tcc til den version af linux kan køre.
Jeg opdagede dog at tcc ikke "har" stdio.h, men i stedet har tcclib.h... Så det skal nok være skrevet specifikt til tcc.
Jeg vil tro alt der kan compiles med tcc til den version af linux kan køre.
Jeg opdagede dog at tcc ikke "har" stdio.h, men i stedet har tcclib.h... Så det skal nok være skrevet specifikt til tcc.
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.