Constantine A. Murenin
Posts tagged ‘OpenBSD’
Using OpenBSD on non-native hardware is definitely a challange

With OpenBSD 5.0 under KVM on ARPNetworks, all you have to do is “disable mpbios”, and it all seems to work. However, not without subtle problems.

First, I’ve noticed that if you have lots of disk activity, plus lots of output through ssh, then you get periodic networking stalls very easily, with “em0: watchdog timeout — resetting” appearing repeatedly (although, to be fair, the stall only lasts a couple of seconds, and your sessions resume without any noticeable ill effects).

For example, you can find the following in /var/log/messages after checking out all the 3 BSD systems from local CVS trees, locally:

Jan 21 19:51:39 grok /bsd: em0: watchdog timeout -- resetting
Jan 21 19:52:16 grok last message repeated 2 times
Jan 21 19:53:09 grok /bsd: em0: watchdog timeout -- resetting
Jan 21 19:58:32 grok /bsd: em0: watchdog timeout -- resetting

Then, now I’m running Java with {OpenGrok, indexing 3 source trees, and the run queue seems to be merely about 4, as you can see from the load average below. The regular non-mp /bsd. So, guess what, something is broken yet again, and `top` shows all zeros for all the CPU states, and `systat vmstat 1` doesn’t work, either, returning “> The alternate system clock has died!” after a couple of seconds, without updating any info at all whatsoever.

This is what `top -U opengrok -s1` shows, notice the 0.00% for all CPU times, as well as for the process 30390 itself. It shows “98.4% idle” on first iteration, but then goes back to 0.0% as below. (However, wallclock works just fine, without any abnormalities, and the system otherwise appears to run just fine, too.)

load averages:  3.80,  3.78,  3.92
36 processes:  1 running, 33 idle, 1 stopped, 1 on processor
CPU states:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  0.0% idle
Memory: Real: 346M/581M act/tot Free: 402M Cache: 187M Swap: 32M/1012M

  PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
30390 opengrok  59    0  543M  297M run       -       207:20  0.00% java
24752 opengrok  -6    0  924K 1668K sleep     piperd    0:15  0.00% ectags
32716 opengrok  -6    0  656K 1528K idle      piperd    0:10  0.00% ectags
11857 opengrok  -6    0  840K 1580K sleep     piperd    0:10  0.00% ectags
 2934 opengrok  18    0 1340K 2092K idle      pause     0:01  0.00% tcsh

So, doesn’t really look like this would be providing a reliable and dependable server solution without some extra hacking…


a rough estimate into the total number of OpenBSD installations

I was asked to provide an estimate into the rough number of OpenBSD installations worldwide, and this is what I’ve come up with. This estimate is intended for people who are knowledgeable and are aware of the way that the open-source works, and that there are obviously many ways by which you can install an open-source operating system, and that the overall number of copies of a relatively large open-source project that highly respects one’s privacy would never be entirely clear. Note that this entry is a private mumbling of someone who is rather familiar with OpenBSD and its distribution, however, they are in no way authoritative or official, and should not be viewed as such.


CDs

One of the sources of OpenBSD funding is through the sale of CDs with the biannual releases, offered at a premium of around 50 CAD. Printed in Canada, there is roughly 1000 CDs that are shipped to the European distributor kd85.com (according to accounting.kd85.com), making the overall CD estimate to be around 3000 CDs, twice a year. Obviously, there are no limits on how many installs you can make with a single CD.


ftp estimate 1

Many people don’t buy the CDs, but download the releases from one of the many ftp servers around the world. There are a total of around 100 servers. We could hypothyse that each server would make a total of 1000 servings of each release of OpenBSD over the period of the 6-months that the release is the latest stable release, then we get the total distribution to be around one hundred thousand downloads. (Note again that each individual download may create a limitless number of actual installations, and mass-produced is entirely legal (and in fact may be very popular in developing countries).)


ftp estimate 2

Another way to estimate the number of servings of each release is to assume that most users download the release in the first month of the 6 months that it is being actively offered, and the relevant upstream rate of each server is saturated to around 4Mbps on average during that first month. The math is then as follows:

Each release size estimate:
500MB (250MB for the base system + some packages).
Average saturation estimate of the relevant upstream on each server during the first month of each new release:
4 Mbps = 0.5MB/s.
Total number of servers, roughly:
100.
Time length of the most active download period for each new release:
1 month = (1 * 30 * 24 * 60 * 60) seconds.
Total traffic produced:
100 * 0.5 * 1 * 30 * 24 * 60 * 60 = 129’600’000 MB / first month.
Number of releases served over ftp in the first month after each new release:
129’600’000 / 500 = 259’200 releases.

E.g. around three hundred thousand releases may be distributed over ftp as per this estimate.


number of computers in the world

Another estimate would be to assume that OpenBSD is used by every 1000th person that has a computer, e.g. 0.1% of the people that use computers. If then the total number of computers in the world is over one billion (one billion mark is said to have been reached in 2008; two billions are estimated by 2014), then the number of computers running OpenBSD is over one million.


summary

From these estimates, it would be fair to conclude that the overall estimate in the number of worldwide installations of OpenBSD could be somewhere between several hundred thousands and a million of installations.


style(9)
core:src {5594} find share/man -type f | xargs fgrep "there's" && uname -rms
share/man/man9/style.9:Then there's a blank line, followed by the
share/man/man9/style.9:Then there's a blank line, and the user include files.
OpenBSD 4.6 amd64
core:src {5595} 

wow, I certainly didn’t expect that!

For comparison, though:

dale# find share/man -type f | xargs fgrep "there's" && uname -rms
share/man/man4/ipsec.4:so for the receiving kernel there's no sign of authenticity
share/man/man4/man4.vax/dn.4:The device doesn't exist, or there's no power to it.
share/man/man9/kauth.9:there's no way to tell what structure
share/man/man9/kfilter_register.9:if there's an invalid argument, or
share/man/man9/kfilter_register.9:if there's an invalid argument, or
share/man/man9/sysmon_envsys.9:If there's some error before registering the device, the
share/man/man9/sysmon_envsys.9:object will be freed, so there's no need to call
NetBSD 5.99.22 i386
dale#