## 3 Survey Results
### Operating System and Middleware  
Used operating systems and middleware are listed in Table 13.  
\begin{table}
\begin{tabular}{l l c c} \hline \hline
**Nr** & **Codename** & **OS used** & **Self-made OS** & **Middleware used** \\ \hline
1 & Habitats & TinyOS & n \\
2 & Minefield & customized Linux & n \\
3 & Battlefield & TinyOS & n \\
4 & Line in the sand & TinyOS & n \\
5 & Counter-sniper & TinyOS & n \\
6 & Electro-shepherd &? & y \\
7 & Virtual fences & Linux & n \\
8 & Oil tanker &? & n \\
9 & Enemy vehicles & TinyOS & n \\
10 & Trove game & TinyOS & n \\
11 & Elder RFID & TinyOS & n \\
12 & Murphy potatoes & TinyOS & n \\ \hline \hline \end{tabular}
\end{table}
Table 13: Deployments: used operating system (OS) and middleware.  
TinyOS [4] is the de-facto operating system for wireless sensor networks, as is clearly shown in Figure 9: 60% of deployments use it. There are multiple reasons behind that. First, TinyOS has a large community supporting it; therefore, device drivers and protocols are well tested. Second, as it has reached critical mass, TinyOS is the first choice for new sensor network designers--it is being taught at universities, it has easy installation and pretty well developed documentation and even books on how to program in TinyOS [78].  
\begin{table}
\begin{tabular}{l l c c c} \hline \hline
**Nr** & **Codename** & **OS used** & **Self-made OS** & **Middleware used** \\ \hline
13 & Firewxnet & Mantis OS [60] & y & \\
14 & AlarmNet & TinyOS & n & \\
15 & Ecuador Volcano & TinyOS & n & Deluge [74] \\
16 & Pet game & TinyOS & n & Mate Virtual Machine + TinyScript [75] \\
17 & Plug & custom & y & \\
18 & B-Live & custom & y & \\
19 & Biomotion & no OS & y & \\
20 & AID-N &? &? & \\
21 & Firefighting & TinyOS & n & Deluge [74]? \\
22 & Rehabil & TinyOS & n & \\
23 & CargoNet & custom & y & \\
24 & Fence monitor & ScatterWeb & y & FACTS [76] \\
25 & BikeNet & TinyOS & n & \\
26 & BriMon & TinyOS & n & \\
27 & IP net & Contiki & n & \\
28 & Smart home & TinyOS & n & \\
29 & SVATS & TinyOS? & n & \\
30 & Hitchhiker & TinyOS & n & \\
31 & Daily morning & TinyOS & n & \\
32 & Heritage & TinyOS & n & TeenyLIME [77] \\
33 & AC meter & TInyOS & n & \\
34 & Coal mine & TinyOS & n & \\
35 & ITS & custom? & y? & \\
36 & Underwater & custom & y & \\
37 & PipeProbe & custom & y & \\
38 & Badgers & Contiki & n & \\
39 & Helens volcano & TinyOS & n & customized Deluge [74], remote procedure calls \\
40 & Tunnels & TinyOS & n & TeenyLIME [77] \\ \hline \hline \end{tabular}
\end{table}
Table 13: _Cont._At the same time, many C and Unix programmers would like to use their previous skills and knowledge to program sensor networks without learning new paradigms, neS language (used by TinyOS), component wiring, _etc._ One piece of evidence of this statement is that new operating systems for sensor network programming are being developed [5, 71, 79, 80], despite the fact that TinyOS has been here for more than 10 years. Another piece of evidence: in 17% of cases, a self-made or customized OS is used; users either want to use their particular knowledge or they have specific hardware not supported by TinyOS and consider porting TinyOS to new hardware to be too complex.  
Deluge [74] and TeenyLIME [77] middleware are used in more than one deployment. Deluge is a remote reprogramming add-on for TinyOS. TeenyLIME is a middleware providing a different level of programming abstraction and, also, implemented on top of TinyOS.  
Conclusion: middleware usage is not very popular in sensor networks. Therefore, there is open space for research to develop an easy to use, yet powerful, middleware that is generic enough to be used in a wide application range.