LINUX.ORG.RU

Сообщения LinuxUser

"общие" переменные в shared object

Форум - Development

Узнал что в Windows-овских DLL-ках можно объявлять переменные которые можно использовать во всех процессах использующих библиотеку. Это делается вот так (работает только в компиляторе от Microsoft):

#pragma data_seg(".shared")
#pragma comment(linker,"/SECTION:.shared,RWS")
#pragma data_seg()
__declspec(allocate(".shared")) int shared_var; /* тут объявляются переменные */
Вопрос: есть ли что-нибудь подобное в Linux-овских SO-шках и как такое сделать?

Метки: , ,

()

Одно и то же фото выглядит по-разному в разных программах

Форум - Multimedia

Фото: http://zalil.ru/33171820

В UFRaw получается какой-то изумрудный город http://ompldr.org/vZGxqcA/ufraw.png.

В Darktable выглядит гораздо лучше, но всё равно как-то бледновато и не контрастно http://ompldr.org/vZGxqbQ/darktable.png.

А вот в RawTherapee фото выглядит лучше всего http://ompldr.org/vZGxqbg/rawtherapee.png.

Cкорее всего в Darktable надо какие-то настройки покрутить и фото станет как в RawTherapee, но зеркалку я купил три дня назад и в "настройках" RAW файлов мало пока чего понимаю.

Вопросы: 1. Почему в UFRaw получился изумрудный город? 2. Как сделать чтоб в UFRaw фото выглядело хорошо? 3. Как сделать чтоб в Darktable фото выглядело также как в RawTherapee? А то Darktable красивее и вроде мощнее RawTherapee, и хочется осваивать его.

Метки: , ,

()

Как сделать чтоб nginx не отвечал если запрашивается определённый url?

Форум - Web-development

Чтоб он вёл себя также как когда происходит drop в iptables. Чтоб на том конце люди/боты тратили своё время на ожидание — когда же им ответят.

Хочу отомстить всем кто ищет на моём web-сервере phpMyAdmin, MySQL и всякие уязвимости.

Метки: , ,

()

Запуск FastCGI с помощью spawn-fcgi для последующего использования nginx-ом

Форум - Web-development

Решил освоить FastCGI. Взял пример с официального сайта. Скомпилировал его

gcc main.c -lfcgi -o main
Запустил
spawn-fcgi -a 127.0.0.1 -p 9000 main
Конфиг nginx-а:
neo@nvh:~$ grep -v '^\s*#\|^$' /etc/nginx/sites-enabled/default
server {
	listen   127.0.0.1:80; ## listen for ipv4
	server_name  localhost;
	access_log  /var/log/nginx/localhost.access.log;
	location / {
		include /etc/nginx/fastcgi_params;
		fastcgi_pass 127.0.0.1:9000;
	}
}

Захожу на http://127.0.0.1/, получаю в ответ "502 Bad Gateway". Процесс main при этом завершается. Wireshark сообщает что на 127.0.0.1:9000 были посланы данные (QUERY_STRING, REQUEST_METHOD и т.д.), в ответ было тоже что-то послано, но не данные.

Помогите разобраться — что я делаю не так?

Метки: , ,

()

Как узнать почему был выключен компьютер?

Форум - General

Домашний сервер почему-то выключился. Когда был на работе заходил на него через ssh, всё работало. Когда приехал домой он уже был выключен.

Свет дома скорее всего не отключали (часы на микроволновке не сбросились). Даже если и отключали, то в BIOS настроено чтоб при появлении электричества комп включался.

Собственно, очень хочется узнать почему он выключился. Как это можно сделать?

Смотрел /var/log/syslog, ничего интересного не заметил.

Метки: ,

()

Помогите найти изделие

Форум - Talks

Работаю сисадмином. Все сервера на Debian GNU/Linux.

Вместе со мной в кабинете сидит заведующий по хозяйственной части. Вот уже две недели, он, каждый день, пытается найти "маленькие алюминиевые тубусы" (как вот на этой картинке). Попытки поиска выглядят так: ищет в интернете тех кто может быть причастен к этим "маленьким алюминиевым тубусам", звонит им и пытает на тему — где можно достать эти тубусы.

Этих тубусов ему нужно "дохрена". Это примерно 1000 штук. Это если они не очень дорого будут стоить.

Он достал меня настолько, что мне пришлось просить помощи тут. Может кто знает где можно достать вышеописанное? А то я скоро сойду с ума и будет на одного линуксоида меньше.

()

Как в подробностях происходит неблокирующее чтение и запись файла

Форум - Development

Для чтения алгоритм таков:

1. Открываем файл с флагами O_RDONLY | O_NONBLOCK
2. Ждём например select-ом когда можно будет его неблокирующе читать
3. Читаем

Вопрос. Что происходит после 1 пункта в ядре ОС? Оно читает с диска содержимое файла в какой-то свой внутренний буфер? Если да, то какого размера этот буфер? Размер буфера постоянный или нет?

Для записи алгоритм таков:

1. Открываем файл с флагами O_WRONLY | O_NONBLOCK
2. Ждём например select-ом когда можно будет в него неблокирующе писать
3. Пишем

Вопрос. Что происходит в пункте 3 в ядре ОС? Оно записывает данные в какой-то свой внутренний буфер и потом, уже после 3-го пункта, пишет данные на диск? Если да, то как узнать когда данные действительно записались на диск?

()

Запустить программу/скрипт если введён не правильный пароль

Форум - Desktop

Хотел написать такую программку (на основе xtrlock), но решил сперва узнать — может такое уже есть?

Идея такова — если пароль введён не правильно - запускается заданная пользователем программа которая, например, через веб-камеру фоткает того кто вводил пароль и отправляет фотку на заданный e-mail.

Можно запускать программу (или в программе считать количество неудачных попыток) только после N неудачных попыток ввода пароля.

()

Мой FVWM

Галерея - Скриншоты

Мой FVWM

Рабочее окружение:

  • fvwm
  • stalonetray
  • blueman-applet
  • parcellite
  • xxkb
  • xclock
  • urxvt
  • pcmanfm

Шрифты:

  • Liberation Sans
  • Visitor TT2 BRK
  • eufm10
  • Terminus

Темы:

  • GTK — Glossy
  • Иконки GTK — Nuvola

Тему FVWM делал сам из гномовской Glossy.
Иконки в егойном меню либо находил в Интернет либо рисовал сам.

Шрифты в GTK программах не идеальны, но это не очень заметно.

>>> Просмотр (1600x900, 1212 Kb)

Метки: ,

()

Две USB веб-камеры не работают одновременно

Форум - General
root@metacortex:~# lsusb | grep cam
Bus 003 Device 011: ID 046d:0805 Logitech, Inc. Webcam C300
Bus 003 Device 009: ID 046d:0825 Logitech, Inc. Webcam C270
root@metacortex:~# ls /dev/video*
/dev/video0  /dev/video1

Если запустить mplayer -tv device=/dev/video0 tv:// — идёт видео с первой веб-камеры. Если не закрывая его запустить mplayer -tv device=/dev/video1 tv:// — вместо видео зелёная хрень. То же самое если начинать со второй веб-камеры.

Почему так? Помогите, пожалуйста, побороть.

root@metacortex:~# cat /etc/debian_version 
6.0.3
root@metacortex:~# uname -a
Linux metacortex 2.6.32-5-amd64 #1 SMP Mon Oct 3 03:59:20 UTC 2011 x86_64 GNU/Linux

Гуглил, не помогло.

()

[GUI]Как быстро определить какая кнопка на экране нажата

Форум - Development

В силу некоторых причин пишу свой GUI.

В мою функцию передаётся что сделали (нажали или отжали), код кнопки и где нажали (x и y).

В окне есть мои кнопочки. Сейчас сделано так: перебираются по очереди эти кнопочки — сравнивается x и y с координатами каждой и как только окажется что x и y внутри кнопки — вызывается функция-обработчик для этой кнопки.

Меня терзают смутные сомнения по поводу эффективности такого метода поиска кнопки которую нажали. Может быть есть более эффективный метод?

()

Помогите вспомнить название фильма (фантастика про космос)

Форум - Talks

Прошу прощения за тему не про GNU/Linux. Но гугление и опрос знакомых не помогли найти фильм.

Когда-то давно видел отрывок из этого фильма. Вот что запомнил.

Космический корабль везёт большое количество роботов на Землю с целью то ли порабощения, то ли уничтожения людей. В фильме фигурировал нехороший то ли робот, то ли киборг у которого вместо одного места был протез, который всё же мог функционировать, но для этого его нужно было заводить дёргая за верёвочку (примерно как бензопилу).

Ну и чтобы хоть как-то очистить свою совесть, вот:

neo@nvh:~$ uname -a
Linux nvh 2.6.32-5-686-bigmem #1 SMP Mon Oct 3 05:03:32 UTC 2011 i686 GNU/Linux

()

Где man-ы для glX* функций в Debian GNU/Linux?

Форум - Development

Кто-нибудь в курсе есть ли man-ы для glX* функций в Debian GNU/Linux на английском языке? А то судя по всему они только на японском :(

neo@nvh:~$ man glXChooseVisual
No manual entry for glXChooseVisual

neo@nvh:~$ apt-file search glXChooseVisual
xmanpages-ja: /usr/share/man/ja/man3/glXChooseVisual.3.gz

neo@nvh:~$ aptitude show xmanpages-ja
Package: xmanpages-ja                    
State: not installed
Version: 4.1.0.20011224-6
Priority: optional
Section: x11
Maintainer: ISHIKAWA Mutsumi <ishikawa@debian.org>
Uncompressed Size: 3,613 k
Suggests: man-browser
Description: Japanese manual pages for X
 This package provides section 1,3,4,5 and 7 manpages of X Window System written in Japanese, translated by X Japanese Document Project. This
 version is translated from XFree86 4.1.0 manpages.

neo@nvh:~$
()

[зашифрованный раздел] mkfs.ext3 завершается с кодом выхода 137

Форум - General

Форматирую 3-х терабайтный зашифрованный жёсткий диск. inode tables доходит примерно до 1600—1800, затем вместо числа записанных inode tables пишется "Killed" и всё. Выглядит примерно так:

root@computer:~# mkfs.ext3 /dev/mapper/backup 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
134217728 inodes, 536870398 blocks
26843519 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
16384 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848, 512000000

Writing inode tables: Killed16384
root@computer:~# echo $?
137

Шифровался диск так:

root@computer:~# fdisk -l /dev/sdd

Disk /dev/sdd: 3000.6 GB, 3000592982016 bytes
90 heads, 3 sectors/track, 21705678 cylinders
Units = cylinders of 270 * 512 = 138240 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb6896c08

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               8    15907287  2147482623+  83  Linux
root@computer:~# cryptsetup --key-file=luks.key luksFormat /dev/sdd1
root@computer:~# cryptsetup --key-file=luks.key luksOpen /dev/sdd1 backup
Если форматировать напрямую /dev/sdd1 — форматируется без проблем.

Погуглив нашёл, что "exit code 137 means that the job received a signal 9". Но как понять кто, зачем и почему убивает mkfs.ext3?

()

[пятница] Где проверить радиометр?

Форум - Talks

Сегодня, в пятницу, купил радиометр.
На работе везде радиоактивность в норме — в среднем 0,14 мкЗв/ч.
А в серверной, как ни странно меньше всего — 0,09 мкЗв/ч.

Где бы найти радиации? В Чернобыль ехать не предлагать.

neo@nvh:~$ uname -a
Linux nvh 2.6.32-5-686-bigmem #1 SMP Mon Oct 3 05:03:32 UTC 2011 i686 GNU/Linux
()

Как узнать — поддерживает Debian Squeeze устройство Wacom Bamboo Pen (CTL-470K-RUPL)?

Форум - Linux-hardware

Тут http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Supported_Devic...
пишут о поддерживаемых устройствах в последней версии.

А тут http://packages.debian.org/squeeze/xserver-xorg-input-wacom
просто пишут что есть драйвера для устройств Wacom.

Как можно узнать какие именно устройства Wacom поддерживаются в той версии что в Debian Squeeze?

()

[LUKS] Шифрованный раздел в файле

Форум - General

Делаю примерно так:

dd if=/dev/zero of=secrets.luks bs=1G count=10
losetup /dev/loop0 secrets.luks
read -s p
echo -n $p | cryptsetup luksFormat /dev/loop0
cryptsetup luksOpen /dev/loop0 secrets
mkfs.ext2 -m 1 /dev/mapper/secrets
mkdir /mnt/secrets
mount /dev/mapper/secrets /mnt/secrets

Тут вот зачем-то делают losetup /dev/loop1 /dev/mapper/myMapper и работают с /dev/loop1. Зачем?

()

[epoll] Edge Triggered (ET) vs. Level Triggered (LT)

Форум - Development

Я так понял разница между ET и LT только в том, что при использовании
LT epoll_wait завершается всегда когда есть данные/возможность записи,
а при ET — только один раз для каждой "порции" данных/появившейся возможности записи.

Вопрос 0. Я правильно понял? Есть ли другие отличия ET от LT?

Вопрос 1. Неужели есть ситуации в которых ET удобнее LT?

Вопрос 2. Если ответ на вопрос 1 "нет", то зачем вообще ET нужен? Может быть он быстрее LT?

()

"Связать" файловый дескриптор с указателем

Форум - Development

Может быть я глупый вопрос задам. Потому как задачка, по идее, часто возникает, и, по идее, уже давно должна иметь "стандартное" решение. Но либо это не так, либо у меня тупняк.

Нужно в одном потоке обрабатывать много файловых дескрипторов (ФД). Делать это хочу с помощью epoll. Каждому ФД нужно "прикрепить" указатель на структуру (содержащую, например, буфер в который читаем и счётчик прочитанных байтов).

Как "прикреплять"?

С помощью ассоциативного массива? Когда нам epoll_wait скажет что можно читать из этого ФД, то обращаться к ассоциативному массиву по этому ФД и брать указатель на структуру. Или есть другой способ?

()

[libmicrohttpd] Отложенный ответ

Форум - Development

Пришёл запрос. Вызывается MHD_AccessHandlerCallback. В документации пишут, что этот callback должен вызвать MHD функции для того чтобы ответить клиенту.

А если мы ответ читаем из файла, то придется ждать окончания операции чтения. А в это время могут приходить другие запросы. Это плохо.

Проверил экспериментально: если в MHD_AccessHandlerCallback не отвечать, а сохранить connection и начать не блокируемую операцию чтения из файла, то, дождавшись (epoll-ом или select-ом) её окончания (в другом потоке, конечно), можно ответить в сохранённый connection. В этом потоке можно ждать окончания нескольких операций чтения из файла. И для каждой отвечать в соответствующей ей connection.

Но при этом, каждую секунду будет вызываться MHD_AccessHandlerCallback для тех запросов на которые мы ждём окончания операций чтения.

Можно как-нибуть (в libmicrohttpd) отвечать не сразу (не в MHD_AccessHandlerCallback)?

Игнорирование обрабатываемых запросов (в MHD_AccessHandlerCallback) и использования отдельного потока для каждого запроса не предлагать. Можно предлагать альтернативные библиотеки (но только на чистом C).

()