Архив метки: Ubuntu

Пример ускорения python используя ctypes

Один из вариантов ускорить выполнение кода Python — переписать медленный метод на язык C, с помощью ctypes можно подключать библиотеки написанные на C.
Ниже пример вызова C-метода и сравнение производительности.

1) Пишем метод (файл myfib.c)

unsigned long fib(unsigned long x)
{
if(x < 2) return x;
return fib(x-1) + fib(x-2);
}

2) Компилируем:

gcc -shared -Wl,-soname,myfib.so -o myfib.so -fPIC myfib.c

3) Вызываем из Python и сравниваем с функцией написанной на чистом python:

import ctypes
import timeit

fib = ctypes.CDLL('./myfib.so').fib
fib.restype = ctypes.c_long
fib.argtypes = (ctypes.c_ulong,)

print timeit.timeit('fib(32)', 'from __main__ import fib', number=1)

def pyfib(x):
if x < 2: return x
return pyfib(x-1) + pyfib(x-2)

print timeit.timeit('pyfib(32)', 'from __main__ import pyfib', number=1)

Результат:

0.0463268756866
1.08009696007

В итоге, за счет использования ctypes, мы получили ускорение в 23 раза.

Если использовать оптимизацию при компиляции, то можно получить большую производительность, для этого нужно указать ключ оптимизации:

gcc -O3 -shared -Wl,-soname,myfib.so -o myfib.so -fPIC myfib.c

Варианты ключей оптимизации:
-O1 — Базовая оптимизация
-O2 — GCC выполняет почти все поддерживаемые оптимизации, эта опция уменьшает как время компиляции так и время выполнения сгенерированного кода.
-O3 — Более сильная оптимизация, включает -O2 + некоторые дополнительные опции.

С учетом оптимизации -O3, мы получили такой результат:

0.023335695266
1.08294892311

Это быстрее в 46 раз чем на чистом python.

Тестировалось на ubuntu 12.10, python 2.7

Автор: D1VER
Дата публикации: 2013-12-16T05:21:00.001-08:00

TP-LINK TL-WN821N (RTL8192CU) в Linux Mint 15 и Ubuntu 13.04.

Wi-Fi USB адаптер TP-LINK TL-WN821N, основан на чипе RTL8192CU, поддержка которого в ядро Linux добавлена начиная с версии 2.6.38, что в идеале означает, что нужно всего-лишь подключить его к USB порту и «из коробки» он мгновенно без перезагрузок и дополнительных настроек (кроме ввода пароля на доступ к Wi-Fi соединению) должен заработать. Но на деле оказалось что его поддержка в ядре реализована чертовски криво и лишь у немногих счастливчиков всё работает гладко. Симптомы больного: не подключается к wi-fi или подключается после нескольких попыток, но на несколько секунд, далее дисконнект, потеря пакетов или остаётся подключённым, но абсолютно не проявляет активности. «Счастливые обладатели» данного «свистка», вот уже несколько лет наводняют форумы вопросами о том, как его «завести», пишут багрепорты разработчикам ядра и различных дистрибутивов Linux, но пока всё безрезультатно и остаётся только использовать драйвер, который предлагает сама Realtek, для самостоятельной, ручной установки. НО, этот драйвер не установится на ядро Linux 3.8, которое является ядром по умолчанию в дистрибутивах Linux Mint 15 и Ubuntu 13.04. Решение, к счастью нашлось!) Это тот же драйвер от Realtek, только доработанный напильником для совместимости с ядром 3.8, упакованный в виде deb пакета и устанавливаемый в виде DKMS модуля ядра, то есть после обновления ядра, этот модуль автоматически пересобирается и после перезагрузки ПК, Wi-Fi не отваливается, как это происходит при установке оригинального драйвера от Realtek). Итак, преступим к установке (от root'а):

wget -P /tmp/ http://realtek-8188cus-wireless-drivers-3444749-ubuntu-1304.googlecode.com/files/rtl8192cu-tjp-dkms_1.6_all.deb && dpkg -i /tmp/rtl8192cu-tjp-dkms_1.6_all.deb

Пакет установлен, правильный модуль для ядра собран, осталось только деактивировать старый модуль и активировать новый, чтобы W-Fi заработал (от root'а):

modprobe -r rtl8192cu && modprobe 8192cu

В это же мгновение в трее должна активироваться беспроводная сеть. Ура, всё заработало! 🙂 Но остался ещё последний штрих — занести старый модуль в чёрный список, чтобы он больше не загружался вместе с системой и не мешал работе нового модуля (от root'а):

cd /etc/modprobe.d/ && nano blacklist.conf

 В самый конец файла добавляем:

# Zanosim v cherniy spisok ne rabotayushie moduli yadra dlay wi-fi adaptera na osnove rtl8192cu
blacklist rtl8192cu
blacklist rtl8192c_common
blacklist rtlwifi

Нажимаем CTRL+O, подтверждаем, и затем CTRL+X. ВСЁ, я вас поздравляю, Wi-Fi адаптер у вас теперь работает и после перезагрузки системы или обновления ядра не отвалится!)

P.S. Естественно, этот метод подходит не только для адаптера TP-LINK TL-WN821N, но и для любого другого на основе чипа RTL8192CU.

Автор: Yar4e

Xerox Phaser 6000 в Xubuntu 12.10

 Xerox Phaser 6000 прекрасно работает под Linux, но драйвера для него нужно установить отдельно, так как в комплектации «из коробки» они отсутствуют. На официальном сайте, есть пакеты с драйверами как для deb-based, так и для rpm-based дистрибутивов. Пример установки драйверов на дистрибутив Xubuntu 12.10:

cd /tmp/ && wget http://download.support.xerox.com/pub/drivers/6000/drivers/linux/en_GB/6000_6010_deb_1.01_20110210.zip && unzip 6000_6010_deb_1.01_20110210.zip && cd deb_1.01_20110210/ && sudo dpkg -i xerox-phaser-6000-6010_1.0-1_i386.deb

 Далее, остаётся установить принтер через веб-интерфейс CUPS или с помощью любой другой утилиты управления принтерами, используемой в вашем дистрибутиве Linux.

Автор: Yar4e

Новая версия почтового клиента Geary вышла

Недавно стало известно, что компания Yorba Foundation заявила об окончании разработки и начале выпуска нового небольшого почтового клиента — Geary версии 0.4. Дизайн и система взаимодействий были разработаны не без участия GTK 3+ (кроссплатформенной библиотеки). Вполне возможна и разработка мобильных приложений для принятия и отправки почты. Читать

ПРО ВИРУСЫ ДЛЯ LINUX


В первую очередь дам ответы на самые распространенные вопросы о вирусах в Linux и в Ubuntu в частности.

Вопрос 1. Существуют ли вирусы для Linux?
Ответ: Да, конечно, но их в несколько тысяч раз меньше чем под Windows и до сих пор ни один из них не получил массового распространения.

Вопрос 2. Могут ли вирусы для Windows заразить компьютер с Linux?
Ответ: Да, если в Linux установлен Wine, то, в принципе, в Linux могут работать вирусы для Windows, однако многие вирусы используют именно недокументированные системные вызовы Windows, которые очень плохо реализованы в Wine и поэтому риск заражения намного меньше. Далее, вирусы могут работать и в Windows , установленной на виртуальной машине, запущенной под управлением Linux. Кроме того, компьютеры с Linux могут быть пассивными носителями вирусных файлов, которые могут снова начать работать, после того как их, например, на флешке перенесут на компьютеры, работающие под управлением Windows. Читать

Антивирус avast! для Ubuntu Linux

avast! for Linux — антивирусное решение для популярных платформ Linux. Версия для домашних пользователей разработана для тестирования операционной системы и сканирования сегметов жесткого диска, используемых операционной системой Windows.

Сканирующее ядро

Антивирусное ядро avast! For Linux идентично ядру сканирования для систем Windows и обладает теми же высокопроизводительными функциями.
Новая версия ядра антивируса avast! обеспечивает высокий уровень обнаружения вкупе с высокой эффективностью, что гарантирует 100%-ое обнаружение вирусов «In-the-Wild» и высокий уровень обнаружения троянов с минимальным числом ложных срабатываний.
Механизм антивирусного ядра сертифицирован ICSA, постоянно принимает участие в тестах Virus Bulletin и получает награды VB100%.
Так же как avast! for Windows, avast! for Linux поддерживает сканирование архивов. Он может сканировать внутри практически такого же количества архивных файлов, как и версия для Windows, за исключением MAPI, CAB, ACE, CHM, 7ZIP и NTFS потоков. Сканируются следующие архивы: ARJ, ZIP, MIME (+ все соответствующие форматы), DBX (архивы Outlook Express), RAR, TAR, GZIP, BZIP2, ZOO, ARC, LHA/LHX, TNEF (winmail.dat), CPIO, RPM, ISO и SIS. Также поддерживается сканирование некоторых выполняемых упаковщиков (таких как PKLite, Diet, UPX, AsPack, FSG, MEW и т.д.).

Простой пользовательский Интерфейс

Интуитивно понятный интерфейс пользователя обеспечивает доступ к настройке всех параметров антивируса avast! для более точного сканирования. Используется для начала сканирования on-demand, работы с результатами, настройки различных опций и т.д.
Пользовательский интерфейс требует библиотек GTK+ 2.x. Если их на вашей системе нет, используются библиотеки из установочного пакета.

Сканер командной строки

Опытные пользователи оценят классический сканер on-demand, контролируемый из командной строки. Он позволяет сканировать файлы в определенных директориях на локальных и удаленных дисках. Конечно, сканер командной строки работает с подключенными сетевыми дисками.
Программа очень гибкая: она принимает множество дополнительных аргументов и свитчей. Возможно создавать расширенные файлы отчетов, используемые для последующего анализа.
Сканер может работать в режиме STDIN/STDOUT как фильтр канала. Данный режим используется в шелл-скриптах.

Автоматические обновления

Обновления баз сигнатур — еще одна ключевая особенность антивирусной защиты. В текущей версии обновления не инкрементальны. Поэтому когда файл баз сигнатур изменяется, следует скачивать и заменять всю базу.

Карантин

Версия для Linux имеет возможность создавать карантинную зону для помещения подозрительных файлов. Данные файлы могут быть удалены или сохранены для последующей работы.

 

Внимание: программа не будет работать без лицензионного ключа. Чтобы его получить используйте форму регистрации.

Скачать

 

Автор: ГАЗЕНВАГЕН™