Вышла Mandriva 2009

Расскажи что у тебя есть, найди нужное тебе
michael
Full Member
Full Member
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение michael »

hatred писал(а):а по сокетам внутри системы вообще как работать? :)) отключи lo и система вообще работать откажется нормально, оно и понятно. резолвить пытаются не конкретные проги, это механизм в glibc. Почитай, мне моих познаний достаточно для нормальной жизни, но что бы полностью объяснить тебе - нет :)

Специально для работы внутри системы есть unix сокеты, так что не надо корявость прог оправдывать :)

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение hatred »

man socket:

int socket(int domain, int type, int protocol);

Параметр domain задает "домен" коммуникации; выбирает набор протоколов, которые будут использоваться для коммуникации. Такие наборы описаны в <sys/socket.h>. В настоящее время понимаются такие форматы:
Название Назначение Страница
PF_UNIX,PF_LOCAL Локальная коммуникация unix(7)
PF_INET IPv4, протоколы Интернет ip(7)

man 7 unix:
unix_socket = socket(AF_UNIX, type, 0);

потом bind/connect

man connect:
int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);

man bind:
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);

для unix socket структура sockaddr используется эта (man 7 unix):
struct sockaddr_un {
sa_family_t sun_family; /* AF_UNIX */
char sun_path[UNIX_PATH_MAX]; /* pathname */
};

для tcp/ip (man 7 ip):
struct sockaddr_in {
sa_family_t sin_family; /* семейство адресов: AF_INET */
u_int16_t sin_port; /* порт сокета в сетевом порядке байт */
struct in_addr sin_addr; /* адрес в интернете */
};

/* Адрес в интернете. */
struct in_addr {
u_int32_t s_addr; /* адрес сокета в сетевом порядке байт */
};

Теперь вопросы
1. если прога изначально планируется для использования сетевой работы, нахрена горидить огород с разными подключеними?
2. если прога планируется кроссплатформенной, как она будет себя вести там где нет unix sockets? кстати на винде они есть?

ну и ещё куча всяких мелочей :) запустить любую прогу через strace -o OUT progname и посмотреть что там происходит и поглядеть что внутри написано, бумс удивлены зачастую.
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение loooser »

В кроссплатформенных прогах итак полно огорода, а использование сокетов юникс не требует много кода добавлять (всего несколько строк имхо). А поскольку сокеты юникс быстрее, то и смысл их заюзать имеется.

А если уж решили использовать сокет ip, то используйте явно 127.0.0.1 и проблем не возникнет. Кстати, а localhost.localdomain в винде разве есть?

denis
Jr. Member
Jr. Member
Сообщения: 77
Зарегистрирован: 10 сен 2008 19:06

Re: Вышла Mandriva 2009

Сообщение denis »

Господа должен извинтся за дезинформацию. Правка /etc/host также дала лишь временный эффект, затем опять firefox 2.0.16 начинает тупить и тормозить при старте. Вылечил установкой 2 - х пакетов с версией 2.0.0.6 из 2007 мандривы. rpm c libmozilla встала без проблем а rpm moziilla-firefox X X 0.6 потянула кучу зависимостей. Ставил из консоли с ключом --nodeps . Результат - 1-й запуск крах ругается на x- сервер (?) 2-й и последующие запуски ОК . Спартует вроде быстрее оперы (с секундомером не мерял слишком быстро запускаются, через команду time просто лень) Возможно дело в том что при дефолтной установке в firefox встраивают кучу левых плагинов (у меня там раньше были всякие блоги, live журналы и т.д ) что и вызывает тормоза . Хотя всё лишнее для меня я отключал. Поскольку тема вроде обсуждается до сих пор возможно народу это будет интересно.

Аватара пользователя
SCIF
Full Member
Full Member
Сообщения: 144
Зарегистрирован: 07 июн 2006 15:50
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение SCIF »

loooser писал(а):А поскольку сокеты юникс быстрее, то и смысл их заюзать имеется.
Во. Это уже интересно. Давайте обсудим. На мой взгляд они нифига не быстрей. Тоже самое внутриядерное пространство.

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение loooser »

SCIF: везде говорят, что быстрее, а я не вижу причин не верить :)
Чисто теоретически - даже локально надо завернуть пакет в ip-конверт + tcp или udp. При этом у udp ограничение на размер пакета, а у tcp куча накладных расходов: на установку соединения, на подтверждение приёма пакетов и др. вещи, совершенно не нужные локально.
А потом ещё развернуть этот пакет обратно...

Не, если у тебя есть результаты каких-то тестов, то выкладывай конечно :)

michael
Full Member
Full Member
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение michael »

1. если прога изначально планируется для использования сетевой работы, нахрена горидить огород с разными подключеними?
2. если прога планируется кроссплатформенной, как она будет себя вести там где нет unix sockets? кстати на винде они есть?

1) Это OpenOffice, что ли? А вот создатели иксов что-то не надорвались использовать различные протоколы для локальной связи и для сети.
2) Будет использовать средства соответствующих ОС.

Да, unix сокеты быстрее, чем локальные TCP/IP. Написал тупой тест, разница примерно в два раза.

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение hatred »

Ну тупой не тупой тест... тогда уж давайте для одмена данными IPC юзать, ваще быстро будет :) не, я не против сокетов, ни в коем рааааааааазе, это вообще весчь классная, я просто ленив писать ifы, не ну когда заоптимиздить нужо, это да...

о, кстати, а кто авторитетно скажет, а что же все таки там с localhost? ;) А баталия развернулась Unix Sockets vs. TCP/IP на локальной машине. Не кажется, что спорим ни о чем? :D

Кситати... а может там дело в X11? ;-) экран то может быть и DISPLAY=:1.0 и DISPLAY=127.0.0.1:1.0, а так же DISPLAY=localhost:1.0, это ещё одно предположение. Тут аще даже приложение ни при чем будет :-D Кому не лениво исходники XOpenDisplay() посмотреть? :) Гентушники, ау, всё равно собирали же, должны сырцы под руками лежать )
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение hatred »

А ещё конкретнее, где XOpenDisplay вызывается, или в самом OOo или в GTK?
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение loooser »

а, т.е. ты сам точно не знаешь в чём прикол? Я просто не в первый раз уже слышу подобный совет, вот мне и стало интересно - где тут собака зарыта.

Сейчас отключил у себя в etch запись о localhost.localdomain (localhost оставил) - пока тормозов не заметил. Правда, у меня всегда днс-сервер доступен, так что отрицательный ответ будет получен сразу и тормоза я вряд ли замечу :(

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение hatred »

А я где-то говорил что точно знаю? :)))))
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение loooser »

Нагуглил вот такое:

Знаете чё, был у меня ещё такой трабл, иксы начинали ужасно тормозить, когда hostname не соответствовал тому, что написано в /etc/hosts. Т.е. если, к примеру, в /etc/HOSTNAME (как в Слаке) прописано localhost.localdomain, команда hostname даёт имя localhost, а в /etc/hosts записано "127.0.0.1 localhost.localdomain" вместо "127.0.0.1 localhost", то начинаются нечеловеческие тормоза, при этом иксы в логе пишут что-то про hostname - какую-то ошибку.


Похоже, что где-то в самих иксах какая-то хрень непонятная присутствует. Вот им и надо слать багрепорты с патчами. Есть ли среди нас си-богатыри? :)

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение hatred »

ну я отправить могу, текст напишите, да как воспроизвести ошибку :) не на уровне, вот я тут заметил и мне вроде как кажется :) так что ребятки давайте сначала в XOpenDisplay смотрите :)
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

denis
Jr. Member
Jr. Member
Сообщения: 77
Зарегистрирован: 10 сен 2008 19:06

Re: Вышла Mandriva 2009

Сообщение denis »

после того как прописал в файле /ecs/host 127.0.0.1 localhost.localdomain начались тормоза при старте програм под wine например клиент "chesspanet" ,прога "задачки по тактике" жутко тормозили - а вот doom3 почемуто нет .. убрал запись localdomain нормальная работа восстановилась.
Я уже чувствую желание найти генту и ковырять сырци до победы. Может кто подскажет дистр чтобы там самому всё крутить ?

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Re: Вышла Mandriva 2009

Сообщение hatred »

Генту или LFS :-D

можешь, Arch, если крутить только отдельные части нужно
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

Ответить