Binääritiedosto

Wikipediasta
Siirry navigaatioon Siirry hakuun
Heksadumppi 318 tavuisesta Wikipedian faviconista, tai Wikipedia's W.svg. Ensimmäinen palsta osoittaa aloitusosoitteen, kun* osoittaa toiston.

Binääritiedosto on tietokoneen luettavaksi tarkoitettu tiedosto, joka voi sisältää millaista tietoa tahansa. Siihen voi olla tallennettuna esimerkiksi kuvia, tekstiä tai ääntä. Binäärimuotoiset dokumenttitiedostot, kuten .doc-tiedostot, sisältävät sekä dokumentin tekstin että muotoiluohjeet tiedoston tuottaneen tietokoneohjelman ymmärtämässä muodossa. Binääritiedoston näennäinen vastakohta on tekstitiedosto (ASCII, EBCDIC tai muuta merkistöä käyttävä tiedosto), josta ohjelmalla voidaan muuttaa binääriluvut kirjaimiksi. Tekstitiedostossa merkistön ulkopuolista muotoilutietoa ei ole. Sinänsä kaikki tietokonetiedostot ovat binääritiedostoja, jotka tarvitsevat ohjeen tai standardin, jonka mukaan sen sisältö voidaan tulkita.[1]

Rakenne[muokkaa | muokkaa wikitekstiä]

Binääritiedostoa ajatellaan usein jaksona tavuja, mikä tarkoittaa, että binääriluvut eli bitit ovat kahdeksan ryhmissä. Binääritiedosto voidaan esittää tekstinä, mutta yleensä se on tarkoitettu tulkittavaksi jollakin muulla tapaa, kuten kuvana tai äänenä. Käännetyt tietokoneohjelmat ovat tyypillinen esimerkki: käännettyjä ohjelmatiedostoja kutsutaan myös binääritiedostoiksi.[2]

Jotkin binääritiedostot sisältävät headereja, metatiedon osia, joita käytetään tiedoston sisältämän tiedon esittämiseen. Esimerkiksi GIF-tiedosto voi sisältää useita kuvia, jolloin headereja käytetään erottamaan kuvat toisistaan.

Muokkaminen[muokkaa | muokkaa wikitekstiä]

Jotta binääritiedostoja voitaisiin lähettää sellaisten järjestelmien läpi, jotka eivät hyväksy kaikkia data-arvoja, esim. sähköpostina, binääritiedostot muutetaan usein muotoilemattomaksi tekstiksi. Binääritiedoston muuntaminen tekstitiedoksi ja takaisin suurentaa yleensä sen tiedostokokoa. Järjestelmien välillä kulkevan datan määrä saattaa kuitenkin olla lähellä alkuperäistä, jos tekstiksi muunnettu ja kooltaan kasvanut aineisto pakataan siirron ajaksi.

Microsoft Windows ja sen oletuskirjastot C:lle ja C++:lle antavat ohjelmoijan päättää onko tiedosto tekstiä vai binääriä kun se avataan. Valinta vaikuttaa tavallisiin kirjastokutsuihin, kun järjestelmä valitsee, käytetäänkö C/C++:n rivinlopetusmerkkiä (ASCII-rivinvaihtomerkki) vai Windowsin odottama rivinlopetusmerkkiä. Unixin kaltainen käyttöjärjestelmissä, C:n ja C++:n standardikirjastot antavat ohjelmoijan määritellä, odotetaanko tiedoston sisältävän tekstiä vai binääriä. Kirjastot voivat kuitenkin sivuuttaa tämän parametrin, koska Unixin kaltaisten järjestelmien käyttämä rivinlopetusmerkki on sama kuin C/C++:n rivinlopetusmerkki.

Katselu[muokkaa | muokkaa wikitekstiä]

Katseluun voidaan käyttää heksaeditoria tai erillistä katseluohjelmaa. Näin voidaan nähdä tiedosto jaksona heksadesimaalisia (tai desimaalisia, binäärisiä tai ASCII-merkkejä) arvoja vastaaville tavuille binääritiedostossa.

Jos binääritiedosto avataan tekstieditorissa, jokainen kahdeksan bitin ryhmä käännettäisiin merkiksi, ja tulos on luultavimmin käsittämätöntä merkkijonoa. Jos tiedosto avataan jossain muussa ohjelmassa, sillä ohjelmalla on oma tapansa kääntää jokainen tavu: esimerkiksi ohjelma saattaa käsitellä joka tavun numerona jolloin näytetään sarja lukuja 0:n ja 255:n väliltä, tai jokainen tavu saattaa vastata väriä ja näyttää vastaavan kuvan. Muunlaiset katseluohjelmat vain korvaavat lukukelvottomat merkit väleillä ja näyttävät vain luettavan tekstin. Tätä voidaan käyttää pikaiseen tarkasteluun esimerkiksi piilotetun tekstin ei-tekstitiedostoista löytämiseen tai hävinneen datan palauttamiseen. Sitä voidaan käyttää jopa epäilyttävien tiedostojen tutkimiseen ei-toivottujen vaikutusten varalta. Jos tiedosto itsessään käsitellään ohjelmana ja suoritetaan, niin käyttöjärjestelmä yrittää tulkita tiedoston sarjoina ohjeita konekielellään.

Tulkinta[muokkaa | muokkaa wikitekstiä]

Standardit ovat olennaisia binääritiedostoille. Esimerkiksi ASCII-merkistön pohjalta tulkittu binääritiedosto johtaa ASCII-merkistön mukaisen tekstin näyttämiseen. Ohjelma voi tulkita tiedoston eri tavalla: tavu voi olla ääni, pikseli, tai jopa kokonainen sana. Binääritiedoston sisältö sellaisenaan on merkityksetöntä ilman sen sisältöä tulkitsevaa algoritmia. Siten, vain binäärin tutkiminen sen tarkoituksen määrittämiseksi voi johtaa väärään tulokseen. Tällaista lähestymistä käytetään steganografiassa, missä algoritmi tulkitsee binääridatan eri tavoin paljastaakseen piilotetun datan. Ilman algoritmia on mahdotonta todistaa, että piilotettu data on olemassa.

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. http://www.webopedia.com/TERM/B/binary_file.html
  2. Jukka K. Korpela: Ohjelmointi jkorpela.fi. Viitattu 14.7.2018.