Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Последнюю версию этого документа можно нати по адресу http://w3.misa.ac.ru/prof/techsupp/fdsdinst.htm

Инсталляция FreeBSD в качестве Internet-сервера

Дмитрий Карпов, МИСиС

Много чего написано про инсталляцию Windows от 3.* до NT; немного меньше - про инсталляцию OS/2, а вот детальное описание инсталляции Unix я не встречал. Попробую рассказать, как установить и настроить FreeBSD. Это - мой личный опыт, так что возможны расхождения во мнениях с гуру, а также пробелы, тем более что многие вещи я пишу прямо по горячим следам: сделал, понял - и сразу на всеобщее обозрение. :-)

Я работаю в условиях, когда я - единственый администратор на машине, на которой нет никакой особо секретной информации. Вокруг меня нет серьезных хакеров (по крайней мере они себя никак не проявляют). Основная задача - обеспечить почту, в основном по UUCP. Это накладывает некоторый отпечаток на мои воззрения по поводу администрирования.

А почему именно FreeBSD?

Я наконец проникся уверениями Micro$oft, BSA и прочих серебролюбивых организаций, что нехорошо использовать ворованное ПО - это аморально, преступно, а также невыгодно. Из бесплатных OS мне известны три Unix'а - FreeBSD, Linux и SCO (последний - только для некоммерческого использования), а также Acorn'овская RiscOS. Но RiscOS идет только на RISC-процессорах ARM, а из Unix'ов я лучше всего знаю FreeBSD.

Какую машину мне приготовить для FreeBSD?

В отличие от WindowsNT, для работы Internet-сервером вполне достаточно 486SX-33 и 8 MB RAM. Операции с плавающей точкой серверу не нужны, быстродействие определяется не процессором, а пропускной способностью сети, а графическая карта сойдет самая слабая, какая только есть - все равно он будет работать в текстовом режиме. Мышь, кстати, тоже не нужна. Так что, как видите, использовать легальное ПО действительно дешевле, чем цельнотянутое.

С каких носителей его можно инсталлировать?

FreeBSD можно инсталлировать с дискет (классический способ), с FAT-раздела, с FreeBSD-раздела, с CD-ROM (ну, это нынче все могут), со стримера (у меня его никогда не было), а также по сети: по NFS и по FTP (обычному и сквозь FireWall). Как правило, на CD-ROM не самая свежая версия, с дискет довольно мучительно, для инсталляции с FreeBSD-раздела нужно иметь дистрибутив, записанный на этот раздел (а значит, иметь установленный с FreeBSD). NFS вообще используется довольно редкоБ по крайней мере для NFS, как и для FreeBSD-раздела надо иметь уже установленный Unix, Так что остаются FAT-раздел и FTP. Для FTP нужно иметь быструю, а главное - стабильную связь с FTP-сервером, поэтому для первой инсталляции рекомендую закачать FreeBSD на FAT-раздел локального диска. Это отрежет часть места на диске, но потом можно будет снести FAT-раздел и сделать на его месте что-нибудь полезное или же держать его для загрузки в DOS.

На каких именно серверах можно взять FreeBSD?

Для получения списка серверов обратитесь на http://www.freebsd.org, а для России - ftp://ftp.kiae.su и ftp://ftp.gamma.ru. К сожалению, ftp.gamma.ru не позволяет анонимный вход, если ваша машина не известна ReverseDNS-серверу, отвечающему за вашу зону IP-номеров, так что если вы только собираетесь строить свою Internet-сеть на базе FreeBSD, то это место не самое удачное.

Что именно закачивать?

Сначала надо подготовить директории:


	mkdir /FreeBSD

	cd /FreeBSD

	mkdir bin

	mkdir floppies

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

Запускаем FTP-клиента:


	ftp ftp[номер][.страна].freebsd.org

Я не оговорился - все FTP-серверы, содержащие FreeBSD, прописаны в домене freebsd.org. Узнать, какой ближе, можно командой


	ping ftp[номер][.страна].freebsd.org

по принципу наименьшего времени отклика и наибольшего процента возвращенных пакетов. Сервер спросит login: и Password:


	login: ftp

	Password: имя@

- обычный анонимный вход на FTP-сервер. Дальше

	cd pub/FreeBSD/версия-RELEASE

Вопрос о версии требует отдельного рассмотрения. К сожалению, 2.2.1 и 2.2.2 мне не понравились - похоже, там что-то намудрили и они работают нестабильно. Пришлось вернуться к 2.1.7.1, а ее удалось найти только на ftp.freebsd.org - на ftp.kiae.su и ftp.gamma.ru ее уже не было, там держат только последние версии. Включаем режим перекачки (нетектовых) двоичных файлов


	bin

и визуального отображения закачанных килобайтов.

	hash

отключим вопросы про каждый файл "это брать?".

	prompt

	cd bin

	lcd bin

	mget *.*

	lcd ..

	cd ..

Для минимальной инсталляции надо взять все в директории bin. Там находятся файлы bin.?? (от bin.aa до bin.cq - последний зависит от версии), bin.mtree, checksum.md5 и install.sh - всего 17 MB. Если процесс оборвался, допустим, на файле bin.ai, не надо качать все заново, можно продолжить командой


	mget bin.a[i-z] bin.[bc]? bin.mtree checksum.md5 install.sh

Впрочем, это все относится к командной строке FTP, к тому же операционные системы Micro$oft в командах "lcd" вместо "/" используют "\". Если у вас FTP-программа работает по другому - делайте сами.


	cd floppies

	lcd floppies

	get boot.flp

	lcd ../tools

	cd ../tools

	get rawrite.exe

	quit

boot.flp - образ загрузочной инсталляционной 1.44 MB дискеты (естественно, надо иметь такой дисковод). Прежние версии обходились дискетой 1.2 MB. Впрочем, возможно, удастся впихнуть ядро на 1.2 MB-дискету. rawrite.exe - программа под DOS, способная сделать из форматированной дискеты и файла boot.flp загрузочную дискету. Теперь минимальная инсталляция (впрочем, это не так мало) находится на нашем диске. Там же в tools есть еще много иногда полезного, описанного в 00_index.txt, берите, если хочется. Изготовим загрузочную дискету:


	rawrite.exe boot.flp a:

Теперь загрузимся с нее. Будет много непонятных сообщений - не пугайтесь "not found" или "conflict with" - ядро содержит множество драйверов для самых разных устройств, большая часть которых у вас отсутствует (ну действительно, откуда взяться на машине десятку сетевых карт разных производителей?). Основная проблема может быть с NE1000/NE2000-совместимыим и 3Com 3C503 картами - устройство ed0 расчитывает на Port 280 и IRQ 5, ed1 - Port 300 и IRQ 5. Впрочем, перед стартом ядро предлагает научить его работать с другими портами и прерываниями, но я предпочел переставить параметры карты (уж не помню, перемычками или программой-настройщиком), так как считаю, что аппаратуру конфигурировать проще, чем программу.

Надеюсь, вы заранее подготовили свободное место на диске для FreeBSD-раздела? Если нет, и к тому же у вас только одна партиция, придется вернуться в DOS, стереть лишнее, дефрагментировать диск и воспользоваться программой fips.exe (лежит рядом с rawrite.exe), чтобы освободить место. (При этом размер кластера на FAT-разделе останется прежним.)

Первое, что надо сделать - создать раздел на диске. Создадим FreeBSD-партицию (в терминах Unix она называется slice, а partition - подраздел внутри slice) на все свободное место либо, если свободное место не непрерывно, на самый большой непрерывный кусок. Затем надо создать подразделы. Я рекомендую (для системного администратора) такую схему:


	/ (корень) - от 16 до 32 MB

	/usr (системные программы и данные для них) - от 50 MB

	swap (область подкачки) - см.ниже

	/var (рабочие файлы) - порядка 30 MB

	/home (домашнии директории пользователей) - остальное

Конкретные значения сильно зависят от размера диска. Рекомендуемое значение для / составляет 20 MB, если меньше - sysinstall будет возмущаться; ну и пусть, ничего страшного. /usr должна соответствовать обьему инсталлируемого, при выборе distribution можно уточнить, сколько именно понадобится и отвести раза в полтора больше. swap зависит не столько от обьема диска, сколько от количества оперативной памяти и должен превышать ее в два..пять раз (в пять раз - с учетом возможного наращивания памяти). Если хотите, чтобы FAT-раздел был доступен из Unix, надо указать точку монтирования для него, обычно - /dos.

После того, как вы дали приказ начать инсталляцию и отказались от последнего шанса спасти информацию на том месте, которое отвели под FreeBSD, будет долгое извлечение из архива и размещение на диске. Можно пока нажать Alt+F2 - посмотреть как идет извлечение, Alt+F4 - подать какую-нибудь команду (ой, лучше не делайте этого) и Alt+F1 - вернуться обратно.

Теперь, если все закончилось удачно, зайдем в пост-конфигурирование. Если вы проводили инсталляцию по сети, то сетевой интерфейс должен быть уже сконфигурирован, иначе лучше честно ответить на вопросы. о конфигурации сетевого интерфейса. Если у вас есть подключение к Internet, адреса должен дать провайдер или местный сетевой администратор, если же это чисто внутренняя сеть - воспользуйтесь адресом из множества, отведенного под внутрикорпоративные сети, например 192.168.0.1 и маской 255.255.255.0. Если есть подключение, желательно сконфигурировать анонимный FTP-доступ, если есть внутренняя сеть - неплохо покажет себя Samba (файл-сервер для Micro$oft Network по протоколу TCP/IP). И наконец, весьма здорово сделать WWW-сервер на базе Apache! Я даже не ожидал, что это будет так легко.

А где брать серверы FTP, Samba и Apache?

FTP-сервер присутствует в минимальной поставке. Кстати, анонимный доступ к нему надо конфигурить, а вот парольный действует автоматически. А для Samba и Apache достаточно просто сменить Media - указать в качестве источника FTP-сервер. Packages (в это понятие входят множество программ) редко превышают 1.5 MB, так что их можно инсталлировать даже по сети из США, что я и делал.

Как администрировать юзеров и регулировать доступ к файлам?

Для этого есть специальные утилиты, например, adduser. Но эти утилиты слишком умные: например, копируют стандартные инициализационные файлы в домашнюю директорию пользователя, а я считаю, что сам могу решить, что надо копировать, а что - нет.

Базовый файл - /etc/master.passwd, из него получаются /etc/passwd (общедоступный список пользователей), /etc/spwd.db (база пользователей) и /etc/pwd.db (база паролей). Для добавления и удаления юзеров, а также для изменения некоторых параметров можно использовать команду vipw (как следует из ее названия, она запускает редактор vi или другой, если установлена переменная окружения EDITOR).

Но я предпочитаю deco, а затем даю команду pwd_mkdb master.passwd. (Внимание - это можно делать только если гарантируется, /etc/что никто другой не будет редактировать файл в это время! vipw блокирует запуск другого экземпляра этой (но не другой) программы администрирования юзеров.)

В файле master.passwd на каждого юзера отведено по одной строке. Каждая строка состоит из полей:

  • имя пользователя (вводится на приглашение login:)
  • закодированный пароль
  • UID (User IDenteficator), число
  • GID (Group IDenteficator), число
  • User's general classification (в 2.0 не использовалось, в 2.2.2 вроде уже задействовано).
  • Password change time (у меня в этом поле всегда ноль)
  • Account expiration time
  • комментарий; обычно - полное имя пользователя
  • home (домашняя директория)
  • shell (программа, запускаемая при входе с терминала)

Имя пользователя задействовано во множестве мест, в т.ч. в терминальном входе (при работе на машине с Unix как на рабочей станции), в почтовом обмене (как имя отправителя и получателя), а также в доступе по FTP и Samba. Во всех случаях используется один и тот же пароль.

Пароль шифруется алгоритмом, который не позволяет расшифровать обратно, а при входе в систему сравниваются зашифрованный пароль из базы паролей и свежезашифрованный введенный пользователем пароль. Сменить пароль можно командой passwd имя_юзера; если дать просто команду passwd, это относится к тому имени, под которым сейчас работаем; обычный юзер (не супервизор) должен сначала ввести старый пароль, и если система сочтет его пароль недостаточно секретным (слишком короткий, содержит только строчные буквы), то не примет его. Пароль надо вводить дважды, причем вслепую - обычные меры безопасности, принятые нынче во всех системах.

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

UID идентифицирует права пользователя на файлы и процессы (а не имя!). Таким образом, второй account с тем же UID будет лишь alias для первого (т.е. оба account'а будут иметь идентичные права). /* Переводите с английского сами, я не могу. */ Этот UID будет присвоен всем файлам и директориям, созданным юзером. Изменить UID файла может только супервизор (пользователь с UID=0).

GID также будет присвоен всем файлам и директориям, созданным юзером. Юзер может входить в несколько групп, если это прописано в /etc/group.

Со следующими тремя полями я не разбирался.

Комментарий используется в строке "From:" в письмах, отправляемых командой mail, сообщается командой finger.

Домашняя директория становится текущей и записывается в переменную HOME при терминальном входе, в ней лежат настроечные файлы ко многим программам. Также является корневой при подключении по Samba ресурса homes.

Shell - для терминальных пользователей как правило /bin/sh, /bin/csh или /bin/bash. Для почтового обмена по UUCP - /usr/libexec/uucp/uucico. Для тех, кому надо предоставить только специфический доступ (например, POP3 и Samba) ставится /usr/bin/passwd и единственной возможностью при входе терминалом или по Telnet для них будет смена пароля. Для пользователей, которые никогда не будут работать (т.н. псевдопользователей) ставится несуществующий /none или безобидный /bin/false.

Если shell, указанный пользователю, не прописан в файле /etc/shells, то многие сервисы (например, ftpd и pcnfsd) будут рассматривать такого пользователя как нежелательного.

Что можно порекомендовать в плане администрирования?

Прежде всего не надо использовать имя root. К сожалению, его нельзя удалить, слишком во многих местах оно задействовано. Поэтому я делаю


	root:*:0:0::0:0:SysMaster:/none:/none

т.е. у него нет ни пароля, ни домашней директории, ни shell'а. Изначально FreeBSD еще toor, который может заменить собой root, но я предпочитаю использовать какое-нибудь третье имя. Если же вы решили сохранить имя root, то по крайне мере надо установить ему пароль (при установке этот пользователь создается без пароля).

Если на машине несколько администраторов, то им лучше каждому иметь свой супервизорский account на случай если один вдруг решит сменить пароль. Вообще надо время от времени менять свой пароль, но я не буду вдаваться в подробности. Главное - не дать мерам безопасности мешать нормальной работе.

Супервизору запрещен удаленный вход (по Telnet и FTP). Если надо удаленно администрировать систему, входите под обычным именем и давайте команду su имя_супервизора. Однако делать это могут только те, кто явно включен в нулевую группу (wheel). Вообще лучше поменьше времени проводить под правами супервизора - меньше вероятность повредить систему.

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

Какие особенности настройки Samba?

Настройка Samba заключена в файле /usr/local/samba/lib/smb.conf или в /usr/local/etc/smb.conf, на всякий случай я залинковал их и у меня это как бы один файл. Вот он:


	[global]

		comment = FreeBSD - Samba %v

		log file = /var/log/samba.log

		dont descend = /dev,/proc,/root,/stand

		printing = bsd

		map archive = no

		status = yes

		public = yes

		read only = no

		preserve case = yes

		strip dot = yes

		security = share

		workgroup = Unix



	[homes]

		browseable = Yes

		comment = %U's Home Directory

		create mode = 0664

		public = no

		mangled map = (*.html *.htm) (*;1 *)



	[pub]

		browseable = Yes

		path = /var/ftp/pub

		comment = Public domain

		public = yes

		read only = yes

Комментарии к этому файлу даст команда man smb.conf, а я пока лишь замечу, что к этой машине не подключен принтер (соответственно нет секции [printers]), а в качестве публично доступной директории используется та же самая, что и по FTP.

Какие особенности настройки Apache?

[...]

И как мне пользоваться этой системой дальше?

После выхода из программы инсталляции система должна загрузиться с жесткого диска. Снова будут те же самые сообщения "not found" и "conflict with". Как-то раз у меня не пошла загрузка сразу после инсталляции (система висла), но вместо того, чтобы устанавливать все заново, я на приглашение загрузчика ввел


	Boot: kernel.GENERIC

и вместо того, чтобы грузиться с основного ядра /kernel, загрузился с его копии /kernel.GENERIC. Затем вошел без пароля:

	login: root

и скопировал хорошее ядро на место плохого:

	cp /kernel.GENERIC /kernel

Дальнейшие действия проходят под китайским лозунгом "три дня труда - десять лет счастья". :-) Бороться придется по большей части врукопашную. Для начала возьмем на ftp.kiae.su/pub/FreeBSD/local/ deco*bin.tgz. Закинуть его можно в любую директорию, я предпочитаю в /dos (на случай переустановки) или /var (не засорять же / и /usr); желательно недалеко от корня, иначе долго будет добираться. Инсталлируем


	pkg_add deco*bin.tgz

Если deco*bin.tgz не в текущей директории, придется указывать полный путь. Почему-то авторы решили, что запускаемый файл лучше поместить в /usr/local/bin/, но я предпочел переместить его

	mv /usr/local/bin/deco /usr/bin/deco

Хотя директория /usr/bin/ по умолчанию прописана в переменной окружения PATH, мне пришлось выйти из системы (Ctrl+D) и войти снова, чтобы можно было запускать deco без указания полного пути.

Теперь deco запускается, но - вот ужас! - он черно-белый, вместо псевдографики - "|", "-" и "+", не работают клавиши с F5 до F10. Надо править файлы /etc/ttys и /etc/termcap. С /etc/ttys довольно просто:


	ttyv?	"/usr/libexec/getty Pc" 	pc3r	on secure

Где вместо "?" надо подставить номера консолей (мне хватает с 0 по 3). С /etc/termcap несколько сложнее. Во первых, он хранится не в /etc/, а в /usr/[...] лень); /etc/termcap - символьный линк к реальному файлу (обозначается /etc/termcap -> /usr/[...]). А мы сотрем его и сделаем другой, на тот termcap, который пришел с deco.


	rm /etc/termcap

	ln -s /usr/lib/deco/termcap /etc/termcap

Но этого мало, надо его поправить:

	# Standard Xenix console.

	# It is not true ansi, but has been hacked for dumb users.

	ansi|xenix|pc3r|cons25r:\

		:g1=\240\241\253\273\256\261\276\265\245\270\250:\

		: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:

Приведу некоторые пояснения:
  • g1 - список символов для вывода рамки окна (здесь - KOI-8)
  • k* - определение клавиши, в т.ч.
    • kI - Insert
    • kD - Delete
  • f* - определение функциональной клавиши
Вообще, читайте руководство - команда

	man termcap 5

(если вы установили manual pages) содержит по этому поводу все, что я знаю, и все остальное. "5" означает, что manual page будет браться из каталога man5; иначе будет взята первая попавшаеся, а именно 3-я, в которой описаны вызовы библиотеки termcap.

Но псевдографика же соответствует Alt-кодировке, а не KOI-8?

В Internet принята кодировка KOI-8 - кодировка Unix и Acorn, кодировка E-mail, FTP и Usenet (News). (WWW/HTTP, как правило, в многокодовой форме). Поэтому обратимся к /etc/sysconfig для версий до 2.1.* или /etc/rc.conf для версий, начиная с 2.2.*. Этот файл - всего лишь запускаемый (исполняемый), да и не делает ничего, кроме определения переменных, которые будут использоваться в /etc/rc и запускаемых из него /etc/rc.* и /etc/netstart. Если интерсно, как именно:


	grep имя_переменной /etc/sysconfig /etc/rc.* /etc/netstart

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


	keymap="ru.koi8-r"

	keyrate="fast"

	keychange="NO"

	cursor="blink"

Русификацию экрана можно провести двумя путями: загрузить шрифты KOI-8 или загрузить шрифты Alt и карту перекодировки. Разница в том, что символы Alt-псевдографики отображаются видеоконтроллером с расширением на один столбец вправо, из-за чего горизонтальные линии в KOI-8 получаются разрывными (как будто использовались знаки равенства "="). Но а предпочел KOI-8:


	scrnmap="NO"

	font8x16="koi8-r-8x16"

	font8x14="NO"

	font8x8="NO"

	blanktime="NO"

	saver="NO"

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


	reboot

А почему она так долго загружается? Нельзя ли быстрее?

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

Со страхом и трепетом я приступил в первый раз к перекомпиляции ядра. На всякий случай позвал на помощь товарища. Тот, правда, видел Unix второй раз в жизни, но "кто умеет - делает, а кто не умеет - советует". :-) Еще говорят, что "кто совсем не умеет - учит", но я, как видите, делал, а теперь учу. :-) Кстати, его советы оказались неплохими, по крайней мере в части перевода с английского и в понимании логики конфигурирования.

Для начала надо получить ftp://ftp.freebsd.org/pub/FreeBSD/версия-RELEASE/src/ssys.*, обычно я кладу их рядом с bin. Теперь их надо извлечь. Маленькая тонкость - по умолчанию /sys -> /usr/src/sys, а я не хочу кидать исходники ядра в /usr. Поэтому


	mkdir /usr/src

	mkdir /var/src

	mkdir /var/src/sys

	ln -s /var/src/sys /usr/src/sys

	cat .../src/ssys.?? | tar --unlink -xvpzf - -C /

Последнюю строчку я почти не раздумывая взял из .../bin/install.sh. При этом извлекается исходник ядра с кучей драйверов, часть из которых присутствует в GENERIC.


	cd /sys/i386/conf

	cp GENERIC MYCONF

	редактировать файл MYCONF

	config MYCONF

	cd /sys/compile/MYCONF

	make depend

	make

	make install

	reboot

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

Что значит "редактировать файл MYCONF"?

Изначально файл GENERIC содержит строки

	команда драйвер параметры #комментарий

например

	cpu	"I386_CPU"

	cpu	"I486_CPU"

	cpu	"I586_CPU"

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

В этом очень поможет файл LINT. Он содержит все драйверы, которые есть в ssys.?? и по слухам не может быть скомпилирован - некоторые строки противоречат друг другу. Зато от неплохо прокомментирован. Моя первая компиляция закончилась неудачно - я выкинул шину PCI (ее на машине действительно не было), но оставил какое-то PCI-устройство и компилятор на нем запнулся. Ничего страшного не произошло, машина не повисла, система не грохнулась - просто пришлось запустить компиляцию заново. Был вечер, ждать конца было неохота и я ушел домой, оставив компилятор работать, а утром получил готовое ядро.

Компиляция сократила размер ядра (файла - ядро скомпрессировано, самораспаковывается при загрузке и в памяти занимает больше) с 1224 KB до 840 KB на одной машине и до 790 KB на другой (разница - в наличии CD-ROM и в сетевых картах). Это немаловажно, особенно если у вас не очень много памати. FreeBSD способен работать и даже эффективно выполнять многие функции даже при 4 MB оперативной памяти, но для компиляции неплохо будет добавить; впрочем, компиляция при 8 MB, мне показалась, шла вполне приемлимо.


Выражаю благодарность Александру Лапинскому за его насмешливые комментарии к ошибкам, допущенным в предыдущих версиях текста.

Новости мира IT:

Архив новостей

Последние комментарии:

Группа ЕСН купила РБК (1)
Monday 19.06, 11:46
Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...