Ohjelmisto tai tietokoneohjelmisto (engl. software) on joukko käskyjä tietokoneen ja siihen liittyvän laitteiston eli tietokonejärjestelmän käyttämiseen: ohjelmisto on vastakohta laitteistolle.[1][2][3][4]
Ohjelmisto on immateriaalista (ilman fyysistä olomuotoa) ja nimenomaisesti jotain, mikä ei ole konkreettista (laitteistoa).[4] Ohjelmisto on myös tarpeen yleiskäyttöisen tietokoneen käyttämiseen, jota ilman laitteisto ei ratkaise ongelmaa.[4] Termi "ohjelmisto" viittaa yksittäiseen entiteettiin, mutta mitään yksittäistä ei ole: tietokonejärjestelmä koostuu sipulimaisista kerroksista, jossa on useita ohjelmakerroksia laitteistoytimen päällä.[4] Myös laitteiston sisällä on kerroksia kuten mikro-ohjelma ja firmware.[4]
Ohjelmisto koostuu yhdestä tai useammasta tietokoneohjelmasta, väliohjelmasta, ohjelmistokehyksestä tai ohjelmakomponentista (kuten kirjastoista). Ohjelmistotuotteisiin liittyvät usein myös niiden käyttämät tiedostot ja dokumentaatio. Ohjelmistoja ovat esimerkiksi niin tavalliset toimisto-ohjelmistot ja videopelit kuin kokonaiset käyttöjärjestelmätkin. Usein termejä ohjelma ja ohjelmisto käytetään sekaisin sekä toistensa synonyymeina.
Erityisesti sulautetuissa järjestelmissä, mutta myös yleisesti tietokoneista puhuttaessa, ohjelmistoksi kutsutaan usein kaikesta laitteen sisältämästä ohjelmakoodista muodostuvaa kokonaisuutta. Laitteistoon läheisesti liittyvä ohjelmisto on firmware, joka on erikoisunut ohjelmisto.[5] Suorittimen sisäinen ohjelma on mikro-ohjelma, joka toimii alemmalla tasolla kuin konekielinen ohjelma.[6] Tietokoneen varsinaisen suorittimen lisäksi grafiikkasuoritinta voidaan käyttää ohjelmakoodin suorittamiseen (GPGPU-käyttö).[7][8]
Ohjelmat voidaan jakaa kahteen kategoriaan:[2]
Epätoivottava ohjelmisto on haittaohjelma kuten tietokonevirus tai mato.