Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
11.92 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

AT91SAM9260

32MBSDRAM

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

unixoidw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

PHY->

ALTERA

32MBSDRAM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DBGU

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

USB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ethernet

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NAMD256M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

USB-A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ФОТОДЕВАЙСА

компенсироватьнапайкойвнешнейпамяти. Ивсеже, какзапускатьтакогокапризного монстра? Тем, ктонечиталмоюпрошлуюстатью, напомню. ВсамомначалеработыпроцессорапервымделомстартуетвстроенныйвROM загрузчик. Утогохватаетинтеллектатолько нато, чтобывысосать4 Кб(однустраницу) кода измикросхемыData- илиNAND-flash памяти, скопироватьихвовнутреннююоперативку (которойкакраз4 Кб) ипередатьнанееуправление. Вэти4 Кбмыдолжнывпихнутькодинициализациибольшойивзрослойоперативки SDRAM, определитьнапаянныемикросхемы Flash-памяти, скопироватьоттудаостальной кодвужеработающуюоперативкуипередать нанегоуправление. Сэтогомоментаужеможноговоритьотом, чтоустройствозапущено.

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

ОбщатьсясЛинуксомпервоевремябудем черезтакназываемыйотладочныйинтерфейс DBGU. Сточкизренияиспользования, это обыкновенныйUART-портсобрезаннымивоз- можностями. Намоейплатеонвыведенчерез

RS-232-интерфейснуюмикросхемуна9-пино- выйCOM-разъем, которыйужеподключается ккомпу.

Чтозагрузчики, чтоЛинукспоумолчанию используюттакиепараметрыпорта:

Скорость: 115200 Данные: 8 bits Четность: Íåò Ñòîï-áèòû: 1 Контроль: íåò

Вбейэтипараметрывсвоютерминальную программунасторонеPC.

Нелезьнарожон. Заставьустройство запуститьсяхотябысдефолтовымиядром ифайловойсистемой, идущимивкомплекте

сотладочнойплатой, апотомуженазаведомо рабочемЛинуксезатачивайдевайсподсвои нужды. Поехали.

ЗАЛИВКА

Какуженеоднократноговорилось, AT91SAM9, когданенаходитподходящихпрошивокпонулевымадресамData- иNAND-флешпамяти,

запускаетживущуювROM программуSAM Boot Agent (SAM-BA). НаустройствеСАМ-Буможно вызватьзакороткойособогопина(смотри документацию) илипростобросаниемSPI Slave Output ножкиназемлю. Подключаемдевайс кUSB-портуипроверяем, каконопределился:

$ lsusb

Bus 002 Device 060: ID 03eb: 6124 Atmel Corp. at91sam SAMBA bootloader

Далее, поссылкеwww.linux4sam.org/twiki/ bin/view/Linux4SAM/SoftwareTools, качаем софтдляпрошивки. Оттудажеузнаемнаши следующиешаги:

# modprobe usbserial vendor=0x03eb product=0x6124

Чтож, унасестьвиртуальныйCOM-порт, кко- торомуподключаемсясофт-программатором. Бинарникпослераспаковкиназываетсяsamba_cdc_2.8.linux_01, егоивызываем. Приза-

просеуказываемпорт/dev/ttyUSB0 иплату

XÀÊÅÐ 05 /125/ 09

079

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

BUY

>>m

 

 

w

Click

to

 

 

 

 

unixoid

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

КОНСОЛЬКАСПРОЦЕССОМЗАГРУЗКИЯДРА КОНСОЛЬСU-BOOT

AT91SAM9260-EK. Теперь, выбираявкладками нужнуюпериферию, можнозаливатькод. НезабывайвызыватьскриптытипаEnable Flash

инажиматьExecute, иначеприпопыткеобратитьсякнеинициализированноймикросхеме устройствоповиснетвместеспрограмматором. Первичный4-килобайтныйзагрузчиклучше заливатьчерезскриптSend Boot File, авсе остальное— черездиалогпосерединеокна

иуказаниеадресавручную. Еслизагрузчикругаетсяинехочеткопироватьданные, убедись, чтоадрескратенразмерублока(0x10000 байт дляNAND). Возможно, тебеещепонадобится компиляторarm-elf-gcc подархитектуруARM.

Беретсяонссайтаgnuarm.com. Послеэтоговсе должнобытьготовокпрошивкеиотладке.

ЗАГРУЗЧИКПЕРВОГО УРОВНЯ, AT91 BOOTSTRAP

Качаемегопоадресуwww.linux4sam.org/tw iki/bin/view/Linux4SAM/AT91Bootstrap. Если твоямикросхемаDataflash живетнаChip Select 1, тосразуможешьвзятьскомпилированный бинарник, иначепридетсямучитьисходники. Распаковываем. Следуямануалупотомуже адресу, выбираемнужнуюнамконфигурациюпутемиспользованиясоответствующего

Makefile. Имея8-мегабитныйDataflash напла-

те, загрузчикиязапихивалименнотуда, аядро сФС— ужена256-мегабайтныйNAND-Flash. Значит, вмоемслучаепроекткомпилируется воттак:

$ cd board/at91sam9260ek/dataflash $ make CROSS_COMPILE=arm-elf -

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

Мнеещепришлосьраскомментировать«драй-

вер» моейDataflash-микросхемыAT45DB041B вфайлеdriver/dataflash.c. Функцияdf_init

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

Чтобыбытьуверенным,чтозагрузчикчестно отрабатываетсвоючастьипередаетуправление дальше,раскомментируйстрочку«#undefCFG_ DEBUG»взаголовочномфайлеat91sam9260ek.h.

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

Послекомпиляциизаливайполучившийся.bin ввыбранныйтобойFlash черезSAM-BA Boot, используяскрипт«Send Boot File». Перезагружайустройствоисмотринаотладочныесообщения, чтобыбытьувереннымвэтомэтапе.

ЗАГРУЗЧИКВТОРОГО УРОВНЯ, U-BOOT

Таковымегоможноназватьлишьснатяжкой. Этотмонстрразвечтовтетриснеиграет. УмеетзагружатьОСьоткудаугодно, втом числеипосети(TFTP иBOOTP), тестировать икопироватьRAM иFlash память. Крометого, поддерживаетпростыескрипты. Вобщем, забираемсприлагаемогокжурналудискаархив сисходникамиu-boot–1.3.4.tar. bz2, распако-

вываем, добавляемэкспериментальныйпатч u-boot–1.3.4-exp.diff исобираем:

$ make at91sam9260ek_dataflash_cs0_ config

$ make CROSS_COMPILE=arm-elf -

Теперьопределимся, кудазаливатьu-boot.bin. Еслитысмотрелисходникизагрузчикапервого уровня(4-килобайтныйBootstrap), томогзаметитьнескольколюбопытныхдефайнов:

$ less at91sam9260ek. h

#define IMG_ADDRESS 0x8400/* Image Address in DataFlash */

#define IMG_SIZE 0x33900/* Image Size in DataFlash */

#define JUMP_ADDR 0x23F00000/* Final Jump Address */

Этоименнотеадреса, откудаBootstrap берет прошивку(внашемслучае, U-Boot) икудаее копирует. Еслитынеменялэтидефайны, толей

образвDataflash поадресу0x8400. ТакназываемыйEnvironment, а, посути, конфигурационныйблокзагрузчика, тожедолженгде-тожить. Егоместо— междусамимU-Boot’омипервич- нымзагрузчикомпоадресу0x4200 (смотри/ include/configs/at91sam9g20ek.h), поэтому

вбудущемнетрогайэтотблок, еслинехочешь настраиватьвсезаново.

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

ЯДРОLINUX

ПоигравшисьскоманднойстрокойU-Boot, переходиксобственнозагрузкеядра.

Откудаегобрать? Поадресуwww.linux4sam.org /twiki/bin/view/Linux4SAM/LinuxKernel можно скачатьпрекомпилированноеядро, заточенное подотладочнуюплату. Предлагаюначатьименноснего, таконогарантированоработает. ЯдроуменяживетвNAND-Flash памятипоадесу0x42000. Этотадреспосоветовалмануал, хотя яимелполноеправогрузитьегокудаугодно; надотолькоследить, чтобыононепересекалось сдругимиданными.

Итак, беремядропосвежее(2.6.27), набудущее скачиваемстойжестраничкиисходникиспатчеми, вызвавSAM-BA Boot, заливаемввыбранныйфлешповыбранномуадресу. После перезагрузкисноваоказываемсявкомандной строкеU-Boot. Пишемтакиекоманды:

U-Boot> setenv bootcmd nboot 0x22000000 0x0 0x42000\; bootm U-Boot> saveenv

Опцияsetenv задаетпеременныеокружения. Bootcmd — особаяпеременная, черезнее описываюткоманды(вданномслучае— «nboot 0x22000000 0x0 0x42000; bootm»), которые требуетсявыполнитьпосле3-секундноготай- маутавначалезагрузкиU-Boot. Командаnboot копируетданныеизNAND-Flash поуказанному адресу, аbootm — запускаетпрограмму, упакованнуюутилитойmkimage (смотридальше).

080

XÀÊÅÐ 05 /125/ 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

unixoidw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

СОБИРАЕМEMDEBIAN

Еслижеклавишабыланажата, итыоказалсявкомандной строке, тодефолтоваязагрузкавыполняетсякомандойboot. Вобщем, есливсесделаноправильно, тосначалапоявитсянебольшаястатистикаоядре, апотомначнетсяего распаковка(строчка«Uncompressing Linux»). Затемдолжно завестисьсамоядро, радостновозвещаяобэтоммножествомсообщенийнаотладочныйпорт. Читайихвнимательно, тамсообщаетсяобудачныхинеоченьфактахподключения периферии. Вдальнейшемэтоможетпомочьприперекомпиляцииизаточке.

Кактолькоядровыскажетвсе, чтодумаетобокружающем егомире, произойдетсамоелогичное, чтоможетслучиться

— онозапаникует! Файловойсистемыведьнет. Этонормально,— прикручиваниемФСмызаймемсячутьпозже. Скомпилироватьядро, есливэтомбудетнеобходимость, такженесложно. Качаемванильноеядро, асlinux4sam.org утягиваемпатчдляплатыидефолтныйконфиг.

Возможно, патчпридетсяправить, еслитвойдевайс отличаетсяототладочногонабора(иначечастьпериферии незапустится).

Накладываниепатча

$ cd linux–2.6.27/

$ wget maxim.org.za/AT91RM9200/2.6/2.6.27-at 91.patch. gz

$ zcat 2.6.xx-at91.patch. gz | patch -p1

Конфигурированиеикомпиляция

$ wget www.linux4sam.org/twiki/pub/Linux4SAM /LinuxKernel/at91sam926yek_defconfig

$ cd linux–2.6.27/

$ cp at91sam926yek_defconfig.config $ make ARCH=arm oldconfig

$ make ARCH=arm menuconfig

$ make ARCH=arm CROSS_COMPILE=arm-elf —

Дожидаемсяокончаниякомпиляциии«обертываем» ядро впонятныйU-Boot’уформат:

$ mkimage -A arm -O linux -C none -T kernel\ -a 20008000 -e 20008000 -n linux–2.6\

-d arch/arm/boot/zImage uImage

Параметр'-a' сообщаетвоперативнойпамяти, кудазагружатьядро, а'-e' — откудаегостартовать. Естественно, этот адреснедолженпересекатьсястем, кудаU-Boot изначальнокопировалобраз(0x2200_0000).

ФАЙЛОВАЯСИСТЕМА

Теперь, когдаунасестьполноценноерабочееядроLinux, сумевшееподцепитьперифериюиFlash-карту, неплохобы

ДОЛГОИНУДНОЗАЛИВАЮФСЧЕРЕЗ

SAM-BA BOOT

наэтуфлешкускинутьФС. Ноначальнаячастьносителяуже

 

 

 

 

занята, аникакойтаблицыразделов, которуюмыпривыкли

 

 

 

 

видетьвначалекаждогоIBM-совместимогодиска, унас

 

 

 

 

нетинебудет. РазработчикиEvaluation Kit, немудрствуя

 

 

 

 

лукаво, простозаписалисписокразделоввнутрьядраLinux

 

 

 

 

(смотриlinux–2.6.27/arch/arm/mach-at91/board-sam9260ek.

 

HTTP://WWW

 

 

c)! Особовнимательныеувиделиэтотсписокещенаэтапе

 

links

загрузкиядра. Вобщем, файловуюсистемугрузимпоадресу

 

0x400000 (/dev/mtdblock1). Дляначаламожновзятьпред-

 

• Полезныйсайт

лагаемуюнаlinux4sam.org. Ихтамдве— этодистрибутивы

 

поАТ91SAM:

OpenEmbedded/Angstrom иболеелегковесныйBuildRoot

 

linux4sam.org.

набазеuClibc. Готовыебазовыеобразытожеможноскачать,

 

• Хомякунивер-

ониужеупакованывjffs2-образдляфлеш.

 

сальногозагруз-

КакзальешьФС, незабудьобновитьпеременнуюbootargs

 

чикаU-boot:

вменюu-boot, еезначениеподставляетсявкачествепара-

 

www.denx.de/wiki/U-

метровкоманднойстрокиядра:

 

Boot.

 

 

• Хорошийфорумраз-

U-Boot> setenv bootargs root=/dev/mtdblock1

 

работчиковжелеза:

rootfstype=jffs2 rw

 

electronix.ru.

U-Boot> saveenv

 

 

 

 

 

 

 

 

 

Надеюсь, всепрошлоуспешно, иутебязатребовали авторизацию. Пишилогинroot, апарольоставляйпустым. Поздравляю, мывсистеме! Осматривайся, проверяй, всели наместе:). Аесливозможностейпредустановленногодистрибутиватебепоказалосьмало, точитайдальше.

EMDEBIAN (EMDEBIAN.ORG)

Этотдистрибутив, какнетруднодогадаться, базируется наDebian изатачиваетсяподлегковесныевстраиваемые устройствапутемвыкидыванияизпакетоввсеголишнего, типадокументацииилокализации. СДебианнадвухмоих

машинах, Emdebian былдляменялогичнымвыбором. Внастоящиймоментврамкахпроектапредставленодварелиза

— Grip иCrush, обабинарносовместимысDebian GNU/Linux 5.0 «Lenny». ЯставилGrip, какболееполновесныйнабазе coreutils иglibc. Подробнееоразличияхчитайнасайте. УстанавливаетсяEmdebian спомощьюстандартногопакета debootstrap илинабораскриптовemdebian-tools. Обавари-

антапримерноодинаковыпофункционалу, выбирайлюбой. Далееставимвсе, чтонайдетсяпокоманде«apt-cache

DVD

dvd

• Наприлагаемом кжурналудискеможнонайтиисходники

ядраиU-Boot сналоженнымипатчами, образыфайловыхсистем

OpenEmbedded/ Angstrom иBuildRoot,

атакженемногодокументациипожелезу.

XÀÊÅÐ 05 /125/ 09

081

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

BUY

>>m

 

 

w

Click

to

 

 

 

 

unixoid

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ОТЛАЖИВАЕМДЕВАЙСЧЕРЕЗDBGU

search emdebian»,— вхозяйствепригодится. Следующийшаг: создаемфайлpackages.conf

стакимсодержимым:

SCRIPT=/usr/share/debootstrap/script s/lenny MIRROR=http://www.emdebian.org/grip/ PROXY=http://www.emdebian.org/grip/ SUITE=stable

Изапускаемemsandbox:

emsandbox -a arm -v./ -m./ --machine-path .

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

отцелевой. Влюбомслучае, вкорнеполучившегосяобразабудетлежатьскрипт emsecondstage, которыйнадовсемиправдами инеправдамизапуститьуженасамомдевайсе. Какэтосделать— делотвое. Можешьскинуть образнаusb-флешкуивоткнутьеевдевайс, либопримонтироватьобразпосети. После chroot’анакатипакеты, живущиев/var/cach e/apt/archives, начинаясlibc6 иsysvinit, иты получишьнастоящийDebian.

КУДАДАЛЬШЕ?

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

помаксимуму! Дляначала, оптимизируйядро иФСпоразмеруиэффективности, например,

выбросьизнегоподдержкуHID-устройств

ивсегопрочего, чтоникогданебудетподключенокдевайсу.

Потомможешьпопробоватьизбавиться отмонстрообразногоU-Boot. Операци- онка-загрузчик— это, конечно, хорошо, нои4-килобайтныйAT91 Bootstrap после

некоторойдопилкивполнеможетподготовить контроллеркзагрузкеядра. Далее— подари своемуодноплатникувнешнийUSB-винчес- теринаучиегокачатьторрентыираздавать файлыпоСети. Вырубив400-ваттныйфайл- сервер, можнонеплохосэкономитьнаэлектроэнергии. Потомвоткнивеб-камеру, поставь легкийhttp-сервериследизатерриторией черезстраничку, выведеннуюсквозьфайрвол винтернет. Короче, непаханоеполедляэкспериментов, лишьбыскоростихватало, давремени. z

082

XÀÊÅÐ 05 /125/ 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Реклама

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

>>m

 

w Click

to

 

 

 

unixoid

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

NETBSD 5.0

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

 

 

 

o

OPENBSD 4.5

 

 

 

 

 

NOW!

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ЕВГЕНИЙ «J1M» ЗОБНИН

/ ZOBNIN@GMAIL.COM/

OPENBSD 4.5

OPENBSD 4.5

НОВЫЕГРАНИ

BSD

OPENBSD 4.5

NETBSD

OPENBSD 4.5

ДетальныйобзорOpenBSD 4.5 иNetBSD 5.0

В сегодняшнем UNIX-мире развитие Linux и FreeBSD напоминает бесконечную гонку за модой, превращающую операционные системы в клубок запутанного кода, а сообщества — в рассадник троллей и надменных гуру. На этом фоне стоящие в сторонке Open/NetBSD могут стать настоящей отдушиной и примерами того, как мудрые люди создают красивые, лишенные попсовости операционки.

>> unixoid

 

OPENBSD.

системы, распространяетсясмногочислен-

ибезлишнихсловбралисьзанаписание

 

ЛИШЬДВЕУДАЛЕННЫЕ

нымидоработкамиизаплатками, улучшаю-

открытыханалоговдрайверов, огромное

УЯЗВИМОСТИЗАВСЕВРЕМЯ

щимистойкость. Врамкахпроектанаписаны

количествокоторыхперекочеваловNetBSD

СУЩЕСТВОВАНИЯ

такиевещи, какнезаменимыйинструмент

иFreeBSD.

OpenBSD — проектTheo de Raadt игруппыеди-

любогоадминистратора— OpenSSH иедвали

ЛучшееприменениеOpenBSD — сетевые

номышленников, отпочковавшийсяотNetBSD

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

маршрутизаторыимосты, гдеОСвполной

в1995 годуиначатыйсцельюсоздать

брэндмауэрpf, которыйсегодняможнонайти

красепокажетсвоивозможности.

полностьюсвободнуюоперационнуюсистему

влюбойОСсемействаBSD.

 

ВНАЧАЛЕНОЯБРЯ

соглядкойнавысокуюстабильностьибезо-

Борьбазакачествоилегальностькода—

 

 

пасность. OpenBSD всегдаславиласьсвоей

ещеоднаотличительнаячертаразработчиков

 

2008 ГОДАУВИДЕЛАСВЕТ

непотопляемостью, и, еслиописыватьсистему

OpenBSD. БудучипоборникамилицензииBSD

OpenBSD 4.4. ВсоставеевошлиOpenSSH 5.1,

однимпредложением, тополучитсячто-товро-

итолковонаписанного, лаконичногокода,

пригодныйкиспользованиюOpenCVS, утилиты

де: «Системадляпараноидальныхадминов».

участникипроектаготовыдоработатьипе-

sysmerge иtcpbench, атакженескольконовых

Иэтоправда— кодOpenBSD простокишит

реписатьлюбойкомпонентсистемы, создан-

драйверовиулучшенийвподсистемахядра

многочисленнымипроверкаминавалидность

ныйстороннимиразработчиками. Всоставе

(самымглавнымизкоторыхсталаподдержка

данных, правадоступаиполномочия. Дляза-

OpenBSD ужераспространяетсясобственная

WPA/WPA2 длябеспроводныхустройств)

труднениявозможныхатакрандомизируется

реализациясистемыконтроляверсийCVS,

истандартныхутилитах. Чтоженасждетвно-

абсолютновсе, начинаяотID процессовино-

сервериклиентдляпротоколовNTP, SNMP,

вомрелизе? Первое, чтообращаетнасебявни-

меровпортовизаканчиваястраницамивирту-

OSPF, BGP, ав4.5 войдетещеидемонSMTP.

мание— smtpd, безопасный, легкий, удобный

альнойпамяти. Любойкодпередвключением

Обсуждаетсявозможностьсозданияпростого

внастройкеSMTP-демон, которыйнацелен

вофициальнуюветкудоскональнопроверяет-

ибыстрогокомпилятораязыкаСиизамены

нестолькозаменитьвсемогущийsendmail,

сяианализируетсянапредметошибок. Идаже

GNU binutils. Разработчикивсегдаратова-

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

стороннееПО, включенноевбазовуюпоставку

лизаоткрытиеспецификацийна«железо»

иудобствоиспользования. Вконфигурацион-

084

XÀÊÅÐ 05 /125/ 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

unixoidw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

5

РОДСТВЕННЫЕСВЯЗИПРЕДСТАВИТЕЛЕЙ

СЕМЕЙСТВАBSD ДОБАВЛЯЕМВКОНФИГPF.CONF ПРАВИЛОСМЕТКОЙPFLOW

номфайлеиспользуетсяpf-подобныйсинтаксис:

Примерконфигурационного файлаsmtpd

listen on localhost port 25 hostname localhost

accept for domain "localhost" deliver to mbox "/var/mail/%u" accept from $local for all relay

Серверужевключенвдеревоисходныхкодовиумеетвсе, чтоможетпотребоватьсяв95% случаев.

Всоставверсии4.5 вошелOpenSSH 5.2, которыйможет похвастатьтакиминововведениями:

Клиентскаяопция'-y' дляотправкилоговвsyslog вместоstderr, чтоможетпотребоватьсяпризапускеврежиме демона.

ДирективаконфигурационногофайлаForceCommand теперьпринимаетаргументыдлявнутреннегоsftp-сервера.

sshd сталпониматьопцииPermitEmptyPasswords

иAllowAgentForwarding, прописанныевблокахMatch.

Удаленноеперенаправлениепортовспрослушиваемым портом0 (вэтомслучаесервердолжендинамическивыделитьпортисообщитьегоклиенту).

ПоддержкапротоколаSOCKS4A длядинамическогоперенаправленияпортов, которое, кстати, теперьможнонастроитьичерезкоманднуюстрокуклиента, доступнуюпо~C.

Кроменовыхвозможностей, вOpenSSH 5.2 устраненыдве теоретическиеуязвимостииисправлендесятокбагов. Кодстекаbluetooth синхронизировансNetBSD ипоумолчаниювключенвкодядрадляплатформalpha, amd64, armish, hppa, i386, landisk, macppc, sparc64 иzaurus. До-

бавленыдемонbtd (8), утилитаbtctl (8) иконфигурационный файлbt.conf (5) дляуправленияbluetooth-устройствами. Вкодбеспроводногостекадобавленаначальнаяреализация802.11x PMKSA кэшированияипреаутентификации,

поддержкапротоколаBIP (Broadcast/Multicast Integrity Protocol) для802.11w. Включенкоддефрагментации

дляприемаMSDU иMMPDU фрагментов. Драйвераipw (4) иiwi (4) теперьподдерживаютWPA. Опцияchan, переданнаяifconfig (8), приводиткпечативсехподдерживаемых

каналов, аscan выводитсписокдосягаемыхточекдоступа. Изядраудаленкодреализации/dev/drum и/dev/prandom. ДобавленаподдержкасемействапроцессоровARM9e

дляплатформыARM. DRM-модулиinteldrm иradeondrm,

необходимыедляподдержкиаппаратногоускорениянасоответствующихвидеокартах, теперьпоумолчаниювключенывядро. Генераторслучайныхчиселотныневозвращает собственноезначениедлякаждогопроцессора. Список поддерживаемыхплатформпополнилсяещедвумяпозициями: gumstix иOpenMoko, хотяреализацияпоследней настолькопримитивна, чтоможетиспользоватьсятолько длятестирования. Добавленоновоепсевдоустройствоpflow (4), котороеэкспортируетданныеIP-аккаунтингачерезUDP всовместимомсNetFlow 5 формате. Чтобынастроитьинтерфейсpflow, нужновыполнитьследующиекоманды:

#ifconfig pflow0 create

#ifconfig pflow0 flowsrc 192.168.1.2 flowdst 192.168.1.1:1234

ДляпримерапроизведемучетICMP-запросов, приходящих навнешнийсетевойинтерфейс:

host1# vi/etc/pf. conf

pass in on $ext_if inet proto icmp to ($ext_if) keep state (pflow)

host1# pfctl -f/etc/pf. conf host2# ping host1

host1# pfctl -vss | grep -B1 pflow | head all icmp 77.41. XX. YY: 1 <- 212.34. XX. YY: 45333 0:0

age 00:00:02, expires in 00:00:09, 2:0 pkts, 168:0 bytes, rule 14, pflow

Псевдоустройствоpfsync (4) переведенонаиспользованиепротоколапятойверсии, которыйнесовместим спредыдущими. Вgcc иgdb добавленаподдержкаPIE

(Position Independent Executables), которыерандомизируют размещениекода, данных, стекаиблокабиблиотеквнутри исполняемогофайла. Утилитыfstat (1), pstat (8) инекоторые переменныеsysctl большенепоказываютсмещениявфай-

INFO

info

Новыеверсии

OpenBSD выходят каждыеполгода: 1 маяи1 ноября.

ВOpenBSD неис-

пользуютсядрайвера соскомпилированнымиобъектными модулямиснераскрываемымисходнымкодом.

Удобныйсервис

поработесдеревом портовOpenBSD: http://openports.se.

DVD

dvd

• Наприлагаемом кжурналудискеты

найдешьOpenBSD 4.5 иNetBSD 5.0.

XÀÊÅÐ 05 /125/ 09

085

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

>>m

 

w Click

to

 

 

 

unixoid

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

OPENBSD 4.5

OPENBSD 4.5

NETBSD 5.0

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ПРОСМАТРИВАЕМСПИСОК ДОСТУПНЫХ СЕТЕВЫХ ИНТЕРФЕЙСОВ

лахидругуюинформациюдляпользователей, невладеющихэтимифайлами(root по-пре- жнемувидитвсе). ЯдроOpenBSD обзавелось поддержкойалгоритмовHMAC-MD5, HMACSHA1, HMAC-SHA256, AES-128-CMAC иAES «Key Wrap», которыеиспользуютсядляассиметричногошифрованиядругихключей

(смотри/usr/src/sys/crypto).

Вresolv.conf теперьможноуказыватьномер портадлязаписейnameserver, тоестьстрока вида«nameserver 17.16.67.143:5353» будет корректнообработана, ивсезапросыпойдут напорт5353 вместостандартного53-го. Множествоизмененийбылопроизведено

вaucat. Теперьутилитапотребляетменьше процессорныхмощностей, умеетслушать несколькосокетовсотдельнымуровнем громкостидлякаждогопотокаиможетработать

врежимеобратнойпетли. Всеэтопревра- щаетпрограммувнастоящийаудио-сервер, способныйвыступатьвкачествезаменыjack илиPulseAudio. Дляпримераприведукоманду запускаaucat врежимесерверасдвумяслушающимисокетами, громкостьодногоизкоторых установленав65 (default), авторого— выкру-

ченанаполную(max): $ aucat -l -v 65-s default -v 127-s max. Стандартныйкли-

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

Вомногихутилитахисправленыошибки ивыловленыутечкипамяти. Решенапроблема

DH0_DHCP_OPTIONS_OVERLOAD вdhcpd (8)

ипроблеманеправильногообновлениявкоде BGP, котораямоглапривестикнезапланированномузакрытиюсессии. Закрытыбреши безопасностивкодеOpenSSL иnamed (8).

ВкодеACPI устраненапаникананетбукахAsus eeePC 1000H идобавленворкараунддлясбой-

ныхACPI BIOS’ов.

NETBSD.

РАБОТАЕТДАЖЕ НАТОСТЕРАХ

NetBSD — перваяОСсемействаBSD, родившаясяв1993 годунакодовойбазе4.3BSD Net/2, 4.4BSD-Lite и4.4BSD-Lite2, распространяемых калифорнийскимуниверситетомБеркли. ЛозунгNetBSD — «Конечно, NetBSD может работатьинаэтом» (Of course it runs NetBSD).

Системапортированана60 аппаратныхплатформ, длякаждойизкоторыхдоступнытысячи прекомпилированныхпакетов. Причемсама системасборкипакетов, именуемаяpkgsrc, способнаработатьпрактическиналюбой POSIX-совместимойсистемебезкаких-либо затруднений.

Чтотутскажешь? ЦелостностьОСипроработанностьдизайнавсехкомпонентовсистемы, ставшиеследствиемвысокойпортабельности,— одноизважнейшихдостоинствNetBSD.

NETBSD 5.0

Если OpenBSD 4.5 — релиз минорный, больших изменений в себе не несущий, то анонс NetBSD 5.0 — событие громкое и значимое. С момента выхода 4.0 прошло уже более двух лет. За это время разработчики переносимой BSD добавили в свое творение

множество самых разнообразных, интересных (порой — неожиданных) новшеств. НаиболеезначительныеизмененияпроизошливядреОС. ТеперьFFS имеетподдержку журналирования; добавленкодреализации 1:1 потоков; переработаныпланировщик процессовисистемаблокировок; реализацияmalloc замененанаjemalloc; портнаXen обновлендоверсии3.3; интегрированановая, независимаяотархитектурысистемауправленияпитаниемиобменасообщениямимежду драйверамиPMF; появиласьподдержкаACPI suspend/resume, новыйфреймворкrump

длязапускачастейядравпространствепользователяисистемыpuffs дляреализациифайловыхсистемвнеядра. Добавленомножество новыхдрайверовиобновленысуществующие. Обовсемподробнее. Коджурналирования метаданныхWAPBL (Write Ahead Physical Block Logging) подаренпроектукомпаниейWasabi Systems, использующейегоажс2003-гогода (ничегоудивительного— нескольковедущих разработчиковNetBSD работаютвэтойкомпании). Этореализацияклассическоймодели журналированиявсехоперацийзаписиблоков передихнепосредственнымприменением. Изюминкасистемывтом, чтоонанетребует какого-либопреобразованияФС(достаточ- нопростодобавитьопциюlog в/etc/fstab)

ивбольшинствезадачпоказываетпроизводи-

тельностьвыше, чемsoft-dependencies (softupdates, говорянаязыкеFreeBSD).

Появиласьподдержкачтениясфайловых системEFS (разработкаSilicon Graphics) иHFS+ (файловаясистемаApple). Наконецдобавлена утилитаnewfs_ext2fs (8) длясозданияфайло-

086

XÀÊÅÐ 05 /125/ 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

NETBSD

>>

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

unixoidw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

NETBSD ПРЕКРАСНОЧУВСТВУЕТСЕБЯНАТОСТЕРЕ...

выхсистемext2, реализациякоторой, кроме того, обзавеласьподдержкой32-битныхполей uid/gid. Существенноувеличенапроизводительностьmsdosfs, скоростьзаписинакоторую теперьможетпроисходитьдо16 разбыстрее. Интегрированакомандаmount_sysctlfs (8), позволяющаяпредставитьдеревопеременных sysctl ввидефайловойсистемы. ОСнаучиласьписатьвUDF, длячегобылидобавлены соответствующиеизменениявядроидве новыеутилиты: mmcformat (8) иnewfs_udf (8).

Кодфайловойсистемыunionfs синхронизировансFreeBSD, аподдержкаNQNFS удалена изсоставаядра. Особоговниманиязаслужи-

ваетфреймворкrump (Runnable Userspace Meta Programs), позволяющийзапускатьчасти ядракакпользовательскиепроцессы. Rump

придаетNetBSD чертынастоящеймикроядернойОС, ноидея, лежащаявегооснове, очень проста. Самфреймворкпредставляетсобой нечтоиное, каквынесенныйвпространство пользователянаборвнутриядерныхфункций. Ониспользуетсявысокоуровневыми, независимымиотаппаратнойплатформычастями ядрадлядоступакнизкоуровневым. Вместе сrump вNetBSD вошлаипрограммаrump_nfs (8), реализующаяклиентNFS впространстве пользователя. Болеетого, любуюфайловую системутеперьможноперекомпилировать дляработывнеядра.

Другаяинтереснаяновинкаядра— puffs (Pass-to-Userspace Framework File System) —

фреймворк, использующийвозможностиrump ипозволяющийреализоватьфайловуюсисте-

СТОРОННЕЕПОВБАЗОВОЙ ПОСТАВКЕNETBSD 5.0

ipf 4.1.29 BIND 9.5.0-P2 NTP 4.2.4p6

OpenLDAP 2.4.11 OpenPAM 20071221 OpenSSH 5.0

OpenSSL снапшот от 20080509 Postfix 2.5.4

GNU GCC 4.1 снапшот от 20080831

...ИРАЗЛИЧНЫХВСТРАИВАЕМЫХ УСТРОЙСТВАХ

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

• mount_psshfs (8) — виртуальнаяфайловая системадлямонтированияsftp-сессий;

mount_puffsportal (8) — экспериментальная реализацияportalfs впространствепользователя;

mount_9p (8) — файловаясистемадлямонтированияфайловыхсервисов9P (протокол, применяемыйвраспределенныхоперацион-

ныхсистемахPlan9 иInferno).

Поверхpuffs созданаоберткасовмести-

мостисFUSE (File system in USErspace, fuse.sf.net). Примерподключения sftp-сессииспомощьюmount_psshfs:

mount_psshfs -O Compression=yes

vasya@host.com:/usr/mnt

Вядроимпортированыпереработанные системыблокировок, реализованныевветках newlock2 иvmlocking2, атакжепатчдлябло-

XÀÊÅÐ 05 /125/ 09

087

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

>>m

 

w Click

to

 

 

 

unixoid

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

кировкисокетов. Изменениюподвергся

икодбиблиотекиlibpthread, вкоторуюбыло добавленонесколькоулучшенийвобласти синхронизациипотоков. МодельпотоковSA замененана1:1. Кодреализацииmalloc заменен наjemalloc изFreeBSD, оптимизированный длямногонитевыхприложений. Интегрирован модульныйпланировщикSCHED_M2, который показываетвысокуюпроизводительность намногопроцессорныхсистемах, поддержива-

етисполнениепроцессоввреальномвремени

ипозволяетвыбиратьалгоритмпланирования, неостанавливаясистему. ТеперьNetBSD болеемасштабируемаипоказываетзаметныйприростпроизводительностинаMPсистемах. Большимизменениямподвергся кодсовместимостисLinux (compat_linux (8)

иcompat_linux32). ИзFreeBSD импортирован кодподдержкиTLS, добавленысистемные вызовыgetdgid, old_uname, readdir, pread, pwrite, mlock, munlock, msync, sys_clock {getres, gettime, settime} инесколькосистем-

ныхвызововсемействаchown. Обновлена поддержкаIPC, добавленаподдержкаossaudio

(3). Виртуальнаяфайловаясистемаprocfs

теперьэкспортирует/proc/stat, /proc/loadavg

и/proc/<pid>/statm. Обновленаподдержка эмуляции32-битнойNetBSD (compat_netbsd32 (8)), удаленаподдержкаэмуляцииHP-UX (compat_hpux). Кодреализации«магическихсимволическихссылок», позволяющий симлинкамуказыватьнаразныефайлы взависимостиотзначенияоднойилине-

сколькихспециальныхпеременных, обновлен

иподдерживаетпеременную@ruid, которая раскрываетсяв«настоящий» UID процесса. Этавозможностьиспользуетсядлясоздания изолированного/tmp длякаждогопользовате-

ля(опция«per_user_tmp=yes» в/etc/rc.conf).

Магическиесимлинки— довольнопростой, нополезныймеханизм, которыйпозволяет сделать, например, так(намашинеx86 ~/bin будетуказыватьна~/bin-i386):

# sysctl vfs.generic.magiclinks=1

$ ln -s/home/vasya/bin-@ machine/home/vasya/bin

Обновленстекbluetooth исопутствующиеутилиты. ВядродобавлендрайвердляBluetooth HCI UART, написанныйсоглядкойнаLinuxдрайвераBlueZ ипозволяющийпересылать пакетычерезпоследовательныйпорт. Добавленыдемонbtuartd (8), которыйуправляет работойдрайвера, bpand (8), управляющий профилямиPAN (Bluetooth Personal Area Networking) иbtkey (1) — программадлярабо-

тысключамисоединений. Утилитаifconfig (8) покоманде«list scan» теперьвыдаетсписок досягаемыхточекдоступа.

Издругихизмененийвнутриядраможно отметитьработунаконсолиMicrosoft Xbox,

поддержкуDRM (Direct Rendering Manager),

необходимуюдляработы2D- и3D-ускорения ввидеодрайверах, поддержкуPIE. ПортнаXen

обновлендоверсии3.3, добавленаподдержка архитектурыamd64 (dom0 иdomU) ирасширенияi386 PAE дляdomU. Изсоображений безопасностиудаленмеханизмsystrace. ЯдротеперьещебольшесовместимосPOSIX иподдерживаеттакиерасширениястандарта как: POSIX Real-time, Asynchronous I/O иPOSIX message queues. Псевдодрайверfast_ipsec (4)

обучилиработестехнологиейIPSec NAT-T, код брэндмауэраpf (4) синхронизировансOpenBSD 4.2. Появиласьподдержка«ipv6 fast forward».

Второйстадиейзагрузкитеперьможноуправлятьчерезконфигурационныйфайлboot.cfg (8), примеркоторогоприведенниже:

menu=Boot normally: boot netbsd menu=Boot single user: boot netbsd -s menu=Disable ACPI: boot netbsd –2 menu=Disable ACPI and SMP: boot netbsd –12

menu=Drop to boot prompt: prompt default=1

timeout=5

ВбазовоеокружениеNetBSD былидобавлены:

• Утилиты audit-packages

и download-vulnerability-list для поиска известных уязвимостей в установленных пакетах.

Утилита acpitools, импортированная из FreeBSD.

c99 — враппер, запускающий cc в режиме совместимости со стандартом C99.

tprof — простой профайлер, основанный на идее мониторинга производительности.

schedctl — программа, предназна- ченная для управления планированием процессов и потоков.

psrset — утилита для управления группами процессоров.

cpuctl — позволяет легко вклю- чить/отключить нужный процессор.

• dkscan_bsdlabel — инструмент

для поиска «BSD disklabel» на диске.

Переработкеимодернизациитакжеподверглисьсуществующиеутилиты:

amd теперь умеет запрашивать карты (amd maps) у сервера LDAP.

config научился генерировать конфигурационный файл LINT для ядра (флаг '-L').

newsyslog сожмет файлы ло-

гов с помощью bzip2, если указать флаг 'J' в конфигурационном файле/etc/newsyslog. conf.

bioctl существенно переработана и теперь умеет создавать/удалять «hot-spare», диски «pass-through» и RAID-тома, запускать/останавливать проверки на согласованность данных в томах.

patch импортирован из DragonFly.

sdiff импортирован из OpenBSD.

xargs импортирован из FreeBSD.

Вбазовуюпоставкубыливключеныhttpd — простойHTTP-сервер, написанныйнаСи,

иdhcpcd 4.0.11.

ТИШЕЕДЕШЬ— ДАЛЬШЕБУДЕШЬ

Размеренное, неторопливоедвижениекнамеченнойцели— ещеоднапривлекательнаячерта«альтернативных» BSD. Никакой погонизанововведениямиижеланияурвать кускисразувсехвозможныхрынков. ПроектыOpenBSD иNetBSD ужедавно перешличертузрелых, полностьюготовых киспользованиюпродуктов, исейчасидет процесспланомерногоразвитияиприспособлениякменяющемусярынкуIT. СлежениезаразработкойэтихОСсродничтению мантры, котораяуспокаиваетинаводит

направильныемысли. z

ВOpenBSD 4.5 ИЗНАБОРА

ПРЕКОМПИЛИРОВАННЫХ ПАКЕТОВДЛЯПЛАТФОРМ i386/amd64 СТОИТВЫДЕЛИТЬ:

Gnome 2.24.3

KDE 3.5.10

Xfce 4.4.3

OpenOffice.org 2.4.2 è 3.0.1

OpenArena 0.8.1

Mozilla Firefox 3.0.6

Mozilla Thunderbird 2.0.0.19

MySQL 5.0.77

PostgreSQL 8.3.6

088

XÀÊÅÐ 05 /125/ 09

Соседние файлы в папке журнал хакер