Copyright © 2008, 2009, 2010 Marc Balmer. All rights reserved.
I reworked the GPIO framework in OpenBSD last fall. Now I have taken my work to NetBSD and updated their GPIO implementation. While there, I corrected some mistakes made in the OpenBSD implementation and took it a step further. More development will take place in NetBSD, and there is quite a few interesting upcoming things to watch out for...
If you are interested in the latest userland accessible GPIO stuff, and the most up-to-date GPIO implementation, then keep an eye on NetBSD -current. This is where I am working on new stuff.
See http://blog.netbsd.org/tnf/entry/gpio_revisited for details. And stay tuned.
Every now and then someone asks on the OpenBSD public mailing list if it is possible to have a graphical application start at system boot time, circumventing the usual xdm login screen.
I had to do exactly this for info kiosks in public libraries, where a web browser is to be started for visitors to browse the online catalogue. Another application are point of sale systems where the POS application handles the login.
OpenBSD has had support for General Purpose Input/Output devices since the 3.6 release. GPIO devices, or gpios for short, provide an easy way to interface electronic circuits which can be as simple as a LED or that provide more complex functionality like a OneWire or I2C bus.
The GPIO implementation in OpenBSD 3.6 up to and including 4.4, however, has some problems and drawbacks which made me rework larger parts of this subsystem during the h2k8 hardware hackathon in Coimbra, Portugal.
The other day, I got an email from Edd, an OpenBSD user, claiming that Samba would crash when serving files off an MS-DOS filesystem. This was Samba built from sources and not the one from ports. Since I use myself Samba a lot and for a quite large user base, I got interested in the issue and started investigating it.
What I found out in the end is a surprise and was not expected: A bug that has been there in all BSDs for almost all the time, since the 4.2BSD times or for roughly 25 years...
Line disciplines have been in Unix since a long time. While they are not device drivers, they interact with tty devices in a very peculiar manner: They attach to a tty device and can then look at, or manipulate, the data as it flows through the tty device. Line disciplines are thus the natural choice when serial data is used in the kernel, e.g. to exchange TCP/IP packets over a serial link using the SLIP protocol or decoding date and time information and provide a timedelta sensor.
Copyright © 2003-2008 by Marc Balmer. All rights reserved.
OpenBSD some time ago changed the mode of operation for the Apache webserver from the normal non-chrooted operation to chrooted operation. This enhances the security of the server on which Apache is run but it imposes a few challenges to the system administrator.
In this article I will discuss selected aspects of running a chrooted HTTP daemon and present strategies on how to set up a chrooted environment for more complex applications like database access or using CGI-scripts.
(First published on April 6, 2003, revised on March 20, 2004, converted to HTML for online publishing on December 21, 2007.)
All of these projects, except dynload and mod_clamscan, are in the OpenBSD ports and packages collection.
Copyright © 1996 by Marc Balmer, CH-4055 Basel, Switzerland.
This paper discusses strategies and methods to use Java as a programming language for CGI (Common Gateway Interface) applications.
(This document describes version 1.01 of the framework)
Copyright © 1996 by Marc Balmer, CH-4055 Basel, Switzerland.
Internet applications written in the Java programming language are mostly designed as applets that run in a Java enabled browser like Netscape.
There are, however, still many web-browser around that don't support Java. These need to use CGI (Common Gateway Interface) to access interactive pages on the web. Although CGI programs traditionally were realized using a scripting language like Perl or even the Bourne shell, nothing speaks against using Java to write CGI program.