I stumbled over Google’s new RE engine. Unfortunately it is not handling backreferences, so it is not a drop-in replacement for the regular expressions code in FreeBSD. It has a POSIX mode, but this only seems to be enough for the egrep syntax. For people which need backreferences, they refer to the Google Chrome’s RE engine irregexp which in turn references a paper from 2007 which is titled Regular Expression Matching Can Be Simple And Fast.
The techniques in the paper can not be applied to the irregexp engine, but maybe could help to speed up awk, egrep and similar programs.
I think it would be interesting to compare those recent developments to what we have in FreeBSD, and if they are faster, to see if it is possible to improve the FreeBSD implementation based upon them (either by writing new code, or by importing existing code, depending on the corresponding license and the language the code is written in).
Maybe a candidate for the GSoC?
GD Star Rating
loading…
GD Star Rating
loading…
Tags: egrep,
freebsd,
google,
google engine,
gsoc,
posix,
recent developments,
regular expression matching,
regular expressions,
syntax —
This WE I was told that FreeNAS seems to want to move from FreeBSD to Linux (since then it seems there could be a linux and a FreeBSD version). One of the reasons seems to be a missing sensors framework.
As I was committing a port of the OpenBSD sensors framework (produced as part of the Google Summer of Code 2007) to FreeBSD and had to remove it afterwards because one committer complained very loudly, I was asked what the status of this is.
The short status is: Nobody is doing something about it.
Before I explain the long status, I give a short overview what this sensors framework is:
- a kernel API which allows to add sensors
- an interface for the userland to query the sensor data
- some basic userland code to show and log the sensor info
The API and the query interface are more or less independent. For the userland code it was more a logging infrastructure than a real monitoring solution. The reason was the real monitoring solutions already exist (Nagios, snmpd, …) and can be adapted to query the sensors. Ideally a query in userland should be handled by a library instead of directly accessing the sysctl interface, this way the kernel<->userland interface would be abstracted away (and could b replaced as needs arise). This was not done, it was something to be done later (Rome was not build in a day).
The userland interface also only cared about dumb sensors (those which you need to query manually to get the information), smart sensors (those which are able to send events themself) where not taken care about in the sense of really sending sensor-triggered events, but the kernel API allowed to add such sensors. The sysctl interface has no way of sending events, but FreeBSD already has an event interface (devd is taking care about it). It would have been not a problem to send events via this channel and let an userland library take care about the delivery together with other sensor-data in userland.
And now the long status is:
PHK complained loudly about it. First he said he did not look at it but he complained that is not good regardless. After a lot of nagging from me he had a look at it and was not happy about the time stuff in it (short: the FreeBSD timecounter code is better). This was not a problem in my opinion, we could have disabled this part without problems. After such an offer from me, he complained that the sensors framework uses the sysctl interface instead of an entry in /dev.
At this point in time already several userland utilities used the sysctl framework to query for status data in the kernel. So there was already precedence for such an use of it. Later some more such uses where added too (e.g. the procstat stuff by core team member Robert Watson).
I saved some of the corresponding mails (to public mailing lists) in a mbox file, read the mess yourself if you want.
The bottom line is: Several committers (even some which we could call high profile committers) told me that they do not see a problem in the use of the sysctl interface. They do not seem to want to tell it in public (nobody of them voiced their opinion in the thread, so do not ask me who those people are). I am not interested in investing more of my spare time into fighting windmills (it looks like this to me).
So, if someone is intersted in the code, r172631 has it. In the perforce repository you can maybe find some sensors. I think most of it can still be used without much changes.
If someone tries it with a more recent FreeBSD, please drop me a note if it just applies fine, or a patch (or an URL to it) if it needs some modifications. Who knows, maybe in a future project it may be useful for me.
If there is enough interest by several people, I can even put up a wiki page where those people can coordinate, but that is most probably all I am willing to invest further into this (at least in my unpaid time).
GD Star Rating
loading…
GD Star Rating
loading…
Tags: devd,
freebsd version,
google,
kernel api,
query interface,
sensor data,
short overview,
smart sensors,
snmpd,
sysctl interface —
Additionally to the WP plugins I already talked about, I installed some more since then:
GD Star Rating
loading…
GD Star Rating
loading…
Tags: automatic machine translation,
country flags,
global translator,
google,
honey pot,
link generation,
meta tag generation,
search engine optimization,
searchengines,
time passwords —
We got a lot of good proposals. Google is willing to give us a very nice amount of students. We didn’t expected this much. Thanks!
Now we need to rate the student applications and find suitable mentors… not that easy. It’s easy for the strongest proposals, but for the rest I expect that there will be some shuffling around until the very end.
GD Star Rating
loading…
GD Star Rating
loading…
Tags: google,
mentors,
proposals,
student applications —
Now that we have (or “soon will have”) an official FreeBSD blog, I decided to give this kind of electronic and public diary a try. At least to report the status and progress of some FreeBSD related projects I’m involved in.
A lot happened in the last days. We’re past the deadline of the Google Summer of Code rating process and now the lucky students are chosen. It wasn’t easy. We had more than 120 proposals (out of ~6400). From those we where willing to mentor 40 – 50 (based upon our resources and the quality of the proposals). Google granted 14 to us (a big thank you to Google!). I expect an official announcement “soon”. Hopefully some of those students Google wasn’t able to fund are willing to work with us regardless of the money, there are a lot of very nice proposals (I will add some items to the ideas list based upon them later). We’re at least willing to provide the same amount of mentorship as if they where selected.
I will work with two students. One of them will work on syncing the OSS API from recent releases from 4Front with our sound system. The other one will work on improving the linuxolator. I will announce this on the corresponding mailinglists after the official announcement. ATM we need to do some administrative stuff (handing out access to the wiki and perforce, setting up email aliases, …).
I already mailed some general guides to the students (note to mentors: it’s in the wiki on the “hidden” and restricted to mentors SoC page). For the sound stuff I don’t have a nice TODO list, but luckily the student already investigated the 4Front stuff for the proposal and is eager to start the work (basically this gives us the userland interface for multi-channel mixer support). Regarding the linuxolator improvements the student has a little bit less luck. I compiled a nice TODO list which is based upon his own proposal and all the various things I know about the linuxolator (PR’s, messages on emulation@, private conversations, things we noticed while working on the update of the linux base to a recent Fedora Core, …). I will be impressed if he manages to do everything on the TODO list (don’t worry, he knows that not everything has to be done to declare “success” to Google).
Both of them may be candidates for a commit bit (not within the SoC, but maybe later), both are eager to do the work, interested, motivated, and don’t need hand-holding.
Further news in the area of the sound system: Ariff told me he is working on multi-channel and endianess issues/support, and I may be able to commit two more sound drivers to the tree. One driver is the emu10kx driver currently available in the Ports Collection, and the other one is a driver for some envy24 chips. Currently I’m in contact with the author of the emu10kx driver and a volunteer who wants to improve an existing envy24 driver (author of the driver contacted; since it’s BSD licensed, this is a “don’t be evil” action).
And some news regarding the userland part of the linuxolator: We’re waiting for a repo-copy form linux_base-fc3 to linux_base-fc4. It seems FC4 is compatible enough so that we can direclty move from RedHat 8 to FC 4. FC 5 is out of the game for a while, it doesn’t want to run with the old linux kernel version our linuxolator announces. Changing the version via the sysctl doesn’t help (probably because of the changed semantic of the linux clone syscall between 2.4.x and 2.6.x), so it has to wait until the linuxolator SoC finishes.
GD Star Rating
loading…
GD Star Rating
loading…
Tags: 4front,
channel mixer,
google,
lucky students,
mailinglists,
mentors,
mentorship,
mixer support,
private conversations,
public diary —