Categories
operating systems

Dutch masters

Seen on Linux Weekly News.

Ext4 maintainer Ted Ts’o has responded with a rare (for the kernel community) admission that technical concerns are not the sole driver of feature-merging decisions:

It’s something I do worry about; and I do share your concern. At the same time, the reality is that we are a little like the Old Dutch Masters, who had take into account the preference of their patrons (i.e., in our case, those who pay our paychecks :-).

One of those rare moments when art, commerce, and engineering collide to produce comedy.

Categories
operating systems

why microkernels don’t work

You can almost just see it from this diagram of connected boxes.  I want to think of the whole system as a series of connected state machines.  The arrows show how information is moved around the system with the green arrows identifying paths that carry data to and from the memory. When you fill in the details, you start to see that the proposed sheering off of the “fileserver” from the remaining “kernel” does not actually split state as much as it reproduces it. So much of the state of the rump Kernel needs to be available to the FileServer that the proposed modularity disintegrates.”’

The counter argument, in its best form, can be found at QNX.

http://www.qnx.com/developers/docs/6.3.2/neutrino/sys_arch/fsys.html

Categories
operating systems

Shocking advances in Operating Systems

And here I was complaining about the lack of progress in OS development

“This will blow away any RTOS,” said Cauchy. “We speed up execution by doing things like vector interrupts, I/O memory mapping, and turning off timers.”

By Gad!

Categories
operating systems software business

Microsoft by the numbers

From correspondent AY:

150,000,000
Number of Windows 7 licenses sold, making Windows 7 by far the fastest growing operating system in history.
<10
Percentage of US netbooks running Windows in 2008.
96
Percentage of US netbooks running Windows in 2009.
9,000,000
Number of customer downloads of the Office 2010 beta prior to launch, the largest Microsoft beta program in history. [source]
24%
Linux Server market share in 2005.
33%
Predicted Linux Server market share for 2007 (made in 2005).
21.2%
Actual Linux Server market share, Q4 2009.

http://blogs.technet.com/b/microsoft_blog/archive/2010/06/25/microsoft-by-the-numbers.aspx

Those last numbers are especially damning since Linux started with superior technology, has an easier business model if your only goal is market share, and did not have a legacy ball-and-chain anywhere near the size MS has to drag along. But years of directionless bloat have taken a toll and the sponsor driven decisions to go for traditional “server/OS” technology methods in place of trying to find solutions to current customer problems has been very damaging.

Even discounting the obvious PR froth of this article: http://www.eweek.com/c/a/Linux-and-Open-Source/Linux-Losing-Market-Share-to-Windows-Server it is an interesting trend.

and just for kicks from April 2000

“During his presentation on scaling Linux to the enterprise, BitMover, Inc. CEO Larry McVoy raised a few furrowed eyebrows at the recently-held Colorado Linux Info Quest (CLIQ). His message: Symetric multiprocessing (SMP) scaling may be hazardous to your operating system (OS) health.”

“McVoy said that the level of harm is “directly proportional” to the amount of scaling and is “worse than linear” in the number of processors. Converting a uniprocessor OS to a four-way SMP OS introduces a “small amount of damage.” Converting the four-way SMP OS to a 32-way SMP OS does even more damage, he told the crowd. McVoy calls this phenomenon “the locking cliff.””

“The bottom line, said McVoy, is that: “Linux needs to have bragging rights on ‘big iron’ to be taken seriously in the enterprise. But the traditional way of getting those rights involves a series of changes which do a lot of damage to the source base. So the problems are that Linux needs to scale, and traditional scaling is a bad idea. Linux will use traditional scaling if nothing else shows up,” he said, “but SMP clusters is a better way to do it. I’m the driving force behind that and I’m not driving because I’m wrapped up in BitKeeper.””

http://www.linuxtoday.com/news_story.php3?ltsn=2000-04-13-010-06-NW&tbovrmode=3

Categories
operating systems

Linux semaphores

Re: Schedule idle
MOLNAR Ingo (mingo@chiara.csoma.elte.hu)
Wed, 11 Nov 1998 04:09:32 +0100 (CET)
[…]
> _please_ We can do better than this. Only semaphores (not spinlocks) need
> to have the priority inheritance. […]
nope there are _not_ only semaphores, but many other types of locks.
> […] This can be done with lists off the
> semaphore and tasks… […]
it’s _not_ easy to extend Linux semaphores to handle priority inheritance. currently semaphore operations can be done via hw-atomic test-and-set instructions. If we do anything more complex, we cannot use simple instructions anymore. Linux semaphores are 2 instructions for an up() and 2 for a down(), and thats one of our crown jewels :)

the whole point is not quite valid, RT and filesystem IO doesnt mix well anyway … the solution: use system calls that are guaranteed to not block, either by design, or by system policy (ie. separate filesystem on a RAMDISK) … or use a device that doesnt introduce large latencies. (RAMdisk or solid state disk)

And then ….



		
Categories
operating systems

multicore and multiprocessor performance

Here’s two  interesting tables

Percentage of lock acquisitions for global TCP/IP locks that do not succeed
immediately.

OS Type 6 conns 192 conns 16384 conns

MsgP
89 100 100

ConnP-L(4)
60 56 52

ConnP-L(8)
51 30 26

ConnP-L(16)
49 18 14

ConnP-L(32)
41 10 7

ConnP-L(64)
37 6 4

ConnP-L(128)
33 5 2

L2 Data cache misses per KB of transmitted data.

OS Type 6 conns 192 conns 16384 conns

UP
1.83 4.08 18.49

MsgP
37.29 28.39 40.45

ConnP-T(4)
52.25 50.38 51.39

ConnP-L(128)
28.91 26.18 40.36
Categories
operating systems software business

The ridiculous GPL-only tagging of Linux

Imagine that you release software under a license that is primarily concerned with making sure that modifiable source code is available to all and that no restrictions should ever be placed on derived works. Now imagine that someone takes a huge body of code like this and starts marking interfaces as limited to specific uses and claims that removing those markings is not permitted. How can the code be free for modification and not free for modification at the same time? It’s clear that some of the developers of GPL Linux kernel code discovered that it was difficult doing business under the GPL, but rather than finding a different license more to their liking, they have attempted to add additional conditions to the GPL  – something that the GPL specifically prohibits.

Categories
operating systems

10th anniversary of the RTLinux Manifesto paper

The RTLinux* Manifesto was published a little over 10 years ago at the 5th Linux Expo in Raleigh North Carolina which was really the first one with a bunch of suits wandering around.  As a kind of celebration/experiment , I’m publishing an annotated version.

Here is a related discussion

.

* RTLnux is a  trademark now belonging to WindRiver/Intel.

Categories
operating systems software business

Parallelism and multicore

The goal of modern processor chip design has changed from optimizing various speed/price/heat tradeoffs for applications to finding excuses for dumping more transistors into the device.  Heard an interesting talk from Krisztián Flautner of ARM at the ACISC conference and I have to admit that it’s not entirely the fault of the chip designers – since they design for operating systems that have stalled for 30 years or more.

Categories
operating systems software security systems

Deterministic multithreading

An interesting paper appearing in ASPLOS proceedings provides a “deterministic” locking method

Kendo enforces a deterministic interleaving of lock acquisitions and specially declared non-protected reads through a novel dynamically load-balanced deterministic scheduling algorithm. The algorithm tracks the progress of each thread using performance counters to construct a deterministic logical time that is used to compute an interleaving of shared data accesses that is both deterministic and provides good load balancing. Kendo can run on today’s commodity hardware while incurring only a modest performance cost ( http://www.gigascale.org/pubs/1883/asplos073-olszewski.pdf)

There is similarly motivated work on Java going on at UIC: http://dpj.cs.uiuc.edu/DPJ/Home.html

Both works refer to Lee’s paper which I discussed earlier. Nondeterministic threading is a  historical accident in computer engineering. Operating systems introduced time-sharing methods so single thread programs could be run in parallel during I/O delays and then so that multiple users could reasonably fairly share a processor and then so the OS and service programs could provide multiple services to a user at the price of slowing down user applications.  Exposing this system to users has been a mixed blessing. Certainly in the controls world, non-determinism is a dangerous fault.