2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1 ... 7, 8, 9, 10, 11
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение21.11.2025, 21:38 
Dmitriy40 в сообщении #1710161 писал(а):
Нельзя ли это автоматизировать, в смысле сделать cmd/bat/скрипт файл чтобы он сам добавлял эти строчки (лучше даже в новый файл) и запускал его на выполнение? Тогда запуск упростится. Под виндой я знаю как это сделать, в убунте нет.

Можно, конечно. Вообще, gp2c-run это и есть скрипт (.bat или .ps в виндовс-терминологии).
Вот мой (с планшета)
код: [ скачать ] [ спрятать ]
  1. #!/bin/sh -e 
  2. #Copyright (C) 2001-2013  The PARI group. 
  3. #This file is part of the GP2C package. 
  4. #PARI/GP is free software; you can redistribute it and/or modify it under the 
  5. #terms of the GNU General Public License as published by the Free Software 
  6. #Foundation. It is distributed in the hope that it will be useful, but WITHOUT 
  7. #ANY WARRANTY WHATSOEVER. 
  8. #Check the License for details. You should have received a copy of it, along 
  9. #with the package; see the file 'COPYING'. If not, write to the Free Software 
  10. #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 
  11.  
  12. name="stdin"; 
  13. for p in "$@"; do 
  14. case "$p" in 
  15.   -h|--help) cat <<EOF 
  16. gp2c-run <options> <file.gp> 
  17. Compile file.gp with gp2c and launch a gp session with functions of file.gp 
  18. added. 
  19. <options> are passed to gp2c 
  20.  
  21. gp2c-run <file.c> 
  22. Compile file.c and launch a gp session with functions of file.c added. 
  23.  
  24. ENVIRONMENT: 
  25. GP2C: path to the gp2c compiler, default: /data/data/com.termux/files/usr/bin/gp2c 
  26. GP: path to the gp calculator, default: /data/data/com.termux/files/usr/bin/gp 
  27. EOF 
  28. exit 
  29. ;; 
  30.   -l|-t|-v)  exec $GP2C "$@" ;; 
  31.   -o) echo "gp2c-run does not support option -o" 1>&2; exit 1;; 
  32.   -*) ;; #We discard options 
  33.   *) name=$p;; 
  34. esac 
  35. done 
  36.  
  37. if test "x$GP2C" = "x"; then 
  38.   GP2C="/data/data/com.termux/files/usr/bin/gp2c" 
  39. fi 
  40.  
  41. if test "x$GP" = "x"; then 
  42.   GP="/data/data/com.termux/files/usr/bin/gp" 
  43. fi 
  44.  
  45. case $name in 
  46.   *.c) name=${name%.c};; 
  47.   *) $GP2C -o $name.c "$@" ;; 
  48. esac 
  49.  
  50. # ИСПРАВЛЕННАЯ КОМАНДА КОМПИЛЯЦИИ 
  51. command=`echo "aarch64-linux-android-clang -c -o %s.o -O3 -Wall -fno-strict-aliasing -fstack-protector-strong -Oz -isystem/data/data/com.termux/files/usr/include/c++/v1 -isystem/data/data/com.termux/files/usr/include -fPIC -I\"/data/data/com.termux/files/usr/include\" %s.c && aarch64-linux-android-clang -shared -o %s.so %s.o /data/data/com.termux/files/usr/lib/libpari.a -lgmp -lm" | sed -e "s %s $name g"` 
  52. eval $command || exit $? 
  53. grep "^GP;" $name.c | sed 's/^GP;//' >$name.run 
  54. echo $GP $name.run 
  55. $GP $name.run 

Между 56 и 57 строчкой можно добавить. Собствнно gp запускается в 58 (последней) строчке, а до этого - трансляция в Си через gp2c, компиляция .c, создание .run
Но! Как я писал, это не то, о чём думали разработчики. А если вы в исходнике .gp написали только функции, что изволите запускать? :mrgreen:
Под конретный случай, когда заведомо известно, что в скрипте есть не только функции но и "main()", можно написать скрипт, который будет добавлять строчку init_<filename>() (отрезая там конечно от имени файла хвост ".gp.run" и заменяя "-" на "_") в файл и запускать его.
Вместо 56 строчки пишем (спасибо DeepSeek :D ):
Код:
# Создаем имя для init функции
init_name=$(echo "$name" | sed -e 's/\.gp$//' -e 's/-/_/g')

# Создаем .run файл и добавляем вызов init функции
grep "^GP;" $name.c | sed 's/^GP;//' > $name.run
echo "init_${init_name}()" >> $name.run

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение21.11.2025, 22:44 
wrest в сообщении #1710170 писал(а):
А если вы в исходнике .gp написали только функции, что изволите запускать? :mrgreen:
Очевидно ничего, вываливаться из gp в консоль убунты, ну или как сейчас в консоль интерпретатора пари.
Но мы так (всё в функциях) обычно не делали. Соответственно всё что без объявления функции - это фактически main(). Впрочем Вы уже ведь с этим выше разобрались.
Просто написание функции и написание прямого кода - довольно разные вещи даже по идеологии, привыкнув ко второму не слишком легко перейти к первому, а кое-что и очень трудно (скажем выделение гигабайтных кусков памяти или создание глобальных переменных (не помню правила видимости в пари)).

wrest в сообщении #1710170 писал(а):
Под конретный случай, когда заведомо известно, что в скрипте есть не только функции но и "main()", можно написать скрипт, который будет добавлять строчку init_<filename>() (отрезая там конечно от имени файла хвост ".gp.run" и заменяя "-" на "_") в файл и запускать его.
Я примерно это и имел в виду, написать второй скрипт, не для компиляции и запуска, а только для запуска скомпилированного ранее. Написать готовый, а не сказать что "так тоже можно", понятно что можно, вопрос кто будет разбираться как сделать. Антону и так есть чем заняться в убунте и пари, у меня нет убунты, остаётесь Вы. :mrgreen:


PS. Буду рад если порекомендуете образ cli убунты для установки в виртуалку, полазив по сайту убунты я нужного не нашёл (или не понял). Лет 25 назад у меня валялась загрузочная дискетка 3.5" с каким-то линуксом, собирался файл-сервер сделать из старого компа (386sx), но не помню ни где она, ни какой там линукс был, да и не факт что запустится на текущей аппаратуре. Но зато всего полтора мега! И это была не установочная дискета, а именно что с неё грузился нормальный линукс (типа как дос тогда). Вот бы такую же убунту, а? Даже готов gcc и что там ещё понадобится потом доустановить. Если в виртуалке всё получится, то может и на вычислительный сервер (2 серверных проца по 16 ядер с гипертрейдингом) поставлю тогда и буду проги уже под линукс писать. ;-)

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение21.11.2025, 23:32 
Dmitriy40 в сообщении #1710176 писал(а):
Буду рад если порекомендуете образ cli убунты для установки в виртуалку,

Да я уж было хотел посоветовать, но честно сказать - не нашёл компактного ничего (вы писали в том духе, что гигабайта вам жалко :mrgreen: ). Ну я и не специалист. Полагаю, если ubuntu, то скорее всего ubuntu server, но надо смотреть можно ли там выбрать при установке minimum minimorum, по идее должно быть можно. https://ubuntu.com/download/server и там ubuntu 25.10 Дистрибутивы сделанные под WSL в этом смысле конечно прям хороши.
Dmitriy40 в сообщении #1710176 писал(а):
Даже готов gcc и что там ещё понадобится потом доустановить.
Ну тут смотрите - если вы готовы собирать pari/gp и gp2c руками (повторю - я это делал на андроид планшете, а я совсем не линоксоид), то какой именно дистрибутив особо то и не важно.

-- 21.11.2025, 23:46 --

Dmitriy40 в сообщении #1710176 писал(а):
Написать готовый, а не сказать что "так тоже можно", понятно что можно, вопрос кто будет разбираться как сделать. Антону и так есть чем заняться

Я же пытал его насчёт его workflow, но так и не получил ясный мне ответ. И нужно ли ему это вообще :mrgreen:

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 00:34 
wrest в сообщении #1710183 писал(а):
Я же пытал его насчёт его workflow, но так и не получил ясный мне ответ.
Неправильно пытали. Думаю он просто не понял чего Вы от него хотите. Я уж хотел было вмешаться, но потом подумал чего я буду лезть не в своё дело со своей колокольни с личными тараканами ...

(Ещё раз подумал, всё же это офтоп)

wrest в сообщении #1710183 писал(а):
Да я уж было хотел посоветовать, но честно сказать - не нашёл компактного ничего (вы писали в том духе, что гигабайта вам жалко :mrgreen: ).
Вот и я не нашёл. Гигабайта диска не жалко, жалко когда гигабайт лишь дистрибутив, а диска потом надо с десяток гиг. При том что ни многогигабайтного gcc, ни GUI, ни ещё кучи всего просто не требуется.
Я смотрел в сторону https://ubuntu.com/download/core, вроде там и требования поменьше, и название логичнее, но не понял можно ли его ставить в любую виртуалку или только в multipass/qemu.

wrest в сообщении #1710183 писал(а):
Ну тут смотрите - если вы готовы собирать pari/gp и gp2c руками
PARI - не догма. Да, он удобен по многим причинам, но есть и не менее удобные альтернативы (говорят тот же питон почти так же удобен, ну после начальной настройки под себя). А многие задачи и не требуют возможностей PARI, достаточно и С/асма. Мне пари нужен был фактически из-за двух взаимосвязанных вещей: длинная арифметика и проверка простоты (ну и факторизация ещё) чисел (в том числе длинных), остальное редко используемые мелочи.
У Антона задача более конкретная: запустить gp код под линуксом (убунтой) ради скорости счёта, мне же интереснее запускать мой код (не gp) в виде исполняемых файлов (С/С++/паскаль или питон или асм или их комбинация - не суть). Вполне вероятно ничего устанавливать и собирать и не придётся, кросскомпиляторы есть и под винду, под линуксом будет лишь среда выполнения готового кода. И дело даже не в ускорении кода (С или асм не ускорятся, а пари используется как оболочка и его скорость некритична), а в доступности выч.ресурсов (немало доступных серверов только с линуксом).
Похоже тут это уже офтоп, но если тема пойдёт, то можно расширить толкование с Убунты под WSL до просто линукса или отделить в новую тему.

UPD. Подумав ещё, решил убрать под тег. И вообще наверное не продолжать: не уверен что займусь установкой чистой убунты (или другого линукса) даже в виртуалку, конкретной задачи под это дело пока нет, а мороки много. С WSL всё проще ...

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 01:57 

(Dmitriy40 : да, это пожалуй в новую тему, если соберётесь)

Dmitriy40 в сообщении #1710189 писал(а):
При том что ни многогигабайтного gcc, ни GUI, ни ещё кучи всего просто не требуется.

gcc не многогигабайтный и он таки требуется для gp2c того же, кто-то ведь должен компилировать .с код. кстати как мне помнится, когда я собирал pari/gp руками на планшете, там в составе исходных кодов есть тесты, которые определяют некую "оптимальную" конфигурацию сборки pari/gp под конкретное окружение и настраивают опции сборки исходя из этого.

Вот:

(Оффтоп)

--tune: fine tunes the library for the host used for compilation. Tuning the package adjusts thresholds by running a large number of comparative tests and creates a file tune.h in the
build directory, that will be used from now on, overriding the ones in src/kernel/none/ and
src/kernel/gmp/. It will take a while: about 30 minutes. Expect a small performance boost,
perhaps a 10% speed increase compared to default settings. Note that this is dependent on the
--mt option, so make sure to include the relevant value, as in Configure --tune --mt=pthread.



с CLI only виртуалками есть э... некоторая загвоздочка -- настройка сети. ну вернее как -- знания нужны. там вам надо настроить сеть правильно во-первых в гипервизоре, но главное - в самой виртуалке. вы не захотите пользоваться "физическим дисплеем" виртуалки , а будете подключаться к виртуалке по SSH терминалом, типа putty. и вот вам надо будет с вашей host системы попасть на guest систему, а чтобы делать это беспроблемно, надо будет настроить фиксированный IP на guest системе и траблшутить прохождение пакетов из host системы (виндовс) в guest систему. это всё нетрудно для хорошо понимающего что и как тут (я к ним не отношусь) так что придется погуглить или пытать LLM.
Когда/если вы установите CLI only на "железо", все ещё усложнится -- у вас не будет гипервизора где вы выбираете тип сетевого адаптера, тип сети и т.п.

Так что тут может GUI и пригодиться. Тогда вам над будет научиться редактировать конфигурацию загрузки линукса так, чтобы x11 подсистема не загружалась по умолчанию, но была на всякий случай.

А в WSL уже всё сделано за вас "из коробки": вы получаете готовую сессию в терминале без заморочек, а сам гостевой линукс подключен к интернету :mrgreen:

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 02:51 
Аватара пользователя
wrest в сообщении #1710183 писал(а):
Я же пытал его насчёт его workflow, но так и не получил ясный мне ответ. И нужно ли ему это вообще :mrgreen:
Dmitriy40 в сообщении #1710189 писал(а):
Неправильно пытали. Думаю он просто не понял чего Вы от него хотите.

Даже и не пытался пока понять. Говорю же: много новой инфы. И мне нужно было понять, что важное, а что второстепенное, что нужно делать сейчас, что позднее, а на что можно (пока) забить.

Вот сейчас вроде наладил работу. Но уже окончательно понял (или опять ошибаюсь?) что скоростью счёта надо начинать заниматься на пустом компе, а не тогда, когда 12 потоков считают и загрузка проца и так уже 100%. Потому что весьма причудливые результаты получаются.

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 03:37 
Yadryara в сообщении #1710211 писал(а):
Но уже окончательно понял (или опять ошибаюсь?) что скоростью счёта надо начинать заниматься на пустом компе, а не тогда, когда 12 потоков считают и загрузка проца и так уже 100%. Потому что весьма причудливые результаты получаются.
По хорошему - да, на пустом.
Хотя если все загружающие проц сторонние процессы запущены с низким приоритетом и при этом не требуют много памяти под переменные (идеал - влезают в кэш L2, он у вас 512кБ), то можно их и не останавливать. Погрешность измерений возрастёт, но зависимости останутся теми же (кто быстрее, кто медленнее), с учётом увеличенных погрешностей. Если разница скорости мала (сравнима с погрешностями), то может быть произвольное нестабильное соотношение.
Если замеряется скорость одного потока, то можно освободить два-три потока из всех (не один так как гипертрейдинг, плюс всей остальной винде поток оставить), этого должно быть достаточно чтобы замеряемый не тормозил. Для надёжности можно руками запретить фоновым потокам использовать конкретное ядро, а тестовому - только его и использовать, причём выбрать не крайние (не первое и не последнее), они обычно хуже остальных охлаждаются и потому могут работать на чуть меньших частотах. Это переключение можно делать "на лету", не останавливая счёт.
Вообще замерить скорость лучше нескольких процентов - дело муторное. Например может понадобиться запускать не менее десятков минут чтобы проц успел прогреться и выйти в стационарное состояние. И несколько раз. Ещё и поэтому я очень не люблю гнаться за процентами скорости.

Разумеется выше речь исключительно про среднюю (эффективную) скорость, которая на практике и интересует - именно с ней будут считаться долгие задачи. Пиковая (максимально теоретически возможная) измеряется совсем по другому.

-- 22.11.2025, 03:45 --

(wrest)

wrest в сообщении #1710202 писал(а):
с CLI only виртуалками есть э... некоторая загвоздочка -- настройка сети. ну вернее как -- знания нужны. там вам надо настроить сеть правильно во-первых в гипервизоре, но главное - в самой виртуалке. вы не захотите пользоваться "физическим дисплеем" виртуалки , а будете подключаться к виртуалке по SSH терминалом, типа putty. и вот вам надо будет с вашей host системы попасть на guest систему, а чтобы делать это беспроблемно, надо будет настроить фиксированный IP на guest системе и траблшутить прохождение пакетов из host системы (виндовс) в guest систему.
Не понял зачем, ведь консоль и так есть в гипервизоре виртуалки, а обмен данными легко сделать через общую папку (в гостевой ОС например как логический диск), видимую и на хосте, и в виртуалке (это тоже делает гипервизор). И пока гостевой ОС не нужно в инет сеть можно и не использовать. Во всяком случае и Вин98 и ВинХР прекрасно так у меня работают в виртуалках.
Вы же не хотите сказать что CLI ОС не имеет консоли, ведь не хотите? Это тогда не CLI, а вообще голое ядро что ли ... С ним да, будет беда. Но такого не надо.

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 12:05 
Yadryara в сообщении #1710087 писал(а):
Там у меня уже вроде есть все необходимые файлы:

Код:
Код:
Rab_44z_7_ub.gp
Rab_44z_7_ub.gp.c
Rab_44z_7_ub.gp.o
Rab_44z_7_ub.gp.run
Rab_44z_7_ub.gp.so
Команда gp Rab_44z_7_ub.gp.run запускает PARI, но не запускает программу:
Честно говоря мне не совсем понятно, почему нельзя просто запустить полученный бинарник (это Rab_44z_7_ub.gp.so) .
Обычно .so это готовый к работе бинарник и если это локальное исполнение, запускается как
Код:
./Rab_44z_7_ub.gp.so
Бывает (в зависимости от пользовательских настроек),
что нужно проверить/установить бит исполнения.
В юникс системах программа без этого бита не запустится никогда.
Делается это просто, в директории с бинарником, выполнить:
Код:
chmod 755 Rab_44z_7_ub.gp.so
Проверить выставленность бита можно командой ls -l
Покажет что-то вроде такого:
Код:
ls -l pskgen
-rwxr-xr-x  1 demis  demis  3795 Jul 22  2016 pskgen
Где мы видим "x" в трех местах, это и есть бит выполнения (от eXecute).

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 12:13 
Dmitriy40 в сообщении #1710216 писал(а):
Не понял зачем, ведь консоль и так есть в гипервизоре виртуалки,
Она вам очень не понравится, и она одна :mrgreen:
Dmitriy40 в сообщении #1710216 писал(а):
Вы же не хотите сказать что CLI ОС не имеет консоли, ведь не хотите?
Консоль есть, конечно. Ну будет там какое-то SVGA.

Ну в общем у меня заняло полчаса как-то там настроить сеть. :mrgreen: Я установил ubuntu server, и смог подсоединиться к нему из windows терминала. Ну а у вас в Win7 будет putty или типа того. Файловый доступ ещё не смотрел.

-- 22.11.2025, 12:40 --

DemISdx в сообщении #1710245 писал(а):
Честно говоря мне не совсем понятно, почему нельзя просто запустить полученный бинарник (это Rab_44z_7_ub.gp.so) .

Потому что это библиотека. Ну запустите в windows на исполнение "бинарник" .dll какой-нибудь.
Как сделать чтобы можно было запускать без gp писал тут: post1709345.html#p1709345

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 12:44 
DemISdx в сообщении #1710245 писал(а):
Честно говоря мне не совсем понятно, почему нельзя просто запустить полученный бинарник (это Rab_44z_7_ub.gp.so) .
Вероятно потому что стандартно там нет main(), это просто набор отдельных функций (как в dll без секции инициализации). Так что запустить вероятно можно, но никакого эффекта не будет.

-- 22.11.2025, 12:49 --

wrest в сообщении #1710246 писал(а):
Она вам очень не понравится, и она одна :mrgreen:
Ну так монитор с клавиатурой тоже обычно одни и что.
wrest в сообщении #1710246 писал(а):
Консоль есть, конечно. Ну будет там какое-то SVGA.
Ну так и прекрасно, этого достаточно.
Если захочется несколько процессов запустить, то есть тот же терминал (если я правильно понимаю зачем он вообще). Как то же работают с CLI OS.

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 13:23 
Dmitriy40 в сообщении #1710257 писал(а):
Если захочется несколько процессов запустить, то есть тот же терминал (если я правильно понимаю зачем он вообще). Как то же работают с CLI OS.

Терминал даёт вам настройку шрифтов, размера окна, возможность копипаста (в CLI юникса/линукса буфер обмена стандартно отсутствует), красивую "графику", беспроблемную мышку. Ну и одновременно несколько сессий к ОС. "Собственная" консоль - только для первоначальной установки ОС (не из преднастроенного образа а "с нуля") или какой-то починки когда поломалась сеть и нет доступа по SSH. Вот так с CLI и работают.

-- 22.11.2025, 13:33 --

Dmitriy40 в сообщении #1710257 писал(а):
Ну так монитор с клавиатурой тоже обычно одни и что.

Ну вот представьте, что ваша Win7 запустилась в powershell или в старый добрый cmd и больше ничего нет. Никаких других окон нет.

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 15:48 
Аватара пользователя
DemISdx
Спасибо. Может и пригодится. Пока что другое вроде важнее. Скорость факторизации, например.

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 16:27 
wrest в сообщении #1710264 писал(а):
Ну вот представьте, что ваша Win7 запустилась в powershell или в старый добрый cmd и больше ничего нет. Никаких других окон нет.
Ну и отлично! Что мешает мне запустить в этом окне консоли мою прогу на пари (в том числе и многопоточную)? Ничего. А получать результаты могу и под виндой через файлы в общей папке.
Будут нужны другие окна консоли в рамках виртуалки - запущу сначала терминал (в убунте), а уже в нём будет много консолей. Так ведь? Сеть по прежнему не нужна.

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 16:54 
Dmitriy40 в сообщении #1710295 писал(а):
Ну и отлично! Что мешает мне запустить в этом окне консоли мою прогу на пари (в том числе и многопоточную)? Ничего. А получать результаты могу и под виндой через файлы в общей папке.

Да, это можно.

-- 22.11.2025, 17:48 --

Dmitriy40 в сообщении #1710295 писал(а):
Будут нужны другие окна консоли в рамках виртуалки - запущу сначала терминал (в убунте), а уже в нём будет много консолей. Так ведь? Сеть по прежнему не нужна.

Вот тут я не понял. Что значит "терминал (в убунте), а уже в нём будет много консолей."
На ум приходит https://ru.wikipedia.org/wiki/Tmux https://habr.com/ru/articles/327630/
Ну короче надо вам попробовать самому сперва, посмотреть как выглядит, появятся вопросы тогда и обсуждать. Всё можно, при старании :)
При установке ubuntu server там появится опция "minimized" -- это минимальная установка.

 
 
 
 Re: Как установить Ubuntu под Win10 в WSL
Сообщение22.11.2025, 17:57 
wrest в сообщении #1710246 писал(а):
Потому что это библиотека. Ну запустите в windows на исполнение "бинарник" .dll какой-нибудь.
Легко, например:
Код:
rundll32.exe user32.dll, LockWorkStation
залочит экран и нужно заново ввести пароль.
Где LockWorkStation только один из методов библиотеки user32.dll.
Способ такого исполнения работает еще кажется с win95, может и раньше, не помню...
Конечно, объявление метода в коде должно соответствовать определенным правилам.
Цитата:
Как сделать чтобы можно было запускать без gp писал тут: post1709345.html#p1709345
О!
Спасибо.
Как-то пропустил этот пост, в командировке был на прошлых выходных.
Не до Интернетов было...

 
 
 [ Сообщений: 165 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group