хочу сюди!
 

Марта

48 років, козоріг, познайомиться з хлопцем у віці 50-60 років

Замітки з міткою «linux»

Прикручуємо GNOME Keyring до Openbox і SLIM

Є у мене ArchLinux на ноутбуці Lenovo SL-510. Вирішив загнати на нього щось легеньке, вибір впав на логін-менеджер SLIM та Openbox як менеджер вікон. Начебто все нормально, але стикнувся з такою проблемою: nm-applet точки WiFi бачить, але не підключається до них, бо не виводить діалог введення пароля. Те саме хочу сказати і про thunar, котрий не монтував змінні диски, бо не виводило діалогу для введення root-паролю. Почав копатись в причині цієї маячні, і знайшов проблему - Gnome Keyring не стартує разом із сеансом.  Спочатку ставимо Gnome Keyring та ConsoleKit:         

    sudo pacman -S gnome-keyring consolekit

Далі в файл ~/.xinitrc додаємо наступні пункти:

    # Запускаємо GNOME Keyring:
    eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
    # Експортуємо змінні:
    export SSH_AUTH_SOCK
    export GPG_AGENT_INFO
    export GNOME_KEYRING_CONTROL
    export GNOME_KEYRING_PID
    # Запускаємо вже сам openbox:
    exec dbus-launch ck-launch-session openbox &

Але на цьому ми не закінчимо. Робити треба все якісно, тому додаємо правила аутентифікації (через PAM) до самого дисплейного менеджера SLIM. Робиться це шляхом додавання GNOME Keyring до /etc/pam.d/slim та /etc/pam.d/passwd наступних рядків:

    session        optional       pam_systemd.so
    auth           optional       pam_gnome_keyring.so
    session         optional       pam_gnome_keyring.so    auto_start

Ось. Тепер після перезапуску Xorg та networkmanager все прийде в норму та буде працювати.

Атомарные операции Vs Mutex

Сейчас наступило время многоядерных и многопроцессорных систем (даже в последних смартфонах уже 2+ ядер)

Основная проблема многопроцессорного программирование это проблемы одновременного доступа к данным...

Доступ к данным можно блокировать методом mutex-a (spin lock)
pthread_mutex_lock(&mutex);
// некая работа над глобальными данными
pthread_mutex_unlock(&mutex);

А можно при помощи атомарных операций
__sync_add_and_fetch( &global_int, 1 );

Сегодня пришло в голову проверить при каком количестве операций внутри блокируемого блока выгоднее использовать Mutex - а при каком такой-же набор __sync_ операций (т.е. косвенно протестировать сколько стоит pthread_mutex_lock VS __sync)


Фактически тест код mutex
for (i = 0; i < INC_TO; i++)
{
pthread_mutex_lock(&mutex);
for (int j = 0; j < MAX_OPS; j++)
global_int++;
pthread_mutex_unlock(&mutex);
}
И для атомик:

for (i = 0; i < INC_TO; i++)
{

for (int j = 0; j < MAX_OPS; j++)
__sync_add_and_fetch( &global_int, 1 );
}

Результаты тестов:  
при MAX_OPS < 10 -  лучше __sync_add_and_fetch, 
при MAX_OPS >= 10 -  лучше  pthread_mutex_lock  && pthread_mutex_unlock, 

Вывод:  если вам нужно обновить одновременно меньше 10-ти переменных  - при возможности  лучше использовать атомарные операции, иначе - блок pthread_mutex_lock  && pthread_mutex_unlock

Неожиданное поведение функции select

В Linux
man 2 select

НАЗВАНИЕ
       select,   pselect,  FD_CLR,  FD_ISSET,  FD_SET,  FD_ZERO  -  синхронное
       мультиплексирование ввода-вывода

Во FreeBSD - есть еще такая пометка:  "The default size of FD_SETSIZE is currently 1024. In order to accommodate programs which might potentially use a larger number of open files with select(), it is possible to increase this size by having the program define FD_SETSIZE before the inclusion of any header which includes <sys/types.h>." (Что в переводе означает что лимит FD_SET 1024 и чтобы его увеличить нужно переопределить дефайн...

Сейчас select редко где встретишь в проекте, а вот раньше она встречалась сплошь и рядом.
Одна из самых общераспространенных схем использования select:

struct timeval null_time;
null_time.tv_sec = 2;
null_time.tv_usec = 0;        
fd_set inSet;        
FD_ZERO(&inSet); 
FD_SET(descr, &inSet);  
int res = select(descr+1, &inSet, NULL, NULL, &null_time);

Данный фрагмент кода ожидает когда из сокета можно будет читать данные с таймаутом 2 секунды

И все у нас будет замечательно, пока в один прекрасный момент в нашей программе по какой-то причине не появится 1024+ открытых файлов и значение descr станет больше 1024. И в этот чудесный день функция, как ожидается не вернет -1 (ошибочное значение), а замечательно потрет память за переменной fd_set inSet, что приведет к очень сложно отлаживаемым багам.

Вот пример кода который демонстрирует затирание:
#include <sys/time.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>


int main()
{
        int descr;
        for (int i = 0; i < 1024; i++)
        {
                descr = open("/dev/null", O_RDONLY);
                if (descr < 0)
                {
                        printf("Can't create descr\n");
                        return -1;
                }
        }
        struct timeval null_time;
        null_time.tv_sec  = 2;
null_time.tv_usec = 0;

        fd_set  inSet;
        char pad[] = "1234567890abcdefg";
        printf("pad before select [%s]\n", pad);
        FD_ZERO(&inSet);
        FD_SET(descr, &inSet);
        int res = select(descr+1, &inSet, NULL, NULL, &null_time);
        printf("Pad after select [%s], res=%d\n", pad, res);
}

$ g++ testselect.cpp
$ ./a.out
Pad bafore select [1234567890abcdefg]
Pad after [], res=1

Для избежания затирания я рекомендую использовать poll, для большого числа соединений - epoll. Или в крайнем случае сделать проверку значения descr перед выполнением select


Вышла ICQ (beta) для LInux

Итак установка:
Страница загрузки: http://www.icq.com/download/linux/en
Но скачать по простому не выйдет. Надо сначала установить Adobe Air ©.
Запускаем “Центр приложений” ищем Adobe Air, кликаем установить.
Теперь можно идти по ссылке: кликаем по “Download ICQ”, теперь запустится (после некоторого ожидания) Adobe Air и графический инсталлятор, выберем каталог для установки. Я оставил /opt. Введем root’ский пароль. Немного терпения. И вот он нативный ICQ клиент для Linux. Звук заработал из коробки, есть даже русский интерфейс.

Red Hat 5.3

всего отмечено более 150 усовершенствований):
В состав дистрибутива интегрирован пакет OpenJDK, полностью open source реализация языка Javа SE 6 не содержащая закрытых бинарных составляющих. Ранее OpenJDK был интегрирован в дистрибутив Fedora 8.

Год выпуска: 2009
Версия: 5.3
Разработчик: RedHat Inc.
Платформа: i386
Язык интерфейса: английский

Виртуализация:
• Поддержка x86_64 гипервизором до 126 CPU и 1Тб ОЗУ, произведена оптимизация для выполнения большого числа гостевых окружений на одном сервере;
• Возможность использования более 16 дисков для одного гостевого окружения;
• Добавлены Virtio драйверы для использования Red Hat Enterprise Linux 5 в роли гостевой ОС, под управлением гипервизора KVM;
• Поддержка механизма Intel EPT (Extended Page Table) для повышения производительности в режиме полной виртуализации;
• Поддержка работы из коробки с более чем четырьмя сетевыми картами;
• Добавлена поддержка Intel VT-i2 для ia64 CPU;
• Ротация логов Xen;
• Хранилище Xenstore перенесено в tmpfs;
• В поставку включены паравиртуализационные драйверы для ядер Red Hat Enterprise Linux 5 работающих в роли гостевых систем в режиме полной виртуализации. В установке пакета xenpv-kmod более нет необходимости;

Кластеры:
• Поддержка зеркалирования кластеров;
• Поддержка файловой системы GFS2 (ранее GFS2 была помечена как Technology Preview).
• В агенты DRAC, Blade Center, iLO и Egenera добавлена поддержка SSH;
• В WTI агенте реализована поддержка контроллеров управления питанием WTI RSM8R4 и WTI MPC-8H

Десктоп:
• GUI интерфейс для настройки сети NetworkManager 0.7, в котором добавлены средства для настройки работы в 3G сетях, расширены возможности по конфигурированию PPP и PPPOE соединений. Возможность графической настройки adhoc режима работы беспроводной карты для прямого соединения двух компьютеров. • Возможность одновременной активации нескольких соединений. Возможность активации сетевого соединения до входа пользователя в систему.
• Обновлены версии драйверов для графических карт, обеспечена поддержка карт ATI r400/r500.
• Системные сервисы и утилиты:
• Поддержка Kerberos в сервере печати cups;
• Обновлены программы в пакетах ksh, lm-sensors, lftp, net-snmp, openIPMI, openldap, openmotif, python-urlgrabber, rpm, tog-pegasus, vnc, yum, yum-utils;
• SystemTap (аналог DTrace для Linux): добавлена начальная поддержка трассировки приложений на уровне пользователя (utrace), реализована возможность удаленной компиляции SystemTap сценариев, добавлено руководство пользователя, произведены оптимизации.
• Отладчик GDB обновлен до версии 6.8;

Шифрование и безопасность:
• Поддержка шифрования корня системы и раздела подкачки в инсталляторе;
• Возможность перехода в Hibernate режим (временное засыпание со сбросом дампа памяти на диск) при наличии шифрованных дисковых разделов;
• В SELinux добавлена поддержка нового NetworkManager и средств аудита;
• Улучшены возможности аудита и журналирования событий (добавлена поддержка аудита TTY ввода и сохранения логов системы аудита на другую машину, через нешифровный канал связи);
• Пакет Samba обновлен до версии 3.0.32, в которой появилась поддержка Windows Vista и Windows 2008;
• В пакет с Linux ядром, основанный на версии 2.6.18, перенесены многие новые возможности из последних релизов 2.6.x, например, в dm-raid появилась поддержка RAID 4/5/10, добавлен AMD IOMMU драйвер, в реализации CIFS/SMB появилась поддержка DFS, обновлен код Autofs4

Поддержка нового оборудования:
• Добавлены новые драйверы: ath5k, hp-ilo, inet_lro, neic, niu, r8169, t2x00, rtl818x, uvcvideo, virtio
• Обновлены драйверы: 3w-9xxx, 3w-xxxx, aacraid, aic94xx, alsa, arcmsr, bcm43xx, bnx2, bnx2x, cciss, chelsio, cpufreq, cxgb3, e1000, e1000e, fusion, hpiolo, ibmvscsi, igb, ieee80211, ipw2x00, iwlwifi, ixgbe, lpfc, mac80211, megaraid_sas, mptscsi, myri10ge, netxen-nic, OpenIB, powernow_k8, qla2xxx, qla24xx, qla84xx, sata, sata_svw, tg3, zd1211rw
• Экспериментальные возможности для тестирования (Technology Previews):
AIGLX в X server, обновленная библиотека Mesa, композитный менеджер Compiz;
• Установка dm-multipath;
• Dogtail - ПО для автоматического тестирования GUI интерфейсов;
• Поддержка eCryptFS;
• Поддержка файловой системы ext4;
• Пакет с GCC 4.3;
• Возможность загрузки с iSCSI;
• Новый Firewire стек;
• ktune - сервис определяющий системные профайлы с определенным набором параметров тюнинга ядра;
• 32-bit PV guest на 64-bit хостовой системе AMD64/Intel 64
• Поддержка стека Trusted Computing Group (TCG) и Trousers TSS;
• Агент VMware ESX;

Размер: 2.89 Gb
Добавлено 3% на восстановление
Источник free-admin.net
Скачать

 

Как познакомиться с Linux не теряя Windows XP

Начнём. Прежде всего при установке VMware Workstation для испытания\проверки работоспособности операционных систем другой платформы мы должны помнить, что:
1 - в принципе количество гостевых операционных систем ограничивается только местом на нашем жёстком диске+объёмом нашего ОЗУ…
2 - для работы одновременно двух (и более) систем: гостевой и основной (где основная - это система на которую непосредственно установлена виртуальная машина VMware Workstation на примере, а гостевая - это система устанавливаемая уже непосредственно на виртуальную машину) - требуется памяти столько сколько нужно для работы двух операционных систем.
Тоесть, если для работы моей Windows XP нужно 1024mb и для Fedora 9 - 512mb оперативной памяти - всего мой компьютер должен иметь 1024+512=1536mb оперативки. Если хотите, чтобы у вас работало сразу две\три и т.д. операционки - объём памяти вашего ПК должен соответствовать сумме минимальных размеров памяти для Каждой операционной системы… Это образный пример - читайте системные требования по устанавливаемым вами продуктам.
Установка.
1 - выбираем обьект (диск, файл образ, смонтированный на виртуальный CD - как у меня, файл образ с устанавливаемой системой.

2 - как вы уже догадались, ставим Ubuntu 8.10
В меню Vmware File->Creat - создаём новую виртуальную машину. Нажимаем Next и выбираем Специальную конфигурацию. Далее следуя указаниям мастера создания новой Виртуальной машины выполняем следующие (на примере Vmware 6) действия.
Затем настраиваем расположение вашей виртуальной машины, на выбранном вами диске, в созданной папке, назначаем размер выделямой под гостевую ОС памяти и выбираем тип диска на котором будет находится наша Убунта - я предпочитаю создавать новые виртуальные диски для каждой гостевой ОС, чтобы избежать возможных потерь данных. Выбираем используемое гостевой системой сетевое соединение - я беру самое простое и ставлю флажок возле пункта Use bridget networking
Затем выбираем тип контроллера для диска на котором и будет стоять наша гостевая Ось
Оставим предложенный по умолчанию.
Выбираем диск, куда ставить гостевую систему. Я ставлю отметку у пункта creat new virtual disk. Тип диска тоже лучше оставить предложенный по умолчанию. А вот его размер задаём в соответствии с требованиями установливаемой гостевой ОС - тут нужны максимум шесть гигабайт, для моей Убунты. Так и говорим Вмваре. Оставляем флажок возле пункта Split disk into 2Gb files - это нужно для гостевых систем типа Linux - так нужны два диска, или раздела. Один под систему, второй под файл подкачки. Поэтому говорим виртуальной машине, что наш диск нужно разделить на несколько.
Почти готово. Осталось немного корректировки…

Это пункты настроек которые можно изменить для работы нашей гостевой операционной системы…
Как видите почти все параметры заданные нами при создании среды для работы гостевой операционной системы, тоесть новой Виртуальной Машины - можно редактировать.
Делается это выбором пункта Edit Virtual Machine Settings либо в левой части окна Vmware от v 6.0

либо выбором Такого же пункта в Меню Edit на панели Меню.

Тут выбираем откуда же будет грузиться наша новая ОСь. С файла-образа на нашем винчестере, или смонтированного на виртуальный привод, как у меня, а может с реального CD-ROM.
Как впрочем я уже сказал выше…
Ах, да! Чуть не забыл сказать о самом важном. ПРЕЖДЕ чем приступать к установке новых гостевых операционных систем - следует правильно настроить саму программу Vmware во избежание появления вот такой ошибки

Которая свидетельствует об отсутствии сетевой карты или настроек её MAC адреса.
Да и вообще приведённые ниже настройки - это как раз взаимодействие сетевого интерфейса наших гостевых и основ ной операционной системы, между собой или всеми компьютерами в нашей сети.
Для этого снова обратимся к Строке Меню и выберем Меню Edit ->Virtual Network Settings...
Чтобы сэкономить место в блоге и не ходить вокруг да около - сразу переходим к вкладке
Host Virtual Adapters и нажимаем кнопочку Add...

По умолчанию в стандарте Vmware - уже имеются имеются два виртуальных адаптера
Vmnet 1 и Vmnet 8, где Vmnet 0 назначен реальному адаптеру нашего ПК - надпись "Not bridget" - означает, что сеть не настроена.
И так кнопкой Add… - добавляем столько адаптеров сколько систем планируем установить в качестве гостевых. Тут мы рассмотрим самый простой способ настроек виртуальной сети без использования DHCP и с автоматически назначенными статическими IP адресами. Те кто уже поднаторел в работе с сетью могут тут внести свои собственные настройки, например изменить IP на более запоминаемые, или удобные в работе, назначить DHCP и т.д.
Теперь перейдём на вкладку DHCP - и удалим из списка все созданные нами виртуальные адаптеры(если не намерены использовать DHCP) кроме виртуальных адаптеров созданных по умолчанию Vmnet 1 и Vmnet 8.

Не забываем нажимать на кнопочку применить. После этого на вкладке Host Virtual Network Mapping появится полный список установленных в нашей виртуальной сети адаптеров, а заодно и в сетевых настройках нашей основной ОС - подключения к сетевым адаптерам, которые мы создали…


Ну, что же… в кратце - всё готово.
Приступим к установке. Жмём на кнопку-ссылку с зелёной стрелочкой Start this virtual machine
И следуем указаниям мастера установки после того как по нажатию F2 в меню инсталляции выберем из списка нужный язык. Убунта хороша и тем, что её можно "посмотреть" не устанавливая на жёсткий диск компьютера,


но эта опция хороша не в нашем случае, так мы желаем её именно установить.
Мастер установки прост и понятен. Мало чем отличается от Виндозного. Единственное, что так это
Разметка диска

и выбор места для загрузчика. Но поскольку мы работаем на виртуальном ПК никаких трудностей для нас это не представляет… поэтому соглашаемся со всеми предложениями по умолчанию.
Хотя при установке в качестве основной операционной системы конечно лучше выбирать ручную разметку диску, особенно если на нём есть разделы с данными, или другими файловыми системами которые вы будете использовать. Устанавливается эта операционная система очень быстро. А пока она установится я скажу об одном важном шаге о котором иногда забывают при настройке виртуальной сети. Всех тех настроек о которых я рассказал конечно же будет мало для полноценной функциональности нашей виртуальной сети. Почему? Да потому, что не настроена сеть в основной операционной системе… в итоге получится вот такая "петрушка" ( на примере Fedora 9)
На примере уже установленной Федоры 9 - видно, что сетевой интерфейс в виртуальной машине - рабочий, но соединения с инетом нет. В чём проблема? Очевидно нет настроек сети в основной Операционной системе…
Настраиваем -> Пуск->Панель Управления->Мастер настройки сети

Перед запуском мастера убедитесь, что подключены все сетевые кабели и соединение интернет активно.
Выбираем подходящий вариант сединения с интернет. В моём случае это - так.

Далее естественно выбираем своё соединение с интернет из предложенного списка
Затем выбираем подключения сети которым желаем дать доступ для использования соединения с интернет этого компьютера. Вводим описание компьютера (как оно будет отображаться по сети) затем назначаем ему рабочую группу. Можно любое имя назначить, в том числе и предлагаемое по умолчанию. Главное, чтобы имя рабочей группы не содержало русских букв.
Естественно нужно включить общий доступ к файлам и принтерам.
После этого в сетевых соединениях нашей основной операционной системы возникнет соединение типа мост. И В гостевой операционной системе появится доступ к интернет
"Урра! Заработало!"Матроскин ©.
Итак, пока я рассказывал про настройки сети - Убунта уже стала. Установка заняла примерно двадцать минут точнее не скажу, отвлёкся) Поэтому не отвлекаемся и вернёмся к нашей Убунту "Бесстрашному Козерогу" Вот уже всё и готово. Привожу скрин рабочего стола где видно, что все натройки работают. Инет в том числе. Значит с сетевыми настройками - норма. Пробуйте Linux! В современных версиях почти ничего сложного.
SpyLOG

Будет полезным

Решил вот выложить на сервисе uaget.com кое-какую литературу расчитанную в основном на продвинутых пользователей, или системных администраторов. Это книги михаила Флёнова относительно его хакерского опыта и реальных работ в этом направлении. Литература предполагает знакомство с основами программирования или знание конкретных языков которые автор применяет для взлома. Windows server 2003 Практическое руководство по настройке сети (Петр Шетка-75mb) Компьютер глазами хакера ((Михаил Флёнов-53mb) PHP глазами хакера (Михаил Флёнов-38mb) Delphi глазами хакера (Михаил Флёнов-7mb) Web сервер глазами хакера (Михаил Флёнов-10mb) Справочник по командам Linux (С.Скловская 15mb) Книга М.Флёнова С++ глазами хакера Brajan Tajme'n. FreeBSD Немет, Снайдер, Хейн - Руководство администратора Linux Сервер Linux

Обзор операционной системы Windows server 2008

Руководство\обзор Windows server 2008 (на аглицком)

Новые книги будут добавляться время от времени. Так, что кому интересно заглядывайте на страничку иногда.

Размеры указаны приблизительно. Сам сейчас читаю Флёнова - Linux глазами хакера. Впечатляет.

В папках на сервисе закачки будут и другие книги по ОС Linux и Windows.