Полный роутер для корбины на FreeBSD для Чайников

Идея этой статьи возникла в тот момент, когда я впервые установил FreeBSD 6.1. Ситуация была такова, что я сидел перед компьютером, глядя на черный экран и не понимая, что же вообще делать.

Идея этой статьи возникла в тот момент, когда я впервые установил FreeBSD 6.1. Ситуация была такова, что я сидел перед компьютером, глядя на черный экран и не понимая, что же вообще делать. Наверное, со стороны смотрелось забавно… Данный материал будет точнее характеризовать как не статью, а мануал из разряда «Заметки начинающего пользователя». Соответственно, и ориентирован он на начинающих пользователей, которые, как и я в свое время, не знают, что и как им делать в новой операционной системе.

Примечания:

  1. Я не буду подробно расписывать то, что у вас будет написано на экране. Там обо всем сообщают на английском, а его почти все знают. Если вы не знаете - вооружитесь словариком.
  2. Я не претендую на звание «Автор года» - я просто хочу кому-нибудь помочь. Не знаю, помогу ли, но так я не буду чувствовать себя ненужным.
  3. Вместо слов «От рута» или «С правами суперпользователя» я буду ставить символ «#» перед командой. В случаях, где стоит «$», эти прав не нужны.

1) Пользователи и права

Если вы не забыли добавить пользователя в процессе установки, то можете сразу перейти к пункту «б)».

а) Чтобы не рисковать, постоянно находится в системе под root’ом не рекомендуется, ибо малейшая оплошность может привести к серьезным последствиям. Для этого существуют пользовательские учетные записи, с которыми и надлежит работать. Если же у вас появляется необходимость, например, изменить какой-нибудь системный конфигурационный файл, существует команда su, которая (после ввода пароля от root) предоставляет права суперпользователя для текущего терминала.

Итак, чтобы создать пользователя, существует несколько вариантов. Мы остановимся на двух самых простых: через меню sysinstall и через команду adduser.

Первый способ:

# sysinstall -> Configure -> User management -> User.

Все просто: заполняем стандартную форму (имя, пароль, реальное имя, адрес домашнего каталога, группа). (Чтобы пропустить выполнение пункта «б)», можно в поле «Group» вписать wheel, хотя перед этим рекомендуется почитать, к чему это приводит.)

б) Группа wheel дает вам возможность выполнять команды от имени суперпользователя (root). Это сделано для того, чтобы ускорить выполнение этих самых команд: в такой случае не нужно каждый раз начинать новый сеанс, а достаточно воспользоваться командой su примерно так:

$ su Password: # ls

Как вы понимаете, последняя команда (ls) выполняется уже с правами суперпользователя. Чтобы получить доступ к выполнению этой команд,ы достаточно включить себя в группу wheel. Делается это редактированием файла /etc/group:

Откроется стандартный текстовый редактор ee, в первой строке (возможно, и не в первой) будет запись:

Ставим запятую после слова root и вписываем имя нашего пользователя. Например, так (для пользователя joe):

wheel:*:0:root,joe

Теперь заходим в систему под своим именем и больше никогда не входим с логином root.

2) Настройка и запуск иксов (X-сервера X.Org)

Тут тоже ничего сложного нет. Единственная проблема в том, что в процессе установки FreeBSD Xorg не конфигурируется. Поэтому нам предстоит это сделать самим. Итак:

# Xorg -configure

Запускается конфигурационный скрипт. Он создаст файл xorg.conf.new и сохранит его в каталоге /root.

# Xorg -configure ~/xorg.conf.new

Проверяется конфигурация из нового сгенерированного файла (/root/xorg.conf.new). Если все правильно, появится серый экран и курсор мыши (крестик). Нажимаем комбинацию клавиш ++ («экстренное» завершение работы X-сервера).

# cp ~/xorg.conf.new /etc/X11/xorg.conf

Новый конфигурационный файл копируется на место стандартного системного конфига Xorg.

Теперь надо определить менеджер окон по умолчанию. Это делается просто: создается файл.xinitrc в домашнем каталоге пользователя (для которого и определяется оконный менеджер по умолчанию) и в него помещается строку вида exec <запускающий_скрипт>.

Например, для текущего пользователя определение KDE как оконного менеджера по умолчанию делается так:

$ echo «exec startkde">~/.xinitrc

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

3) Локализация (русификация системы)

Многие считают, для русификации Linux достаточно поставить пакет локализации используемого оконного менеджера, но на самом деле это, конечно, не так. Далее я приведу порядок действий для локализации FreeBSD в CP1251. Это стандартная кодировка, используемая в операционной системе Windows. У меня на компьютере FreeBSD и Linux установлена и Windows XP, поэтому, чтобы они все друг друга «понимали», все приводится в CP1251 (строго говоря, это вовсе не обязательное условие для организации такого «понимания» - прим. Д. Шурупова) . К тому же, нет проблем, например, с тегами.mp3-файлов, записанных в Windows.

Редактируем /etc/login.conf:

Russian|Russian Users Accounts: :charset=CP1251: :lang=ru_RU.CP1251: :tc=default:

LANG=ru_RU.CP1251; export LANG LC_ALL=ru_RU.CP1251; export LC_ALL MM_CHARSET=CP1251; export MM_CHARSET

Для csh (или tcsh) в файл /etc/csh.login вписываем:

Setenv LANG ru_RU.CP1251 setenv MM_CHARSET CP1251

Для того, чтобы не только читать, но и писать в CP1251, качаем 2 файла: ru.cp1251.kbd и win2cpp866.scm . Первый копируем в /usr/share/syscons/keymaps/, второй - в /usr/share/syscons/scrnmaps/.

Теперь в /etc/rc.conf пишем:

Keymap=ru.cp1251 scrnmap="win2cpp866" font8x16=cp866-8x16 font8x14=cp866-8x14 font8x8=cp866-8x8

После запуска KDE устанавливаем стандартные Windows-шрифты через центр управления KDE.

Windows-разделы жесткого диска (FAT32) легко монтируются после редактирования файла /etc/fstab. В него необходимо добавить строку вида:

/dev/ad1s1 /mnt/win_d msdosfs rw,auto,-DCP866,-Lru_RU.CP1251 0 0

Где /dev/ad1s1 - имя устройства нужного раздела жесткого диска, /mnt/win_d - точка монтирования (где будет доступен этот раздел жесткого диска после монтирования), msdosfs - тип файловой системы.

4) Настройка звука

Для начала рекомендую посетить http://www.freebsd.org/releases/6.2R/hardware-i386.html - на этой странице можно найти информацию обо всем поддерживаемом оборудовании на данный момент. Как не трудно догадаться, нужно найти свою аудиокарту и запомнить имя драйвера для нее.

После этого в файл /boot/loader.conf нужно добавить строку типа:

Snd_cmi_load="YES"

Где вместо snd_cmi нужно указать название своего драйвера. После перезагрузки в системе появится звук.

5) Рихтовка xorg.conf

а) Возможно, колесо мышки (скролл) не будет работать. В этом случае необходимо открыть конфигурационный файл Xorg (/etc/X11/xorg.conf), найти секцию мышки и привести ее примерно к следующему виду:

Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "ZAxisMapping" "4 5 6 7" EndSection

Моя оптическая беспроводная мышь от Logitech работает отлично.

б) Раскладки клавиатуры и параметры переключения редактируются там же, только в секции клавиатуры:

Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc105" Option "XkbLayout" "us,ru(winkeys)" Option "XkbRules" "xorg" OPtion "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll" EndSection

В данном примере представлено переключение по + и включение индикатора Scroll Lock, когда активирована русская раскладка.

6) Установка программ

В FreeBSD предусмотрено 3 основных типа установки нового программного обеспечения.

  1. Из исходников. Нужно скачать архив (вероятно, им будет тарболл, т.е. файлы типа *.tar, *.tar.gz или *.tar.bz2) и распаковать его (для.tar: tar xvf xxx.tar; для.tar.gz: tar xzvf xxx.tar.gz; для.tar.bz2: tar xjvf xxx.tar.bz2). После этого установка вкратце выполняется так: $ ./configure $ make # make install

    (Последнюю операцию, как видно, необходимо выполнять с правами root.)

  2. Из пакетов. Для работы с ними используются программы pkg_add, pkg_delete и pkg_info. Пакеты доступны на FTP-сервере FreeBSD . Программы работают так: # pkg_add <имя_пакета> - устанавливает пакет. # pkg_delete <имя_пакета> - удаляет установленный пакет из системы. # pkg_info <имя_пакета> - выводит информацию об установленном пакете.
  3. Из портов . Коллекция портов FreeBSD может быть установлена во время инсталляции системы или в любое время с помощью команды sysinstall. Для портов используется несколько источников их получения (например: FTP-сервер, привод CD-ROM и т.д). Разумеется, предпочтительным вариантом является FTP, но это не всегда возможно. По умолчанию порты ставятся в /usr/ports. Чтобы найти нужное приложение, достаточно выполнить специально предусмотренный поиск: $ cd /usr/ports $ make search name=<имя_приложения>

    В этом случае программа даст вам расположение и название каталога искомого пакета, а также информацию о том, что надо, чтобы его установить (зависимости). Если в процессе установки чего-то не будет хватать, программа сама поставит все, что ей надо.

    Итак, допустим, мы устанавливаем nmap:

    $ cd /usr/ports $ make search name=nmap Port: nmap-4.11 Path: /usr/ports/security/nmap Info: Port scanning utility for large networks Maint: [email protected] B-deps: gettext-0.14.5_2 gmake-3.81_1 libiconv-1.9.2_2 pcre-6.7 R-deps: pcre-6.7 WWW: http://www.insecure.org/nmap/ $ cd security/nmap # make install clean

    Вот и все. Спустя 10 минут я получил в свое распоряжение готовую рабочую программу.

На этом пока все. Будут вопросы - пишите. Обсуждение этой статьи проводится в .

Annelise Anderson

Поздравляем с установкой FreeBSD! Теперь настало время прочитать этот документ. Это введение для людей, которые только начинают работать с FreeBSD и Un*x, поэтому оно начинается с самых основ. Я подразумеваю, что Вы используете FreeBSD версии 2.0.5 или более позднюю, Ваша система имеет одного пользователя (Вас), и Вы неплохо разбираетесь с DOS/Windows или OS/2.

1. Вход в систему и выход из нее.

Войдите в систему (когда Вы видите приглашение login:) как пользователь, созданный Вами в процессе инсталяции, или как root . (Во время инсталяции FreeBSD будет создан бюджет для пользователя root; root может делать в системе все что угодно, включая удаление жизненно важных файлов, так что будьте осторожны.) После входа Вы увидите приглашение, начинающееся с символов % или #, в зависимости от того под каким пользователем Вы вошли. Символ % характерен для обычного пользователя, а символ # - для пользователя с правами root.

Для выхода из системы (к новому приглашению login:) просто введите

Естественно, после каждой команды нужно нажимать enter , и помните, что Unix чувстителен к регистру символов -- exit, но не EXIT.

Чтобы выгрузить систему введите

    # /sbin/shutdown -h now

Для перезагрузки компьютера введите

    # /sbin/shutdown -r now

    # /sbin/reboot

Вы также можете перезагрузить компьютер, нажав клавиши Ctrl-Alt-Delete , и немного подождав пока система корректно завершит свою работу. Это аналогично команде /sbin/reboot и намного, намного лучше, чем нажатие кнопки Reset. Вы ведь не хотите переустанавливать FreeBSD, не так ли?

2. Добавление пользователя с правами суперпользователя (root).

Если Вы не создали других пользователей в процессе инсталяции и, таким образом, входите в систему как root, Вы возможно захотите создать нового пользователя. Это можно сделать командой

    # adduser

Если Вы используете эту команду в первый раз, Вас спросят о некоторых значениях по умолчанию, чтобы затем их сохранить. Например, Вы можете сделать csh оболочкой (shell) по умолчанию вместо sh. В противном случае, просто нажимайте каждый раз enter , чтобы согласиться с каждым значением по умолчанию. Эти значения сохраняются в файле /etc/adduser.conf, который может быть затем отредактрирован любым текстовым редактором.

Предположим Вы создали пользователя jack с полным именем Jack Benimble . Для безопасности ему следует дать пароль. Когда Вас спросят хотите ли Вы включить пользователя jack в другие групппы, введите whell .

    Login group is ``jack"". Invite jack into other groups: wheel

Это позволит входить в систему как пользователь jack и затем использовать команду su, чтобы стать root"ом.

Вы можете прервать выполнение команды adduser в любое время, нажав клавиши Ctrl-c . Рекомендуем Вам создать еще одного пользователя на случай, если вы вдруг почему-то не сможете войти в систему под именем jack.

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

Если Вы уже создали пользователя и хотите, чтобы он мог использовать команду su, зайдите в систему как root и исправьте файл /etc/group, добавив слово "jack" в первую строчку (группу wheel). Но сначала попрактикуйтесь в использовании текстового редактора vi, или используйте редактор попроще, например ее.

Для удаления пользователя используйте команду rmuser .

3. Начало работы

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

Вот несколько команд с описанием, что они делают:

Сообщает Вам, кто Вы!

Показывает в какой текущей директории Вы находитесь.

Выдает список файлов в текущей директории.

Выдает список файлов в текущей директории со значком "*" - после исполняемых файлов, "/" - после директорий и "@" - после символических ссылок.

Выдает список файлов в длинном формате, т.е. с указанием размера, даты и прав.

Выдает список всех файлов, включая скрытые файлы (файлы с точкой в начале имени) файла.

Меняет директорию. cd .. переходит вверх на один уровень (обратите внимание на пробел после слова cd), cd ~ переходит в домашнюю директорию пользователя, например, /usr/home/jack. Попробуйте ввести cd /cdrom , а затем ls , чтобы выяснить установлен ли у Вас CD-ROM и работает ли он.

view filename

Позволит Вам просмотреть файл с именем filename без возможности изменить его. Попробуйте ввести view /etc/fstab (для выхода наберите:q).

cat filename

Отображает файл с именем filename на экране. Если файл слишком большой и не умещается на экране, нажмите ScrollLock и, используя клавишу "стрелка вверх", двигайтесь назад. Вы также можете использовать ScrollLock для просмотра man pages. Попробуте просмотреть файлы "с точкой" в своей домашней директории.

Обратите внимание на псевдонимы (aliases) в файле.cshrc для некоторых из команд ls (они очень удобны). Вы можете создать другие псевдонимы, отредактировав.cshrc. Чтобы сделать эти псевдонимы доступными всем пользователям, отредактируйте файл /etc/csh.cshrc.

4. Получение справки и информации.

Имеются несколько команд помощи. После каждой команды вместо слова " text " нужно ввести какое-то слово -- обычно это команда или имя файла.

Выдаст Вам все, что содержит строку text в базе данных whatis .

Выдаст соответствующий man page для слова text . Man pages - это главный источник информации в Un*x системах. Например, man ls расскажет Вам обо всех возможностях использования команды ls . Управляющие комбинации клавиш: enter - для продвижения по тексту, Ctrl-b - для возврата, Ctrl-f - для продвижения вперед, q или Ctrl-c - для выхода.

Сообщит, в какой директории находится команда text , если эта директория прописана в пользовательском пути (path).

Все пути, где найдена строка text.

Сообщит Вам, что делает команда text . Комбинация whatis * расскажет Вам обо всех двоичных файлах в текущей директории.

Найдет файл с именем text , сообщив его полный путь.

Возможно вы захотите попробовать использовать команду whatis на некоторых полезных командах, таких как cat, more, grep, mv, find, tar, chmod, chown, date, and script. Команда more позволит Вам читать файл постранично, например, more filename или cat filename|more . Символ * работает как групповой символ, например, ls w* выдаст список всех файлов в текущей директории, начинающихся с буквы w.

Некотрые из этих команд работают не очень хорошо? И locate и whatis зависят от базы данных, которая еженедельно перестраивается. Если Вы не собираетесь оставлять работающую машину до конца недели, попробуйте время от времени выполнять команды для ежедневного, еженедельного и ежемесячного сопровождения. Запустите их как пользователь root и дайте каждой из них закончить, прежде чем запускать другую.

    # /etc/daily
    # /etc/weekly
    # /etc/monthly

Если Вы устали ждать, нажмите Alt-F2 и Вы получите новую виртуальную консоль. В конце концов, это же многопользовательская и многозадачная система. Однако, эти команды могут выдавать сообщения на экран во время своего выполнения; команда clear очистит экран. После их выполнения, Вы можете просмотреть сообщения в /var/mail/root и /var/log/messages. В основном, выполнение таких команд является частью администрирования системы -- и как единственный пользователь Unix системы, Вы - свой собственный системный администратор. Вообще, все что должно делаться с правами root"а может считаться системным администрированием.

5. Редактирование текста.

Для настройки Вашей системы, Вам придется редактировать текстовые файлы. Большинство из них находится в директории /etc, и изменять их может только root. Вы можете использовать удобный редактор ее, но в конечном счете vi стоит того, чтобы его изучить. Есть отличное руководство по редактору vi в /usr/src/contrib/nvi/docs/tutorial, если Вы конечно его установили; однако его можно получить и по ftp с ftp.cdrom.com в директории FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial.

Перед тем, как редактировать файл, сделайте его копию. Предположим, что Вам надо отредактировать файл /etc/rc.conf. Перейдите командой cd /etc в дирекорию /etc и наберите

    # cp rc.conf rc.conf.orig

Теперь у Вас есть копия файла rc.conf, и Вы сможете позднее скопировать rc.conf.orig в rc.conf, чтобы восстановить оригинал. Но лучше все-таки переместить (переименовать) файл и затем скопировать обратно:

    # mv rc.conf rc.conf.orig
    # cp rc.conf.orig rc.conf

потому что команда mv сохраняет первоначальную дату и владельца файла. Теперь можно редактировать rc.conf. Если Вы теперь хотите вернуть оригинал, наберите mv rc.conf rc.conf.myedit (подразумевается, что Вы хотите сохранить Вашу исправленную версию) и затем введите

    # mv rc.conf.orig rc.conf

Для редактирования файла наберите

    # vi filename

Двигаться по тексту можно "стрелками". Esc переключает vi в командный режим. Вот некоторые команды, который Вам нужно знать:

удаляет букву, на которой находится курсор.

удаляет всю строку

вставляет текст в место курсора

вставляет текст после курсора

Если Вы введете i или a, Вы можете редактировать файл. Esc переключает обратно в командный режим, где Вы можете ввести

чтобы записать изменения на диск и продолжить редактирование

записать и выйти

выйти без записи

найти слово " text "; / Enter (клавиша Enter) для поиска следующего слова " text "

перейти в конец файла

перейти на строку n файла, где n - номер строки

перерисовать экран

двигаться вперед и назад по экрану.

Потренируйтесь немного в работе с vi в своей домашней директории, создав какой-нибудь новый файл. И не удивляйтесь, если Вы получите несколько сюрпризов от vi, потому что это действительно сложный редактор, и когда-нибудь Вы введете неосторожно команду, которая сделает совсем не то, что вы от нее ожидаете. (Хотя некоторым людям на самом деле нравится vi - он гораздо мощнее DOS"овского EDIT).

Теперь Вы можете зайти в систему как root, воспользоваться vi для редактирования /etc/group, и добавить пользователя в группу wheel, чтобы он имел права root"a. Просто добавьте запятую и имя пользователя в конец первой строчки файла, нажмите Esc для перехода в командный режим, и введите: wq для записи и выхода. Изменения вступят в силу немедленно. Имейте в виду, что пробел после запятой не нужен.

6. Печать файлов из DOS.

На этом этапе у Вас наверняка принтер под FreeBSD не работает, поэтому здесь описан способ создания файла из man page, копирования его на дискету, и затем печати его из DOS"а. Предположим, Вы хотите повнимательнее почитать о изменении прав на файлы (это дейстивительно очень важно). Для этого Вы можете использовать команду man chmod. Команда

    # man chmod | col -b > chmod.txt

удалит все лишние коды форматирования и запишет man page в файл chmod.txt. Теперь вставьте отформатированную дискету под DOS"ом в дисковод, станьте root"ом (используя su), и наберите команду

    # /sbin/mount -t msdos /dev/fd0 /mnt

для монтирования дисковода в точку /mnt.
Теперь (Вам больше не нужно быть root"ом) зайдите в директорию, где Вы создали файл chmod.txt и скопируйте его на дискету

    % cp chmod.txt /mnt

Теперь Вы можете размонтировать дисковод

    # /sbin/umount /mnt

и перезагрузитесь для возврата в DOS.
Далее скопируйте файл в какую-нибудь директорию, откройте его любым текстовым редактором и распечатайте. Надеюсь это сработало! (Копирование файлов с FreeBSD на смонтированный раздел DOS в некоторых случаях все еще представляет небольшой риск).

7. Другие полезные команды.

показывает свободное дисковое пространство и смонтированные системы

показывает запущенные процессы. ps ax - в более узкой форме

rm filename

удаляет файл с именем filename

rm -R dir

удаляет директорию с именем dir и все поддиректории

выдает список всех файлов в текущей директории и во всех поддиректориях; я использовал вариант ls -AFR > where.txt , чтобы получить список всех файлов в директории / и отдельно в директории /usr, прежде чем нашел лучший способ для поиска файлов.

меняет пароль пользователя

man page по файловой системе Unix

Используйте команду find для поиска файлов в директории /usr и любой его поддиректории:

    % find /usr -name "filename"

Можете использовать символ * в слове "fileneme". Если Вы скажете искать в директории / вместо /usr, поиск будет производиться во всех смонтированных файловых системах, включая CD-ROM и раздел DOS.

Министерство образования Республики Таджикистан

Таджикский Технический Университет им. ак. М. С. Осими

кафедра АСОИиУ

Курсовая работа

на тему: «Операционная система FreeBSD»

Душанбе 2009


Аннотация

Введение

Для чего нужна FreeBSD

FreeBSD в роли настольной ОС

FreeBSD в роли серверной ОС

FreeBSD и неродственные неродственные операционные системы

FreeBSD и другие разновидности UNIX

Программная среда

История разработки FreeBSD

Взаимодействие с другими компьютерами по сети

Сосуществование FreeBSD с другими ОС на одном компьютере

Аппаратная среда

Типы и производительность процессоров

Требования к оперативной памяти

Жёсткие диски

Диски SCSI и EIDE

Общие требования к объёму дискового пространства

Графическое оборудование

Сетевое оборудование

Принтеры

Вспомогательные устройства

Заключение

Список литературы


Аннотация

Эта курсовая работа может вполне послужить ознакомительным руководством по операционной системе FreeBSD. Но прежде чем начинать знакомство с системой, нужно ответить на ряд важных вопросов: зачем устанавливать FreeBSD, какое программное обеспечение в ней работает и какую аппаратную платформу лучше всего использовать? Об этом и пойдет речь в настоящей курсовой работе. Понимание особенностей операционной системы позволит избежать дорогостоящих ошибок, таких, например, как попытка эксплуатации системы на неадекватном оборудовании или в неподходящей среде.

На сегодняшний день существует много различных операционных систем, начиная от DOS-а и заканчивая Windows Vista. Может показаться бессмысленным разговор о операционной системе FreeBSD учитывая таких серьёзных конкурентов как Mac OS X и Windows Vista. Но в области вычислительной техники часто встречаются примеры простеньких операционных систем. Почему же так получается? Дело в том, что есть такие области вычислительной техники в которых применение таких «титанических» систем как Windows и Mac OS было бы просто не выгодно как в техническом так и в материальном плане. Поэтому и создаются такие системы как FreeBSD.

Вместе с этим FreeBSD является операционной системой с открытым программным кодом, т.е. операционную систему можно модернизировать и даже в некоторых случаях изменять в корне (кроме основного ядра системы). FreeBSD также является системой бесплатного распространения, т.е. вы можете её установить, не выплачивая денег за лицензию. Стоит также подчеркнуть, что FreeBSD является UNIX-подобной операционной системой (т.е. производной от UNIX).

Введение

Что же из себя представляет FreeBSD. В двух словах, FreeBSD - это UNIX-подобная операционная система для платформ i386, IA-64, PC-98, Alpha/AXP и UltraSPARC, разработанная на основе операционной системы ""4.4 BSD-Lite"" с некоторыми усовершенствованиями, взятыми из ""4.4 BSD-Lite 2"" Калифорнийского Университета (Беркли). Также она косвенно базируется на 386BSD (BSD Net/2, перенесённой на платформу i386 Вильямом Джолитцем (William Jolitz)), хотя от того первоначального кода осталось очень мало. FreeBSD используется компаниями, Интернет-провайдерами, научными работниками, профессионалами в вычислительной технике, студентами и рядовыми пользователями по всему миру для работы, образования и отдыха. Почему система называется именно FreeBSD? Ответ прост:

· Она может использоваться без всяческих выплат, даже для извлечения выгоды.

· Все исходные тексты операционной системы свободно доступны, на её использование в других разработках (как коммерческих, так и некоммерческих) и дальнейшее распространение наложены минимальные ограничения.

· Любой, у кого есть усовершенствования или исправления, может предоставить свой код и он будет (правда, с парой оговорок) добавлен в исходные тексты системы.

Следует отметить, что слово ""free"" используется здесь в двух смыслах, один означает ""бесплатно"", а другой ""вы можете делать всё, что хотите"". За исключением пары вещей, которые вы не можете делать с FreeBSD, например, претендовать на то, что являетесь её разработчиком, на самом деле можно делать с ней всё, что вам заблагорассудится.


Для чего нужна FreeBSD

В любом деле важно находить правильные средства для достижения поставленных целей, и выбор оптимальной операционной системы (ОС) - не исключение. FreeBSD - очень гибкая и эффективная система, имеющая множество возможных вариантов применения. Но, несмотря на это она не всегда оказывается наилучшим выбором. Вот почему нужно, прежде всего, проанализировать, в каких обстоятельствах следует инсталлировать именно FreeBSD.

FreeBSD устанавливают либо на рабочей станции, либо на сервере. Ниже рассматриваются достоинства и недостатки системы в каждом из этих случаев. Кроме того, FreeBSD - член семейства операционных систем, производных от (или смоделированных на основе) UNIX. Поэтому важно понимать, как FreeBSD (и UNIX в целом) соотносится с операционными системами других типов и какое место занимает FreeBSD в семействе UNIX-подобных систем.

FreeBSD в роли настольной ОС

В этой курсовой работе под термином рабочая станция понимается компьютер, за которым пользователь решает свои повседневные задачи: редактирует текст, программирует, занимается Web-дизайном (играет в игры...). Иногда термин употребляют в более узком смысле, подразумевая, что указанные выше функции выполняются на высокопроизводительных компьютерах или системах, постоянно подключенных к сети. В этом случае низкопроизводительные или изолированные системы называют настольными компьютерами. Впрочем, уровень вычислительных мощностей постоянно растет, соответственно меняется и оценка производительности. Что касается подключения к сети, то нужно учитывать огромную популярность коммутируемых сетевых соединений в системах нижнего сегмента рынка. Исходя из этого мы будем употреблять термин "рабочая станция" в отношении компьютеров конечных пользователей.

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

Удобный пользовательский интерфейс . Современные пользователи привыкли к наличию удобных средств работы с компьютером. Ключевое из них - пользовательский графический интерфейс. Во FreeBSD графический интерфейс представлен средой Х Window System (сокращенно - Х-среда). Ее ядро довольно примитивно в сравнении с другими аналогичными интерфейсами, поэтому к нему добавлен ряд надстроек, таких как диспетчер окон (управляет рамками окон) и набор элементов управления (упрощают программисту задачу отображения меню, диалоговых окон и т.д.). Подобный модульный подход делает Х-среду очень гибкой с точки зрения программирования интерфейса, но есть и обратная сторона медали: возникающая несогласованность между приложениями часто сбивает пользователей с толку.

Доступность прикладных программ . На рабочей станции выполняются пользовательские приложения: текстовые редакторы, программы обработки электронных таблиц, почтовые клиенты, компиляторы, графические редакторы и даже игры. Если операционная система не может предложить пользователю необходимый набор прикладных программ, то она не подходит для установки на рабочей станции. Список приложений, доступных во FreeBSD, велик, хотя и не настолько, как хотелось бы. В частности, популярный пакет Microsoft Office не перенесен во FreeBSD. Существуют его альтернативы, такие как пакет OpenOffice.org, но они не обеспечивают 100-процентную совместимость файлов. Если говорить в целом, то в одних категориях (например, игры) ощущается нехватка приложений для FreeBSD, а в других их более чем достаточно.

FreeBSD вполне подходит на роль операционной системы для рабочей станции, хотя в конкретной ситуации выбор зависит от специфических потребностей пользователя. К достоинствам FreeBSD относятся низкая стоимость, способность функционировать на старом оборудовании, стабильность, гибкий пользовательский интерфейс и близкое сходство с другими разновидностями UNIX. К недостаткам можно отнести менее согласованный, чем в Windows или Мас OS, пользовательский интерфейс, несколько непривычный для пользователей вышеуказанных систем. Что касается фактора доступности прикладных программ, то все зависит от обстоятельств. Если пользователь вынужден работать с приложениями вроде Microsoft Office, которые недоступны во FreeBSD, придется обратиться к другой операционной системе. Если же пользователь не привязан к конкретным форматам файлов, то можно сделать выбор в пользу FreeBSD.

Стоит подметить, что если на рабочей станции требуется установить UNIX-подобную операционную систему и при этом предполагается запускать Microsoft Office или другой прикладной пакет, недоступный во FreeBSD, то в качестве компромиссного варианта подойдет Мас OS Х. Эта система создана на основе микроядра Mach и целого ряда компонентов FreeBSD. Конечно, Мас OS Х - это не FreeBSD, но благодаря многочисленным "заимствованиям" из FreeBSD и других разновидностей UNIX она гораздо больше знакома администраторам UNIX, чем Windows-системы или более ранние версии Мас OS. В Мас OS Х поддерживаются многие прикладные пакеты, включая Microsoft Office.

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


FreeBSD в роли серверной ОС

Серверы - это компьютеры с сетевыми платами, обрабатывающие запросы других компьютеров. Именно серверы обеспечивают наиболее эффективное функционирование сетей. Ниже рассмотрены примеры серверов.

Файловый сервер позволяет другим компьютерам читать и записывать файлы серверной файловой системы. Эти серверы можно использовать для распространения свободно доступных файлов (например, компонентов FreeBSD), а также в качестве централизованного хранилища файлов локальной сети.

Web-сервер . В определенном смысле это разновидность файлового сервера. Обычно служит для доставки файлов Web-клиенту, называемому браузером.

Полный роутер для корбины на FreeBSD для Чайников.

Включая PPTP, L2TP и multicast routing для Corbina IPTV.

Полное пошаговое руководство для полных чайников.

Эти скрипты больше не развиваются

Я открыл тему, в которой выложил скрипт для полностью автоматического проделывания того, что тут описано - Скрипт полностью автоматического создания роутера для корбины на FreeBSD (Custler). Там сделаны много улучшений и дополнений.

Одна из главных задач, которые я хотел решить – избавиться от ручного прописывания шлюза и маршрутов в конфигурационных файлах, так как сейчас маршруты выдаёт корбиновский DHCP сервер. Задача - РЕШЕНА , за исключением нескольких маршрутов, которые корбина почему-то не выдаёт, но и они прописываются из dns имён этих серверов (например сервер точного времени - ntp.corbina.ru) . Также вручную прописаны адреса IPTV серверов в igmpproxy.conf. Всё остальное – на автомате. Так если у Вас изменится шлюз или корбина поменяет адреса vpn серверов или изменит ip локальных ресурсов, ничего править в конфигах не придётся. То есть, при переезде, просто переносите комп, включаете - работает. Или можно собрать у себя дома, а потом подарить другу , которому не надо ничего настраивать.

Итак, здесь решено:

  • - автоматическое получение всех маршрутов до локальных ресурсов Корбины по DHCP
  • - автоматическое установление VPN соединения по протоколам pptp и l2tp на выбор
  • - маршрутизация multicast траффика для просмотра IPTV
  • - просмотр видео с сайта corbina.tv без отключения интернета
  • - синхронизация времени
  • - проброс портов для torrent, emul и т.п
  • - история соединений и выдаваемых маршрутов пишется в /var/log/Corbina/

Все используемые файлы конфигурации - в приложенном архиве, в конце этого поста - FreeBSD_config_files_[дата последнего изменения].zip .

У меня используются следующие имена интерфейсов

xl0 – для внешнего интерфейса, подключенного в сеть корбины

nve0 – для интерфейса домашней сети.

Там, где будет указано, эти имена Вам надо будет изменить на свои.

Для туннеля всегда будет имя ng0 , так как используется netgraf и mpd.

Чтобы определить какие у Вас интерфейсы есть по крайней мере два способа -

1) метод "тыка":

Так как предполагается, по умолчанию, что у нас два интерфейса, то один - внешний. Если не угадал - перетыкаешь провод корбины в другой и всё.

2) Включение мозга:

Если в компе вставлены две одинаковые сетевые карты, то они нумеруются xxx0, xxx1, причем нумерация происходит по слотам от процессора: ближняя - 0, следующая - 1. Однако я в этом не до конца уверен. Если кто знает лучше - поправте меня.

Если в компе разные сетевые карты, то, например в файле GENERIC, можно найти соответствие префикса устройства (два или три символа перед цифрой) и модели сетевой карты:

# PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip"") device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device le # AMD Am7900 LANCE and Am79C9xx PCnet device txp # 3Com 3cR990 (``Typhoon"") device vx # 3Com 3c590, 3c595 (``Vortex"") # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the "device miibus" line in order to use these NICs! device miibus # MII bus support device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit Ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit Ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (precedence over "le") device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (``Starfire"") device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 ``EPIC"") device vge # VIA VT612x gigabit Ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang"", ``Cyclone"") # ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # "device ed" requires "device miibus" device ed # NE000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device sn # SMC"s 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # Wireless NIC cards device wlan # 802.11 support device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support device an # Aironet 4500/4800 802.11 wireless NICs. device ath # Atheros pci/cardbus NIC"s device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.

Полный список сетевых карт и имена драйверов можно найти на оф. сайте - FreeBSD - Hardware - Ethernet

1. Установка FreeBSD 6.3.

Так как у меня был «лишний» системный блок на AMD Athlon XP 64 3200+ (2ГГц), все ссылки указаны для дистрибутивов amd64. Если у Вас система на процессоре Intel, то вместо amd64 в ссылках подставляйте i368.

1.1. Скачиваем образ установочного диска FreeBSD 6.3 6.3-RELEASE-amd64-disc1.iso

Но мне, как старому видузятнику очень нравится SecureCRT – она условно бесплатная (30 дней полнофункциональный триал – нам хватит) – в нём выберете terminal emulation – xterm и поставьте птицу ANSI Color. шрифт - Fixedsys 10pt

Это удобно при пользовании Midnight Commander’ом. В SecureCRT также встроен sftp клиент, которым очень удобно копировать командами put (скопировать в unix)и get (скопировать из unix), и когда я буду писать «скопировать», я буду иметь ввиду именно копирование с помощью sftp с виндовой машины.

3.1. Теперь нам нужно загрузить необходимые пакеты.

3.1.1. Первое, что нужно сделать – прописать default route (у меня его не было):

route add 0.0.0.0/0 GW

где GW - шлюз, который можно посмотреть командой netstat -rn

3.1.2. после этого проверяем связь с корбиновским FTP:

ping ftp.corbina.ru

3.1.3. Запускаем sysinstall и идём в Configure -> Packages

3.1.5. Делаем Install всего выбранного и перезагружаемся.

4. Сборка необходимой нам конфигурации ядра.

Теперь надо пересобрать ядро с нужной нам конфигурацией.

4.1. Для этого запускаем mc и переходим в

/usr/src/sys/amd64/conf/

4.2. Копируем файл GENERIC в файл MYROUTER и редактируем его, добавляя

(Если у Вас тоже amd64 - можно взять готовый файл из приложенного архива.)

# =================Enable Multicast Routing ================= options MROUTING # ================ Enable pf & altq ============== device pf device pflog device pfsync options ALTQ options ALTQ_CBQ options ALTQ_RED options ALTQ_RIO options ALTQ_HFSC options ALTQ_CDNR options ALTQ_PRIQ # ================== Enable NETGRAPH ======================= options NETGRAPH options NETGRAPH_ASYNC options NETGRAPH_BPF options NETGRAPH_BRIDGE options NETGRAPH_CISCO options NETGRAPH_ECHO options NETGRAPH_ETHER options NETGRAPH_FRAME_RELAY options NETGRAPH_GIF options NETGRAPH_GIF_DEMUX options NETGRAPH_HOLE options NETGRAPH_IFACE options NETGRAPH_IP_INPUT options NETGRAPH_KSOCKET options NETGRAPH_L2TP options NETGRAPH_LMI # MPPC Для MPPC компрессии требуются специальные лицензионные файлы, которые не прилагаются в ядро #=== options NETGRAPH_MPPC_COMPRESSION options NETGRAPH_MPPC_ENCRYPTION options NETGRAPH_ONE2MANY options NETGRAPH_PPP options NETGRAPH_PPTPGRE options NETGRAPH_RFC1490 options NETGRAPH_SOCKET options NETGRAPH_TCPMSS options NETGRAPH_TEE options NETGRAPH_TTY options NETGRAPH_UI options NETGRAPH_VJC #===================================================

4.3. Сохраняем файл MYROUTER и переходим в /usr/src/

4.4. Компилируем новое ядро:

Make buildkernel KERNCONF=MYROUTER

курим минут 10-20.

4.5. Устанавливаем новое ядро:

Make installkernel KERNCONF=MYROUTER

4.6. Перезагружаемся.

5. Настройка роутинга, пакетного фильтра (pf) и vpn клиента mpd4

5.1. Создаём директории:

в /etc директорию corbina - mkdir /etc/corbina

в /var/log директорию Corbina - mkdir /var/log/Corbina - сюда будут записываться логи соединений и маршрутов, выдаваемых по DHCP.

5.2. Копируем из приложенного архива в /etc/corbina файл

sftp> cd /etc/corbina

sftp> put corbina.local.nets

Файл corbina.local.nets будет использоваться в rc.local для предварительного прописывания маршрутов, которые почему-то пока не выдаёт корбиновский DHCP сервер. Если надо будет добавить маршруты, не выдаваемые по DHCP, то добавляем их именно в файл corbina.local.nets . В формате xxx.xxx.xxx.xxx/mm.

5.3. Копируем из приложенного архива в /etc/ файл rc.conf и редактируем его подставляя свои имена в hostname, ifconfig_nve0 , ifconfig_xl0

5.4. Копируем из приложенного архива в /etc/ файл pf.conf и редактируем его подставляя свои имена интерфейсов в

ext_if="xl0"

int_if="nve0"

В pf.conf уже сделаны пробросы портов для torrent"a и emul"a со следующими параметрами:

внутренний комп 192.168.1.3:

Torrent port - 25893

Emule port - 4662 - стандартный

внутренний комп 192.168.1.2:

Torrent port - 23789

5.5. Копируем из приложенного архива в /etc/ файлы:

- rc.local и даём ему права на выполнение chmod +x /etc/rc.local

- dhclient.conf и исправляем в нём СВОЁ имя внешнего интерфейса.

- dhclient-script и делаем chmod +x /etc/dhclient-script

- ntp.conf

В dhclient.conf можно добавить две строки после interface "xl0" {

Send host-name "client117.dialup.corbina.ru"; send dhcp-client-identifier mm:mm:mm:mm:mm:mm;

client117.dialup.corbina.ru - то же имя, что и в /etc/rc.conf, которое Вы себе придумали в самом начале;

mm:mm:mm:mm:mm:mm - MAC адрес карты, котороя смотрит во внешний мир.

В этом случае однажды выданный для этой карты локальный IP адрес (типа 10.x.x.x) будет закреплен за ней на 14 суток, и останется закрепленным, если будете включать компьютер хотябы раз в две недели То есть практически получится фиксированный локальный IP.

5.6. Копируем из приложенного архива в /usr/local/etc/mpd4/ файлы

- mpd.conf

- mpd.links

- io-up-l2tp.sh

- io-up-pptp.sh

- io-down-l2tp.sh

- io-down-pptp.sh

файлам io-.....sh надо дать права на запуск.chmod +x /usr/local/etc/mpd4/io*

5.7. Редактируем mpd.conf прописывая вместо ХХХ в строках

- set auth authname ХХХ

- set auth password ХХХ

Свои логин и пароль соответственно и одинаково в блоках для l2tp и pptp.

5.8. Выбирать используемый протокол (l2tp или pptp) можно редактируя в mpd.conf строку

load vpn-l2tp

Для pptp она будет выглядеть:

load vpn-pptp

5.9. После запуска mpd можно будет обращаться к веб-интерфейсу mpd по адресу http://192.168.1.1:5006 с логином me и паролем only. Изменить это можно в секции startup файла mpd.conf:

set web ip 192.168.1.1

set web port 5006

set web user me only

5.10. По желанию, можно включить запись протокола работы mpd в файл /var/log/Corbina/mpd.log

Для этого в /etc/syslog.conf надо вписать:

Mpd *.* /var/log/Corbina/mpd.log

и создать файл mpd.log

Touch /var/log/Corbina/mpd.log

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

Kill -HUP `cat /var/run/syslog.pid`

C этого момента начнётся логирование работы mpd, которое продолжится и после перезагрузки.

А чтобы увидеть детально весь лог работы mpd надо дать команду mpd4 -k и после рестарта mpd в интерактивном режиме дать ему команду log all .

6. Установка и настройка igmpproxy для IPTV.

6.1. Копируем из приложенного архива в /root файл igmpproxy_src_0.1.1_freebsd.tar.gz, за который отдельная и особая благодарность neo-man (aka Pavel Korshunov) за портирование этой проги из linux. Обсуждение igmpproxy в ветке multicast роутер на базе FreeBSD

6.2. Распаковываем его:

Tar -xvf igmpproxy_src_0.1.1_freebsd.tar.gz

6.3. Переходим в

cd /root/igmpproxy/src

6.4. Компилируем

6.5. Устанавливаем

make install

6.6. Редактируем конфиг /usr/local/etc/igmpproxy.conf , подставляя вместо моих xl0 и nve0 свои имена интерфейсов.

6.7. Так как Корбина сейчас перестраивает свою сеть вещания и начинает вещать из подсети 172.16.16.0/24, после строки

phyint xl0 upstream ratelimit 0 threshold 1

надо добавить строку

altnet 172.16.16.0/24

Строка для запуска igmpproxy (igmpproxy_enable="YES" ) уже прописана в rc.conf.

Перезагружаемся и наслаждаемся…

Теперь можно ходить в интернет, пользоваться локальными ресурсами и даже смотреть корбина IPTV на нескольких компьютерах ОДНОВРЕМЕННО!!!

Только имейте ввиду, что при использовании программ поиска каналов, надо ставить таймаут переключения секунд 20-30, иначе забивается стэк igmpproxy и весь роутер вешается напроч.

P.S. ChangeLog приложенного конфигурационного файла

10.02.08 - Добавлен автозапуск демона синхронизации времени с корбиновского сервера ntp.corbina.ru. Добавлено получение статических роутов от dhcp сервера. Теперь ВСЕ маршруты прописываются автоматом.

14.02.08 - Изменён конфиг ядра. Убрана поддержка ipv6, ipfw, pcmcia, cardbus, firewire.

21.02.08 - Добавлено options NETGRAPH_TCPMSS в конфигурацию ядра.

22.02.08 - Убрано непрерывное логирование igmpproxy в messages и debug.log. Необходимо перекомпилировать make igmpproxy из приложенного файла. И установить его - make install.

03.03.08 - Добавлен файл ntp.conf. История соединений и маршрутов пишется в /var/log/Corbina/. В mpd.links исправлено.ru на.net.

04.03.08 - Исправлена ошибка взятия адреса локального шлюза из /var/db/dhclient.leases.*. Раньше брался не последний а предпоследний сеанс. Хотя шлюз обычно не меняется - но не порядок. Теперь в файл /var/log/Corbina/vpn.log пишутся все получаемые айпишники: локальный шлюз, локальный адрес, впн шлюз, внешний (WAN) адрес.

  • Перевод

FreeBSD хороша для серверов, но не для настольных компьютеров

У FreeBSD есть полнофункциональная звуковая подсистема c низкой задержкой, а смешивание в ядре позволяет нескольким приложениям воспроизводить звуки одновременно (с независимыми настройками громкости) без дополнительных настроек. Дефолтные настройки включают в себя X.org и настройки рабочего стола, такие как KDE или GNOME, это так же просто как выбрать метапакет в зависимости от того, какой вы предпочитаете.

Если даже это кажется слишком сложным, PC-BSD - полнофункциональная настольная система, созданная поверх FreeBSD с простым в использовании установщиком и опцией коммерческой поддержки.

FreeBSD использует модель закрытого развития

FreeBSD развивают более 400 разработчиков по всему миру, все они имеют полный доступ ко всей системе и данным этой ОС. Третьи лица так же зачастую фиксят родные патчи. Если Вы хотите увидеть количество исправленных патчей, вы можете поискать "Submitted by" в логах фиксации.

Нет никаких жестких рамок для FreeBSD. Решения приняты людьми готовыми сделать работу. Если все же возникают споры, то они разрешаются группой разработчиков, которые избираются каждые два года. Обязательным критерием, по которому избираются разработчики, является обязательное исправление или доработка кода проекта в прошлых годах.

FreeBSD - Просто OS X без красивого GUI интерфейса

Это такой же миф про OS X, как и про FreeBSD: OS X просто FreeBSD с красивым графическим интерфейсом. Эти две операционных системы действительно совместно используют часть кода, например большинство утилит пользовательского пространства и библиотека C по OS X получены из версий FreeBSD. Часть этого кода развивается в разное время и в разных направлениях, например FreeBSD 9.1 позднее включила стек C++ и компилятор, который первоначально были разработаны для OS X сотрудниками Apple. Так же есть и кардинально разные детали.

Ядро XNU, которое используется на OS X включает в себя несколько подсистем из более старых версий FreeBSD, но в основном считаются независимой реализацией. Но все же за счет своего сходства продукты реализованные на OS X значительно проще адаптировать под FreeBSD. Например libdispatch и libc ++ были записаны для OS X и работали на FreeBSD раньше, чем на любой другой ОС.

В FreeBSD все необходимо компилировать с исходного кода

Коллекция портов FreeBSD представляет собой очень мощный способ установки программного обеспечения, что позволяет настраивать параметры для различных сторонних программ и библиотек. Однако, это не единственный способ установки программного обеспечения на FreeBSD. Всегда можно установить программное обеспечение из бинарных пакетов. Проект pkgng добавил новый формат пакета и инструмент управления пакетами, обеспечив современный набор инструментов для двоичного управления.

Вы можете установить pkgng из портов (ports-mgmt/pkg) на более старых версиях FreeBSD. Она включена по умолчанию на FreeBSD 9.1 и более поздние версии.

FreeBSD это UNIX из 90-х (или 80-ых)

FreeBSD - линейный потомок исходного UNIX через Распределение программного обеспечения Беркли, но она продолжала развиваться отдельно. За последние несколько лет мы видели, что ZFS становится значительно производительней: поддержка 10 ГБ, 40 ГБ и 100 ГБ канала, улучшеная звуковая подсистема, поддержка 802.11n и других улучшений.

Это не означает, что FreeBSD отказалась от своих UNIX корней. Есть много причин, почему UNIX системы стали популярными. Они включают в себя свободно распространяемую систему, которую легко портировать на новые платформы, набор простых инструментов и ядро, которое хорошо зарекомендовало себя на различных платформах. FreeBSD поддерживает эти традиции.

Весь хороший код в FreeBSD родом из Solaris

FreeBSD импортировала две функции высокого профиля из OpenSolaris: DTrace и ZFS. Обе теперь хорошо поддерживаются FreeBSD. ZFS, в частности, находится в центре внимания многих разработчиков FreeBSD, в том числе тех, которые используются iXsystems, компанией, которая поддерживает развитие FreeNAS и продает коммерческие NAS устройства на базе FreeBSD. Разработчики FreeBSD также работают в тесном сотрудничестве с разработчиками Illumos, одной из веток с открытым исходным кодом Solaris, для улучшения обеих этих функций.

Несмотря на преимущества ZFS, это по-прежнему относительно небольшая часть общей системы. ZFS и DTrace составляют менее чем 4% кода в ядре, которое равно почти 10% кода в основной системе. Если считать, что только 0.4% FreeBSD хороши, то система не приобрела бы такой популярности.

FreeBSD не имеет драйверов

Это проблема, с которой сталкиваются все операционные системы, - даже новые версии Windows. Большую часть времени пользователи не заботятся об общем количестве драйверов, только если драйверы уже установлены по умолчанию. Есть некоторые упущения с точки зрения поддержки драйверов, но FreeBSD поддерживает широкий спектр сетевых карт (в том числе 802.11n чипсеты), большинство звуковых карт AMD, Intel и графические процессоры NVIDIA.

Поддержка аппаратных средств - это та часть реализации, которая требует постоянной доработки, потому что нельзя просто сказать производителям аппаратных средств, чтобы они подождали пару лет, пока разработчики ПО их догонят. Обеспечение поддержки новых устройства занимает время для настройки, хотя некоторые производители сами обеспечивают драйверы, например Nvidia обеспечивает драйверы для их GPU и Intel для новейших сетевых контроллеров. Другие производители обеспечивают помощь в разработке драйверов FreeBSD, включая Broadcom, JMicron, HP, Mellanox, Chelsio и Solarflare. Если Вы знаете устройства, которые не поддерживаются FreeBSD, лучше сообщить про это разработчикам и производителям устройств. Как правило, лучшим толчком для решения проблемы со стороны производителей - сообщение о том, что их клиенты не могут использовать их продукты.

FreeBSD 4.x лучшее из всего что было

4.x релиз был самым стабильным и FreeBSD гордились тем, что они смогли реализовать такой продукт. Многие пользователи продолжали использовать его на протяжении многих лет. Серия 5.x вышла во время перехода к оптимизации многопоточности. Эта включало замену одной блокировки вокруг ядра с рядом меньших блокировок, которые используются отдельными подсистемами. Это требовало большого куска работы, что не могло не привести к некоторым ошибкам. 5.x поставлялась с двумя реализациями поточной обработки, а это еще больше осложняло ситуацию. Первые два выпуска в серии 5.x были отмечены «только разработчикам», но 5.2 была нацелена на более широкую аудиторию и не оправдала ожиданий пользователей системы FreeBSD. Ряд крупных пользователей решили не менять серию 4.x.

Серия 5.x была болезненным уроком для проекта. В серии 6.x восстановили стабильность выпуска 4.x., а в серии 7.x восстановили производительность одного процессора. Во время выпуска серии 8.x можно было увидеть ряд опубликованных третьими лицами тестов, которые продемонстрировали лучшую масштабируемость FreeBSD на многопроцессорных системах, чем любая другая операционная система.

Все эти релизы имели значительное количество улучшений, такие как улучшенная звуковая подсистема, ZFS, DTrace, ведение журналов UFS и многое другое, но стабильность и производительность остались ключевыми задачами системы FreeBSD.

Недостатки программного обеспечения FreeBSD

Коллекция FreeBSD в настоящее время содержит более 26 000 единиц программного обеспечения. Трудно сравнить это число с другими репозиториями, потому что программы разделены по-другому (например, GCC порт в FreeBSD устанавливает программы и библиотеки, которые разделены между 6-10 пакетами в Debian, в зависимости от версии GCC), но большинство вещей Вы все же можете там найти. Одной из причин, по которой пользователи выбирают FreeBSD является тот факт, что набор портов обеспечивает определенную, относительно неясную часть программного обеспечения, в котором она нуждается, в то время как другие системы этого не делают.

Большая часть программного обеспечения в наборе портов работает исходно на FreeBSD. Большая часть программного обеспечения с открытым исходным кодом - агностик относительно ОС и требует, чтобы минимальная модификация была скомпилирована и работала на FreeBSD. Есть исключения такие как Valgrind, которые требуют детального понимания системы. Проприетарное программное обеспечение может быть более серьезной проблемой. Некоторые разработчики, такие как Opera, обеспечивают FreeBSD своим исходным кодом.

Другое программное обеспечение должно работать в режиме эмуляции. Например, бинарные файлы Linux могут работать на уровне Linux ABI, где системные вызовы Linux переводятся на их эквиваленты FreeBSD. Единственный изъян - немного увеличенная нагрузка системных вызовов; обычно сложно измерить различие в производительности между выполнением программ Linux на Linux и на FreeBSD: в некоторых случаях программы работают быстрее на FreeBSD, чем на Linux из-за более эффективных реализаций базовых вызовов. Например, версия Linux Flash-плагина может работать, используя NSPluginWrapper на уровне Linux ABI с собственным веб-браузером.

Аналогичное решение существует для запуска Windows приложений.

FreeBSD не поддерживает виртуализацию

FreeBSD 9 работает как гость Xen (domU) и на x86, и на x86-64, включая Amazon EC2. Благодаря работе, проделанной совместно с Microsoft, NetApp и Citrix, FreeBSD можно запускать на Hyper-V гипервизора Microsoft. FreeBSD 11 будет включать Dom0 поддержку управления домена.

FreeBSD также поддерживает VirtualBox и в качестве гостя и в качестве хоста. Вы можете найти гостевые дополнения VirtualBox, а затем и сам гипервизор в наборе портов. FreeBSD 10 также работает в качестве хоста операционной системы для гипервизора BSD, давая множество возможностей для запуска FreeBSD виртуальных машин на базе FreeBSD.

И наконец, если Вам не требуется полная виртуализация, то для выполнения изолированных пространств пользователя FreeBSD (или даже пространств пользователя Linux, используя уровни Linux ABI) на одном ядре FreeBSD Вы можете использовать подсистему контейнеров. Контейнеру можно даже предоставить их собственный независимый сетевой стек и т.д., и таким образом, одна машина может использоваться, чтобы эмулировать целый парк машин.

Лицензия BSD способствует взаимному сотрудничеству

Пока разработчики кода FreeBSD не подадут на вас иск о нарушении авторских прав, Вы вольно можете его использовать. Но, если верить утверждениям самих разработчиков, такого не произойдет.

Некоторые компании, почти наверняка возьмут наш код, изменят его и никогда ничего не предоставят взамен.

Рассмотрим в качестве примера случай двух крупнейших интернет-компаний: Google и Yahoo! Прежде их внутренняя инфраструктура основывалась на операционной системе GPL, в то время как более поздние версии уже используют FreeBSD. Поскольку Google не распределяет их измененную операционную систему, они могут сохранить к примеру GoogleFS в частной собственности. В таких случаях как этот, где программное обеспечение разработано для внутреннего использования, по лицензионному соглашению компания не обязана раскрывать свои доработки для разработчиков FreeBSD.

Существуют, однако, некоторые проблемы с соединением: например, нельзя использовать библиотеку с лицензией GPL, если уже используется BSD.

На протяжении многих лет не мало компаний внесло значительный вклад в FreeBSD. И вызвано это не только чувством альтруизма, ведь поддержка любого проекта, который быстро развивается, очень дорогое удовольствие.