]> pere.pagekite.me Git - homepage.git/blob - blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html
Generated.
[homepage.git] / blog / Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Two projects that have improved the quality of free software a lot</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9
10
11 </head>
12 <body>
13 <div class="title">
14 <h1>
15 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <div class="entry">
23 <div class="title">Two projects that have improved the quality of free software a lot</div>
24 <div class="date"> 2nd May 2009</div>
25 <div class="body"><p>There are two software projects that have had huge influence on the
26 quality of free software, and I wanted to mention both in case someone
27 do not yet know them.</p>
28
29 <p>The first one is <a href="http://valgrind.org/">valgrind</a>, a
30 tool to detect and expose errors in the memory handling of programs.
31 It is easy to use, all one need to do is to run 'valgrind program',
32 and it will report any problems on stdout. It is even better if the
33 program include debug information. With debug information, it is able
34 to report the source file name and line number where the problem
35 occurs. It can report things like 'reading past memory block in file
36 X line N, the memory block was allocated in file Y, line M', and
37 'using uninitialised value in control logic'. This tool has made it
38 trivial to investigate reproducible crash bugs in programs, and have
39 reduced the number of this kind of bugs in free software a lot.
40
41 <p>The second one is
42 <a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> which is
43 a source code checker. It is able to process the source of a program
44 and find problems in the logic without running the program. It
45 started out as the Stanford Checker and became well known when it was
46 used to find bugs in the Linux kernel. It is now a commercial tool
47 and the company behind it is running
48 <a href="http://www.scan.coverity.com/">a community service</a> for the
49 free software community, where a lot of free software projects get
50 their source checked for free. Several thousand defects have been
51 found and fixed so far. It can find errors like 'lock L taken in file
52 X line N is never released if exiting in line M', or 'the code in file
53 Y lines O to P can never be executed'. The projects included in the
54 community service project have managed to get rid of a lot of
55 reliability problems thanks to Coverity.</p>
56
57 <p>I believe tools like this, that are able to automatically find
58 errors in the source, are vital to improve the quality of software and
59 make sure we can get rid of the crashing and failing software we are
60 surrounded by today.</p>
61 </div>
62
63 <div class="tags">Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.</div>
64
65
66 </div>
67
68
69
70
71 <div id="sidebar">
72
73
74
75 <h2>Archive</h2>
76 <ul>
77
78 <li>2015
79 <ul>
80
81 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
82
83 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
84
85 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
86
87 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
88
89 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
90
91 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
92
93 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
94
95 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
96
97 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
98
99 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (3)</a></li>
100
101 </ul></li>
102
103 <li>2014
104 <ul>
105
106 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
107
108 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
109
110 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
111
112 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
113
114 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
115
116 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
117
118 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
119
120 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
121
122 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
123
124 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
125
126 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
127
128 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
129
130 </ul></li>
131
132 <li>2013
133 <ul>
134
135 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
136
137 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
138
139 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
140
141 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
142
143 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
144
145 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
146
147 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
148
149 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
150
151 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
152
153 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
154
155 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
156
157 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
158
159 </ul></li>
160
161 <li>2012
162 <ul>
163
164 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
165
166 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
167
168 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
169
170 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
171
172 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
173
174 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
175
176 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
177
178 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
179
180 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
181
182 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
183
184 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
185
186 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
187
188 </ul></li>
189
190 <li>2011
191 <ul>
192
193 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
194
195 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
196
197 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
198
199 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
200
201 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
202
203 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
204
205 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
206
207 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
208
209 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
210
211 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
212
213 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
214
215 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
216
217 </ul></li>
218
219 <li>2010
220 <ul>
221
222 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
223
224 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
225
226 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
227
228 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
229
230 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
231
232 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
233
234 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
235
236 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
237
238 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
239
240 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
241
242 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
243
244 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
245
246 </ul></li>
247
248 <li>2009
249 <ul>
250
251 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
252
253 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
254
255 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
256
257 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
258
259 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
260
261 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
262
263 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
264
265 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
266
267 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
268
269 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
270
271 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
272
273 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
274
275 </ul></li>
276
277 <li>2008
278 <ul>
279
280 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
281
282 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
283
284 </ul></li>
285
286 </ul>
287
288
289
290 <h2>Tags</h2>
291 <ul>
292
293 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
294
295 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
296
297 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
298
299 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
300
301 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (8)</a></li>
302
303 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (15)</a></li>
304
305 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
306
307 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
308
309 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (112)</a></li>
310
311 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (153)</a></li>
312
313 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
314
315 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (15)</a></li>
316
317 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (18)</a></li>
318
319 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
320
321 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (290)</a></li>
322
323 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
324
325 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
326
327 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (20)</a></li>
328
329 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
330
331 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (16)</a></li>
332
333 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
334
335 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
336
337 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (10)</a></li>
338
339 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (19)</a></li>
340
341 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
342
343 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
344
345 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
346
347 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
348
349 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
350
351 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (36)</a></li>
352
353 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (265)</a></li>
354
355 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (177)</a></li>
356
357 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (20)</a></li>
358
359 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
360
361 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (54)</a></li>
362
363 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (87)</a></li>
364
365 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
366
367 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
368
369 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
370
371 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
372
373 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
374
375 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
376
377 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
378
379 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
380
381 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (42)</a></li>
382
383 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
384
385 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
386
387 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (48)</a></li>
388
389 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
390
391 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (10)</a></li>
392
393 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (34)</a></li>
394
395 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
396
397 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
398
399 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
400
401 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (54)</a></li>
402
403 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
404
405 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (37)</a></li>
406
407 </ul>
408
409
410 </div>
411 <p style="text-align: right">
412 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
413 </p>
414
415 </body>
416 </html>