Comments 357
Браузер с линуксом внутри — это круто!
Только что постанули — правда менее информативно. См тему ниже — habrahabr.ru/blogs/linux/119422/
И поправьте что не только хром работает… У меня FX4 без проблем пашет.
И поправьте что не только хром работает… У меня FX4 без проблем пашет.
Отлично подойдет для обучения линуксу не желающим / не имеющим возможность поставить VirtualBox / VMWare и т.д.
Для этого есть ubuntu с wubi.
Ага, конечно, на виртуалку я ставить не хочу, а вот рядом с основной системой — пожалуйста.
Нежелания разные бывают, в данном случае компенсируется лень. Да и что вы имеете ввиду под «рядом с основной системой — пожалуйста» — непонятно.
Она устанавливается не «рядом», а «внутри» Windows. Отдельный раздел под неё не нужен.
Моя «основная система» не нуждается в эмуляторах и виртуальных машинах, чтобы попробовать Linux. Что и вам советую.
ERROR: your browser is too old to run JS/Linux.
You should use a recent browser such as Firefox 4.x or Google Chrome.
Опера 11.10 якобы не поддерживает JavaScript? Ну-ну…
Операфаны плохо понимают по-английски?
> ERROR: your browser is too old to run JS/Linux.
Ваш браузер слишком стар чтобы JS/Linux работал в нем.
Поставьте нормальный браузер, ну? ;)
> ERROR: your browser is too old to run JS/Linux.
Ваш браузер слишком стар чтобы JS/Linux работал в нем.
Поставьте нормальный браузер, ну? ;)
Это по-типу физических характеристик браузера? xD
Еще один уровень абстракции?)
Еще один уровень абстракции?)
ключевое слово — его любимого, а не того, который может по словам разработчиков обработать проект.
Ключевое слово — слишком стар, что не соответствует действительности. Лучше написали, что не работает с лентой и все.
… с оперой… извиняюсь
В лабораторной сборке с их поддержкой ( labs.opera.com/news/2011/02/28/ ) всё равно вылетает с ошибкой:
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()
А причём здесь «слишком старый», в таком случае?
Пусть так и пишет: «Ваш браузер не поддерживает Typed Arrays»
Пусть так и пишет: «Ваш браузер не поддерживает Typed Arrays»
>> Ваш браузер слишком стар чтобы JS/Linux работал в нем
Ваш браузер SUPER STAR :)
Ваш браузер SUPER STAR :)
Так в том-то и дело, что операфаны нормально понимают по-английски. Сама формулировочка хромает, разумней было бы просто «ваш браузер не поддерживается», а не «браузер слишком стар/молод/красив»
>> а не «браузер слишком стар/молод/красив»
стар/молод/красив/хром Ж-)
стар/молод/красив/хром Ж-)
так стар же. ибо в недрах Оперы разрабатывается уже поддержка типизированных массивов, так что надо подождать чутка нового браузера.
Поддержка typed array — фичи которая противоречит самой сути JavaScript, это характеристика «нормального» браузера? Ну ну.
в консоль не пускает ( Хром
Первое, что ввели 9/10, это
rm / -rf
Не только вы)
Первым делом —
Первым делом —
uname -a
Каждый хочет входить в 10%, а по факту, оказывается в остальных 90%.
Не хочу входить в 10%. Я уникален! :)
// demotivation.me/gha04trzqdo9pic.html
// demotivation.me/gha04trzqdo9pic.html
Проплюсовали 90%. Отписались 10 %)
rm не интересно.
Интереснее
Интереснее
dmesg dd if=/dev/zero of=/dev/ramdisk ls dmesg
я ввел сперва ls -la, потом uname -a. rm -rf / как-то не подумал ;)
да, давно хотел посмотреть что будет, но спецом для этого виртуалку заводить было влом.
Да не, думаю многие покопались в /bin и его содержимым, ну а потом уже… :)
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo «Жив»
ls :)
Вот черт, а я какойто не такой, ввел первым делом ifconfig ))
А вообще, это на самом деле — очень круто!
Обалдеть
Будущее рядом… Очень интересно наблюдать!
Правда под Оперу тоже бы допилить. Или Оперу под него…
Еще бы и синхронизацию между несколькими открытыми браузерами…
Правда под Оперу тоже бы допилить. Или Оперу под него…
Еще бы и синхронизацию между несколькими открытыми браузерами…
Оперу под него. Она не поддерживает typed arrays.
Значит подождем-с)
www.khronos.org/registry/typedarray/specs/latest/#2
Чтобы проще было читать бинарные данные, насколько я понимаю.
Чтобы проще было читать бинарные данные, насколько я понимаю.
Глянул в исходники и меня охватила вселенская печаль :) Это что-то нереально гениальное.
Автор разработал QEMU, как я узнал из вики :)
A еще ffmpeg (создал проект в 2000 и развивал до 2004 года), самый маленький компилятор си (tcc, была версия в 2 кб) и очень быстрые программы для расчета числа пи.
Круто! Для тех кто хочет знать как это работает есть маленькая ссылка внизу
bellard.org/jslinux/tech.html
This PC emulator is written in Javascript. The emulated hardware consists in:
a 32 bit x86 compatible CPU
a 8259 Programmble Interrupt Controller
a 8254 Programmble Interrupt Timer
a 16450 UART.
The code is written in pure Javascript using Typed Arrays which are available in recent browsers. It was tested with Firefox 4 and Google Chrome 11 on Linux, Window and Mac (it does not work with Chrome 12 beta. As far as I know, it is a bug in the browser). In any case, a fast Javascript engine is needed to have good performance.
bellard.org/jslinux/tech.html
This PC emulator is written in Javascript. The emulated hardware consists in:
a 32 bit x86 compatible CPU
a 8259 Programmble Interrupt Controller
a 8254 Programmble Interrupt Timer
a 16450 UART.
The code is written in pure Javascript using Typed Arrays which are available in recent browsers. It was tested with Firefox 4 and Google Chrome 11 on Linux, Window and Mac (it does not work with Chrome 12 beta. As far as I know, it is a bug in the browser). In any case, a fast Javascript engine is needed to have good performance.
Я вот не очень понял. На JS написали конкретон ядро, с которым умудряются работать все GNU-утилиты. Или все команды — тоже реализация JS?
На JS написали эмулятор PC
На JS написали эмулятор x86 процессора (http://bellard.org/jslinux/tech.html). Ядро и комманды — настоящие бинарники.
грубо говоря, на этом полетит что угодно для этого проца. ms-dos, например. можно кваку запустить первую.
Написано же, что 16-и битные режимы пока не поддерживаются, поэтому MS-DOS запустить нельзя. И эмуляции видеокарты нет, поэтому графические игры тоже запустить нельзя (консоль работает через эмуляцию последовательного порта).
Причем эмулятор забавный — этот процессор обладает F00F багом =) И линукс его понимает и обходит. Прямо как на первых камнях.
Я так понял, что на JS написан эмулятор железа, поверх которого запускается обычный (чуть подпиленный) linux.
Сейчас я вам объясню… На JS написал эмулятор x86 процессора!
А самое главное — зачем...?
opportunities && incredible mind
Встроить в железо нативную поддержку JS, а затем из Google OS запускать старые игры (которые не поддерживают JavaScript 4.x) через эмулятор PC :)
«Science is not about why, it is about why not» (Portal 2)
чтобы показать возможности виртуальной машины JavaScript?
physics is like sex. sure it may give some practical results but that's not why we do it
Richard P. Feynman
Richard P. Feynman
Этот вопрос уже всех заебал!
За шкафом!
За шкафом!
O_O
у меня не работает в нём клавиша Пробел!!!
В то время, как дети в Африке голодают, у кого-то находится время на это… ©
Реально, лучше помогите детям, зачем вы это читаете? )
Пользы от вашего комментария в миллионы раз меньше, чем от эмулятора PC на Javascript, а дети всё продолжают голодать.
Уважаемые читатели без чувства юмора! Прошу вас воздержаться от дальнейшего комментирования моей ужасно неуместной реплики, самой тупой и бесполезной в этом треде, да и на всём сайте. Минуса в карму будет вполне достаточно. А всем прочим плюсы, чтобы мы знали, что такое хорошо и что такое плохо.
М… А какая польза от голодающих детей? По мне эмулятор полезнее.
linux+canvas+storage+WebGL = PROFIT
reboot -f работает
Недалекое будущее. ChromeOS 2.0. Открываешь браузер, идешь по ссылке и запускаешь любую ОС на любом процессоре. Гугл знал.
Буду ждать вебсервер в браузере
Можно провести соревнование на хабре кто первый поднимет сетку(вроде уже подняли) и апач+пхп на этой виртуалке^^
Автор же написал что там только простейшие устройства эмулируются вроде таймера и контроллера прерываний. Поддержки сети нет в самом эмуляторе.
у меня есть некоторые мысли, как поднять сеть:
поскольку в эмуляторе реализован UART (последовательный порт), значит к нему можно прикрутить виртуальный МОДЕМ, на который потом можно просто отправлять обычные AT-команды, вроде:
и так далее…
поскольку в эмуляторе реализован UART (последовательный порт), значит к нему можно прикрутить виртуальный МОДЕМ, на который потом можно просто отправлять обычные AT-команды, вроде:
AT+CGDCONT=1,"IP","internet"\r
ATDT*99***1#\r
и так далее…
Не, это-то понятно. Только смысл тут не в модеме, а в том что поверх пожно поднять pppd и уже пускать. Только нужно как минимум два порта, чтобы и консоль была. Ну или отвязывать от консоли на момент запуска.
pppd ведь это часть стандартной сборки линукса.
Например httpd в этом эмуляторе уже встроен, и его запускали
Например httpd в этом эмуляторе уже встроен, и его запускали
И, еще, сам UART не зависит от количества последовательных портов.
Контроллер UART позволяет адресовать одновременно до 256 портов.
При этом сами «порты» могут быть, как «железными», так и «виртуальными».
Контроллер UART позволяет адресовать одновременно до 256 портов.
При этом сами «порты» могут быть, как «железными», так и «виртуальными».
>> Можно провести соревнование на хабре кто первый поднимет…
>>… апач+пхп на этой виртуалке
После добавления буфера обмена с возможностью закачки бинарников в виртуальную машину, установка php — плевое дело!
Нужно всего лишь скомпилить php из исходников, и залить в нужное место.
Бросаю вызов Хабрасообществу:
— поднять пхп
— запустить апач
— залить пхпинфо.пхп
— wget'ом достать выдачу скрипта
— закачать в /dev/clipboard
— скопировать содержимое буфера из окна браузера
— запостить коммент с текстом выдачи (в качестве доказательства)
ЗЫ: поскольку в выдаче будет html-разметка, перед публикацией коммента разрешается очистить выдачу от html-тегов
>>… апач+пхп на этой виртуалке
После добавления буфера обмена с возможностью закачки бинарников в виртуальную машину, установка php — плевое дело!
Нужно всего лишь скомпилить php из исходников, и залить в нужное место.
Бросаю вызов Хабрасообществу:
— поднять пхп
— запустить апач
— залить пхпинфо.пхп
— wget'ом достать выдачу скрипта
— закачать в /dev/clipboard
— скопировать содержимое буфера из окна браузера
— запостить коммент с текстом выдачи (в качестве доказательства)
ЗЫ: поскольку в выдаче будет html-разметка, перед публикацией коммента разрешается очистить выдачу от html-тегов
Да чё уж там. Ждём браузера в браузере.
Странно, у меня идет до
и все…
ни у кого нет такого?
Chrome 12.0.742.53 beta-m, Win7
…
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 124k freed
и все…
ни у кого нет такого?
Chrome 12.0.742.53 beta-m, Win7
Что ж сегодня все такие внимательные. Не работает в 12 Хроме.
Тоже самое, вот перезапускаю на FF4
Сказано же что с 12 Хромом проблемы! Что не понятного?!
писали же, на хроме бетке не работает.
>компилированные программы работают
както туда получилось закинуть свои бинарники?
Или там есть gcc?
както туда получилось закинуть свои бинарники?
Или там есть gcc?
но в реальности, если у вас есть линукс и есть — у вас есть все возможности
Ехал есть через есть…
А, как в него свой софт закачать?
1. написать свой софт.
2. скомпилировать свой софт.
2. скомпилировать свой софт.
можно поднять сетку и скачать wget'ом.
нельзя, сеть не эмулируется.
Думаю, можно сэмулировать wget как команду.
wget то там есть.
не-не, чтобы она внешняя была, её логику написать на яваскрипте, чтобы через XMLHttpRequest скачивала поток данных и возвращала уже внутрь основной системы. Тогда можно обойтись без эмуляции сети.
модифицировать функцию load_binary() так чтоб она качала через AJAX образы с твоего сервера, и обновить root.bin так как надо.
btw, tcc тоже написал этот же человек :)
хехе
~ # 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
Всё, я фанат этого человека.
Круто, даже цвета поддерживает!
Жалко сеть не работает. А вообще js просто поражает, это нереально круто! Может лет через {n} увидим пингвина с иксами в браузере))
На Андроиде не взлетело
У меня мозг ломается, когда представляю такую цепочку абстракций.
zoomquilt2.madmindworx.com/zoomquilt2.swf
можно ассоциацию с этими картинками провести, эмуляция одна в другой…
можно ассоциацию с этими картинками провести, эмуляция одна в другой…
Fennec пробовали?
Ребята уже портировали линукс на калькуляторы и казалось бы куда стремиться дальше.
Однозначно — в избранное!
Интересно, а на этот эмулятор можно дугую операционку поставить? Например, PC-DOS?
wget только у меня не работает?
Теперь осталось подключить сеть и научиться сохранять образы системы на диск.
/ # 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 sed
Интересно, и где это все хранится?
Или же оно по-кусочкам через AJAX подгружается?
Хранилище же в js нынче есть. При старте системы можно видеть что аллоцируется 2 метра. Так же при старте грузятся 3 бинарника.
root.bin через ajax.
ls -la /dev/ramdisk
mount /dev/ramdisk /mnt
ls /mnt
а сам ramdisk грузится вместе с ядром и кодом эмулятора при загрузке страницы.
mount /dev/ramdisk /mnt
ls /mnt
а сам ramdisk грузится вместе с ядром и кодом эмулятора при загрузке страницы.
на ramdisk'e:
The 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.
Да это же Fabrice Bellard — никто иной как создатель qemu! Крутой дядька.
/ # cowsay Hi
sh: cowsay: not found
:((((
sh: cowsay: not found
:((((
Эх, в браузере на N900 не стартует, жаль, былобы прикольно ))
такс а загрузчик как работает?
Очень удобно будет когда там будут утилита nmap. Огромный плюс в том что весь набор диагностики серверов может быть в одном месте и использовать его можно не через ssh а просто отрыв страничку.
~ # echo "#include int main(int argc, char **argv){ printf(\«Hello HA
BRAHABR.RU\»); return 0;}" > habr.c
~ # tcc habr.c -o habr
~ # ./habr
Hello HABRAHABR.RU~ #
BRAHABR.RU\»); return 0;}" > habr.c
~ # tcc habr.c -o habr
~ # ./habr
Hello HABRAHABR.RU~ #
это круче чем виртуалка на флешке
Теперь разводить ботнеты станет как никогда легко и приятно.
/антивирусные компании радостно потирают руки/
/антивирусные компании радостно потирают руки/
Как вы себе это представляете?
Пока не представляю, так как не занимаюсь разведением ботнетов.
Но исполнить код в браузере намного легче, чем на самом хосте, вы согласны?
Но исполнить код в браузере намного легче, чем на самом хосте, вы согласны?
Есть забавная идея, специалисты по JScript, подскажите, в стандарте ECMA 262 Typed Arrays есть? Не могу получить вразумительный ответ от спецификации.
Получил — нет. Это в черновиках и еще не вошло в стандарт.
www.khronos.org/registry/typedarray/specs/latest/
www.khronos.org/registry/typedarray/specs/latest/
ботнет на линуксах внутри браузера, я знал, что доживу
echo '#include <tcclib.h>; int main(int argc, char **argv) {printf(«hello ha
br!\n»); return 0; }' > h5.c && tcc -o h5 h5.c && ./h5
br!\n»); return 0; }' > h5.c && tcc -o h5 h5.c && ./h5
теперь можно писать на ассемблере прям из-под браузера. брр
habrahabr.ru/blogs/programming/105028/
хм…
хм…
~ # 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
Это круто!!!
По сути теперь можно запускать в среде браузера программы на любом языке. На Си уже сейчас можно (даже компилировать).
Пока это выглядит как for fun. Но если развить идею — она может стать революционной.
По сути теперь можно запускать в среде браузера программы на любом языке. На Си уже сейчас можно (даже компилировать).
Пока это выглядит как for fun. Но если развить идею — она может стать революционной.
Ну запускать уже дано можно, используя тот же ideone.com/. Правдаон не на чистом JS работает.
Иксы запускаются? :D
Там tinycc есть — через tcc запускается. Скачать что-то можно через ftpget, распаковать — через tar или unzip.
Скачать вряд ли получится — внешняя сеть не работает. А вот поднять ftp-сервер (ftpd там есть) на локалхосте и закинуть сорцы из основной системы — надо попробовать.
Только сеть пока не работает, чтобы скачивать…
Вижу потенциальное применение для защиты исходников клиентского кода.
И это не очень радует в плане безопасности.
И это не очень радует в плане безопасности.
Расшифруйте, что имеется в виду под «защитой исходников клиентского кода»?
JS-код загружается на клиента в исходном виде, а не компилированном. А тут появляется возможность загружать и исполнять бинарники, то есть скрывать исходный код.
Но у меня есть подозрение, что вы меня сразу поняли :)
Но у меня есть подозрение, что вы меня сразу поняли :)
а никак. сами подумайте, откуда там буфер? =)
Это эмулятор проца. Он ничего про винду не знает. И про её буфер тоже.
С точки зрения браузера — там просто текст. Как он туда может что-то вставить?)
И в любом случае — все нажатия передаются виртуальной машине. ИМХО, перехватывать часть их на уровне браузера — неправильно.
Исходный код, конечно, не читал, но глянул. Причем здесь как это реализовано?
Нажатия Ctrl+C, Ctrl+V, Shift+Ins, etc обрабатывает виртуальная машина. И ИМХО неправильно какие-то из нажатий подменять на что-то другое на уровне браузера.
Нажатия Ctrl+C, Ctrl+V, Shift+Ins, etc обрабатывает виртуальная машина. И ИМХО неправильно какие-то из нажатий подменять на что-то другое на уровне браузера.
Нет, не смущает. Там все-таки ssh, а не виртуальная машина.
ИМХО, возможно, стоило бы сделать соответствующую кнопку (благо консоль не на всю страницу). Но реализовывать доступ к внешнему буфферу закрывая часть хоткеев для машины — на мой взгляд, неправильно с точки зрения идеалогии.
Впрочем, этот спор действительно бессмысленен — всё будет так, как решит Беллард)
Впрочем, этот спор действительно бессмысленен — всё будет так, как решит Беллард)
Нельзя.
Но можно сделать отдельное поле, куда можно будет вставить текст, а потом отправить его кнопкой на консоль.
(Насколько я знаю.)
(Насколько я знаю.)
Вообще-то, в данном случае терминал и эмулируемый комп соединены по com-порту. И идеологически комбинацию Ctrl-V получает терминал. А потом он уже может передать коды клавишь в виртуальную машину.
тут написано: bellard.org/jslinux/faq.html
вкратце — справа от эмулятора текстовое поле, в него вставляешь текст, потом cat /dev/clipboard
вкратце — справа от эмулятора текстовое поле, в него вставляешь текст, потом cat /dev/clipboard
Вообще супер!
А то я уж было хотел искать подходящий плагин к фаерфоксу, который вставлял бы содержимое буфера обмена в окно браузера, эмулируя нажатия клавиш.
И даже хотел бинарники закачивать, предварительно преобразовав их в base64.
И у меня тогда оставалась нерешенной лишь проблема экспорта данных из виртуальной машины.
Теперь же все гораздо проще и прозрачнее стало.
А то я уж было хотел искать подходящий плагин к фаерфоксу, который вставлял бы содержимое буфера обмена в окно браузера, эмулируя нажатия клавиш.
И даже хотел бинарники закачивать, предварительно преобразовав их в base64.
И у меня тогда оставалась нерешенной лишь проблема экспорта данных из виртуальной машины.
Теперь же все гораздо проще и прозрачнее стало.
При чем тут политики браузера?
DileSoft, расскажите немного о себе, прошу вас.
Простите за сарказм выше. Линукс ничего не знает о вашей сети, о вашем браузере и т.д., он запущен в рамках «простейшего» (ну относительно остальных) эмулятора x86 процессора. Видение вашей сети в конкретном случае — задача далеко не тривиальная. Как минимум нужна низкоуровневая прослойка между ОС в песочнице и какими-либо технологиями (выше в комментариях дело писали) уже на стороне браузера.
И все таки.
Зачем?
Зачем?
В таких топиках этот вопрос еретический:)
Это должно влиять на мою свободу слова?
Я задал вопрос. Где ответы? Пусть аргументированно ответит тот, кто минус поставил ни за что. Мне кажется, ему слабо )
«В таких топиках» обычно распределение обязанностей: 9 срут минусами из всех дыр неудавшейся жизни, 1 за них пишет что-нибудь, о чем они и не знали )
Я задал вопрос. Где ответы? Пусть аргументированно ответит тот, кто минус поставил ни за что. Мне кажется, ему слабо )
«В таких топиках» обычно распределение обязанностей: 9 срут минусами из всех дыр неудавшейся жизни, 1 за них пишет что-нибудь, о чем они и не знали )
Это перефразированная цитата с заседания ММО (московского математического общества).
Я имел в виду, что такие вещи интересны и сами по себе. Понятно, что на ранних этапах практического смысла они иметь не могут.
В перспективе — возможность быстренько воспользоваться чем-нибудь linux only. Или демонстрация и обучение.
-Да, интересный результат. А зачем он нужен?
-Это еретический вопрос. Пытаясь ответить на него, мы неизбежно упремся в неразрешимый вопрос «зачем заниматься математикой».
Я имел в виду, что такие вещи интересны и сами по себе. Понятно, что на ранних этапах практического смысла они иметь не могут.
В перспективе — возможность быстренько воспользоваться чем-нибудь linux only. Или демонстрация и обучение.
вы абсолютно правы, все тщетно, все зря.
Ну я ж говорил, внятно ответить хер кто сможет, да и не захочет. Отвечает один нормальный человек, а остальные комменты — с полезностью ниже нуля, от быдлошкололо, единственная цель которых — высраться )
задам вам наводящий вопрос, а зачем люди дома делают мебель/посуду?
В перспективе можно фигачить нативные приложения в браузере (Google вон уже не первый год мучается с NaCl для этих целей). А тут proof of concept, что, в прицнипе, эмулятор + sandbox можно замутить на чистом JS (кроссбраузерно же!). Это же дико круто. Тут идей можно плодить и плодить.
Ну вот не удержался — покормил.
Прочитал заголовок, первая мысль: JUnix откопали. А тут такое!
Пора пересмотреть политики браузеров по защите всего и вся.
Мега охренеть! Чуваку Нобелевскую неменьше!
А есть какой — ниубдь чёрный ход в этой штуке? Потому — что затащить какой — нибудь файл туда, кроме как наклацать его в vi, способа пока не вижу.
В принципе, можно посмотреть в сторону ya.load_binary в cpux86.js и заливать бинарные данные либо в память (а затем считывать изнутри), либо поменять содержимое бинарника с линуксом, добавив нудные файлы.
Но, все таки, хочется полноценную сеть :)
Но, все таки, хочется полноценную сеть :)
Полноценная сеть вряд ли будет. Ибо нужен более-менее низкий уровень, который не получить ни через js, ни даже (скорее всего) через плагины к браузеру.
Разве что какая-нибудь java или native client, но это уже не то...)
Разве что какая-нибудь java или native client, но это уже не то...)
мне видится такое развитие: магическая инструкция, выполняющая произdольный js на «низком уровне», библиотека к tcc на базе неё, пара утилит, ну а потом уже можно и блочное устройство забабахать с XMLHttpRequest к локалхосту :)
С использованием web-socket мы можем создать паравиртуализированный драйвер сети с выходом на железный машрутизатор и получить нормальную сеть
Если запустить на нём спеки — пройдёт несколько лет пока они добегут — и к этому моменту и браузер, и железо успеют устареть! :)
Мужик просто монстр!!! Сделать такое на javascript нужно быть минимум гением!!!
Это всё взаправду? Меня не покидает ощущение обмана, и в голове вертятся фантастические сценарии. Что, например, используются уязвимости браузеров, чтобы запустить процесс с виртуальтной машиной из под клиенсткой операционкой. Ну или виртуалка крутится на сервере, а JScript через ajax просто транслирует её вывод. Я несерьёзно, просто тяжело поверить что кто-то написал эмулятор PC на JS.
Идея действительно потрясающая )
Скажите, а почему грузится vmlinux.bin, root.bin, linuxstart.bin? Может же грузится только жесткий диск (hardware.img) и загрузка начинаться именно с жесткого диска?
Если бы это был только один файл системы, то возможно было бы немного модифицировать клиентский JS код, чтобы загружать с какого-то своего жесткого диска, с ftp, к примеру.
А еще лучше, можно было делать hibernate и обмениваться (сохранять, загружать) жесткие диски.
Скажите, а почему грузится vmlinux.bin, root.bin, linuxstart.bin? Может же грузится только жесткий диск (hardware.img) и загрузка начинаться именно с жесткого диска?
Если бы это был только один файл системы, то возможно было бы немного модифицировать клиентский JS код, чтобы загружать с какого-то своего жесткого диска, с ftp, к примеру.
А еще лучше, можно было делать hibernate и обмениваться (сохранять, загружать) жесткие диски.
А в чём проблема? Я скачал cpux86.js index.html linuxstart.bin root.bin term.js vmlinux26.bin, работает. Ещё root.bin раcширил немного, думаю как бы ещё увеличить, ато 4 мегабайта потолок на ramfs — это не ок, а ядро это лень пересобирать :)
Плохо что при инициализации рам диска данные из root.bin перемещаются в памяти, а то можно было бы сделать сохранение образа по быстрому. А так у меня слишком руки кривые.
Фактически с помощью ya.ld8_phys($addr) можно сдампить хоть всю память, а это дает возможность делать простенькие «драйвера», что бы можно было изнутри вылезти наружу. Хотя бы в браузер.
Фактически с помощью ya.ld8_phys($addr) можно сдампить хоть всю память, а это дает возможность делать простенькие «драйвера», что бы можно было изнутри вылезти наружу. Хотя бы в браузер.
Тяжко было выключать крестиком вкладки браузера…
У одного меня зеленый курсор мигает в левом верхнем углу. И… всё!
даешь клауды на броузерах клиентов
кто нибуть уже KDE пробовал ставить? :)
Приятная новость!
Вчера был добавлен долгожданный текстовый буфер обмена.
Несмотря на то, что он текстовый, есть возможность загружать в виртуальную машину произвольные бинарники.
А, теперь, самое вкусное: появилась возможность выгружать любые файлы из виртуальной машины назад, в окно браузера!
Вчера был добавлен долгожданный текстовый буфер обмена.
Несмотря на то, что он текстовый, есть возможность загружать в виртуальную машину произвольные бинарники.
А, теперь, самое вкусное: появилась возможность выгружать любые файлы из виртуальной машины назад, в окно браузера!
Opera 11.11, работает! На андроиде в стандартном (Desire, 2.3) тоже, Опера Мобайл помучилась, после чего схлопнулась :)
WOW! Я новенький в мире Linux. Такой тренажер — то, что нужно в данный момент. Буду тренироваться на работе. Спасибо автору поста и создателю этого чуда!
Работает на Safari в iOS 4.3.5. Жаль, но не удалось вызвать клавиатуру для ввода в терминал.

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