Этот документ является сборником вопросов и ответов, опубликованных в конференциях FidoNet(tm) RU.UNIX.BSD и RU.UNIX, конференции Usenet comp.unix.bsd.freebsd.misc, которые посвящены обсуждению вопросов, связанных с функционированием операционной системы FreeBSD, свободно распространяемого варианта ОС UNIX(r). Материал, включённый в этот документ, относится к различным версиям FreeBSD и по возможности не дублирует содержимого официального FAQ по этой операционной системе.
Последняя, обновленная версия Q&A доступна с www.FreeBSD.org.ua/qa/
Если вам кажется, что какой-то вопрос освещён в этом документе недостаточно или не затронут совсем, присылайте свои замечания и добавления составителю.
Так как материал, публикуемый в открытых конференциях FidoNet(tm) и Usenet, не является чьей-либо собственностью, составитель этого документа оставляет за собой право не указывать авторства приводимых советов и рекомендаций (из соображений удобства сопровождения), хотя это будет сделано по первому требованию стороны, считающей себя потерпевшей. Список тех, кто присылал свои замечания и чьи рекомендации использованы при составлении этого документа, приведён в разделе благодарностей.
Основным источником информации об этой системе являются официальный сайт FreeBSD, конференции Usenet comp.unix.bsd.freebsd.announce и comp.unix.bsd.freebsd.misc. В сети FidoNet(tm) имеются русскоязычные конференции RU.UNIX.BSD и RU.UNIX, в которых обсуждаются вопросы, связанные с работой FreeBSD и UNIX(r) вообще. Эти конференции доступны через Usenet как relcom.fido.ru.unix.bsd, fido7.ru.unix.bsd и relcom.fido.ru.unix, fido7.ru.unix соответственно. Ответы на некоторые вопросы можно также найти в конференциях FidoNet(tm) RU.LINUX и RU.UNIX.LINUX, также доступные через Usenet как relcom.fido.ru.linux, fido7.ru.linux и fido7.ru.unix.linux соответственно.
Обратите внимание на сервер Ассоциации Русскоязычных Пользователей FreeBSD, располагающийся по адресу http://www.freebsd.org.ru/.
Кроме того, существует ряд русскоязычных серверов, посвящённых ОС UNIX(r) вообще и FreeBSD в частности. Вот некоторые из них:
Во FreeBSD логотип - симпатичный чертёнок (вернее, даемон - нечто вроде личного демона, обязанного помогать своему владельцу и к силам зла отношения не имеющего) с вилами, а в Linux - (глупый) пингвин (робко прячет тело жирное), что достаточно пошло и совсем не круто ;)
2.2.8-RELEASE является последним релизом в ветви 2.2-stable. Считается, что 3.0-RELEASE - всё ещё экспериментальный релиз, а 2.2.x - стабильный, проверенный временем, однако с некоторыми принципиальными недостатками (например, работа VM). Есть мнение, что FreeBSD 2.2.8 предпочтительней ставить на сервер, а 3.0-RELEASE - на рабочие станции (правда, хорошо подумав ;)
Основные изменения по сравнению с предыдущим релизом описываются в файле RELNOTES.TXT, который находится в корневом каталоге дистрибутива соответствующей версии FreeBSD, например, для 3.0-RELEASE, этот файл находится по адресу ftp://ftp.freebsd.org/pub/FreeBSD/3.0-RELEASE/RELNOTES.TXT.
Что нового в 3.0-RELEASE:
переход на формат ELF
поддержка вызова poll() вместо select()
новый подход к дисковой подсистеме - через CAM
улучшена работа с APM - на материнских платах ATX можно отключить кнопку выключения питания и выключать компьютер командой halt -p .
много чего ещё ;)
Обратите также внимание на предложение Александра Поволоцкого.
Это форматы объектных файлов, которые используются в большинстве UNIX-систем. Наиболее совершенным считается ELF. Так как в настоящее время поддержка формата a.out потихоньку отмирает (например, в стандартных GNU-утилитах), то FreeBSD перешла на формат ELF, начиная с версии 3.0-RELEASE. Полностью в формате ELF (то есть и ядро тоже) работает 3.1-RELEASE.
Первым делом нужно сделать зеркало официального каталога с соответствующим релизом FreeBSD, например, взяв ftp://ftp.gamma.ru/pub/FreeBSD/3.2-RELEASE. Зеркало нужно делать с сохранением регистра всех файлов, поэтому это лучше делать из-под FreeBSD утилиткой, поддерживающей зеркалирование, типа lftp.
Нужно зазеркалировать каталоги bin, catpages, compat1x, compat20, compat21, dict, doc, flopppies, games, info, manpages, ports, proflibs, src, XF86333, tools, а также взять файлы в корне каталога с релизом (*.TXT, *.inf). Каталог des брать не следует, так как он содержит программное обеспечение, запрещённое к использованию вне пределов США. Кроме того, вы можете взять дополнительные программы из каталогов xperimnt и commerce.
Всё выкачанное складывается в один каталог, скажем, /usr/cd, так же, как и на официальном мирроре (то есть файл cdrom.inf должен находиться в каталоге /usr/cd). Обратите внимание, что общий размер не должен превышать 650 Мб (325000 extents), максимум 330000 extents.
Во FreeBSD нужно установить порт (или пэкидж) sysutils/mkhybrid
Выполняем команду # mkhybrid -b floppies/boot.flp -h -r -J -o cdimage.iso usr/cd/ -b Бутявый сидюк получается, круто :-) -h гибридный имедж (чтоб и под МастДаем читались длинные имена) -r Generate Rock Ridge + что то там полезное делает с пропертями файлов -J Generate the Joliet extensions (расширение МастДая) -o имя имеджа, в который будет все енто хозяйство литься.
Вот последовательность действий: 1. pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupit.tgz 2. Say yes to everything except to do the Update and the firewall, ports as you wish... 3. vi /etc/cvsupfile 4. change RELENG_2_2 to RELENG_2_2_6_RELEASE 5. cvsup -L 2 -g /etc/cvsupfile 6. cd /usr/src 7. make world (do not reboot afterwards, this takes a long time). 8. backup /etc/ (cd /etc; tar cvf /tempdir/etcback.tar) 9. cd /usr/src/sys/i386/conf 10. cp GENERIC MYKERNEL (your kernel) 11. vi MYKERNEL (edit as desired) 12. config MYKERNEL 13. cd ../../compile/MYKERNEL 14. make depend; make; make install 15. cd /usr/obj/etc (not sure on this one, pulling from memory) 16. rm master.passwd, group, rc.conf (look at this one and merge where necessary), and whichever other files you have modified. 17. copy to /etc the rest (with subdirectories). 18. vi /etc/fstab 19. change wd0a to wd0s1a 20. reboot the beast
В файл sup/refuse добавьте строчку вида doc/es* doc/ja* doc/zh* Для коллекции портов нужно исключить каталоги ports/chinese, ports/german, ports/japanese, ports/korean, ports/vietnamese.
Фирма "ФольКом-Книга" представляет в Москве многие известные издательства (O'REIILY, Prentice Hall, etc):
ассортимент богатый, довольно много книг по тематикам: UNIX, TCP/IP, X Window System.
цены издательские, такие же как у компании Prentice Hall.
есть возможность заказать книги по каталогу _без_предоплаты_! (что я и сделал)
народ там работает очень приятный и обходительный
Их телефон: 251-4504 Адрес: 1-я Тверская-Ямская, дом 2 строение 1. Метро Маяковская, здание, где ресторан "София", с обратной стороны. Белая дверь, рядом вывеска редакции журнала "Юность". Второй этаж, дверь налево. Телефон-факс - 251-4504.
Имеется веб сервер: http://www.telekom.ru/elvis-telecom/rus/volcom-book/index.html и адрес электронной почты: books@volcom.msk.ru
Обзор этих операционных систем, кроме соответствующих официальных серверов ( http://www.FreeBSD.org/, http://www.netbsd.org/ и http://www.openbsd.org/), можно найти по адресу http://www.osp.ru/os/1997/03/37.htm на сервере издательства "Открытые системы".
В файле /usr/src/release/sysinstall/install.cfg находится конфигурация начальных параметров инсталляционной программы. Вам нужно сгенерировать установочный диск.
В файле /sys/i386/conf/LINT содержится все, что вообще можно менять при построении ядра.
Вот так: controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr disk wd2 at wdc1 drive 0 disk wd3 at wdc1 drive 1 options ATAPI #Enable ATAPI support for IDE bus options ATAPI_STATIC #Don't do it as an LKM device wcd0 #IDE CD-ROM
Оно появляется в случае, когда существует устройство, не описанное в конфигурационном файле ядра. Например, не описано устройство lp0. Может быть, что в BIOS разрешен второй контроллер. Достаточно либо добавить устройство в конфигурацию ядра либо отключить его в BIOS или физически.
Это сообщение значит, что в течении некоторого времени сетевому адаптеру не удалось осуществить передачу или потеряна связь с хабом.
Возможные причины: 1) Неполадки в кабельном хозяйстве, неправильно (или неплотно) вставлен сетевая розеточка, болтается коннектор в разъеме, терминатор не терминирует ;) Хаб выключен. Если компьютер не подключен к сети, оденьте терминатор на сетевой разъём. При работе с коаксиалом довольно часто пользователи дергают провода и обрывы возникают. Незаземленный компьютер выдает нагрузку на коаксиал (особенно при включении/выключении) - целый сегмент работает со сбоями. 2) Неправильно задано прерывание при описании адаптера в конфигурационном файле ядра. 3) Такое частенько возникает при использовании адаптеров типа Compex RL2000A ISA на машине с процессорами AMD.
Такое сообщение появляется на разделах с недостаточным количеством inode, например, содержащем сервер конференций. Нужно увеличить количество inode для системы.
Это значит, что сетевой адаптер был переведен в режим, при котором он будет принимать пакеты, предназначенные не только ему, но и все, проходящие по сети. Режим включается при запуске утилит типа tcpdump или trafshow (и выключается при корректном завершении их работы.
Если вы не запускали подобные утилиты, то скорее всего, злобные кракеры уже заломали вашу машину и запускают сниффер на соответствующем интерфейсе.
При запуске утилиты trafshow с ключом -p этот режим не включается.
Обратите внимание, что при работе с активным сетевым оборудованием, типа Catalyst или LinkBuilder, имеется возможность запрета прохождения _всего_ трафика на сетевой адаптер, то есть даже в этом режиме сетевой адаптер ничего, кроме пакетов, адресованных ему, от него, запросов ARP, мультикаста, широковещательных, не увидит.
Чтобы запретить перевод сетевого адаптера в этот режим, нужно исправить/убрать в драйвере адаптера ioctl, реализующий этот режим, либо изменить настройки активного сетевого оборудования для этой машины. Можно также изменить ядро следующим образом: /usr/src/sys/net/if.c: ifp->if_flags = (ifp->if_flags & IFF_CANTCHANGE) | - (ifr->ifr_flags &~ IFF_CANTCHANGE); + (ifr->ifr_flags &~ (IFF_CANTCHANGE | IFF_PROMISC));
Для того, чтобы ядро сообщало и об отключении этого режима, нужно в файле /usr/src/sys/net/if.c в функции ifpromisc(ifp, pswitch) строчку log(.. mode enabled ..) скопировать чуть пониже, исправив комментарий.
Такие сообщения появляются, когда некий процесс не успевает считывать буферы приема от коммуникационного адаптера, как правило, на медленных машинах при работе "тяжелых" приложений типа X-сервера или при завышенной скорости обмена с последовательным портом. Проблема решается увеличением внутренних буферов ядра, на предмет чего существовал патчик, который стоит поискать в списках рассылки по ключевому слову silo overflow. Вообще это сообщение никаких сторонних эффектов не вызывает.
Попробуйте исправить файл /sys/i386/isa/sio.h следующим образом: #define RB_I_HIGH_WATER (TTY_HOG / 2) #define RS_IBUFSIZE (TTYHOG / 4) и в файл конфигурации ядра добавить: options "MSIZE=256" options "TTYHOG=4096"
Другой причиной может быть конфликт IRQ, который занимает коммуникационный адаптер (или внутренний модем) с каким-то оборудованием. Рекомендуется ставить стандартные значения IRQ для последовательных портов, то есть 4 и 3 для sio[02] и sio[13] соответственно.
Также может быть, что микросхема UART распознается некорректно, например, 16450 вместо 16550A, что влияет на количество буферов FIFO.
Добавьте в файл конфигурации ядра следующую строку: options SC_DISABLE_REBOOT # disable reboot key sequence
Это число перекомпиляций ядра (вернее, перекомпиляций без удаления каталога /sys/compile/CONFIG). Оно хранится в файле /sys/compile/CONFIG/version. При выполнении команды config CONFIG этот файл либо стирается (в версиях FreeBSD до 3.0), либо число в нем увеличивается. Обратите внимание также на ключи -n (в версиях FreeBSD до 3.0-RELEASE) и -r (3.0-RELEASE и выше).
Сообщения ядра выводятся на терминал, на которых работает пользователь root. Поэтому прежде всего прекратите работать как root (root is lame), заведите для обычной работы обычного пользователя, а в случае необходимости выполняйте команду su. Также посмотрите файл /etc/syslog.conf, в котором описано, куда будут направляться сообщения ядра.
LKM - Kernel Loadable Module, KLD - Kernel Loadable Driver - подгружаемые модули ядра. LKM предназначен для 2.2.x и 3.x (ядро a.out), KLD для 3.x (ядро elf). Некоторое время назад было принято решение об отказе от LKM в пользу KLD. Посмотрите страницы справочника по команде modload.
Это число обозначает количество устройств, то есть для создания устройств для виртуальных терминалов с /dev/ttyv0 по /dev/ttyv6 включительно, нужно выполнить команду MAKEDEV ttyv7.
Оно означает, что в системе слишком много открытых файлов.
Ограничения, качающиеся работе с файлами, можно посмотреть в системных переменных ядра kern.maxfiles и kern.maxfilesperproc по команде sysctl -a | grep 'maxfile'. Командой pstat -T можно посмотреть количество файлов, открытых в данный момент.
Чтобы избавиться от этого сообщения, нужно увеличить значение параметра maxusers в конфигурационном файле ядра. При значении этого параметра, равном 30, можно открыть до 1000 файлов, обычно открыто около 500.
Дело в том, что загрузчик FreeBSD ищет первый раздел с типом A5, и пытается произвести загрузку с него.
Обычно перезагрузка выполняется через клавиатурный порт. Однако на некоторых материнских платах он работает некорректно, поэтому применяются другие способы.
В конфигурационный файл ядра нужно включить такую строку:
options BROKEN_KEYBOARD_RESET
Это сообщение означает, что алгоритм размещения файлов в фаловой системе был сменен с оптимизации по объему на оптимизацию по времени доступа. Более подробная информация может быть найдена на страницах Справочника по newfs и tunefs.
Список аппаратного обеспечения, с которым может работать FreeBSD, находится в файле HARDWARE.TXT корневого каталога дистрибутива соответствующей версии FreeBSD, например, ftp://ftp.freebsd.org/pub/FreeBSD/2.2.8-RELEASE/HARDWARE.TXT.
Да. Памяти должно быть около 8 мегабайт (и выше). BIOS может и не поддерживать LBA (есть работающий вариант с винчестером 1.02Гб).
Да, но их поддержка включена в систему начиная только с FreeBSD 3.0-RELEASE.
Да, начиная с 3.0-RELEASE. Драйвер должен быть сделан по стандарту CAM, последние версии таких драйверов находятся в каталоге ftp://ftp.freebsd.org/pub/FreeBSD/development/cam.
Адаптер 3c90x поддерживается FreeBSD начиная с версии 2.1.6, устройство называется vx.
Адаптеры семейства 3Com 3c905B Fast Etherlink XL, a именно:
10/100BaseTX
10/100BaseT4
10/100BaseFX/SC
Для более старых версий FreeBSD можно попробовать поставить драйвера, взяв их на домашней странице разработчика по адресу http://www.freebsd.org/~wpaul/3Com/.
Заметьте также, что начиная с некоторой 2.2-stable некоторые адаптеры, опознававшиеся как устройства vx, распознаются как xl.
Да. В конфигурационном файле ядра достаточно описать ее как "device ed?" Однако по существу - это старый добрый NE2000, только для шины PCI. Карты Compex не славятся сильным BNC трансивером, хотя старые модели работают прекрасно. Хорошо работает FL32PnP (с чипом DEC21041). http://www.compex.com.sg/
Считается, что Intel EtherExpress (fxp0) работает _очень_ хорошо, в то время как драйвер для 3Com (xl0) появился совсем недавно.
В машине ftp.cdrom.com стоит именно адаптер Intel EtherExpress Pro 10/100B. Утверждается, что при его использовании достигается наименьшая загрузка процессора.
Имеются сообщения, что Intel EtherExpress плохо ведет себя (пропадание интерфейса, не выполняется fastboot) при скорости 10Mbit на материнских платах от Intel (Модели Эндевер и Марл), на ASUS все нормально. Также на материнской плате Intel Atlantis.
Такие адаптеры делаются, как правило, на наборах микросхем от фирмы DEC - Digital 21x4x. Такие адаптеры производят фирмы ZNYX ZX314 10Mb (www.znyx.com) на 4 порта и SMC (www.smc.com). После покупки фирмы Cogent фирма adaptec должна производить такие адаптеры.
Стоят они несколько дороже, но позволяют сэкономить PCI-слоты на материнской плате (скажем, обеспечить 16 портов ethernet при 4 слотах PCI :).
Устройство на основе набора микросхем от DEC называется de. Есть мнение, что они одни из самых производительных.
Да. Модели: PC/Xe 8/xe. В ядре нужно прописать устройство dgb0, а после перекомпиляции ядра создать устройства ttyD01..ttyD07. Однако по отзывам, драйвер работает недостаточно стабильно - наблюдается потеря данных при большой нагрузке. В системе BSD/OS 2.1 эти адаптеры работают нормально.
В настройке BIOS установите явно адреса ввода-вывода параллельного порта (зачастую в BIOS на PCI/PnP материнских платах он определен как AUTO).
Информация о поддержке Zip находится на сайте http://www.prism.uvsq.fr/~son/ppa3.html. Версия 0.40 этого драйвера работает на FreeBSD 2.1.6, хотя достаточно медленно.
Да. Начиная с 3.0. В более ранних версиях системы требуется, чтобы корневая файловая система не выходила за пределы 1024 цилиндра. Есть сообщения об успешной эксплуатации диска размером 2.5Гб, на котором начальные 800Мб занимает файловая система NTFS.
Да. Рекомендуется воспользоваться драйверами из комплекта Open Sound System на сервере http://www.4front-tech.com/
Полная информация о поддерживаемых контроллерах RAID имеется на странице Майка Смита (Mike Smith) по адресу http://people.freebsd.org/~msmith/RAID/.
Экспериментальный драйверы для таких контроллеров можно найти на страничке Майка Доусона (Mike Dawson) по адресу http://www.doc.ic.ac.uk/~md/ida/.
Адаптеры от фирмы Cronyx всех видов (синхронные и асинхронные) имеют драйверы для 3.0. Дешёвые асинхронные мультипортовки - Moxa. Асинхронные адаптеры также производит фирма Zelax. Можно также найти Specialix SI 8 port.
Работают адаптеры Compex (устройство de). Вообще там чипсет 21140, 21142, 21143. У Compex есть адаптеры на разных чипах с одинаковым названием. Для 21041 нужно жестко указывать mediaoption на 10BaseT.
Есть сообщения о нормальной работе: 2.2.8-RELEASE на HP NetServer E45 PII/266
Да. В поставку FreeBSD входит несколько прошивок для разных типов сетевых адаптеров. Для бездисковой загрузки нужен работающий NFS-сервер. В Handbook описана процедура конфигурации такой рабочей станции.
Почитайте рекомендации в файле /sys/i386/isa/sns/CARDS
Есть положительные отзывы о: A/Open AW35 Pro на чипсете CS4327 (без MIDI) GUS MAX (без PnP) AWE64 PnP Подходит любая, хорошо давящая шумы шины и Sound Blaster совместимая (SB16). Если адаптер PnP, нужно будет отдельно настроить PnP. Посмотрите также страничку Луиджи. Для PnP адаптера можно сделать так (для ESS1868): controller pnp0 controller snd0 device sb0 at isa? port 0x220 irq 5 drq 1 conflicts vector sbintr либо controller pnp0 controller snd0 device pcm0 однако pcm0 дает сравнительно мало возможностей Посмотрите также на драйвера OSS: http://www.opensound.com/
PnP нормально работает с версии 2.2.6 Устройство pnp0 предназначено только для инициализации устройств. В конфигурационном файле ядра нужно добавить: controller pnp0 Посмотрите на утилиту pnpinfo Правда, PnP устройства нужно буде проинициализировать Boot: -cv pnp святым духом не инициализируется. Загрузи ядро с ключем -c, сконфигури свои pnp-устройства к примеру вот так: pnp 1 0 enable os port0 0x220 port1 0x330 port2 0x388 irq0 5 drq0 3 drq1 5 pnp 1 1 enable os port0 0x200 drq0 4 drq1 4 pnp 1 2 enable os port0 0x620 port1 0xa20 port2 0xe20 drq0 4 drq1 4 Это рабочий вариант для AWE64. Для ESS1868: pnp 1 1 os enable irq0 5 drq0 4 port0 0x220
Это модем A/Open f34, без UART, работает только с Windows(tm). Не имеет джамперов настройки IRQ, под Windows NT не работает без pnpisa.inf на чипсете Rockwell.
Нужно иметь витую пару со следующей распайкой:
1------------3
2------------6
3------------1
6------------2
Взгляните на страничку http://www.cs.utk.edu/~shuford/terminal/
В коллекции портов находится sane. Также посетите сайт http://www.sane.org.
Посмотрите на вывод команды top. Можно также запустить пару счетных задач типа газовой динамики.
Для этого нужно прописать в файл /etc/boot.config строчку, обычно вводимую при загрузке с клавиатуры:
wd(1,a)/kernel
или
1:wd(2,a)/kernel
Вам нужно иметь правильно распаянный кабель:
Черный кабель (для Smart-UPS) 2 >-----------------------> 2 3 >-----------------------> 1 5 >-----------------------> 9 G +-----------------------+ G (Общий)
Серый кабель (для Back-UPS) ----------+ 4 >-----------------------> 1 +------------ | 5 >-----------------*-----> 4 | Компьютер | +-----> 9 | UPS RS-232 | 8 >-----------------------> 2 | ----------+ G +-----------------------+ G (Общий) +------------
Программное обеспечение можно найти в следующих местах:
Для FreeBSD имеется несколько программ: upsd - Входит в дистрибутив FreeBSD (см.каталог xperimnt/upsd/) В исходниках, написан под Smart-UPS. Последнюю версию можно взять, например, на ftp://ftp.ww.net/pub/wildwind/upsd. Документация - КРАЙHЕ СКУДHАЯ! PowerFail - Hаписан в МАИ под FreeBSD, продукт КОММЕРЧЕСКИЙ (вроде). В поставке описание установки и бинарник с man-файлом. ups - Hаписан juriy@packet.zaporizhzhe.ua (Juriy S. Krivosheev) под Back-UPS. Можно взять на ftp://ftp.packet.zaporizhzhe.ua smartups - Так же Входит в дистрибутив FreeBSD (см.директорию xperimnt/upsd/) powerfail - Hаписан rac@sherpa.UUCP (Roger Cornelius) 13 May 1990. (pf.tar) Исправлен/дополнен ron@mlfarm.com 7 Mar 1992 В исходниках с Readme и man-файлом. Этот скрипт и другие подобные можно взять на http://www.westnet.com/providers/
Проверьте, что нет конфликтов IRQ например, с принтером (IRQ7).
Воспользуйтесь командой cat /dev/sndstat. Ее вывод имеет примерно такой вид:
VoxWare Sound Driver:3.0-beta-950506 (Sun Feb 5 14:38:12 EST 1995 freebsd-hackers@freefall.cdrom.com)
Config options: ffffffff
Installed drivers:
Type 1: OPL-2/OPL-3 FM
Type 2: SoundBlaster
Card config:
SoundBlaster at 0x220 irq 7 drq 1
OPL-2/OPL-3 FM at 0x388 irq 65535 drq 4294967295
Audio devices:
0: SoundBlaster Pro 3.1
Synth devices:
0: Yamaha OPL-3
Midi devices:
0: SoundBlaster
Timers:
0: System Timer
Mixers:
0: SoundBlaster
Например, так:
controller snd0
device sb0 at isa? port 0x220 irq 5 drq 1 vector sbintr
device opl0 at isa? port 0x388
При загрузке система опознает адаптер следующим образом:
sb0 at 0x220 irq 5 drq 1 on isa
sb0: <SoundBlaster Pro 3.1>
opl0 at 0x388 on isa
opl0: <Yamaha OPL-3 FM>
Да. Для этого нужно: 1) Скомпилировать ядро с опцией options "EXT2FS" 2) Смонтировать раздел командой mount -t ext2fs /dev/linux /mnt/mount Однако при этом существуют проблемы с нормальным закрытием файловой системы при остановке системы.
Да, с помощью устройства ccd можно сделать из нескольких дисков один большой (RAID-0). При этом может быть достигнуто почти двукратное ускорение работы с диском за счёт распараллеливания операций ввода-вывода.
Кроме того, в поставку FreeBSD 3.1-RELEASE включен vinum - программная реализация RAID-1 (зеркалирование дисков). Согласно странице Справочника, у автора имеется вариант, реализующий и RAID-5, однако из-за лицензионных ограничений он не включён в поставку системы. Подробная информация о vinum располагается по адресу http://www.lemis.com/vinum.html
Попробуйте набор утилит mtools. Начиная с версии 2.2.7 FreeBSD поддерживает VFAT.
Образование таких файлов - вполне нормальное явление в BSD, такие файлы являются "дырявыми" и занимают реально, как правило, несколько блоков файловой системы. Посмотрите, что выдаст команда du файл
Избавиться можно, стерев файл (либо поредактировав его, уничтожить пустое место).
Такой файл может создать программа quotacheck на большом (4Гб) разделе. Избавиться от этого можно, отключив квотирование дискового пространства.
Он значит, что даже при наличии прав rwxr-xr-x на файл, запустить его с этой файловой системы будет невозможно. Это делается на случай файла с правами rwsr-xr-x и владельцем root.
В файле конфигурации ядра обратите внимание на flags.
Попробуйте поставить следующие значения:
0x80FF
0xA0FF - C/H/S, DMA
0xB0FF - LBA, DMA
Некорректная работа с PCI контроллером IDE бывает на чипсетах от VIA. Это исправлено в 3.1-RELEASE.
Не рекомендуется выставлять дополнительные флаги для работы с DMA и 32-разрядным доступом драйверу wd на таких материнских платах.
Да. Поддержка FAT32 появилась, начиная с FreeBSD 2.2.7. Смонтировать можно, например, командой
mount -t msdos /dev/раздел_с_Windows /mnt
Более подробную информацию можно получить из страницы справочника по mount_msdos.
Как (не) все знают, IP адрес занимает 4 байта и разделяется на номер сети и номер хоста в ней. Адрес сети - это число, остающееся от IP адреса, после наложения на него AND'ом маски сети (netmask). Hапример: Адрес: 11000000 10101000 00000000 00000000 Маска: 11111111 11111111 11111111 00000000 Адресуют сеть 192.168.0.0 (это одна из зарезервированных сетей) Все номера делятся на: сети класса "A" - номер начинается с "0.......", маска принимается равной 255.0.0.0. Всего таких сетей 126, т.к. сеть #0 не исполь- зуется. Кроме этого из этого диапазона зарезервирована сеть 10.0.0.0 для использования в частных сетях (не подключенных к Internet). В каждой сети может быть до 16 млн. хостов. Еще в этом диапазоне зарезервирована сеть 127.0.0.0, которая адресует loobback-адаптер (петлю на себя, с адресом 127.0.0.1). Сети класса "B" - номер начинается с "10......", маска принимается равной 255.255.0.0. Всего сетей тысячи, допустимое количество хостов в каждой - до 65534. Зарезервированные номера сетей - 172.16.0.0-172.31.0.0. Сети класса "С" - номер начинается с "110.....", маска принимается равной 255.255.255.0. Всего сетей миллионы, допустимое количество хостов в каждой - 254. Зарезервированные номера сетей - 192.168.0.0-192.168.255.0. Multicast сети - номер начинается с "111.....". Сети предназначены для рассылки (как правило) служебной информации (например таблиц маршрутизации) или организации трансляции в сети. Дальнейшее разбиение сети с помощью маски (например установка маски 255.255.255.0 для сети класса "B") называется subnetting и служит для настройки маршрутизации внутри выделенной сети (маска, кстати, не может содержать в себе единицы справа от нуля, т.е. маска вида 1111111 11111111 10110000 00000000 некорректна). Маска (как и адрес) может записываться в виде dotted-decimal (xxx.xxx.xxx.xxx) либо просто в виде числа (в десятичной, шестнадцатеричной либо двоичной системе счисления - неважно. Hедавно в Internet Explorer 4.0 была обнаружена ошибка с обработкой зон безопасности именно по этой причине.) Кроме этого маска может записываться в виде IP Address/Mask bits, т.е. количество бит установленных в 1-цу и определяющих номер сети. Маршрутизация в Internet осуществляется на основе номера сети. Т.е. на маршрутизаторах имеется запись "сеть номер xxx доступна через левого (правого, верхнего, нижнего) соседа. При получении IP пакета его заголовок анализируется, и пакет переправляется дальше по трассе. В связи с этим никакие сети не должны перекрываться или иметь одинаковые номера (совсем недавно у знакомого были проблемы из-за попытки использовать маршрутизацию с сетью (номера я уже не помню, важен принцип) #192.168.111.0/24 и #192.168.111.128/25. Эти сети частично перекрываются, и, естественно, пакеты, которые должны были отправляться на вторую сетевую карту компьютера, отправлялись на первую). Остаток адреса (маскированный 0'ми маски) представляет собой номер хоста, подключенного к internet. Если номер представлен всеми нулями, он адресует саму сеть, и для нумерации хостов не используется. Так же не используется номер из всех единиц (в двоичной нотации), который представляет из себя адрес "для всех хостов в данной сети". Этот пакет попадет на все компьютеры в сети (Hа основе этого работает, например, опрос "кто в сети" Windows- машин, при использовании режима B-node, М-node либо H-node)
Пусть нам выдан IP-адрес 192.168.10.1 с маской 255.255.255.0 IP адрес машины прописывается в скриптах, выполняемых при старте системы. Для старых версий FreeBSD (< 2.2.2) это файл /etc/sysconfig, для новых файл /etc/rc.conf. Можно почитать страницы Справочника, описывающие содержимое этого файла на предмет network_interfaces. Рекомендуется также посмотреть FAQ и Руководство. IP-адрес присваивается не машине, а ее сетевому интерфейсу. Конфигурацию сетевых интерфейсов машины можно посмотреть, выполнив команду ifconfig -a. Кроме всего прочего, у одного интерфейса может быть несколько IP адресов (что задается параметром -alias). 1) Нужно, чтобы при загрузке FreeBSD обнаружила сетевой адаптер. По команде dmesg можно посмотреть сообщения этапа загрузки и выяснить, как называется сетевой интерфейс. Если сетевой адаптер не был найден, нужно перекомпилировать ядро с поддержкой вашего адаптера. 2) Задать адрес и маску, например, ifconfig ed0 192.168.10.1 -netmask 255.255.255.0 3) Маршрутизация на локальный сегмент вашей сети выставляется автоматически, в чем можно убедиться, выдав команду netstat -rn 4) Если у вас нет сетевого адаптера или все, что вам нужно - работа команды ping или машины в режиме сама с собой, то все делается командой ifconfig lo0 192.168.10.1 netmask 255.255.255.255 alias Рекомендуется также воспользоваться системным конфигуратором - /stand/sysinstall в разделе Configure/Network.
Скорее всего, не хватает строки route add -host 192.168.10.1 127.0.0.1 при загрузке системы.
Скорее всего, не согласованы параметры компрессии (ключ -c) на обоих сторонах SLIP-соединения. Однако может быть, что сервер, к которому вы подключаетесь (так ведет себя, например, arch.relcom.ru), выполняет проверку DNS на соответствие вашего IP-адреса и имени вашего хоста и принудительно закрывает соединение.
Для этого предназначен natd в связке с ipfw. Если вы работаете с PPP, посмотрите описание параметра -alias. Также посмотрите программу ipfilter.
1) ucd-snmp из портов. Есть особенность: если в snmpd.conf строчку с директивой exec закончить пробелом, то snmpd аварийно завершает работу с созданием core-файла. 2) scotty 3) tkined
DHCP - Dynamic Host Configuration Protocol, предназначенный для автоматического конфигурирования настроек сети при включении компьютеров в сети (как правило, клиентских машин типа Windows95).
Такое случается, если у вас сетевые адаптеры 3c509 В конфигурационном файле ядра есть такая строка: # ep: 3Com 3C509 (buggy) Имеются сообщения, что есть разные прошивки адаптеров, которые ведут себя некорректно Нужно отключить с помощью утилиты 3x5c9cfg режим PnP на адаптере. Замените адаптеры на другие Другой выход: увеличить значение параметра NMBCLUSTERS в ядре.
Из командной строки: ifconfig ed0 inet 192.168.10.1 netmask 255.255.255.0 ifconfig ed0 inet 192.168.10.5 netmask 255.255.255.0 alias ifconfig ed0 inet 192.168.20.1 netmask 255.255.255.0 alias ... ifconfig ed0 inet 192.168.30.1 netmask 255.255.255.0 alias или в /etc/rc.conf ifconfig_ed0="inet 192.168.10.1 netmask 255.255.255.0" ifconfig_ed0_alias0="inet 192.168.10.5 netmask 255.255.255.0" ifconfig_ed0_alias1="inet 192.168.20.1 netmask 255.255.255.0" ... ifconfig_ed0_aliasN="inet 192.168.30.1 netmask 255.255.255.0" Нужно еще не забыть route add ${ALIAS} 127.0.0.1 во FreeBSD 2.1.0 была неприятность, связанная с работой route, который срабатывал со второго раза.
Попробуйте поставить следующие параметры в smb.conf: workgroup = MYGROUP domain master = yes local master = yes preferred master = yes os level = 30
Попробуйте скомпилировать samba без опции -DFAST_SHARED_NODES либо проверьте наличие опции SYSVSHM в ядре.
Поищите на странице Справочника по samba описание команды dfree, в поставке есть пример скрипта, отрабатывающего эту команду. При этом параметр max disk size особого значения не имеет, а только вводит пользователя в заблуждение. При наличии квот на файловую систему нужно перекомпилировать samba с опцией -DQUOTAS. При этом свободное место показывается как разница между soft-limit и занятым объёмом, хотя писать можно вплоть до исчерпания hard-limit.
Samba, идущая в поставке FreeBSD, откомпилирована без -DQUOTAS, поэтому нужно будет изменить порт.
В ядре option NETATALK и среди пакаджей найти netatalk и asun. Правда, есть мнение, что при этом несколько падает устойчивость системы в целом.
Это число точно соответствует размеру блока, с которым создана файловая система FFS. Почитайте страницы Справочника по tunefs и fs вообще.
Прежде всего убедитесь, что вы еще не достигли предела, замерив скорость прокачки большого файла по ftp (например, через FAR). Скорость можно увеличить, указав среди параметров socket options = TCP_NODELAY. Также почитайте файле Speed.txt в каталоге с документацией дистрибутива. Другие причины и способы: 1) Убрать в Win95 все ненужные протоколы, кроме TCP/IP. 2) Нехватка памяти на samba. Добавить памяти. ;) 3) Плохое кабельное хозяйство. 4) Медленный диск/контроллер. 5) Сеть/сервер загружены транзитным трафиком.
Можно перекомпилировать samba, задав в makefile WORKGROUP=MYGROUP.
Попробуйте _корректно_ прописать хосты в /etc/hosts, то есть сначала полное имя хоста, а потом все короткие имена.
man dummynet. Появилось в 2.2.8-RELEASE.
Вот так:
/sbin/ipfw add pass tcp from any to any established
/sbin/ipfw add pass tcp from <myIPs> to <POP> 110 setup
/sbin/ipfw add deny all from any to any
Здесь не мешало бы разрешить обращение к DNS и loopback-интерфейсу.
В /etc/rc.firewall есть простые примерчики.
Вполне может быть, что вы забыли разрешить какой-нибудь сервис, например, DNS.
Кроме того, опцией ядра IPFIREWALL_VERBOSE можно включить вывод отладочной информации, что поможет в отладке брандмауэра.
По умолчанию во FreeBSD выключена буферизация операций записи на диск.
Посмотрите примеры конфигурации на http://www.metronet.com/~pgilley/freebsd/ipfw/
Да, состоящим из двух компьютеров, поэтому здесь часто используют сетевую маску 255.255.255.252. Этот сегмент можно "объединить" с помощью встроенного в PPP arpproxy.
Да. Точнее говоря, работа с PPP/SLIP осуществляется через сетевые интерфейсы, им соответствующие, а именно sl0..slN для SLIP, tun0..tunN для ppp и ppp0..ppp0 для pppd.
Нет, хотя бы потому, что будет неизвестно, какому интерфейсу адресовать пришедший IP-пакет.
В настоящее время наиболее активно поддерживается user level ppp, хотя есть мнение, что pppd лучше.
Также есть сообщения, что ppp и pppd запускаются с разной вероятностью успеха на разных версиях FreeBSD.
рекомендуется сначала попробовать pppd, так как его конфигурационный файл в /etc/ppp, входящий в поставку системы, проще модифицировать.
В Руководстве описано, как настроить mgetty для работы с ppp, хотя в конфигурационном файле из дистрибутива используется pppd. Там всё сводится примерно к 1) Раскомментировать строчку AutoPPP в login-файле mgetty 2) Исправляются параметры запуска pppd (+PAP -CHAP -login и так далее) При входящем звонке mgetty распознает PPP и запустит pppd.
Документация по pppd довольно скудна, но есть руководство по его настройке по адресу http://www.nitek.ru/~igor/pppd/
Нужно прописать в конфигурационном файле (/etc/namedb/named.boot) строчку
primary xxx.ru xxx.ru.pri
где xxx.ru - имя обслуживаемого домена, а xxx.ru.pri - имя файла, содержащего записи DNS
для этого домена. Нужно указать в конфигурационном файле (/etc/namedb/named.boot) следующий параметр:
forwarders 195.54.2.1
где 195.54.2.1 - это IP-адрес DNS-сервера вашего провайдера Нужно прописать в конфигурационном файле (/etc/namedb/named.boot) строчку
primary 10.80.10.IN-ADDR.ARPA 10.80.10.rev
где 10.80.10.IN-ADDR - имя обслуживаемой обратной зоны, а 10.80.10.rev - имя файла,
содержащего записи DNS для этой зоны. Пусть наша внутренняя сеть 10.80.10.0:255.255.255.0 и внешним интерфейсом sl0 /etc/rc.firewall: $fwcmd add pass tcp from any to ${oip} 53 via ${oif} setup $fwcmd add pass udp from any 53 to ${oip} via ${oif} $fwcmd add pass udp from ${oip} to any 53 via ${oif} /etc/rc.firewall: $fwcmd add pass all from ${inet}:${imask} to ${iip} via ${iif} $fwcmd add pass all from ${iip} to ${inet}:${imask} via ${iif}
Возможность ограничивать доступ к информации о зонах имеется в последней версии BIND 8 через ACL.
Еще можно так (?): secure_zone IN TXT 10.0.0.0:255.0.0.0
Согласно Справочнику, это количество ошибок в принимаемых и передаваемых данных.
Скорее всего, это сигнализирует о наличии большого числа коллизий в сети. Если сетевой адаптер подключен к концентратору или коммутатору, имеет смысл проверить соответствие настроек параметров дуплексной или полудуплексной передачи (он должен совпадать).
Наличие некоторого их количества (около 1%) вполне нормальное явление.
Самое лучшее решение: Правильная технология такая - как в messages появилась строка на тему arp moved - так shutdown, log на принтер и приказ по лавке: === За нарушение правил эксплуатации сети ЭВМ стажёром Ивановым И.И. начальнику отдела информационной безопасности Петрову П.П. вставить Иванову И.И. клизму на 40 литров с 1кг патефонных иголок. Hачальнику юридического отдела Сидорову С.С. подготовить материалы о возбуждении против Иванова И.И. уголовного дела по ст.274 ч.1 УК РФ. Прорабу Хрюшеву Х.Х. подготовить объём работ от 180 до 240 часов по уборке прилегающей территории от чего-нибудь Ивановым И.И. Исполнительному директору Фокину Ф.Ф. ознакомить с приказом сотрудников лавки в срок до того ября. === Мне так кажется, что на этом проблемы с arp, ip номерами, самопальными серверами итп заканчиваются в /
Если вы работаете через NATD, то вам нужно разрешить прохождение пакетов во внутреннюю сеть на порты в диапазоне где-то 1000-1200.
Более правильно использовать socks5 из коллекции портов.
В socks5 добавлена возможность авторизации, например, по пользователям.
/etc/socks5.conf:
auth - - -
permit - - 10.80.10. - - -
SET SOCKS5_NOREVERSEMAP
SET SOCKS5_NOSERVICENAME
SET SOCKS5_PIDFILE filename
SET SOCKS5_PWDFILE /etc/socks5.passwd
SET SOCKS5_UDPPORTRANGE 1023-5000
Это средство выборочного ограничения пропускной способности, появившееся в 2.2.8-RELEASE, например, для понижения приоритетности трафика Internet.
Однако есть сообщения, что указываемая скорость не всегда соответствует реально достигаемой. (Реальным 64Kbit соответствует 80KByte).
Для этого имеется пакет IPSec. вот сообщение из списка рассылки: Quoting David W. Chapman Jr. (dchapman@houabg.com): > Does anyone know how to setup VPN or PPTP on freebsd? I have a setup working with ppp over ssh. Scripts, netmap and ipfw info are available at http://www.ishiboo.com/~nirva/vpn/. I had most of an OpenBSD<-->FreeBSD w/ OpenBSD IPSec patches VPN working, but the port of the patches seems to have broken something, and i can't get it all working.. KAME didnt support tunneling last I looked, maybe it does now... http://www.kame.net. -- ___________________________________________________________________________ Danny Dulai Feet. Pumice. Lotion. http://www.ishiboo.com/~nirva/ nirva@ishiboo.com
Если вам нужен только обмен файлами, достаточно будет сервиса FTP, который включен в поставку IntraNetware 4.11.
Как отдельный продукт существует Netware NFS, позволяющий монтировать диски Netware как диски NFS-сервера.
Есть также Netware NFS Gateway, позволяющий обращаться к дискам NFS-сервера, расположенного на FreeBSD, как к томам Netware.
Разработчиком MultiSlip является Игорь Чечик. Вот что он написал по поводу своей разработки:
В BSD/OS 2.1 нет и от меня уже не будет, собственно я его не обещал. Однако я знаю что есть работающая версия под 2.1 у lom@paco.odessa.ua (Олег Левченко), я видел тексты, с моей точки зрения они не доведены до "красивого" уровня но видимо вполне работоспособны. Олег говорит что у них работает в нескольких точках. Так что - это уже не ко мне :). Под 2.01 работает точно.
С другой стороны, это ведь уже устарело все морально, жизнь идет, народ богатеет, проще купить CISCO2509/2511 чем делать роутер из писюка. Я эту деятельность закончил :).
Попробуйте 193.124.22.65, 193.125.152.10, 194.87.0.20, 194.87.0.28.
Вам нужен драйвер нуль-модема, который можно найти по адресу http://www.vt.edu:10021/K/kewells/net/index.html
Вот что написал Борис Самородов:
imho JetAdmin (программу) с фрей подружить нельзя, т.к. они под другие *nix писаны. А вот JetDirect (плату) подружить можно. Hо до конца мне это не удалось. Итак. Имеем HP LJ 4000N с платой JetDirect. Читаем книгу "Руководство по установке HP JetDirect" главу 12 "Hастройка JetDirect для использования LPD". Дело в том, что эта плата (сервер печати) изначально содержит в себе демон ldp. 1-й этап в файле /etc/hosts: 192.168.1.100 jaserjet1 ^^^^^^^^^^^^^ адрес, прописанный в принтере (по умолчанию imho 192.0.0.192) 2-й этап в файле /etc/printcap: lj1_text|HPLJ in text mode:\ :lp:\ :rm=laserjet1:\ :rp=text:\ :sd=/usr/spool/lpd/lj1_text: lj1_raw|HPLJ in raw mode:\ :lp:\ :rm=laserjet1:\ :rp=raw:\ sd=/usr/spool/lpd/lj1_raw: 3-й этап: cd /usr/spool/lpd mkdir lj1_text lj1_raw chown daemon lj1_text lj1_raw chgrp daemon lj1_text lj1_raw chmod g+w lj1_text lj1_raw После reboot (imho kill -HUP 1 достаточно) усе будет пучком. Принтер по умолчанию должен сам распознавать тип печати (text, PCL, PS). Мне не удалось подружить его с русскими буковками. В тексте он не русифицирован и кодовой страницы с кириллицей у него нет (это я о принтере) :-( Hу и в графике я пока не _умею_ слать шрифт PS вместе с файлом печати. Hо теоретически все должно быть OB. А вот англицкие печатает красиво... Hу и еще man lpq, lpr... Это и ко мне -- но времени нет :-(
В конфигурационном файле smb.conf должны присутствовать следующие строки:
client code page = 866
character set = koi8-r
mangle case = no
preserve case = yes
short preserve case = yes
default case = upper
case sensitive = no
samba - это сервер SMB, позволяющий использовать диски и принтеры UNIX в сети Microsoft.
rumba (в настоящее время называется sharity-lite) - это клиент для FreeBSD, позволяющий использовать дисковые ресурсы сети Microsoft из UNIX, наподобие NFS.
Для этого предназначен пакет Sharity (старое название - rumba) и Sharity-Light (некоммерческая версия). Он позволяет монтировать дисковые ресурсы сети Microsoft из-под FreeBSD. Домашняя страница находится по адресу http://www.obdev.at.
Sharity является лицензируемым продуктом, на использование которого нужно получить лицензию у автора (правда, для образовательных учреждений она дается бесплатно), хотя распространяется в исходных текстах.
Sharity-Light имеет ограничения тремя уровнями вложенности каталогов&
В Sharity-Light есть проблема зависания обращений к подмонтированному диску, если сервер становится недоступным (в Sharity этого нет). Кроме того, в монтируемом каталоге создаются две записи для "." и "..".
Для решения этой проблемы воспользуйтесь даемоном автомонтировки amd, входящим в поставку FreeBSD. Он корректно отслеживает доступные NFS-серверы и монтирует ресурсы, к которым производится доступ, по мере необходимости.
Попробуйте сделать это следующим образом:
имя-пользователя * "" IP-адрес-пользователя
или, если IP-адрес не важен:
имя-пользователя * "" *
Вам нужно настроить работу с DNS на вашей машине. Для этого потребуется откорректировать файлы /etc/resolv.conf, /etc/hosts и /etc/host.conf.
socks5 предназначен для работы в качестве универсального проксирующего сервера, однако он требует поддержки протокола socks5 со стороны клиентского программного обеспечения (такими, например, являются стандартный клиент ICQ для Windows, ssh для FreeBSD) либо использования специального программного обеспечения, позволяющего использовать стандартное программное обеспечение (таким, например, является программа runsocks, входящая в комплект socks5).
Примеры конфигурационных файлов:
Для socks5-сервера (файл /usr/local/etc/socks5.conf):
auth - - -
permit - - - - - -
Для socks5-клиента (файл /usr/local/etc/libsocks5.conf):
socks5 - 10.80.10.1 1080 - -
Обратитесь также к документации по socks5.conf(5) и официальному сайту
Стандартным оборудованием являются обычные аналоговые модемы, имеющие режим работы на выделенных линиях. При этом реально достижимая скорость не превышает 38400bps, хотя они могут использоваться на больших расстояниях.
На коротких расстояниях применяются модемы для физических линий.
вот примерные характеристики: SRM от фирмы RAD модем RAD ASM дает около 2Мб на расстоянии 2Км по 4-х проводному каналу связи 3км - на обычных линия дадут шлеф порядка 700-750 Om router---fcd-2---htu-e1 ====2Mb router---Pairgain-E1====2Mb (У меня работал на линии 650 Om) router---Pairgain-T1====1.5Mb (Должен работать на 700-900 Om) router---Pairgain-384===384Kb (up to 1.5 KOm) router---Zelax(sync) pcrouter---zelax-115K===115Kb (Очень устойчивый, не дорогой, async) Есть ещё М-160К (160 кбит/с), есть шанс, что М-200 пойдет (256 кбит/с). Обратите также внимание на оборудование фирмы Granch
Попробуйте воспользоваться вот таким файлом /etc/ppp/options:
/dev/ttyd0
115200
modem
-detach
crtscts
defaultroute
lcp-echo-failure 3
lcp-echo-interval 30
При этом pppd запускается из /etc/ttys:
ttyd0 "/usr/sbin/pppd" unknown on
Подробная информация о поддержке протокола IPX находится на страничке Бориса Попова, который занимается поддержкой этого протокола и связанных с ним утилит во FreeBSD.
В файле /etc/ttys для всех устройств класса network достаточно добавить ключевое слово secure.
Однако этот способ ослабляет безопасность системы. Более корректно включить определенного пользователя в группу wheel (в файле /etc/group), и после входа им по протоколу telnet выполнить команду su.
Для этого рекомендуется использовать программу sudo. Находится в /usr/ports/security/sudo (http://www.courtesan.com/courtesan/products/sudo/)
В каталог /etc необходимо поместить файл login.conf, который выкачивается из каталога /pub/FreeBSD/FreeBSD-current/src/etc/login.conf либо создается вручную и содержит единственную строку: root|default: Также поможет чтение руководства: "man 5 login.conf"
Стандартный ftpd разрешает доступ к личным каталогам только тем пользователям, которые имеют в качестве интерпретатора командной строки программу, описанную в файле /etc/shells. Таким образом, достаточно, например, добавить в список возможных оболочек (который находится в файле /etc/shells программу /sbin/nologin и определить её интерпретатором для нужного пользователя.
Это безопасно, так как r-команды используют командный процессор, описанный в /etc/passwd.
idled ftp.cs.hope.edu/pub/idled www.cs.hoe.edu/~crider/idled/
Командой kill. Но сначала нужно выяснить номера процессов, владельцами которых является этот пользователь. Их и следует остановить командой kill -9 <номер процесса>.
Список процессов, владельцем которых является пользователь 'cracker', можно вывести командой ps axu | grep 'cracker'
Источниками таких сообщений являются: Файл /etc/motd, генерирующийся каждый раз при старте системы, что можно отключить в /etc/rc.local Скрипт /etc/profile (часто туда помещается программа fortune) Отредактируйте соответствующие файлы на предмет генерации таких сообщений.
Поставьте ghostscript, русские шрифты к нему и apsfilter. Правда, есть некоторые неприятности при печати дифтонгов (?) типа if, ff).
В файл /etc/rc.conf: keymap=ru.koi8-r keychange="61 ^[[K" # use Escape char (^[) here! scrnmap=koi8-r2cp866 font8x16=cp866b-8x16 font8x14=cp866-8x14 font8x8=cp866-8x8 В файл /etc/ttys: ttyv0 "/usr/libexec/getty Pc" cons25r on secure # for each tty
Нужно поставить пакет hylafax, для Win95 - клиентскую часть и драйвер ps-принтера. http://www.transcom.de/whfc/install.html ports/comms/hylafax
Почитайте страницы Справочника, а также соответствующие главы Руководства. man -k quota
При русификации консоли воспользуйтесь screenmap.
Модем нужно выставить в режим выделенной линии. Соединяться он должен автоматически при включении либо по поднятию DTR.
Для связи можно использовать slattach для SLIP либо ppp/pppd для работы по протоколу PPP. Настройка их аналогична настройке связи двух машин по нуль-модему, советуем сначала на нем испытать.
В Руководстве есть достаточно полное описание настройки этих программ.
Для пересылки почты в Internet лучше использовать Sendmail или другой SMTP-мэйлер.
Такая утилита существует в одном наборе с другими кракерскими утилитами (сниффер и еще что-то) от THС. Формат wtmp является открытым (man utmp). Утилиты last и ac корректно отрабатывают смену времени. В 3.0 сменился формат utmp/wtmp, так что будьте осторожны со старыми системами сбора статистики.
Готовых бесплатных решений нет. Если делать самому, то нужно почитать следующий материал: man ipfw man 4 divert man 4 dummynet Нужно будет написать демона, который бы все учитывал, делал статистику (желательно в SQL) и тд.
Существуют следующие утилиты:
ipfw count
snmpd
mrtg
trafstat/trafd/trafshow
Есть пара способов:
Изменить исходные тексты программы /usr/libexec/getty, чтобы она осуществляла автоматический вход неким пользователем, у которого нет пароля и в сценарии входа стоит запуск этой программы.
Изменить исходные тексты программы для осуществления действий, которые как правило выполняет getty, и запускать её вместо getty.
Есть программа, которая называется rungetty - это именно то, что нужно.
Прочтите главу Руководства, посвящённую вопросу эмуляции Linux на FreeBSD.
Задайте опцию -b для ftpget. Для squid 2.x это не актуально.
Это - ограничение скорости обмена между squid и внешним миром.
Настраивается любая терминальная программа (tip), затем запрещается getty на этот /dev/ttyv0 (в /etc/ttys) и вешается вызов
( while sleep 1; do tip линия < /dev/ttyv0 > /dev/ttyv0 2>&1; done; ) &
в /etc/rc.local Такое случается после выдачи некорректной команды ldconfig. Для восстановления работоспособности нужно выполнить команду ldconfig -R /usr/X11R6/lib ну и почитать страницы Справочника. В файле /etc/rc.conf есть переменная ldconfig_paths, содержащая полный набор каталогов, в которых находятся динамические библиотеки. Добавьте туда свой каталог, чтобы не запускать каждый раз ldconfig.
Это сокращение от Denial of Service (Отказ в Обслуживании). Существуют методы атаки на UNIX, при которых система перестает отвечать на запросы на обслуживание. При этом, как правило, система остается работоспособной в целом, но некоторые сервисы перестают функционировать.
Поставить соответствующий фильтр, перекодирующий koi8-r в alt.
Согласно Руководству (18.4.), наиболее полное описание этого пpоцесса лежит находится по адресу http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html
Однако рекомендуется все же сначала проинсталлировать заново последний RELEASE, и только затем делать CVSup.
Это зависит от www-сервера, к которому обращается squid. В частности, Russian Apache по умолчанию посылает служебную строку Pragma: no-cache для страниц, кодировка которых заранее не известна, что и заставляет squid не кэшировать документ.
Такая возможность появилась в squid 2.0 и называется delay pools. Прежде всего проверьте, была ли включена эта возможность на этапе компиляции squid ключом утилиты configure --enable-delay-pools.
В squid.conf нужно будет прописать нечто вроде:
acl comp src 192.168.10.15/255.255.255.255
delay_class1_access allow comp
delay_class1_aggregate_max 8000
delay_class1_aggregate_restore 8000i
Заметьте, что объекты из кэша не замедляются.
Поищите в архивах squid переписку по этому поводу, а точнее, http://www.cineca.it/proxy/search/html/9812/139.html. Это письмо автора с подробными разъяснениями. По слухам, реализация delay pools для class1 работает плохо, поэтому уменьшать скорость работы нужно по class2, а для class1 сделать следующее:
delay_class1_access deny all
Delay pools are meant to provide a way of assigning tokens of bandwidth allowance to
Squid users. Pools are assigned on a host basis (IP), which basically means that what you
restrict is the WAN bandwidth pumped by Squid for any individual host accessing the Net
through it. I am beginning from the most general case, which is the allowance for a group
of hosts (a block of IP addresses). An individual host may be part of a group or be a
group in itself. In delay pools there are four basic parameters to be defined: 1)
aggregate_max 2) aggregate_restore and 3) individual_max 4) individual_restore In order
to understand the meaning of each parameter I will briefly explain the concept behind
delay pools: For every host in one group there is one delay pool size descriptor
(individual_max) and one increment level (individual_restore) associated. We can think
delay pools as a bucket of tokens (bytes). The size of the bucket (for one host) is
individual_max bytes. At any given time, the bucket can have at max that many tokens
(bytes) accumulated. Before Squid fetches a page for that host, it looks up the number of
tokens (bytes) available at the bucket. Let's call it the current bucket watermark. If
there are enough tokens in the bucket, Squid gets the tokens it needs, lowers the bucket
watermark accordingly and proceeds to reading a number of bytes from the connection. If
there are no tokens available, Squid is enforced to defer the read, until some tokens
(bytes) are available within the bucket. How is this done? This is where the increment
level value comes into play: individual_restore defines the number of tokens (bytes)
added to the current bucket watermark level every second. To further visualise it, think
of a real bucket under a faucet: the bucket can hold a certain amount of water (e.g. 1
litre). The faucet drops a certain amount of water each second (for example 10 cl). We
start with the bucket filled of water, but as we start taking water off the bucket with a
glass, the available water goes down. If we want to keep a steady watermark level we must
take water with the same rate it is dropping from the faucet. If we have a higher rate,
the bucket will soon become empty, and then we will have to wait until the faucet has
dropped enough water in the bucket again. If we do not use any water for some time the
water will overflow the bucket, therefore the bucket will continue to have at most 1
litre of water for immediate use. At telecomm parlance, this is a variation of the leaky
bucket algorithm (no wonder why I used the bucket as an example)! It will (?)be used for
bandwidth policing in modern data networks (ATM for example). How to configure the delay
pools in Squid now: At first decide what kind of grouping you need. If you want all your
users to have only one bucket then you go for delay_class1. If you want to have separate
buckets for each user then you must opt for delay_class2 or class3 (depends on your
network). The Aggregate_* settings work almost the same way as the individual with one
distinction: in class 2 (this is what I use) and class3 the aggregate delay pool is used
only if no individual pool is defined. IMHO I think that it would be more efficient if
the aggregate delay pool could provide tokens if an individual pool ran out of tokens at
a certain time. (This could be an additional measure to accommodate bursts for some
users). If you decide that you need class2 then remember to put the statement acl all src
0.0.0.0/0.0.0.0 delay_class1_access deny all At present it is needed in order to allow
class2/class3. Assume that you want class2 delay pools. Then you need something like the
following: acl hosts src xxx.xxx.xxx.a-xxx.xxx.xxx.b/255.255.255.255 delay_class2_access
allow hosts #delay_class2_aggregate_max 32000 #delay_class2_aggregate_restore 2000
delay_class2_individual_max 24000 delay_class2_individual_restore 1200 This defines a
block of hosts with IP addresses in the Class C net from a to b (but you can add also
other individual hosts to the acl) that will share the following pool settings: Maximum
pool size 24000 bytes Increment level 1200 bytes I don't use the aggregate settings
because they do not have any effect when individual pools are set. The individual
settings more or less let the host fetch "immediately" pages that are slightly larger
than 24000 bytes. If the host tries to fetch a large page then Squid after the initial
burst (~24KB) it will slow down to the rate defined by the increment value defined by
"delay_class2_individual_restore" (i.e. 1200 bytes/sec). If you do not want to allow for
any burstiness in the delay pool then simply define the max size of the pool equal to the
restore size. (but this is already documented). Right now, you can have only one
effective delay pool setting. This means that you cannot set more than one group of users
in the same class. I hope that David will find the time to extend delay pools in order to
handle more than one type of host groups in one class. In my view this is necessary.
After using delay pools for some time now, I strongly think that it is a powerful add-on
to Squid. I think that if it is extended to handle multiple groups (with different pool
settings in each group) its value will be really leveraged. Cheers, Evaghelos. И еще одна
добавка от автора delay pools Subject: Re: DELAY_POOLS: How to setup Resent-Date: Wed, 11
Nov 1998 18:27:05 -0800 (PST) Resent-From: squid-users@ircache.net Date: Thu, 12 Nov 1998
09:29:04 +0800 From: David Luyer <luyer@ucs.uwa.edu.au> To: Evaghelos Tsiotsios
<etsiot@archetypon.gr> CC: squid-users@ircache.net, tarkhil@synchroline.ru Thanks
to Evaghelos Tsiotsios for his description of delay pools. A few clarifying comments are
below; > The Aggregate_* settings work almost the same way as the individual with one
> distinction: in class 2 (this is what I use) and class3 the aggregate delay >
pool is used only if no individual pool is defined. This assumption (and related comments
later) is incorrect. (Or if it is correct it is a coding error.) The aggregate and
individual totals both act to limit the traffic, if either is empty then the request is
delayed. For example, I run approx 64kbps peak rate (with small 'bucket size') on one of
the delay_class2 pools and then give each user in it approx 8kbps (with large 'bucket
size'). The large bucket size on individual users lets each user get a web page
"instantly" but if they start downloading a large file it is slow. The small bucket size
on the aggregate means that the 64kbps is the limit of bandwidth use (modulo overheads)
for these users. Also, I didn't notice any mention of the 'no-delay' tag you can put on
neighbors - this will prevent traffic fetched from that peer from being 'taken out of the
bucket'; for example if you have a fast, "free traffic" ATM network to local universities
but anything further away costs money, and you peer caches with local universities, you
can put the 'no-delay' tag on these peers cache_host lines. Regarding class2/3 delay
pools: It could take some time before I'm able to do any work on multiple delay pools of
a given class. How I think it should work is this (sorry, sparse documentation on this,
but I hope enough to show anyone whose interested and understands the current system what
it means): delay_pools 3 # 3 delay pools delay_class 1 1 # pool 1 is class 1 delay_class
2 1 # pool 2 is class 1 delay_class 3 3 # pool 3 is class 3 delay_access 1 allow staff
delay_access 1 deny all delay_access 2 allow students delay_access 2 deny all
delay_access 3 allow college delay_access 3 deny all delay_parameters 1 640000/640000
delay_parameters 2 64000/64000 delay_parameters 3 64000/64000 32000/64000 6400/32000 #
ttl_rest/ttl_max net_rest/net_max ind_rest/ind_max The acls and delay pool data could
then be dynamically allocated. Maybe once this was done delay pools could be put into
squid by default as the cost of disabled delay pools would be very close to zero (simply
a few checks if delay_pools number was 0). David. Такое бывает. Исправляется сменой материнской платы. Есть также подозрение, что это проявляется при использовании сетевого адаптера Intel EtherExpress в сочетании с некоторыми материнскими платами. Конкретно возникали проблемы на материнской плате: ASUS PVI-486SP3
Пусть мы хотим получить исходные тексты для 2.2.8-RELEASE:
Создать файл supfile.cvsup такого содержания:
*default host=cvsup.ru.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs
*default tag=RELENG_2_2_8_RELEASE
*default delete use-rel-suffix compress
src-base
src-bin
src-contrib
src-etc
src-games
src-gnu
src-include
src-kerberosIV
src-lib
src-libexec
src-release
src-sbin
src-share
src-sys
src-tools
src-usrbin
src-usrsbin
Сначала нужно проинсталлировать исходные тексты системы из дистрибутива либо скачав их по CVSup с ближайшего CVSup-зеркала FreeBSD, например, cvsup.ru.freebsd.org
Теперь
# cd /usr/src
# make buildworld
# shutdown now
# make installworld
Здесь shutdown нужен, чтобы уйти в single user mode. Иначе возможны эксцессы и неприятные конфликты.
# cd /usr/src/sys/i386/conf
# vi YOUR_KERNEL_CONFIG_FILE
Привести в соответствие с новой версией ядра.
# config YOUR_KERNEL_CONFIG_FILE
# cd ../../compile/YOUR_KERNEL_CONFIG_FILE
# make
# make install
# reboot
Все, имеем рабочую (надеемся) систему.
Да, через полную перекомпиляцию системы make world. Однако все таки имеет смысл при этом процессе присутствовать рядом.
То есть теоретически можно, а практически - иногда.
В стандартной команде fetch, а также в утилите wget есть возможность работать через proxy. например, так:
HTTP_PROXY=proxy.surnet.ru:8080
fetch -o index.html http://surw.chel.su/
setenv http_proxy proxy.surnet.ru
wget http://surw.chel.su/
Воспользуйтесь утилитой tcpd, позволяющей ограничивать доступ к определенным сервисам через файл, содержащий списки хостов, которым запрещен или разрешен доступ, типа /usr/local/etc/hosts.allow.
Вы также можете настроить соответствующим образом брандмауэр.
Посмотрите на странице, посвящённой локализации: http://www.sensi.org/~alec/locale/
Попробуйте взять утилитку по адресу ftp://ftp.ins.dn.ua/pub/system/unix/drivers/powershut.tgz. Кроме всего прочего, она позволяет также выполнить процедуру закрытия и на соседних серверах.
В принципе подобную утилиту можно написать и самому. Исходные тексты такой программы, работающей с BackUPS PRO, доступны по адресу ftp://ikar.elect.ru/pub/FreeBSD/upsd/BackUPS.c.
Аутентификация - это проверка соответствия субъекта и того, за кого он пытается себя выдать, с помощью некой уникальной информации (отпечатки пальцев, цвет радужки, голос и тд.), в простейшем случае - с помощью имени входа и пароля.
Авторизация - это проверка и определение полномочий на выполнение некоторых действий (например, чтение файла /var/mail/eltsin) в соответствии с ранее выполненной аутентификацией,
Напишите соответствующие правила для брандмауэра (ipfw) в виде скрипта и задайте его выполнение в определенное время с помощью cron.
Командой last из wtmp выбирается информация о работе пользователей, по ним с учетом тарифа выставляется счет. Если не нужна статистика в реальном времени, можно запускать обработку раз в сутки.
В базу данных заносятся записи о времени входа и времени выхода из системы, потом считается.
Для поминутного учета можно, например, запускать по cron команду w, по ней выяснять пользователей, работающих в данный момент, и записывать в базу.
Добавление записей в базу можно сделать в скрипте /etc/ppp/ip-down
Например так:
last -s -t cuaa2 | awk -F '[()]' '{print $2}'
Правда, учтите, что ключ -s для выдачи времени в секундах появился только в последних релизах (2.2.8).
Существовала программка amlast из пакета статистики amstat, выдающая информацию в приемлемом виде.
Готового решения, позволяющего перенаправлять ftp-запросы на другие сервера прозрачно для ftp-клиента, не существует. Однако проще всего организовать NFS-серверы, каталоги которых и будут подмонтированы в соответствующие каталоги ftp-сервера.
Существуют слухи об утилите типа mount_ftp, позволяющей просто монтировать каталоги других ftp-серверов.
Если же соседние сервера представляют собой Windows NT, то попробуйте клиентскую часть для SMB, она называется sharity-lite (бывшая rumba).
В случае, когда вам нужно просто перенаправлять запрос на другие ftp-серверы, может подойти какой-нибудь proxy-сервер типа CheckPoint FireWall, умеющий перенаправлять ftp-запросы в зависимости от контекста. Правда, при этом будет происходить обращение ко внутренним серверам, что бывает нежелательно.
В последних версиях FreeBSD по умолчанию telnet работает в семибитном режиме. Поэтому для входа на другую машину нужно использовать команду telnet -8 host, любо поместить строку
default set outbinary
в файл .telnetrc в вашем домашнем каталоге. Можно также поставить из портов приложения telnetx или ssh, последнее даст кроме всего прочего компрессию трафика и обеспечение безопасности.
Нужно перенести файлы /etc/master.passwd и /etc/group, затем выполнить команду pwd_mkdb master.passwd.
В документации по sudo приведена следующая конфигурация:
root ALL=(ALL) ALL
Cmnd_Alias CDROM=/sbin/mount /cdrom,/sbin/umount
/cdrom,/usr/site/script/eject,/usr/site/script/close
Cmnd_Alias HALT=/sbin/halt,/sbin/reboot
User_Alias OP=frank,irene
OP ALL=(ALL) NOPASSWD: CDROM,NOPASSWD: HALT
В нем описана группа команд под названием HALT. Есть группа пользователей под названием OP. Дальше: OP (пользователи) ALL=(ALL) (со всех хостов) NOPASSWD: (пароль не спрашивать) CDROM (группа команд CDROM) , (запятая) NOPASSWD: HALT (группа команд HALT без пароля).
Нет, если только вы не имеете возможности менять семантику системных вызовов (например, через механизм KLD).
Нужно вместо задания LANG=ru_RU.KOI8-R отдельно указать параметры локализации, например для LC_CTYPE и LC_COLLATE
В общий сценарий входа (для оболочки bash это /etc/profile нужно поставить выполнение следующего кода:
MY_NAME=`who am i | awk '{ print $1}'`
who | awk '{ print $1}' > $HOME/wholist.tmp
Или следующим образом:
[ `who | grep \`logname\` | wc -l` -gt 2 ] && { echo "Обломись !"; exit; }
Необходимо, чтобы используемый X Window терминал был _свободен_. Для этого нужно, если он описан в /etc/ttys, выключить запуск getty ключевым словом off, например: ttyv8 "/usr/libexec/getty Pc" cons25r off secure Можно вообще исключить описание этого терминала из /etc/ttys.
Wine использует шрифт fixed, поэтому достаточно добавить шрифты с кодировкой CP1251, и сделать их известными системе как fixed в файле fonts.alias.
В файл /etc/XFree86Config: XkbRules "xfree86" XkbModel "pc101" XkbKeymap "xfree86(ru)" XkbLayout "ru" XkbOptions "grp:shift_toggle" Выставить локализацию через переменные LANG/LC_ALL.
Поставить порт xscreensaver. И не забывать вызывать xlock для блокировки экрана.
Посмотрите на ports/net/pavuk, llnxftp, ls 'packages/All/*ftp* и пробуйте ;) wget работает под X.
Программа moused может отдавать события мыши по протоколу Sysmouse, поэтому X Window может воспринимать moused как мышь типа Sysmouse, которая работает с устройством /dev/sysmouse (который должен присутствовать).
Запустив Moused например, так:
moused -p /dev/cuaa0 -t microsoft
В X Window нужно указать, что мышь использует протокол SysMouse или MouseSystems, а сама
находится на устройстве /dev/sysmouse. В файл /etc/XF86Config:
Section "Pointer"
Protocol "SysMouse"
Device "/dev/sysmouse"
Если у вас мышь не PS/2, попробуйте указать в /etc/XF86Config в качестве указательного устройства не /dev/mouse, а /dev/sysmouse.
xrus - это русификатор X Window. Алгоритм его работы сводится к замене таблиц символов, поэтому он должен работать практически везде, в том числе и в старых реализациях XFree86, где отсутствовала штатная поддержка русского языка (Xkb) или при использовании X терминалов сторонних фирм. находится в портах ports/russian/xrus(?)
Это связано с ошибкой локализации в дистрибутиве X Window, поставляемой с 2.2.8-RELEASE. xterm ищет файлы локализации в каталоге ${X11BASE}/lib/X11/locale, а например, ports/russian/X.language, устанавливает их в ${X11BASE}/lib/X11/nls. Соответственно нужно просто переписать файлы локализации в нужный каталог.
Самый простой способ: Закомментарить в файле ${X11BASE}/lib/X11/locale/koi8-r/XLC_LOCALE строчку encoding_name KOI8-R
Если вы можете пересобрать XFree86 из портов, то должен помочь следующий патч:
- --- lib/X11/imConv.c Sat Oct 24 09:50:13 1998
+++ lib/X11/imConv.c.new Thu Dec 3 18:20:07 1998
@@ -429,7 +429,7 @@
#endif
{sUTF8, "utf8", "\033%B"},
/* Non-standard */
- {sCyrillic, "KOI8-R", "\033%/1\200\210koi8-r\002"},
+ {sKoi8, "KOI8-R", "\033%/1\200\210koi8-r\002"},
{sLatin9, "ISO8859-15", "\033%/1\200\213iso8859-15\002"},/*
a.k.a. Latin-0 */
};
Нужно просто положите его в /usr/ports/x11/XFree86/patches и пересобрать XFree86.
Еще способ: Изменить в /etc/XF86Config строчку XkbLayout с su на ru
Еще один способ: Запускать xterm, не имея установленных значений для LANG/LC_ALL
Есть предположение, что xterm в locale.aliases ищет первое минимальное соответствие на LANG, в случае ru бралось ISO. Нужно изменить запись для ru на нужное (koi8-r).
Скорее всего, у вас пустой сценарий начала сеанса работы с X Window. Посмотрите содержимое файлов .xsession-errors и .xsession, а также обратите внимание на то, что скрипт .xsession должен быть выполняемым.
Этот адаптер построен на основе микросхем от 3Dfx Interactive и в настояще время XFree86 его не поддерживает.
Большое количество ПО для FreeBSD, как впрочем, и для любого другого UNIX, распространяется в исходных текстах, проблемой является необходимость подгонки и компиляции его под FreeBSD. Для облегчения этой задачи было введено понятие пакаджа - уже откомпилированного и готового к инсталляции архива с программным обеспечением. В настоящее время количество пакаджей для FreeBSD приближается к 2000 и находится в каталоге packages соответствующей версии FreeBSD, например ftp://ftp.freebsd.org/pub/FreeBSD/2.2.2-RELEASE/packages
Плюс пакаджей - простота установки. Их минус - они не всегда работают правильно (такое было с S/Key в sudo, dhcpd от ISC, squid). Более правильно ставить дерево портов, регулярно производить его обновление через CVSup и компилировать всё нужное самим. Кстати, при этом можно выявить ошибки, сделанные при создании порта и сообщить об этом в соответствующие органы через send-pr(1). При построении приложений через ports нужно не забыть делать CVSup и для /usr/share/mk/ - там находятся make-файлы, необходимые для компиляции порта.
Попробуйте воспользоваться ключом -f при вызове команды pkg_delete.
Замонтировав раздел, Выполнять команду pkg_add -v имя файла с пакаджем Есть неудобство - если пакадж фигурирует как зависимость, то он проинсталлирован не будет.
Пусть каталог с портами находится на /mnt/ports WRKDIR=$HOME/tmp cd /mnt/ports/gnome/ make install
Это - недостаток командного процессора, который кэширует имена доступных файлов при запуске, но не во время работы. Команда "hash -r" (для bash) или "rehash" для csh/tcsh выполняет повторное кэширование.
Такое случается при установки пакаджей с диска Win95, для случая DOS имеется файл trans.tbl.
В дистрибутиве (но не в пакадже) apache в каталоге support есть утилита htpasswd, именно для этого и предназначенная. Если дистрибутива нет под рукой, временным решением проблемы может быть простое переписывание шифрованных паролей из учетной базы пользователей (видны привилегированному пользователю при редактировании последней). ??? master.passwd
moused -S 1200 -p /dev/cuaaX -t mousesystems vidcontrol -m on Работает во FreeBSD версий 2.2.1 и старше.
1) MicroSQL ftp://ftp.bond.edu/pub/Minerva/msql 2) MySQL http://www.tcx.se, ftp://www.tcx.se Имеется ODBC для Win95/NT/UNIX, JDBC, интерфейс с perl, C, C++ Отсутствуют REFERENCES. Некоторые ограничения по коммерческому использованию. 3) PosgreSQL http://www.posgress.org/ ??? 4) Informix 7.24 для Linux работает в 3.0-RELEASE+linuxlib-2.6 5) Oracle 8 для Linux работает в 3.0-CURRENT+linuxlib Имеются слухи о переносе Oracle8i под FreeBSD. Взять можно на www.oracle.com trial-версию. 6) InterBase 4.0 на сервере http://iblinux.rios.com.jp/intl/ Правда, udf нужно компилировать с ключом -aout (elf не поддерживается)
A. Как правило, достаточно выполнить команды ln -s /usr/lib/libc.so.2.2 /usr/lib/libc.so.3.0 ldconfig -m
A. В дистрибутиве - fetch. Также в состав пакаджа net/lftp входит утилита ftpget.
Да. Рекомендуется ставить последнюю версию (1.1.3).
Да. Существует коммерческий продукт - NetCon, эмулирующий сервера Novell Netware 3.x
В коллекции портов находится mars_nwe - свободно распространяемая реализация эмулятора сервера Novell Netware 3.x. Также вышла в свет nwlib. Там есть одна тонкость - этот эмулятор работает с протоколом IPX поверх фрейма Ethernet_II, что требует некоторой настройки на рабочей станции. Берется на ftp://ftp.butya.kz/pub/mars_nwe
Для запуска подобных программ нужно иметь права на запись в устройство /dev/mem.
Клавишей F3 можно переключаться между режимами 7/8 бит. По умолчанию deco просматривает файл в 7-битном режиме.
Нужно файл Netscape.ad поместить в каталог /usr/X11R6/lib/X11/app-defaults под именем Netscape. и поменять везде шрифты на крониксовские koi8-r. Просто менять версию не всегда получается (правда, для версий 4.0X это проходит).
Вас начинают будить по ночам угрызения совести.
/usr/ports/editors/le pico из дистрибутива pine. Стандартный ee. В своё время существовала версия редактора MIM (Микромир) для VAX, UNIX (под названием наномир) на мехмате, но судьба его неизвестна :( Редактор МикроМир можно найти на его домашней странице. Существует версия под названием НаноМир для текстового режима и МикроМир для X Window.
Сервер для Quake I имеется в коллекции портов.
Должна подойти версия для Linux. Ссылка и информация по установке есть на сервере quake.demos.su. Также попробуйте www.quake2.ru. И еще http://www.3dgw.com/hellsgates/serverguide.htm А также quake.rtsnet.ru И еще http://www.atomigate.com:80/quake/server/ ftp://vsis.miem.edu.ru Из /usr/local/etc/rc.d запускается quake2.sh: #!/bin/sh cd /usr/local/quake2 quake2 +set dedicated 1 +exec server.cfg & server.cfg настраивается, например, так: set timelimit 20 set maxclients 16 set dmflags 280084 set sv_maplist "q2dm1 q2dm2 q2dm3 q2dm4 q2dm5 q2dm6 q2dm7 q2dm8" set gamename yamalinfo map q2dm1
Некоторая информация есть на сервере www.planetquake.com, там же можно найти и сервер.
Существует также версия сервера для BSD/OS, которая должна работать во FreeBSD.
Информация по этому вопросу имеется на сервере Ассоциации Русскоязычных Пользователей FreeBSD.
Если делать самим, потребуется разобраться с mgetty и её голосовыми возможностями и голосовыми возможностями модема. Есть трудность распознавания человека на той стороне. Можно попробовать Dialogic: http://www.comptek.ru/telephony/turn_key_list.html#104 и вообще http://www.comptek.ru/telephony/
Нужно уменьшить значение DefaultColorDepth в файле /etc/XF86Config
Есть два варианта:
QEcho/QDed + Ifcico/binkd
Ifmail+INN+TIN
WS_FTP Pro - самый быстрый и можно видеть скорость прокачки. В FAR также встроен ftp-клиент.
Корректно выполните локализацию (русификацию).
Под FreeBSD в режиме эмуляции Linux прекрасно работает WordPerfect, StarOffice 3. Есть сообщения о запуске StarOffice 4.
StarOffice 5 работает под 3.0-stable и 3.0-current в режиме эмуляции Linux. Ядро должно быть откомпилировано с опцией COMPAT_LINUX_THREADS. Другой вариант - Applix Office.
Посмотрите в коллекции портов.
Попробуйте запустить другие пакеты в режиме эмуляции Linux или SCO.
Есть также бесплатный набор KOffice: http://www.kde.org/koffice
Этот файл содержит правила (Robot Rules) исключений для различных роботов индексации, поиска или зеркалирования веб-серверов.
Стандарт, описывающий содержимое этого файла, можно найти по адресу http://info.webcrawler.com/mak/projects/robots/norobots.html
Существует открытая реализация протокола, используемого в MS SQL. http://matalab.unc.edu/freetds/
Согласно описанию, является библиотекой для работы с MS SQL и Sybase по протоколу TDS 4.2 и 5.0.
Последовательность действий такова: 1. тяни с ftp.idsoftware.com линуховый дистрибутив 2. прикрути к фре поддержку линуховых бинариков (/usr/ports/emulators/linux_lib) 3. просмотри фак на http://www.atomicage.com/quake/server для ознакомления 4. перепиши с сидюка дистрибутива кваки из \install\data\baseq2 в /usr/local/games/quake2/baseq2 все файлы (придется пожертвовать метров 200 на это добро) 5. распакуй линуховый дистрибутив в /usr/local/games/quake2 5. создай простенький server.cfg и помести его в /usr/local/games/quake2/baseq2 (пример конфига валяется рядом с тем же факом из п. 3.) 6. запускай и наслаждайся ./quake2 +set dedicated 1 +exec server.cfg & бегает на 120'ом пне, 16метров без напряга на 3.0.0R
Запортился файл swap.state, нужно его удалить и перезапустить squid (возможно, для этого потребуется перезагрузка в однопользовательском режиме). squid должен будет заново восстановить этот файл, что займет некоторое время.
Попробуйте yale-tftpd из коллекции портов.
Убедитесь, что кодировка, приходящая от клиентов, совпадает с той, на которую настроен webglimpse и она совпадает с кодировкой документов. Это может делать, например, русский Apache.
Поставьте glimpse версии минимум 4.1, собранный с поддержкой locale (посмотрите в Makefile значение для ISO_CHAR_SET, которое должно быть равным 1). Если вы храните документы в кодировке CP1251, то у вас должна иметься соответствующая настройка для locale.
На www.tu-chel.ac.ru работает именно webglimpse.
socks4 поддерживается, например, в ircii-EPIC.004 При компиляции нужно задать параметр --with-socks
Посмотрите в коллекции портов раздел russian, рекомендуется ru-d1489-1.3 либо trans-1.20.
XEmacs. Есть русский консольный редактор yui. Попробуйте также xwpe или fte.
Есть также люди, использующие несколько окон xterm и Netscape Navigator для чтения документации.
Обратите внимание на Code Crusader: http://www.its.caltech.edu/~jafl/jcc/ "Code Crusader is a complete code development environment, inspired by MetroWerks CodeWarrior. It can run on any UNIX machine that uses the X Window System..."
В коллекции портов есть vilearn - самоучитель работы в редакторе vi. Есть также редактор vim - Vi IMproved, считающийся более удобным в использовании (есть возможность цветового выделения конструкций, запуск компилятора и тд).
Ниже приведено описание терминалов, в которых deco будет выводить цвет, русские буквы и рамочки.
pcOL|OLD PC:\
:li#24:co#80:am:bs:bw:eo:\
:cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[;H:\
:nd=\E[C:up=\E[A:\
:md=\E[3;14x:mr=\E[3;48x:mb=\E[3;142x:me=\E[0m\E[3;7x:\
:so=\E[3;48x:se=\E[3;7x:\
:us=\E[3;15x:ue=\E[3;7x:\
:vs=\E[3;7x:ve=\E[3;7x:
pc3koi:\
:C2:Nf#16:Nb#8:Cf=\E[3;%p2%{16}%*%p1%+%dx:\
:gs=:ge=:\
:ac=l\332q\304k\277x\263j\331m\300w\302u\264v\301t\303n\305:\
:g1=\200\201\204\211\205\206\213\207\202\210\203:\
:f1=\E[M:f2=\E[N:f3=\E[O:f4=\E[P:f5=\E[Q:\
:f6=\E[R:f7=\E[S:f8=\E[T:f9=\E[U:f0=\E[V:\
:kh=\E[H:kN=\E[G:kP=\E[I:kH=\E[F:kI=\E[L:\
:kb=^h:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:\
:kN=\E[G:kP=\E[I:kI=\E[L:li#25:sr=\E[T:sf=\E[S:tc=pcOL:
Судя по всему, достаточно таких строк:
:C2:Nf#16:Nb#8:Cf=\E[3;%p2%{16}%*%p1%+%dx:
Инструкция: в .profile : export TERM=ansi export TERMCAP=/etc/termcap в /etc/termcap закомментировать : #ansi|any ansi terminal with pessimistic assumptions:\ # :co#80:li#24:cl=50\E[;H\E[2J:bs:am:cm=\E[%i%d;%dH:\ # :nd=\E[C:up=\E[A:ce=\E[K:ho=\E[H:pt: вместо родного поставить это : ansi|IBM PC BSD/386 Console:\ :li#25:co#80:am:bs:bw:eo:\ :al=\E[L:Al=\E[%dL:bl=\007:cd=\E[J:ce=\E[K:\ :cl=\Ec:cm=\E[%i%d;%dH:dl=\E[M:DL=\E[%dM:do=^J:DO=\E[%dB:ho=\E[H:\ :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:\ :k7=\E[S:k8=\E[T:k9=\E[U:k0=\E[V:\ :kI=\E[L:kH=\E[F:kN=\E[G:kP=\E[I:kd=\E[B:kh=\E[H:kl=\E[D:km:kr=\E[C:\ :ku=\E[A:le=^H:LE=\E[%dD:mb=\E[5m:md=\E[1m:me=\E[0m:\ :mh=\E[=8F:mr=\E[7m:nd=\E[C:pt:rc=\E[=u:RI=\E[%dC:sc=\E[=s:se=\E[0m:\ :so=\E[7m:up=\E[A:UP=\E[%dA: в /usr/lib/deco/termcap : # Standard Xenix console. 232 -gor cherta # It is not true ansi, but has been hacked for dumb users. ansi|xenix:g2=\215\172\210\112\174\214\216\171\211\213\173:\ :g1=\234\213\230\231\261\277\235\214\262\232\227:\ :C2:Nf#16:Nb#8:Mf=042615378CAE9DBF:Mb=04261537:\ :Cf=\E[%p1%{8}%/%d;3%p1%{8}%m%d;4%p2%dm:fs=\E[m:\ :kI=\E[L:kH=\E[F:kd=\E[B:kN=\E[G:kl=\E[D:\ :kr=\E[C:kh=\E[H:ku=\E[A:kP=\E[I:kD=\177:\ :f1=\E[M:f2=\E[N:f3=\E[O:f4=\E[P:f5=\E[Q:\ :f6=\E[R:f7=\E[S:f8=\E[T:f9=\E[U:f0=\E[V:tc=ansi # for helga.exe ansi telnet for win95 helga|xenix:g1=\224\203\220\221\251\223\225\204\252\222\217:\ :C2:Nf#16:Nb#8:Mf=042615378CAE9DBF:Mb=04261537:\ :Cf=\E[%p1%{8}%/%d;3%p1%{8}%m%d;4%p2%dm:fs=\E[m:\ :kI=\E[L:kH=\E[F:kd=\E[B:kN=\E[G:kl=\E[D:\ :kr=\E[C:kh=\E[H:ku=\E[A:kP=\E[I:kD=\177:\ :f1=\E[M:f2=\E[N:f3=\E[O:f4=\E[P:f5=\E[Q:\ :f6=\E[R:f7=\E[S:f8=\E[T:f9=\E[U:f0=\E[V:tc=ansi в /etc/rc.local : stty -D -f /dev/console cs8 -parenb -istrip stty -D -f /dev/ttyc2 cs8 -parenb -istrip stty -D -f /dev/ttyc3 cs8 -parenb -istrip stty -D -f /dev/ttyc4 cs8 -parenb -istrip stty -D -f /dev/ttyc5 cs8 -parenb -istrip vgafont /usr/share/vgafont/cyrillic export VGAFONT=/usr/share/vgafont/cyrillic export TERMCAP=/etc/termcap
Попробуйте выполнить следующее:
map Я Z map к r map К R map ш i map Ш I map щ o map Щ O map в d
Можете добавить такие команды в .vimrc
Можно пpосто запpетить достyп к баннеpным хостам. Делается это следующим образом:
В файл squid.conf:
acl reclama url_regex "/usr/local/squid/etc/banners.deny"
http_access deny reclama
В файл banners.deny записываются адpеса в виде:
^http://kulichki.rambler.ru/banners/
Это все. Остается только пополнять список рекламных серверов.
Другой способ заключается в использовании редиректора, который перенаправляет запросы к баннерным хостам на собственную маленькую каpтинку-баннеp, которая, например, может являться надписью "Hикаких баннеpов!". Детали реализации этого подхода (вместе со списком заткнутых pекламных URL и сайтов с поpнографией) можно выяснить у Олега Рамазанова
Чтобы не было доступа к серверам по IP-адресу:
acl IPaddrURLs url_regex tp://[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[:/]
http_access deny IPaddrURLs
нехорошие сайты блокируются посредством брандмауэра, например
ipfw add deny all from any to www.porno.com
нехорошие страницы (они есть и на вполне нормальных сайтах) -- squid'ом.
В squid.conf:
acl PornoHosts dstdomain "/usr/local/etc/squid/Porno.Host.lst"
acl PornoURLs url_regex "/usr/local/etc/squid/Porno.URL.lst"
acl LegalURLs url_regex "/usr/local/etc/squid/Legal.URL.lst"
acl IPaddrURLs url_regex tp://[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[:/]
http_access deny !LegalURLs PornoHosts
http_access deny !LegalURLs PornoURLs
http_access deny !LegalURLs IPaddraURLs
Тогда в тех pедких случаях, когда у ноpмального сеpвеpа нет имени, либо у ноpмальной стpанички стpанное имя, ничего не мешает занести их в LegalURLs
Заметьте, что использование regex типа
acl adults utl_regex xxx sex porn adult lips
не всегда эффективно, так как может встретиться название типа http://www.windowSEXpo.com/
Более эффективно отсечение (.*sex[\.\/])|([\.\/]sex.*)
Однако абсолютно защититься от такого трафика техническими средствами невозможно (порнография может быть помещена и на сервер www.freebsd.org ;), более эффективным являются административные меры воздействия после предоставления журнала squid руководству.
Ссылка на подробную инструкцию имеется по адресу http://xtalk.price.ru/linux.
Почитайте также рекомендации Демидова.
StarOffice лучше ставить из портов.
Скорее всего, вам нужно добавить в конфигурационный файл ядра опцию
option SYSVSHM
option SYSVSEM
option SYSVMSG
Не забудьте также проинициализировать базу командой initdb
Обратитесь на сайт, посвящённый программному обеспечению FidoNet для UNIX.
Способ первый. В файле /etc/aliases прописать robot: "| /usr/local/bin/robot" Здесь /usr/local/bin/robot - программа, на вход которой будут подаваться письма, написанные в адрес robot@localhost. Будьте осторожнее с правами на запуск этой программы! рекомендуется --x--x--- root:wheel Не забудьте newaliases Способ второй. Заводится пользователь robot, у которого в файле $HOME/.forward имеется строчка "| /usr/local/bin/robot" Способ третий. Использовать комбинацию первых двух с procmail - специально для этого предназначенной утилитой.
Эта возможность появилась в INN версии 2.3 (в том числе и experimental) и задается в файле readers.conf.
Нужно прописать эти домены и хост в файле /etc/mail/relay-domains или /etc/mail/access
Посмотрите также документацию по sendmail в файле sendmail/cf/README из дистрибутива sendmail.
Существует некий unlog.
Посмотрите на ftp://ftp.moldsat.md/pub/unix/perl/sendmail-log-analizer
Подобные скрипты есть на www.isp-unix.com
Можно писать и самим по логам, копящимся в файлах /var/log/maillog. Hапример, общее число писем, прошедших через sendmail за отчётный период, считается примерно так:
zcat /var/log/maillog*z | cat /var/log/maillog - | \
awk '/sendmail/{print $6}' | sort | uniq | wc -l
Евгений Кузаков предложил следующий вариант:
Взял патч Бармина к сендмаилу где-то тут...
Только он для 8.8.5. прикрутил его для 8.9.3.
компиляешь сендмаила с -DMAILACCT
В итоге сендмаил пишет лог в /var/log/mailacct в формате:
sun.oracle.ru!ru.oracle.com!vchernov LOCAL!piv 1455 17:54:49
21.09.98
sun.oracle.ru!ru.oracle.com!vchernov LOCAL!zdg 1455 17:54:49
21.09.98
А потом с тим можно делать что угодно...
Например:
#!/bin/sh
if [ $# -lt 3 ]; then
echo Usage: $0 maildomain month year
printf "\tExample: $0 occ.ru 01 98\n\n"
exit
fi
case "$2" in
"01") monthname="Январь";;
"02") monthname="Февраль";;
"03") monthname="Март";;
"04") monthname="Апрель";;
"05") monthname="Май";;
"06") monthname="Июнь";;
"07") monthname="Июль";;
"08") monthname="Август";;
"09") monthname="Сентябрь";;
"10") monthname="Октябрь";;
"11") monthname="Ноябрь";;
"12") monthname="Декабрь";;
*) echo "Ну Вы, барин, даете..."; exit 1;;
esac
domain="$1"
month="$2"
year="$3"
statfile=/var/log/mailacct
#statfile=./mailacct
awk '
BEGIN{
tos=0
toc=0
froms=0
fromc=0
}
{
if((index($0,domain)!=0)&&(index($5,sprintf("%s.%s",month,year))!=0)){
if((index($1,domain)!=0)){
fromc=fromc+1
froms=froms+$3
}else{
toc=toc+1
tos=tos+$3
}
}
}
END {
printf("Статистика домена %s за %s %s:\n",domain,monthname,year)
printf("\tпришло почты на домен: %2.0f писем (%0.0f
bytes)\n",toc,tos)
printf("\tотправлено с домена: %2.0f писем (%0.0f
bytes)\n",fromc,froms)
}' domain=$domain month=$month year=$year < $statfile
monthname=$monthname
Пример:
./mailstat occ.ru 03 99
Статистика домена occ.ru за Март 99:
пришло почты на домен: 2783 писем (66523770 bytes)
отправлено с домена: 353 писем (72424444 bytes)
Это делается через virtusertable. Подробное описание есть в журнале UNIXoid. по адресу http://www.fima.net
Эта ситуация связана с особенностями функционирования сервера POP3. Клиент (как правило, Internet Mail или Outlook Express) может выдавать команды на выдачу списка писем, забор определенного письма, удаление письма и завершение сеанса работы. Однако реальное удаление письма из почтового ящика происходит только после корректного завершения сеанса работы с сервером POP3.
Конечно, должны быть клиенты, которые отслеживают списки писем и не скачивают повторно уже забранное сообщение. Как утверждается, таким правильным клиентом является Eudora, TheBat!, Pegasus Mail.
Outlook Express нужно настроить следующим образом: Advanced->Оставлять почту на сервере. В этом случае Outlook Express хранит списки скачанных писем и все работает так, как надо.
Netscape настраивается подобным же образом.
Кардинальным решением проблемы является использование протокола IMAP для доступа к почтовым ящикам пользователей (поддерживается программой Outlook Express). В портах есть imap-uw
Правильно так:
kill -HUP `head -1 /var/run/sendmail.pid`
Однако если при запуске sendmail не был указан его полное имя с каталогами, то sendmail не перезапускается. Такое поведение отмечалось во FreeBSD 2.2.2. В таком случае нужно его запустить снова вручную:
/usr/sbin/sendmail -bd -q30m
Посмотрите файл /usr/include/machine/endian.h Псевдопеременная BYTE_ORDER определена как BIG_ENDIAN или LITTLE_ENDIAN в зависимости от архитектуры машины.
#ifdef __FreeBSD__
#include <machine/endian.h>
#endif
...
if(BYTE_ORDER == BIG_ENDIAN)
...
В родительском процессе нужно отрабатывать сигнал SIGCHLD. Это подробно описано в FAQ, который можно взять по адресу http://www.erlenstar.demon.co.uk/unix/faq_toc.html в разделе catching SIGCHLD. Копия есть по адресу http://www.nsu.ru/~ser/unix.prg.faq/unix/faq_toc.html
Вот исходный текст драйвера некоего контроллера:
/*
* Power controller (c) 1998, vadik likholetov vadik@sensi.org Hardware by
* Alexandr Priomov, alexandr@sensi.org
*/
#include "pwc.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/conf.h>
#include <sys/uio.h>
#include <i386/isa/isa.h>
#include <i386/isa/isa_device.h>
#include <i386/isa/lptreg.h>
static struct pwc_softc {
int sc_port;
short sc_state;
int hw_state;
} pwc_sc[NPWC];
#define TASK_SIZE 12
#define DEFAULT 0 /* default state for device */
#define OPEN (1<<0) /* device is open */
#define OBUSY (1<<1) /* doing output */
#define OPENDING (1<<2) /* pending output */
static int pwc_probe(struct isa_device * dvp);
static int pwc_attach(struct isa_device * isdp);
struct isa_driver pwcdriver = {
pwc_probe, pwc_attach, "pwc"
};
static d_open_t pwc_open;
static d_close_t pwc_close;
static d_write_t pwc_write;
#define CDEV_MAJOR 220
static struct cdevsw pwc_cdevsw =
{pwc_open, pwc_close, noread, pwc_write,
noioctl, nullstop, nullreset, nodevtotty,
seltrue, nommap, nostrat, "pwc", NULL, -1};
int
pwc_probe(struct isa_device * dvp)
{
/* TODO -- test hardware for presence */
return 1;
}
int
pwc_attach(struct isa_device * isdp)
{
struct pwc_softc *sc;
int unit = isdp->id_unit;
sc = pwc_sc + unit;
sc->sc_port = isdp->id_iobase;
sc->sc_state = DEFAULT;
outb(sc->sc_port, 0);
outb(sc->sc_port + lpt_control, 0);
return 1;
}
static int
pwc_open(dev_t dev, int flags, int fmt, struct proc * p)
{
struct pwc_softc *sc;
u_int unit = minor(dev);
sc = pwc_sc + unit;
if ((unit >= NPWC) || (sc->sc_port == 0))
return ENXIO;
if (sc->sc_state != DEFAULT)
return EBUSY;
return 0;
}
static int
pwc_close(dev_t dev, int flags, int fmt, struct proc * p)
{
struct pwc_softc *sc = pwc_sc + minor(dev);
sc->sc_state &= ~OPEN;
while (sc->sc_state & OBUSY)
if (tsleep((caddr_t) sc, PZERO | PCATCH, "pwcclose", hz) != EWOULDBLOCK)
break;
sc->sc_state = DEFAULT;
return 0;
}
static int
pwc_write(dev_t dev, struct uio * uio, int ioflag)
{
struct pwc_softc *sc = pwc_sc + minor(dev);
char buffer[TASK_SIZE];
int port = sc->sc_port;
int s;
int ret;
int i, j, d;
if (uio->uio_resid != TASK_SIZE)
return EOPNOTSUPP;
s = spltty();
if (sc->sc_state & OBUSY)
return EBUSY;
sc->sc_state |= OBUSY;
splx(s);
/* output goes there */
uiomove(buffer, TASK_SIZE, uio);
if (!(inb(port + lpt_status) & ~LPS_NACK)) {
printf("pwc%d: no power on device\n", minor(dev));
ret = EIO;
goto gout;
}
#define NTRIES 10
for (i = 0; i < TASK_SIZE; i++) {
for (j = 0; j < NTRIES; j++)
if ((inb(port + lpt_status) & LPS_NBSY))
break;
else
DELAY(1);
if (j == NTRIES) {
printf("pwc%d: timeout(1) waiting for ~BSY (%x)\n",
minor(dev),inb(port+lpt_status));
ret = EIO;
goto gout;
}
d = buffer[i] == '1' ? 1 : 0;
if (i > 3 && i < 8)
i ^= 1;
outb(port + lpt_data, d);
outb(port + lpt_control, LPC_STB);
DELAY(1); /* ??? */
outb(port + lpt_control, 0);
}
for (j = 0; j < NTRIES; j++)
if (inb(port + lpt_status) & LPS_NBSY)
break;
else
DELAY(1);
if (j == NTRIES) {
printf("pwc%d: timeout(2) waiting for ~BSY\n", minor(dev));
ret = EIO;
goto gout;
}
ret = 0;
gout:
s = spltty();
sc->sc_state &= ~OBUSY;
#if 0
if (sc->sc_state & OPENDING)
#endif
wakeup((caddr_t) sc);
splx(s);
return ret;
}
static pwc_devsw_installed = 0;
static void
pwc_drvinit(void *unused)
{
dev_t dev;
if (!pwc_devsw_installed) {
dev = makedev(CDEV_MAJOR, 0);
cdevsw_add(&dev, &pwc_cdevsw, NULL);
pwc_devsw_installed = 1;
}
}
SYSINIT(pwcdev, SI_SUB_DRIVERS, SI_ORDER_MIDDLE + CDEV_MAJOR, pwc_drvinit,
NULL)
Проверьте коммуникационный адаптер какой-либо терминальной программой (tip, cu). Если с портом все в порядке, то скорее всего, вы забыли перевести поток в raw-режим. Посмотрите страницы Справочника по terminfo, stty.
Для эффективной работы также посмотрите системный вызов poll/select.
#!/bin/sh
export PATH=/bin:/usr/bin:/usr/local/bin
trap "" 2 3
ulimit -c 0
line=`head -1`
line=`echo "$line" | cut -s -f2- -d= | hex2char | head -1 | valid N 40`
if [ "$line" != "" ]; then
echo -e "Content-type: text/html\n\n<HTML>\n<TITLE>Traceroute to
$line</TITLE>\n"
echo -e "<body>\n<h3>Traceroute to $line:</h3>\n<pre>\n"
traceroute "$line" 2>&1
echo -e "\n</pre>\n</body>\n</html>"
else
echo -e "Content-type: text/html\n\n<HTML>\n<TITLE>Error</TITLE>\n"
echo -e "<body>\n<h3>ERROR: No target specified.</h3>\n"
echo -e "\n</body>\n</html>"
fi
Ниже приведены тексты программы для подсчета CRC32 заданного файла.
----------------------------------------------- crc.h
typedef unsigned char uchar; /* 8 bits or more */
typedef unsigned int uint; /* 16 - 32 bits or more */
typedef unsigned short ushort; /* 16 bits or more */
typedef unsigned long ulong; /* 32 bits or more */
typedef ulong UCRC; /* CRC-32 */
#define CRC_MASK 0xFFFFFFFFUL
extern UCRC crc;
----------------------------------------------- crc.c
#include <stdio.h>
#include "crc.h"
#include <stdlib.h>
/* Global variables */
UCRC crc;
FILE *fp;
#define BUFFERSIZE 32768U
#define CRCPOLY 0xEDB88320UL
/* 1110 1101 1001 1000 1000 0011 0010 0000 */
#define UPDATE_CRC(crc, c) \
crc = crctable[(uchar)crc ^ (uchar)(c)] ^ (crc >> 8)
static UCRC crctable[256];
static void make_crctable( void ) {
uint i, j;
UCRC r;
for (i = 0; i <= 255; i++) {
r = i;
for (j = 8; j > 0; j--) {
if (r & 1)
r = (r >> 1) ^ CRCPOLY;
else
r >>= 1;
}
crctable[i] = r;
/*
printf( "%08lx ", crctable[i] );
if( i % 8 == 7 )
printf( "\n" );
*/
}
}
int main( int argc, char *argv[] ) {
size_t len;
char *buffer, *sav;
if ( argc != 2 ) {
printf("Usage: CRC32 <File_Name>\n" );
return 1;
}
if ( ( fp = fopen( argv[1], "rb" ) ) == NULL ) exit(1);
make_crctable();
crc = CRC_MASK;
buffer = (char *) calloc( BUFFERSIZE,1 );
sav = buffer;
while ( ( len = fread(buffer,1,BUFFERSIZE,fp) ) > 0 ) {
while ( len-- ) UPDATE_CRC( crc, *buffer++ );
buffer = sav;
}
free(buffer);
len = (unsigned int)(crc>>16);
printf( "File = %13s CRC32 = %04x%04x\n", argv[1], (int)~len, (int)~crc );
fclose( fp );
flushall();
return 0;
}
Например, следующим образом можно вывести информацию о полученном запросе:
#!/bin/sh
echo Content-type: text/plain
echo
echo CGI/1.0 test script report:
echo
echo argc is $#. argv is "$*".
echo
echo SERVER_SOFTWARE = $SERVER_SOFTWARE
echo SERVER_NAME = $SERVER_NAME
echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE
echo SERVER_PROTOCOL = $SERVER_PROTOCOL
echo SERVER_PORT = $SERVER_PORT
echo REQUEST_METHOD = $REQUEST_METHOD
echo HTTP_ACCEPT = "$HTTP_ACCEPT"
echo PATH_INFO = "$PATH_INFO"
echo PATH_TRANSLATED = "$PATH_TRANSLATED"
echo SCRIPT_NAME = "$SCRIPT_NAME"
Однако для написания CGI-скриптов лучше использовать Perl совместно со специально предназначенным для этого модулем CGI.pm.
Это можно сделать так:
if (fork()) // тот из них, который child
{
dup(1,Handle); // могy перепyтать порядок аргyментов
dup(0,Handle); // но надо сделать childoвы 0 и 1 equal томy, что тебе надо
close(Handle); // в nixmail это так, может и нафиг не надо
exec_какой_нaдо();
}
Существует несколько реализаций:
ftp://ftp.msk.ru/distro/irlex или он же. Поддерживается VT-1xx, VT-2xx, VT-52, Linux, кодировки KOI8-R, 866, 1251, 8859, программирование клавиш, скроллинг, печать.
Попробуйте также комплект Novell LWP (int 14 в telnet) и telemate или PC/TCP (tnglass версии 4 - берется на их ftp) с int14 в telnet и telemate.
NCSA Telnet. ftp://ftp.inp.nsk.su/pub/support_for_dos/ncsa23.arj
Подойдет любой telnet-клиент плюс ssh для Win95 с переназначением портов (есть на ftp://ftp1.sut.ru/pub/utils/ssh32/{ssh*,crypt*}.zip) Нужно будет переназначить локальный порт, скажем, 23, на соответствующий порт нужной машины. После этого telnet localhost. Либо: 1) SecureCRT 2) teraterm
Посмотрите на http://www.opensound.com/ Скорее всего .au (Sun Audio).
# mv problems /dev/null # mv sadness /dev/null # ftp ] open name:pass@new.year.life ] hatch ] get money ##################################### OK. ] get some_beer ############## Hick! OK. ] quit # cron: syslogd disabled. # sc_connect [object] < pref.list # unzip [...] # strip [...] # mount /dev/censored # touch [...] # finger object # fsck # umount /dev/censored cron: syslogd enabled. # sleep # ftp name:pass@new.year.day ] get beer OK. ] quit # shutdown -r now.
Високосным (то есть в котором 366 дней за счет 29 февраля) годом являются год, номер которого делится без остатка на 4, кроме тех, числа которых оканчиваются на два нуля, но не делятся на 400, поэтому, например, годы 1700, 1800, 1900 не являются високосными, а 2000 является.
Дело в том, что в астрономическом солнечном году всего 365.242198 астрономических солнечных суток. Отсюда и дополнительные невисокосные годы.
Официальным автоpом, дизайнеpом и хyдожником вообще всех изобpажений, символики и всего прочего для UNIX семейства BSD является Marshall Kirk Mckusick.
Символика для BSD-систем представлена на его веб-сервере http://www.mckusick.com/beastie. Там же можно заказать/кyпить фyтболкy с изобpажением даемона любимой веpсии ОС UNIX.
Луиджи Риццо - итальянец, активно работающий с аудио во FreeBSD. Его домашняя страница, находящаяся по адресу http://www.iet.unipi.it/~luigi/, содержит массу полезной информации об аудио.
На самом деле существует два способа русификации консоли FreeBSD. Первый способ заключается в установке шрифтов koi8-r и изменении параметра ядра SC_MOUSE_CHAR. Второй сводится к использованию шрифтов cp866 и scrnmap из koi8-r в cp866.
Стандартным для FreeBSD является использование второго способа. Дело в том, что некоторые видеоадаптеры аппаратно и неотключаемо расширяют символы (то есть копируют девятый бит изображения символа из его восьмого бита), соответствующие псевдографике в оригинальной таблице символов. При использовании шрифтов koi8-r псевдографика получается "рваной", а русские буквы сливаются. Кроме того, при использовании мыши на консоли в случае использования шрифтов koi8-r происходит порча символов на экране и необходимо переопределять SC_MOUSE_CHAR в конфигурационном файле ядра следующим образом:
options SC_MOUSE_CHAR=0x03
Для других адаптеров можно выбрать использование шрифтов koi8-r без использования scrnmap, однако способ с использованием scrnmap более универсален. В частности, для просмотра информации в других кодировках достаточно сменить scrnmap, например, cp1251-cp866.
Более подробную информацию о русификации консоли можно найти по адресу http://www.tsu.ru/~pascal/unix/syscons/russian.html
Если вы обнаружили неточности в этом Q&A или хотите что-то в него
добавить, пожалуйста, напишите нам на адрес andy@icc.surw.chel.su.
Мы ждём ваши отзывы и пожелания, чтобы с вашей помощью сделать этот
документ ещё лучше!
The FreeBSD Russian Documentation Project
Андрей Захватов - создание, обновление.
The FreeBSD Russian Team - пожелания, замечания.
В данном документе использованы информация и замечания следующих лиц:
И всем остальным поклонникам FreeBSD, оставшимся неизвестными, наши глубочайшие извинения и сердечные благодарности!
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.