пытаюсь боле-мене полноценно спортировать инферно на вынь мобиль (pocket pc) на arm. кое что уже получилось. поддерживается консоль, гуй, звук. можно работать с фс, включая дрова, редактировать, компилировать и отлаживать на тельце. но идет пока не все (например, не идет жит, валится. не включайте его пока) и не все проверил. сеть не проверял пока. в некоторых случаях валится. но взглянуть уже можно http://basmphg.heliohost.org/f/inferno-ppc/27/
небольшой поверхностный тутор как работать с инетом из инферны # сперва запускаем сервер соединений ndb/cs # затем, получаем ip от имени (если ip известен, то этот шаг можно пропустить) (null ip)=`{{echo tcp!<имя сайта без http и папок со страничками>!http >[1=0]; read;}<> /net/cs} # что тут что. # первые скобки - разделитель токенов, тк возвращается 2 слова. # `{...} - тоже самое, что в юнихе `...` # tcp!...!http - так в инферне записываются инет адреса (http - просто синоним порта 80. можно написать цифрой). # >[...] - так перенаправляется ввод-вывод. в данном случае с 1 на 0. # read - команда чтения. файл сам себя не прочитает. # <> - хитрое перенаправление. стдин направляется в одну сторону, а стдоут в другую. без закрытия файла между операциями. и вообще, пока не закончится последовательность в скобках. # /net/cs - имя на которое по дефолту цепляется ndb/cs. а вся папка /net - дерево имен для работы с сетью # далее открываем себе соединение { id=`{read}; echo connect $ip > /net/tcp/$id/ctl; workfoo $id;}<> /net/tcp/clone # что есть и что пить # /net/tcp/clone - выделятель соединений. соединение будет существовать, пока файл не закроется. потому <> # id=`{read} - читаем номер соединения из клонера и запихиваем в переменную $id # echo connect $ip > /net/tcp/$id/ctl - пишем команду на открытие нужного ip в управляющий файл выделенного нам соединения. # workfoo $id - рабочая функция. можно и без нее, но удобнее разделить операции по связи и обработке # сама обработка fn workfoo { id=$1 echo ... > /net/tcp/$id/data cat /net/tcp/$id/data var=`{read < /net/tcp/$id/data} } # опять насчет что есть, а чего уже уперли # fn workfoo {...} - так в инферно (и план) шелле задаются функции # id=$1 - параметры переданные в функцию задаются номерами. просто присваиваем в более вразумительное имя # echo ... > /net/tcp/$id/data - выводим строку в канал данных нашего соединения. в конце добавляется \r\n, потому просто echo > /net/tcp/... просто выведет в канал \r\n # cat /net/tcp/$id/data - читаем строку из канала в стдоут с ожиданием. пустая строка == все. # var=`{read < /net/tcp/$id/data} - вариант чтения, но с возможностью присваивать шеловским переменным и дальше обрабатывать в скрипте (например регекспы, сравнения итд) гдето так можно ковырять сайты вручную прямо из ком строки. любые средства работающие с файлами подойдут. например, можно загрузить из сетки напрямую в блокнот.
в подтверждение туторитто выше - живой скрин со скриптом и полученным прямо в блокнот выводом из сетки.
valterg сервер там лег еще вчера. я там новую сборку залить хотел. с эмуляцией всех кнопок мыши и простыми быстрыми сменами раскладок, но пока не судьба.
частично заработало. сборка с поддержкой до 3х кнопок мышки, перекодировкой (актуально для добавления недостающих кнопок на клаву или легкой локализации) выложена. инструкция тоже. сорс не выкладывается, тк не получается создать репу. админка еще полулежит. http://basmphg.heliohost.org/f/dispatch.wsgi/f/dispatch.wsgi/inferno-ppc/27/#41
чуть стабилизировал порт. теперь не валится при каждом запуске внешней проги. теперь валится только при запуске тяжелых внешних прог (те, не инферно-проги, а вынь-се проги). потребление памяти с запущенной граф оболочкой и несколькими граф-прогами - 7.5 мб. может быть поэтому. в правом нижнем углу индикаторы кнопок для эмулятора 3х кнопочной мыши. без них сильно неудобно было. жит пока не работает ссыль