Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  начальная настройка
  Установка FreeBSD
  DUMMYNET
  Сборка ядра
  IPFW
  обновление
  portsnap
  CP1251 на FreeBSD
  loader.conf
  defaults/rc.conf
  jail
  Ntpdate/Ntpd
  diskless
  Обновление мира ("world")
  PBR & PF
  bsnmpd
  newsyslog
  if_bridge
  make.conf
  PBR & IPFW
  Работа с HDD
  sshd & AD
  Удаленное разбиение HDD
  Заметки об IPFW
  FreeBSD на VDS
  CVSUP и софт через Proxy
  i386=>amd64
  ALTQ в IPFW
  Виртуальный свитч
  VPN сервер по средствам mpd5.
  NTP
  sysupdate
  mpd5 L2TP
  freebsd + webcamera
  IPFW policy (PBR)
  RAID1 via LAN
  зеркальный RAID1 на ОС FreeBSD
  4.x => 7.x
  portdowngrade
  Быстрое обновление портов
  ipfw nat
  Использование csup
  UTF-8 console
  dump/restore
  hast carp zfs ucarp cluster
  ng_nat
  Wi-FI роутер + DHCP + DNS
  backup/restore & ZFS
  Обновление ОС и портов через SVN.
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> настройка —> make.conf

Оптимизация make.conf

Автор: Raven2000.


Так как мы сидим под фряхой и ставим все исключительно из портов компилим ядра обновляем World и тд то неплохо было бы оптимизировать процесс компиляции. Многие часто не придают этому значение, но ведь при этом это ускорило бы процесс компилирования исходников а, следовательно, сэкономило наше время :) да и потом мы оптимизируем под наше железо.

1) Итакс начнемс..
ee /etc/make.conf 

Я привожу тут под свой комп так что читаем коммменты.


# Тип проца у меня p3 (ниже у меня он также фигурирует как pentium3) 
#   Intel x86 architecture:
#       (AMD CPUs)      opteron athlon64 athlon-mp athlon-xp athlon-4
#                       athlon-tbird athlon k8 k6-3 k6-2 k6 k5
#       (Intel CPUs)    nocona pentium4[m] prescott pentium3[m] pentium-m
#                       pentium2 pentiumpro pentium-mmx pentium i486 i386
#       (Via CPUs)      c3 c3-2
#   Alpha/AXP architecture: ev67 ev6 pca56 ev56 ev5 ev45 ev4
#   AMD64 architecture: opteron, athlon64, nocona
#   Intel ia64 architecture: itanium2, itanium

CPUTYPE?=pentium3

# Здесь указываем дополнительные флаги
CFLAGS=-O1 -pipe
NO_PROFILE=true    # Обход построения библиотек для профилирования

# Говорим что флаги включать обязательно
NO_CPU_CFLAGS=false
NO_CPU_COPTFLAGS=false

# Это совместимость с BSD 4.x
COMPAT4X=true

# Отрубаем сборку ненужных библиотек и софта
# посмотреть что еще можно накрутить тут
# /usr/share/examples/etc/make.conf или чуть ниже я опишу.
MAKE_KERBEROS4=false
MAKE_KERBEROS5=false
NO_BIND=true
NO_SENDMAIL=true
NO_GAMES=true

# Настройки Perl
PERL_VER=5.8.8
PERL_VERSION=5.8.8
PERL_ARCH=mach
NOPERL=no
WITH_PERL=yes
WITHOUT_PERL=no

# Теперь FORCE портов..
[code]FORCE_PKG_REGISTER=yes

Ну вот и все теперь сохраняем и пользуемся.

Но если у вас возникли какие либо проблемы с портами типа одинаковых установленных
(различия только в версиях будут) портов как:
/var/db/pkg:
postfix-2.3.1_1
postfix-2.3.2_4
То вырубаем его.
FORCE_PKG_REGISTER=no

Как обещал некоторые настройки я немного опишу.
Но еще раз оговорюсь за полным собранием в библиотеку ;)
/usr/share/examples/etc/make.conf

#NO_ACPI=		# не собирать acpiconf(8) и соответствующие программы
#NO_ATM=		# не собирать ATM соответствующие программы и библиотеки
#NO_AUTHPF=		# не собирать и неустанавливать authpf (setuid/gid)
#NO_BLUETOOTH=		# не собирать Bluetooth и все связанное с ним
#NO_BOOT=		# не собирать boot blocks и loader
#NO_CRYPT=		# не собирать для crypto code
#NO_CVS=		# не собирать CVS
#NO_CXX=		# не собирать C++ и его друзей :)
#NO_DICT=		# не собирать для Webster словари
#NO_DYNAMICROOT=	# нелинковать /bin и /sbin динамически
#NO_FORTRAN=		# не собирать g77 и соответствующие библиотеки
#NO_GAMES=		# не собирать игрушки (games/ subdir)
#NO_GDB=		# не собирать GDB
#NO_GPIB=		# не собирать GPIB support
#NO_I4B=		# не собирать пакет isdn4bsd
#NO_INET6=		# не собирать IPv6 соответствующие программы и библиотеки
#NO_INFO=		# не собирать и неустанавливать информационные файлы
#NO_IPFILTER=		# не собирать IP Filter package
#NO_KERBEROS=		# не собирать и неустанавливать Kerberos 5 (KTH Heimdal)
#NO_LIBC_R=		# не собирать libc_r (re-entrant version of libc)
#NO_LIBPTHREAD=		# не собирать libpthread (M:N threading library)
#NO_LIBTHR=		# не собирать libthr (1:1 threading library)
#NO_LPR=		# не собирать lpr и соответствующие программы
#NO_MAILWRAPPER=	# не собирать для mailwrapper(8) MTA сектора
#NO_MAN=		# не собирать man хелпы
#NO_MODULES=		# не собирать модули устанавливаемые в kernel
#NO_NETCAT=		# не собирать netcat
#NO_NLS_CATALOGS=	# не собирать NLS каталоги устанавливаемые для csh(1)
#NO_OBJC=		# не собирать Objective C support
#NO_OPENSSH=		# не собирать OpenSSH
#NO_OPENSSL=		# не собирать OpenSSL (implies NO_KERBEROS/NO_OPENSSH)
#NO_PF=			# не собирать PF firewall пакеты
#NO_PROFILE=		# Не компилировать библиотеки для профайлера
#NO_RCMDS=		# не собирать и неустанавливать BSD r* команды (rsh, etc).
#NO_SENDMAIL=		# не собирать sendmail и соответствующие программы
#NO_SHARE=		# do not go into the share subdir
#NO_SHARED= 		# собирать в /bin и /sbin статические линки (хреновая мысль)
#NO_SHAREDOCS=		# не собирать для 4.4BSD официальные документы
#NO_TCSH=		# не собирать и не устанавливать /bin/csh (which is tcsh)
#NO_TOOLCHAIN=		# не собирать программы для программ разработчиков
#NO_USB=		# не собирать usbd(8) и соответствующие программы
#MAKE_SHELL?=sh		# тут ясно кому надо включат

#NO_BIND=		# не собирать BIND
#NO_BIND_ETC=		# не копировать установленные файлы в /etc/namedb
#NO_BIND_LIBS_LWRES=	# тоже но по библиотекам
#NO_BIND_MTREE=		# не запускать mtree чтобы создать chroot дириктории
#NO_BIND_NAMED=		# не собирать named, rndc, lwresd, etc.
#NO_BIND_UTILS=		# не собирать dig, host, nslookup, nsupdate
#WITH_BIND_LIBS=	# ставить для BIND библиотеки и файлы

# OpenSSL поддерживает алгоритм IDEA, по умолчанию он
# отключен из-за патентных ограничений Соединенных Штатов. 
# Для его использования необходимо ознакомиться с лицензией,
# и, если ограничения приемлемы то врубаем ;)
#MAKE_IDEA=		# IDEA (128 bit symmetric encryption)

# Документация токо для ENG и RUS
#DOC_LANG=	en_US.ISO8859-1 ru_RU.KOI8-R

В конфиге make.conf можно настроить чтобы по команде "make update" в /usr/src
обновлялись порты ;) в конфиг нужно внести нижеследующее

SUP_UPDATE=
SUP=            /usr/bin/csup
SUPFLAGS=       -g -L 2 -z
SUPHOST=        cvsup.FreeBSD.org
SUPFILE=        /usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=   /usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=     /usr/share/examples/cvsup/doc-supfile

Опция - позволяющая указать на свой конфиг кернела и будет собирать при ${MAKE} buildkernel и устанавливатся ${MAKE} installkernel
KERNCONF=MYKERNEL

Дополнительно по csup можно посмотреть
http://www.freebsd.org/doc/handbook/cvsup.html
/usr/share/examples/cvsup/README

По опциям make
http://www.freebsd.org/cgi/man.cgi?query=make.conf&sektion=5
/usr/share/examples/etc/make.conf

Продолжение следует... :)



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=2979.

размещено: 2007-03-11,
последнее обновление: 2007-04-14,
автор: Raven2000

оценить статью:

Fmod, 2007-03-15 в 14:31:39

Нашел еще некоторую инфу по данному вопросу:
Для фри6.1

# Currently the following CPU types are recognized:
#   Intel x86 architecture:
#       (AMD CPUs)      opteron athlon64 athlon-mp athlon-xp athlon-4
#                       athlon-tbird athlon k8 k6-3 k6-2 k6 k5
#       (Intel CPUs)    nocona pentium4[m] prescott pentium3[m] pentium-m
#                       pentium2 pentiumpro pentium-mmx pentium i486 i386
#   Alpha/AXP architecture: ev67 ev6 pca56 ev56 ev5 ev45 ev4
#   AMD64 architecture: opteron, athlon64, nocona
#   Intel ia64 architecture: itanium2, itanium

т.е. вместо CPUTYPE=p3 нужно CPUTYPE=pentium3

Насчет опции CFLAGS:
1. "-О" Компилятор пытается сократить как размер кода, так и время его выполнения. И при этом не выполняет модификаций, которые могут затруднить отладку программы. Включает опции -fno-optimize-size, -fdefer-pop, -fthread-jumps, -fguess-branch-probability, -cprop-registers и-fdelayed-branch. Флаг -fomit-frame-pointer устанавливается только если применяемый отладчик способен работать без использования регистра указателя кадра стека.

2. "-О0" Действует по умолчанию. Отключает любые оптимизации размера кода и устанавливает флаг -fno-merge-constants.

3. "-О1" То же, что -О

4. "-О2" На этом уровне применяются все виды оптимизации, которые не требуют вычисления оптимального выбора между размером и скоростью кода. Кроме флагов, устанавливаемых при -О, дополнительно задействует следующие опции -foptimize-sibling-calls, -fcse-follow-jumps, -fcse-skip-blocks, -fgcae, -expensive-optimizations, -fstrength-reduce, -frerun-cse-after-loop, -frerun-loop-opt, -fcaller-aaves, -fforce-mem, -fpeephole2, -fshedule-insns, -fshedule-insns-after-reload, -fregmove, -fstrict-aliasing, -fdelete-null-pointer-checks и -freorder-blocka. Этот уровень оптимизации не разворачивает циклы, не выполняет оптимизацию подстановок (inlining) и переназначение регистров.

5. "-О3" В дополнение к опциям, включаемым при -О2, устанавливает также -finline-functions и -frename-registers.

6. "-Os" Оптимизирует размер программы. Устанавливает все опции, действующие при -О3. Устанавливает опции -falign-loops, -falign-jumps, -falign-labels и -falign-functions с параметром =1, что не допускает вставку пустого пространства для применения выравнивания.

Из моего опыта скажу что опцию CFLAGS лучше вообще не трогать, достаточно указать только тип проца,
CFLAGS установится автоматом.
P.S. насколько я понял все эти опции не учитываются при компиляции ядра. Можно конечно принудительно включить ммх и sse но фря скорее всего станет работать нестабильно и даже медленнее.

Ravem2000, 2007-03-15 в 17:29:29

Fmod>
Пасиб за корректировку у меня это конфиг был от 5.4 а теперь подправил до 6.2 :) Но след раз кидай на мыло иль в аську, а то форум какой-то :)
>понял все эти опции не учитываются при компиляции ядра
Учитывает.
>принудительно включить ммх и sse но фря скорее всего
SSE вопреки слухам ни на че невлияют поскоку ядро неиспользует мультимидийные инструкции, а активация оного лишь указывает на необходимость сохранения SSE регистров при переключении контекстов, а это уже тормоза :) но если вырубить то 2 или более мультимедийные приложения низя гробятся :) так что каждому свое. И мое слово лучше SMP он точно РУЛИТ! ;)
Мдя форум точно...

Fmod, 2007-03-17 в 17:37:29

Учту...

Кот, 2007-03-24 в 12:49:26

настройки флагов компиляции ядра делаются через переменную COPTFLAGS
так же дефолтовые ключи компиляции ядра тянутся из файлов /usr/src/sys/conf/kern.* (тама их 3 штуки, один пре, другой само ядро, третий пост)
попробывал насильно скомпилировать ядро с ключами
-mmmx -msse -msse2 -m3dnow
при этом в /usr/src/sys/conf/kern.mk отрубил ключи явно отрубающие данные оптимизации, в итоге ядро стартовало, но сразу же откинуло лапки и запаниковало.

XoMa, 2007-04-05 в 8:17:19

Забавно, но вот этот кусок из man make.conf (FreeBSD 6.2):
The following lists provide a name and short description for each variable you can use during the indicated builds.  The values of variables flagged as bool are ignored; the variable being set at all (even to``FALSE'' or ``NO'') causes it to be treated as if it were set.
Говорит о том, что bool значения в make.conf игнорируются и воспринимаются как установленные (читай true) при любом значении.
Или я не так понял ;)

XoMa, 2007-04-05 в 8:21:47

А ведь я понял правильно :)
Следующие строки из статьи:
NO_CPU_CFLAGS=false
NO_CPU_COPTFLAGS=false
на самом деле производят обратный эфект :(, т.е. отключают добавление -march=<cpu> при компиляции. Если их закоментировать, то -march=<cpu> добавляется.

f0b0s, 2007-04-12 в 18:54:16

В статье
# Здесь указываем дополнительные флаги
CFLAGS=-01 -pipe


В комментах
3. "-О1" То же, что -О



(разница — в одном случае 0 (ноль) в другом O (буква О).
вот на ноль ругаеццо (когда сделал копипаст конфига). говорит unrecognized option. На O вроде нет (ну как раз щас смотрю — компилиццо)

погуглил, везде тоже O (буква)

так что наверное в статье опечатка?

Raven2000, 2007-04-12 в 23:37:50

>f0b0s
Спасиб за обн-ю ошибочку опечатался :)

pinc, 2007-05-21 в 4:53:41

XoMa скорей всего прав , т.к в exampels NO_CPU_.... не имеют значения , в коментах написано только про недопущение , про принятие ниче не сказано , из этого делаем вывод что в представленном конфиге везде где значение no или false директива имеет обратное , запланнированому значение - ее нужно закоментировать.

ps по логике вещей все что можно разрешить в мэйке - по дефолту запрещено - и кербосы  и но-спу флаги

fvl, 2007-07-02 в 11:07:06

.if ${.CURDIR:M*/ports/*}
CFLAGS= -O2 -pipe -funroll-loops -s -frename-registers -ffast-math -fomit-frame-pointer
CXXFLAGS= -O2 -pipe -funroll-loops -s -frename-registers -felide-constructors -fno-rtti
.endif
.if ${.CURDIR:M*/usr/src/*} || ${.CURDIR:M*/usr/obj/*}
CFLAGS+= -O2 -fno-strict-aliasing -pipe -s
CXXFLAGS+= -O2 -fno-strict-aliasing -pipe -s
COPTFLAGS= -O2 -fno-strict-aliasing -pipe -s
.endif
CC=/usr/local/libexec/ccache/world-cc
CXX=/usr/local/libexec/ccache/world-c++

nd3, 2007-09-01 в 20:04:28

CPUTYPE?=nocona
CFLAGS= -O2 -pipe

Собирал мир, все работает стабильно.

pxel, 2007-11-09 в 2:35:25

COMPATXX=yes
CFLAGS =-O99 -pipe
CXXFLAGS += -fconserve-space
COPTFLAGS += -O99 -pipe
CPUTYPE=pentium4
WITH_LINUX=yes
BATCH=yes
UPGRADE_TOOL=yes
XORG_UPDATE=yes
X11BASE=/usr/local
USE_NONDEFAULT_X11BASE=yes

#### ####  #### #### ####   ####  ####  
#    #   # #    #    #   # #      #   #
###  ####  ###  ###  ####   ####  #    #
#    #   # #    #    #   #      # #   #
#    #   # #### #### ####  #####  ####

pxel, 2007-11-09 в 3:09:38

a luche vsego prochitat:
http://gcc.gnu.org/onlinedocs

naprimer:
ochen' xorosho opisani x86, nikogda nikakix problem ne voznikalo (ne govora uge o glukax). A optimizacija - bolshoj "+" dla sistemi v celom, dage zagruzku sistemi mogno sekundomerom sravnivat :)

edinstvennoe:
NO_PROFILE=true
etot parametr luche vcego ispolzovat pri globalnom perehode po jadram, no nikak ne dla sborki portov!

Sultan, 2007-11-11 в 16:56:18

Некоторые рекомендуют поступать следующим образом:

вместо
CPUTYPE?=Ваш_процессор

делать так:

NO_CPU_CFLAGS=true
NO_CPU_COPTFLAGS=true

CFLAGS=-pipe -march=i686 -mtune=Ваш_процессор
COPTFLAGS=-pipe -march=i686 -mtune=Ваш_процессор

В первом случае добавится "-march=Ваш_процессор", что  может лишить возможности перенести рабочую систему на другую платформу семейства x86.

Во втором же случае можно будет безболезненно перенести систему, просто переткнув жесткие диски с погибшей железки на pentium4, скажем, на athlon 64.

По поводу ключей оптимизации - лучше следить за тем, что в данный момент для используемой releng считается стабильным, иначе потом можно изрядно попортить себе нервы, отделяя глюки софта от влияния компилятора.

paix, 2008-04-09 в 11:55:58

+1 Sultan

оптимизации лучше не использовать

krilya, 2008-04-22 в 3:18:13

У меня процессор Duron 800, посмотрел aida пишет семейство K7, но в конфигурационном фале такого нет, как указать CPUTYPE ?

Raven2000, 2008-04-22 в 11:31:38

to krilya
посмотрите как определяет проц ваша система
# dmesg -a
то и пишите.

snark, 2008-04-30 в 18:38:22

Всем кому интересна тема CPUTYPE?= - заносите в закладки хорошее описалово. Да, там пингвин, но для make это сути дела не меняет ;)

Borojar, 2008-05-06 в 11:30:56

При CFLAGS=-O1 -pipe собранный из портов nettop выпадает в кору. При CPUFLAGS=-O2 -pipe работает нормально.
FreeBSD 7.0 Release

Borojar, 2008-05-06 в 11:32:03

опечатка, конечно-же CFLAGS=-O2 -pipe  :)

iZEN, 2009-05-14 в 12:07:34

Для 7.x это руководство устарело.
Многие опции вредны.
Многие опции перенесены в src.conf.

PhantomD, 2009-06-17 в 1:44:58

Duron
From 600 to 900 MHz. These models have a tbird-alike core model.

product: AMD Duron(tm) Processor version: 6.3.1
CFLAGS="-march=athlon-tbird -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

Ivan_83, 2009-07-06 в 21:50:59

Универсальное переносимое буде так:
native - означает что компилятор сам определит что за проц и соптимизирует под него. Архитектура оставлена универсальная, если тоже натив поставить то переносимость пострадает, по крайней мере на процы других фирм или более старые/менее фичастые.

NO_CPU_CFLAGS=
NO_CPU_COPTFLAGS=

CFLAGS= -march=i686 -mtune=native -O2 -fno-strict-aliasing -pipe
CXXFLAGS= -march=i686 -mtune=native -O2 -fno-strict-aliasing -pipe
COPTFLAGS= -march=i686 -mtune=native -O2 -fno-strict-aliasing -pipe

Ivan_83, 2009-07-17 в 8:43:20

CXXFLAGS=
лучше не трогать, иначе /usr/src/gnu/lib/libstdc++ не соберётся при сборке мира.

Vasya, 2015-06-27 в 0:57:38

АФТАР ЕБЛАН СОСИ ХУЙС


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 12 чел.
За последние 30 мин было: 49 человек
За сегодня было
188 показов,
58 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1183 секунд
Из них PHP: 53%; SQL: 47%; Число SQL-запросов: 77 шт.
Исходный размер: 122869; Сжатая: 24399