18 квіт. 2009 р.

Новый путь для знакомств



Вот таким образом кому то кажется мы будем знакомиться в ближайшем будущем, либо обмениваться контактами.

13 квіт. 2009 р.

Ошибка 0x80072EE2 при установке Google Chrome

Не мог установить Google Chrome. Выдавалась ошибка 0x80072EE2. Работаю через прокси. Удалось устранить через снятие галочки в пункте "Отключение автоматического определения параметров" прокси сервера. Мне кажется та же самая причина в ошибке установки плагина видео чата к Google Talk.

Как отключить:

Internet Explorer -> Сервис -> Свойства обозревателя -> Подключения -> Настройка сети -> Автоматическое определение параметров

9 квіт. 2009 р.

Polling в FreeBSD

Теория:


- Режим прерывания (IRQ):

По умолчанию сетевой интерфейс работает в режиме прерывания (IRQ). Выглядит это примерно так:

1. Интерфейс отправляет или получает пакет.
2. Интерфейс генерирует прерывание (IRQ) в ответ на это событие.
3. ЦП останавливает свою текущую деятельность, чтобы обработать прерывание.
4. После обработки прерывания сгенерированого интерфейсом ЦП продолжает свою работу.

Такой вариант обработки пакетов сетевым интерфейсом подходит для низкой активности сети (до 10 тысяч пакетов в секунду). При увеличении количества пакетов для обработки интерфейсом начнется их отбрасывание, в связи с тем что сам интерфейс не будет успевать генерировать прерывания или ЦП не будет успевать обрабатывать их...

Вывод: Система неуправляема. Плюс низкая пропускная способность.


- Режим опроса (Polling):

Итак что же такое поллинг (polling)... Поллинг в FreeBSD это режим опроса системой сетевого интерфейса с определенной частотой на наличие на нем сетевых пакетов. Работает это приблизительно таким образом:

Система отключает на сетевом интерфейсе прерывания (IRQ), а вместо этого сама опрашивает сетевой интерфейс на наличие в его буфере сетевых пакетов. И если такие присутствуют - она их обрабатывает. Выглядит это примерно так:

1. Сетевой интерфейс работает в режиме прерываний.
2. При приеме/отправке пакета, сетевой интерфейс регистрирует себя в poll списке и отключает прерывания.
3. Через определенные таймауты система опрашивает интерфейс на предмет новых пакетов.

Вывод: За счет режима опроса снимается нагрузка на процессор, увеличивается пропускная способность, потому как на каждый пакет не нужно генерировать прерывание, но увеличивается возможность потери пакетов за счет того что система может не в нужный момент времени опросить устройство.

Есть один момент, на который нужно обратить внимание. Не все сетевые адаптеры поддерживают режим поллинга список можно просмотреть на странице мануала к поллингу


Настройка:


1. Пересобираем ядро с опциями:


options DEVICE_POLLING (включение режима опроса)
options HZ=1000 (таймер проверки 1000 равен пропускной способности 100 Мбитной сети подробнее. Тоесть если скорость больше 100 мегабит нужно выставить большее значение)


2. Включаем поддержку поллинга на интерфейсе


В старых версиях поллинг включается через файл /etc/sysctl.conf
нужно добавить строку

kern.polling.enable=1

В новых версиях включается через Ifconfig

freebsd# ifconfig em0 polling

Для автозагрузки поллинга в файле /etc/rc.conf прописываем:

ifconfig_em0="polling"

также не забываем добавить в этой строке сетевые параметры типа IP адрес, маска подсети и тд.


3. Тюнингуем параметры polling`a


Все настройки производятся в файле /etc/sysctl.conf

kern.polling.user_frac - определяет использование процессорного времени между ядром и пользовательскими процессами. Чем меньше значение, тем меньше времени будет уделено пользовательским процессам и больше ядру. Стоит заметить, что если у одного из уровней задач (пользовательский) не имеет достаточно работы, то остатки процессорного времени переходят другому (ядру), так что процессорное время не теряется. По умолчанию, значение этой переменной - 50. Меньшее значение стоит выставлять на маршрутизаторах. Допустимый предел значений от 1 до 99.
kern.polling.handlers - определяет количество устройств, которые могут быть зарегистрированы как polling.
kern.polling.burst - максимальное количество пакетов, которое может быть обработано с одного устройства за каждый проход. Это значение подстраивается ядром, основываясь на текучем уровне загрузки, мощности процессора, потока трафика и т.д.
kern.polling.burst_max - определяет верхнюю границу kern.polling.burst.
kern.polling.reg_frac - в процессе опроса не проверяется состояние регистров на ошибки, текущее состояние связи и.т.д., это значение указывает, как часто (каждые reg_frac / HZ секунд) проводить подобные проверки. Значение по умолчанию - 20.
kern.polling.idle_poll - определяет, использовать ли опрос устройств в свободное время. Нет причин отключать его, разве что для проведения тестов или при возникновении ошибок. По умолчанию включено.
intr_queue_maxlen - очередь для входящих пакетов (аналогична backlog под Linux). Изменяется при помощи sysctl: net.inet.ip.intr_queue_maxlen. Значение по умолчанию = 50, что очень мало.
intr_queue_drops - статистика по работе intr_queue_maxlen, отображает количество отброшенных пакетов из очереди. Посмотреть её можно через sysctl: net.inet.ip.intr_queue_drops.
net.inet.tcp.rfc1323 - контролирует работу временной марки и масштабируемого окна. (0 - выключено, 1 - включено)
kern.ipc.maxsockbuf - максимальный размер TCP буфера.
net.inet.tcp.recvspace - размер TCP буфера для приема. Влияет на размер "скользящего окна".
net.inet.tcp.sendspace - размер TCP буфера для отправки. Влияет на размер "окна переполнения".

Например:

net.inet.ip.intr_queue_maxlen=5000
kern.ipc.maxsockbuf=8388608
net.inet.tcp.sendspace=3217968
net.inet.tcp.recvspace=3217968
net.inet.tcp.rfc1323=1


Много информации было почерпнуто отсюда. За что автору спасибо.

8 квіт. 2009 р.

Симулятор американских горок

Вслед за симулятором Советских игровых автоматов, я нарыл симулятор Американских горок. Вау. Жаль только не шатает и не дергает как в реальной кабинке... а так монитор побольше - и супер.




5 квіт. 2009 р.

Советские игровые автоматы

Искал в сети где можно покататься на автодроме, может помнит кто-то электромашинки с крюками, на шел в Киеве в парке Нивки (пр. Победы, 82, (044)456-92-46, (044)456-43-31). А параллельно наткнулся на очень интересную штуку - симулятор старых советских игровых автоматов. Ностальгия, блин...


Сайт разработчика

3 квіт. 2009 р.

Отключение вывода информации ядра при загрузке FreeBSD

Для того чтобы отключить вывод информации, которую выдает ядро системы FreeBSD при загрузке системы нужно:

1. В файле /etc/ttys находим строку

ttyd0 "/usr/libexec/getty std.9600" dialup off secure

изменяем на

ttyd0 "/usr/libexec/getty std.9600" vt100 on secure

2. В файле /boot/loader.conf добавляем следующую строку

console="comconsole"

3. Перезагружаемся и видим только старт загрузчика...

Береги себя

Серия видео о вреде... Без комментариев, стоит задуматься, пожалуй.


Алкоголь


Курение

2 квіт. 2009 р.

Вывод Syslog на 7 консоль FreeBSD

Для того чтобы логи не сыпались на нулевую консоль, можно перевести журналирование на любую другую консоль, в нашем случае на 7. Для этого отключаем 7 консоль в файле /etc/ttys Находим строку:

ttyv7 "/usr/libexec/getty Pc" cons25r on secure

и изменяем значение on на off. Теперь можно перенаправить Syslog. Для этого в файле /etc/syslog.conf
находим строку:

.*err;kern.warning;auth.notice;mail.crit /dev/console

и приводим к виду:

*.*.err;kern.warning;auth.notice;mail.crit /dev/ttyv8

Перезагружаем Syslog:

freebsd# /etc/rc.d/syslogd restart

Комбинацией Alt+F8 переходим на 7 консоль и видим журнал системы

Украшение FreeBSD

1. Украшение консоли
Увеличение разрешающей способности в FreeBSD:


- Пересобрать ядро с опциями:

options VESA
options SC_PIXEL_MODE

Также можно изменить цвет шрифта по умолчанию добавив в ядро:

options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)

Что означает: Зеленый шрифт на черном фоне.

- Добавить в /etc/rc.conf строку:

allscreens_flags="MODE_xxx"

Например для отображения 800х600 будет режим MODE_320

Режим отображения можно выбрать просмотрев варианты командой:

freebsd# vidcontrol -i mode

Изменение стандартного курсора на мигающий:

- Добавить в /etc/rc.conf строку:

allscreens_flags="-с destructive"

Изменение цвета шрифта и фона:

- Добавить в /etc/rc.conf строку:

allscreens_flags="lightgreen black"

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

Примечание!
В /etc/rc.conf параметр allscreens_flags может быть только один. Тоесть для того чтобы одновременно сделать мигающий курсор, изменить разрешение экрана и изменить цвета консоли, нужно привести строку allscreens_flags к виду:

allscreens_flags="-с destructive lightgreen black MODE_320"

Где:
MODE_xxx - режим отображения
-c destructive - мигающий курсор

2. Украшение загрузки
Добавление заставки (SplashScreen) при загрузке:


В файле /boot/loader.conf добавить строки:

splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"

Добавить в каталог /boot файл картинки-заставки в формате .bmp, разрешением 256 цветов и размером, который установлен в режиме отображения в параметре allscreens_flags файла /etc/rc.conf (Для более ровного отображения) Например если у Вас задан режим MODE_320, то картинка должна быть размером 800х600)

Изменение логотипа BSD при загрузке:

В файле /boot/loader.conf добавить строку:

loader_logo="beastie"

При загрузке вместо буковок BSD появится, привычный по предыдущим версиям, чертенок.

Очистка экрана от информации после загрузки:

Выполнить следующие команды:

freebsd# touch /etc/issue
freebsd# clear > /etc/issue

После загрузки будет видна только строка для авторизации.

Изменение времени отображения меню загрузки:

В файле /boot/loader.conf добавить строку:

autoboot_delay="*"

Где * - время отображения в секундах.

1 квіт. 2009 р.

Обновление портов FreeBSD через прокси-сервер

После установки системы возникает потребность в обновлении коллекции портов FreeBSD. В случае если у нас директ доступ к интернету все довольно прозаично:

Если запускаем обновление впервые:

freebsd# portsnap fetch
freebsd# portsnap extract
freebsd# portsnap update

Если уже единожды запускали:

freebsd# portsnap fetch
freebsd# portsnap update


Но вот откуда ни возьмись у нас на пути повился пресловутый прокси-сервер, да еще и с авторизацией... Что же делать...? Все довольно просто

freebsd# ee /etc/csh.cshrc

Добавляем туда несколько строк:

setenv HTTP_PROXY http://usename:password@xxx.xxx.xxx.xxx:yyyy
setenv FTP_PROXY http://username:password@xxx.xxx.xxx.xxx:yyyy


Где:

xxx.xxx.xxx.xxx - IP адрес прокси-сервера
yyyy - порт прокси-сервера
username - имя пользователя
password - пароль пользователя

После этого можно пробовать запускать обновления...