Sparse
Sparse on C-kielen semanttinen parseri, jota käytetään muun muassa Linux-ytimen kehityksessä mahdollisten ongelmakohtien havaitsemiseen.[2][3] Ohjelman alkuperäinen tekijä on Linus Torvalds, joka aloitti ohjelman kehittämisen vuonna 2003.[2][4]
Sparse | |
---|---|
Luoja | Linus Torvalds |
Kehityshistoria | |
Vakaa versio | 0.6.1[1] / 13.10.2019[1] |
Tiedot | |
Lisenssi | MIT-lisenssi |
Aiheesta muualla | |
Versiohallinta |
Ohjelma tekee staattisen analyysin lähdekoodista.[4] Ohjelman ensimmäinen ylläpitäjä oli Josh Triplett vuodesta 2006, jonka jälkeen seurasivat Christopher Li vuodesta 2009 ja Luc Van Oostenryck vuodesta 2018.[4]
Torvalds on sanonut saaneensa inspiraatiota ”Stanford checker” -ohjelmasta, jonka lähdekoodit eivät olleet saatavilla.[5] ”Stanford checkerin” kehittäjät perustivat yhtiön nimeltä Coverity ja julkaisivat ohjelmansa kaupallisena ohjelmana nimeltä ”SWAT”.[6]
Ohjelma voi tunnistaa ja seurata annotaation avulla eri osoiteavaruuksien käyttöä kuten ytimen avaruuden ja käyttäjäavaruuden osoitteiden käyttöä, joiden eroista GCC-kääntäjä ei ole tietoinen.[5]
Yksi ohjelman tavoitteista on ollut saada vahvempi staattinen tyyppijärjestelmä kuin dynaaminen tyyppitarkistus lisäämättä suoritusaikaista kuormaa.[5] Ohjelmaa suoritetaan osana Linux-ytimen automaattista testaamista linux-next versiohallintahaarasta.[7] Smatch on sparsen päälle rakennettu työkalu, joka on tehty seuraamaan tietoja ja löytämään tilanteita jotka ovat aina (tai ei koskaan) tosia.[8]
Lähteet
muokkaa- ↑ a b Luc Van Oostenryck: Sparse v0.6.1 marc.info. 13.10.2019. Viitattu 16.1.2020. (englanniksi)
- ↑ a b Neil Brown: Sparse: a look under the hood 8.6.2016. Lwn.net. Viitattu 3.9.2019. (englanniksi)
- ↑ Sparse kernel.org. Viitattu 3.9.2019. (englanniksi)
- ↑ a b c Sparse - a Semantic Parser for C sparse.wiki.kernel.org. Viitattu 3.9.2019. (englanniksi)
- ↑ a b c Doc Searls: Linus & the Lunatics, Part I 24.11.2003. Linux Journal. Viitattu 3.9.2019. (englanniksi)
- ↑ corbet: Finding kernel problems automatically 1.6.2004. Lwn.net. Viitattu 3.9.2019. (englanniksi)
- ↑ Michael Kerrisk: KS2012: Kernel build/boot testing 5.9.2012. Lwn.net. Viitattu 7.8.2019. (englanniksi)
- ↑ Neil Brown: Smatch: pluggable static analysis for C 22.6.2016. Lwn.net. Viitattu 3.9.2019. (englanniksi)
Aiheesta muualla
muokkaa- Asennus ja käyttö KernelNewbies-sivustolla (englanniksi)
- Ohjelman manuaalisivu (englanniksi)