| open source in production |
[Сб, 2008-04-12T23:04] |
Сделал поиск ‘from:dillon to:freebsd.org’ в gmail, почитал пару тредов.
Особенно понравился следующий.
Начинается с того, как какой-то пользователь сообщает об очередной ошибке во FreeBSD.
Другой пользователь начинает интересоваться, существует ли данная проблема в DragonFly BSD.
kris@f пытается прокомментировать ситуацию с DragonFly, комментируя ситуацию относительно FreeBSD 4.
Приходит dillon@, разъясняет, что FreeBSD 7 такой же FreeBSD 4 как и DragonFly (т.е. корреляции нет никакой). По совместительству, dillon@ пытается разъяснить, что softupdates содержит такое количество нюансов, что лично он больше не собирается расширять данное понятие, только исправляя текущие ошибки, и что HAMMER — наше всё. А для особо несведущих, dillon специально даёт ссылку на cvsweb с исходным кодом новой файловой системы.
Один из пользователей восхищается функциональностями, которые нам сулит HAMMER.
Приходит scottl@f (тот самый, который нам знаком по кампании OpenBSD vs. Adaptec — Scott публично оскорблял Theo de Raadt'а, когда Theo организовывал кампанию против недоступности документации по контроллерам Adaptec; разумеется, Scott тоже является главным противником интеграции bioctl во FreeBSD), и высказывает своё неосведомлённо-остроумное замечание по поводу смены списка рассылки для обсуждения “vaporware”…
После этого там можно почитать ещё парочку поливаний грязью, которые лучше читать в оригинале.
Завершает цепочку интересное сообщение тов. Bill Hacker, которое, честное слово, расставляет все точки на и. Во FreeBSD 7 не работает даже lpt(4)! Не, нормально, да? lpt!
А вечером зашёл на ru_freebsd. И что вы думаете, одна проблема за другой.
Пару недель назад заходил на opennet.ru, смотрел пару новостей в разделе BSD, и там в одной цепочке тоже все подряд говорят о проблемах во многих подсистемах после перехода c FreeBSD 4.
А как насчёт списков рассылки? Только пару недель назад пробегала очень интересная цепочка сообщений "s/stable/broken/g". Вкратце — у товарища были две машины под FreeBSD 5, разных производителей, которые ему пришлось обновить до FreeBSD 6, т.к. поддержка FreeBSD 5 скоро закончится, и после обновления сетевые карты обоих машин перестали нормально работать (причём драйвера — разные).
Да что ходить по чужому белью! Я же сам использовал FreeBSD 7 прошлым летом! При большой нагрузке (читай `make -j`), re(4) полностью вылетал с разными сообщениями, обрывая мои ssh-сессии. Тов. yongari починил, и вылетания у меня прекратились (хотя некоторые странные записи в syslog всё равно изредка продолжали поступать, хотя уже и в единичном, а не массовом, порядке). Насколько я понимаю, у многих пользователей использование re(4) на FreeBSD до сих пор является довольно проблематичным занятием.
Да, товарищи, и какой тогда смысл в системе, если она просто не работает? А что тогда использовать в качестве production? Или таким образом, мы обеспечиваем сами себе хорошее будущее в плане индивидуальной настройки конкретных систем под конкретное железо, дабы жизнь маслом не казалась? DragonFly, кстати, вовсе не является панацеей, и там до сих по умолчанию SMP вообще полностью выключен (я аж под стул упал, когда прошлым октябрём впервые попробовал DragonFly). Так и живём! |
|
|
| 12-year-old bug in FreeBSD's kern_sysctl.c |
[Пн, 2007-09-03T15:22] |
The other week, I found a 12-year-old bug in FreeBSD's /sys/kern/kern_sysctl.c.
The bug is in the incorrect len parameter that is being passed to useracc(9).
I originally thought that it might have some security implications, but in reality, subsequent copyin(9) in sysctl_new_user() is supposed to take care of any boundary problems, so in the end, I'm not sure why this useracc(9) call is even there in the first place, buggy or not. ;)
Although fixing this bug so far doesn't seem to be of any real value to anyone -- tell me if it is to you -- it is nonetheless interesting to find bugs that were introduced so many years ago. ;)
Thanks to Robert Watson for taking his time to commit my patch and for the discussion. Here are some links to the mailing list regarding my fix being committed, read the message in the second link for my complete description of what the bug is about.
http://lists.freebsd.org/pipermail/cvs-src/2007-September/081597.html -- my patch is committed http://lists.freebsd.org/pipermail/cvs-src/2007-September/081603.html -- my detailed comments
And here is the history of this bug:
http://cvsweb.freebsd.org/src/sys/kern/kern_sysctl.c#rev1.38 -- the bug is introduced in 1995 http://cvsweb.freebsd.org/src/sys/kern/kern_sysctl.c#rev1.91 -- the line with the bug is slightly altered http://cvsweb.freebsd.org/src/sys/kern/kern_sysctl.c#rev1.177 -- the bug is fixed with my patch
I've also emailed Matt Dillon, and he committed my patch to DragonFly BSD, too: http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_sysctl.c#rev1.28 -- my patch in dragonfly
P.S. If you're actually looking for a useful but slightly younger bug that I've fixed, then look no further than in my “10-year-old pointer-arithmetic bug in make(1) is now gone…” entry. ;)
Best regards, Constantine. |
|
|
| Jeff Roberson: официальный релиз планировщика ULE 3.0 |
[Чт, 2007-07-19T12:56] |
Ранее на этой неделе, Jeff Roberson фиксировал SCHED_SMP как SCHED_ULE во FreeBSD. Данная версия планировщика получила название ULE 3.0, основываясь на предыдущем коде ULE, но доступная в предыдущие шесть месяцев вне CVS под названием SCHED_SMP.
Напомним, что jeff@ в последнее время проводил несколько тестирований масштабируемости FreeBSD и Linux (см. новости за февраль и июнь 2007), регулярно публикуя результаты исследований в своём ЖЖ. Сегодня, подводя итоги, Jeff выразил своё разочаровании огромным количеством “любовных” посланий со стороны поклонников Linux. Больше всего Jeff'а смущает тот факт, что многие фанатики Linux'а даже и не осознают того, что если бы он не опубликовал данные исследования, то проблема в Linux так и не была бы решена.
Nick Piggin, разработчик Linux, который следил за развитием данной истории с масштабируемостью MySQL со стороны Linux, в очередной раз поблагодарил Jeff'а за проделанную работу, и подтвердил, что Jeff нашёл действительный недочёт в Linux, предоставив разработчикам Linux самое главное — способ воспроизведения проблемы, который позволил написать заплаты для Linux'а, устраняющие самые очевидные проблемы с масштабируемостью MySQL.
Стоит отметить, что несмотря на вышеупомянутые патчи для Linux, FreeBSD с планировщиком ULE 3.0 всё равно позволяет обрабатывать заметно большее количество транзакций при масштабировании MySQL по сравнению с Linux.
http://jeffr-tech.livejournal.com/11052.html |
|
|
| support for G965 finally added to FreeBSD |
[Ср, 2007-07-18T15:17] |
A few days ago, someone finally added support for my G965 integrated graphics to FreeBSD 7.0-CURRENT:
vgapci0: <VGA-compatible display> port 0xec00-0xec07 mem 0xffa00000-0xffafffff,0xd0000000-0xdfffffff irq 16 at device 2.0 on pci0
+agp0: <Intel G965 SVGA controller> on vgapci0
+agp0: detected 7676k stolen memory
+agp0: aperture size is 256M
uhci0: <UHCI (generic) USB controller> port 0xd880-0xd89f irq 16 at device 26.0 on pci0
Interestingly, Xorg 7.2.0 still doesn't seem to work on this machine under FreeBSD even after this change (maybe that is somehow related to something still being out of date, because I've upgraded this machine to 7.0-CURRENT shortly after installing 6.2-RELEASE).
Suffice it to say, that on this very same G965 machine, I was able to successfully run X and KDE under OpenBSD 4.1-current (without performing any voodoo dances) since about mid May 2007 — the time that I first installed any operating system on this somewhat problematic Core 2 Duo system.
P.S. Any more people to claim that OpenBSD cannot be used as a desktop? ;) |
|
|
| GSoC2007: Initial drivers part: Porting lm(4) from OpenBSD to FreeBSD |
[Пт, 2007-06-29T13:04] |
Right now I'm busy porting the isa part of the lm(4) driver from OpenBSD to FreeBSD.
I have been stuck on trying to find the FreeBSD structures that are equivalent to OpenBSD's and NetBSD's struct isa_attach_args, which is used in the match and attach routines of isa drivers.
On NetBSD and OpenBSD, the following code can be used to initialise variables of type bus_space_tag_t and bus_space_handle_t, which are later used for accessing bus_space_write_1 and bus_space_read_1 functions:
int
lm_isa_match(struct device *parent, void *match, void *aux)
{
bus_space_tag_t iot;
bus_space_handle_t ioh;
bus_addr_t iobase;
struct isa_attach_args *ia = aux;
iot = ia->ia_iot;
iobase = ia->ipa_io[0].base;
if (bus_space_map(iot, iobase, 8, 0, &ioh)) {
DPRINTF(("%s: can't map i/o space\n", __func__));
return (0);
}
/* Probe for Winbond chips. */
bus_space_write_1(iot, ioh, LMC_ADDR, WB_BANKSEL);
...
}
Actual code from OpenBSD and NetBSD can be found at the locations below: http://opengrok.creo.hu/openbsd/xref/src/sys/dev/isa/lm78_isa.c#lm_isa_match http://opengrok.netbsd.org/source/xref/sys/dev/isa/lm_isa.c#lm_isa_match
As far the bus_space(9) functions themselves are concerned, it does appear that FreeBSD has all of these functions starting with FreeBSD 3.0, which were ported from NetBSD, according to the manual page. However, for some reason, I found very few drivers on FreeBSD that actually use bus_space_map() function, for example. For now, let's hope that they will work as soon as I figure out where to get iot and ioh. :)
( Read more... ) |
|
|
| any alpha testers? |
[Вс, 2007-06-17T23:23] |
[02:17] < constant> on freebsd-pf mailing list, recently there were a few messages with the following topic: "Here we go again: pf 4.1 !!!ALPHA!!! update". [02:17] < constant> their pf-maintainer was suggesting the following, in the last sentence in one of those messages: "I did some more testing which didn't show any major problems - alpha testing welcome!" [02:18] < brad> and? [02:18] < constant> I am thinking now -- should I email the list and ask for an i386 version, too? :)
|
|
|
| Почему так важно иметь документацию по программированию железа |
[Сб, 2006-12-09T19:29] |
| [ | Tags | | | documentation, drivers, ethernet, fcc, freebsd, hardware, linux, open for business, openbsd, opencon, opencon 2006, opensolaris, originalcontent4lor, wireless | ] |
На недавно прошедшей в Италии конференции OpenCON 2006, Theo de Raadt и Jonathan Gray выступили с докладами о проблеме, с которой сталкиваются разработчики любой операционной системы — проблеме поддержки железа.
Theo de Raadt перечислил основные компоненты компьютера, и привёл наглядную таблицу, сравнивающую поддержку различных устройств и доступность документации по программированию.
Например, Theo в очередной раз подчеркнул, что доступность документации (а следовательно и отменная поддержка в свободных драйверов) для сетевых адаптеров по большому счёту является заслугой одного человека — Bill Paul'а, который зачастую разрабатывал FreeBSD-драйвера для сетевых адаптеров в считанные дни после выхода адаптеров в розничную торговлю! Не остались и без внимания адаптеры em(4), для которых Intel долгое время не предоставлял никакой документации (вместо этого предоставляя только исходные коды драйверов), и один из читателей undeadly посоветовал, что именно отсутствию документации и обязаны несколько недавних сообщений об уязвимости различных адаптеров Intel.
Сразу после Ethernet-адаптеров, Theo перешёл к беспроводным сетевым адаптерам: несмотря на отсутствие документации на некоторые чипсеты, OpenBSD поддерживает 90% всех беспроводных адаптеров, выходя на первое место по поддержке беспроводных устройств в инсталляции по умолчанию. Большинство беспроводных драйверов на всех BSD системах и на OpenSolaris написаны опять одним единственным программистом — Damien'ом Bergamini, на сей раз разработчиком OpenBSD.
Theo привёл интересный список “оправданий”, которые можно обычно услышать в ответ на запросы документации. Интересным моментом является то, что обычно чипсеты с отсутствующей документацией содержат массу ошибок в дизайне, и хотя до сих пор ни один производитель не выдал такой аргумент в качестве официального оправдания, Theo подозревает, что это оправдание является главной причиной отсутствия документации.
Theo официально затронул и нашумевшую тему о том, что якобы FCC и другие подобные организации запрещают производителям выпускать документацию из-за присутствия программного радио-передатчика (Software Defined Radio). Theo чётко заявляет, что FCC ещё ни разу не атаковал ни одного производителя чипсетов, который бы выпускал свободную документацию к своим передатчикам, т.к. в реальных условиях передатчики всё равно не смогут далеко уйти от разрешённой частоты и не смогут создать какую-либо угрозу из-за незначительной мощности. Оправдание FCC всего лишь является ещё одним оправданием "пользователей" чипсетов, а не оправданием производителя.
Далее Theo обсуждает тему защиты производителей их пользователями: если почитать любой форум, включая новости об отсутствии документации на определённые чипсеты на linux.org.ru, то можно заметить, что очень часто при публикации очередной информации о закрытости того или иного чипсета пользователи сами придумывают различные оправдания тому, почему документация отсутствует! Theo, имея опыт общение с полусотней производителей, чётко заявляет, что сами производители подобных оправданий никогда не дают!
Jonathan Gray в очередной раз пояснил, что OpenBSD не просит производителей чипсетов раскрывать какой-либо исходный код прошивок (а всего лишь просит предоставить неограниченные права на распространение бинарных прошивок), и драйверы от производителя обычно не отличаются интегрированностью с системой (наличие документации является ключевым фактором в успешном функционировании драйвера).
Далее Jonathan кратко перечислил структуру драйверов на OpenBSD и процесс написания драйверов новых устройств, и призвал некоторых разработчиков Solaris и особенно Linux и FreeBSD перестать пилить сук, на котором они сидят, подписывая многочисленные NDA для разработки драйверов, которые потом никто не сможет редактировать. (Главная проблема в подписании NDA состоит в том, что только разработчики подписавшие NDA могут работать над драйвером, и подписание NDA одними разработчиками делает работу других разработчиков без NDA очень затруднительной.) |
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| |
|
|