Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - sCode

Страницы: 1 ... 7 8 [9]
121
Существуют такие приложения, как например skype и некоторые фильтры печати, у которых закрыты исходники, но свободно доступны бинарники под Linux. Хотелось бы иметь программу которая преобразовывала бы эти приложения так, чтобы они могли запускаться под OpenSolaris без необходимости использования зоны или lxrun. Узнав, что формат исполняемых файлов под обеими ОС одинаковый, решил попробовать поисследовать возможность создания такой программы.
Взял самый простой пример приложения на С:
#include <stdio.h>
int main(){
   printf("HW!\n");
   return 0;
}

Команда gcc -O3 -S генерирует одинаковый ассемблерный код как в случае Linux (в lx-зоне), так и в случае OpenSolaris.
Сгенерированный в lx-зоне объектный файл, поданный на вход gcc в OpenSolaris, позволил без ошибок слинковать нормально работающее приложение. Таким образом, если приложение использует только libc(не исключаю, что допустимо использование и других библиотек), то если из бинарника удастся сформировать объектный файл, на основе которого он создан, то можно получить такое же приложение под OpenSolaris.
Дизассемблировать линуксовое приложение, а потом снова сассемблировать под OpenSolaris - затруднительно в виду сложности создания адекватного дизассемблера.
Зависимости приложения под Linux:
$ldd a.out
        libc.so.6 => /lib/tls/libc.so.6 (0xfe776000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xfef61000)

$objdump -R a.out

a.out:     file format elf32-i386

DYNAMIC RELOCATION RECORDS
OFFSET   TYPE              VALUE
08049534 R_386_GLOB_DAT    __gmon_start__
0804952c R_386_JUMP_SLOT   puts
08049530 R_386_JUMP_SLOT   __libc_start_main

Под OpenSolaris зависимости совершенно другие. Для упрощения задачи взял еще более простой пример программы.

// Компиляция: as -o hello.o hello.s && ld -s hello.o -lc && ./a.out
.text
.globl _start
_start:
   pushl $message1
   call puts
   popl %ebx
   call exit
   hlt
.data
message1:
   .string "Hello world\0"

Теперь зависимости от функций совпадают.
$objdump -R a.out

a.out:     file format elf32-i386

DYNAMIC RELOCATION RECORDS
OFFSET   TYPE              VALUE
08049330 R_386_JUMP_SLOT   exit
08049334 R_386_JUMP_SLOT   puts

Открыл файл a.out с lx-зоны в ghex2 и внес изменения:
1. Строку /usr/lib/libc.so.1 заменил на /usr/lib/ld.so.1
2. Строку libc.so.6 заменил на libc.so.1
3. Строку GLIBC_2.0 заменил на SUNW_0.8, находящуюся чуть ниже последовательность байт 10 69 69 0D, тоже задающую версию, заменил на 98 28 3d 0a
Просмотр доступных версий в libc: objdump -p /lib/libc.so.1. objdump -p a.out - просмотр используемой приложением версии.


Файл запускается и работает нормально. Это доказывает возможность с относительно небольшими изменениями модифицировать бинарники из Linux для нативного запуска под OpenSolaris.
А чем кросскомпиляторы не устраивают? Типа MinGW? Можно компилировать сразу под три платформы:
  • OpenSolaris
  • GNU/Linux
  • Windows

122
OpenSolaris / Re: Как установить Firefox 3.6
« : Март 08, 2011, 10:34:50 pm »
Незнаю, как в Солярке, но в Линуксе достаточно было распаковать архив и запустить бинарник.

123
Если надо как я пологая зайти из Солярис в папку открытую для общего доступа в Виндовс система запрашивает в Солярис имя пользователя и пароль с которым заходишь в Виндовс и домен если спросит нужно указать localhost
там будет такая папка "сеть Виндвос" дальше открывается рабочая группа дальше уже папки общего доступа если доступ был разрешен
еще один момент если не включен в локальной сети DHCP то брандмауер запретит вход надо его включить
Нет, стоит Debian GNU/Linux 6.0? в нем стоит VirtualBox, а в VirtualBox стоит OpenSolaris, нужно организовать доступ виртуальной системы (OpenSolaris) к папке хостовой системы (Debian GNU/Linux)...

124
Можно подробнее?

125
Поставил на VBOX OpenSolaris, обозначил общие папки, но локальную сеть для их доступа настроить не смог.
На VirtualBox  стояла Windows, там я просто настроил локальную сеть и получил доступ к хостовой папке...

126
Вот такой запрос выскакивает при загрузке:
Enter user name for system maintenance (control-d to bypass):

Что надо ввести чтобы загрузиться?
На другом компьютере все нормально...

127
Debian больше похож, он использует гном, а альт линукс, это жалкая российская поделка подсунутая московскими чиновниками под шумок.

128
Все мы знаем, что департамент образования Кировской области продлил лицензию на Windows, но это сделал не он, а российское представительство микрософт пытаются возродить первую помощь...
Но у них же написано, что все что связанно с лицензией будет проводиться до 31 марта, т.е. все виндовсы, которые используются в наших школах пиратские!
В департаменте образования есть только письмо от микрософт рус и микрософт иреланд, но прокуратуре будет плевать, т.к. это письмо не является лицензией, поэтому они легко могут возбудить уголовное дело против всех школ города, как было с Поносовым кстати...

Скажем спасибо любви кировских учителей к Windows.

129
Сейчас установлены Debian 5.0.7 и Windows XP.
Отделил для OI 9,5 гб.
Нормально ли после установки OI будут работать Debian 5.0.7 и Windows XP?

Страницы: 1 ... 7 8 [9]