Avoin lähdekoodi?

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Moi.

Muutama kysymys avoimesta lähdekoodista:

1.a) Mitä tarkoitetaan lähdekoodilla
b) Mitä tarkoitetaan avoimella lähdekoodilla?

2. Mitä muita avoimen lähdekoodin sovelluksia on kuin Linux ja OpenOffice?

3. Saako Linuxin toimimaan Windowsin rinnalla?

Kiitos jo etukäteen vastauksista!

Kommentit (13)

Vierailija

Lähdekoodi on runkokoodi softalle.

Avoin lähdekoodi tarkottaa vapaasti muokattavissa olevaa

Muita mm. Direct Connect

Saa, oma lohko vaa kovolle sille

Vierailija
skOh
Lähdekoodi on runkokoodi softalle.

Hieman tarkennusta tähän. Lähdekoodi on ohjelmoijan kirjoittama koodi. Muukin kuin "runkokoodi". Lähdekoodi käännetään koneen ymmärtämään muotoon vaikkapa .exeksi.
Jos lähdekoodi julkaistaan, siitä tulee avointa. Tähän koodiin voi kuka tahansa tehdä omia muutoksiaan ja vaikkapa julkaista uudelleen. Avointa lähdekoodia ei saa omia, vaan jos siihen on tehnyt lisäyksiään ja julkaisee ohjelman on myös näitten lisäysten koodi julkaistava.

Vierailija

Miten niitä koodeja sitten muutellaan? tyhmä kun olen niin en tiedä Ajattelin tässä vähän opetella tietotekniikanperusteita

Vierailija
Phony
skOh
Lähdekoodi on runkokoodi softalle.



Hieman tarkennusta tähän. Lähdekoodi on ohjelmoijan kirjoittama koodi. Muukin kuin "runkokoodi". Lähdekoodi käännetään koneen ymmärtämään muotoon vaikkapa .exeksi.
Jos lähdekoodi julkaistaan, siitä tulee avointa. Tähän koodiin voi kuka tahansa tehdä omia muutoksiaan ja vaikkapa julkaista uudelleen. Avointa lähdekoodia ei saa omia, vaan jos siihen on tehnyt lisäyksiään ja julkaisee ohjelman on myös näitten lisäysten koodi julkaistava.

Juu vastasin vähän tyngästi, koska risoo ihmisten laiskuus tulla kyselee koulutehtäviin suoria vastauksia

Vierailija
Phony

Jos lähdekoodi julkaistaan, siitä tulee avointa. Tähän koodiin voi kuka tahansa tehdä omia muutoksiaan ja vaikkapa julkaista uudelleen. Avointa lähdekoodia ei saa omia, vaan jos siihen on tehnyt lisäyksiään ja julkaisee ohjelman on myös näitten lisäysten koodi julkaistava.

Tätä täytyy sen verran tarkentaa, että se mitä koodille saa tehdä riippuu vain ja ainoastaan lisenssistä. Avoimeen lähdekoodiin liittyy muutama yleinen lisenssityyppi ja kymmeniä ellei satoja muita lisenssejä. Lisenssiehdoissa määritellään esimerkiksi mitä koodimuutosten ja lisäysten jälkeen pitää tehdä, pitääkö lähdekoodi julkaista osana tuotetta, miten avoimen ja suljetun koodin yhdistelmä käyttäytyy ohjelmistotuotteessa jne jne.

Tällä siis yritän vain sanoa sitä, että avoin lähdekoodi ei sinänsä tarkoita sitä, että koodia voisi käyttää ja muokata miten vain. Monesti näin voi tehdä, mutta vapauksiin liittyy myös velvollisuuksia. Avoin lähdekoodi ei myöskään tarkoita automaattisesti sitä, että itse tuote olisi maksuton.

Vierailija
skOh
Phony
skOh
Lähdekoodi on runkokoodi softalle.



Hieman tarkennusta tähän. Lähdekoodi on ohjelmoijan kirjoittama koodi. Muukin kuin "runkokoodi". Lähdekoodi käännetään koneen ymmärtämään muotoon vaikkapa .exeksi.
Jos lähdekoodi julkaistaan, siitä tulee avointa. Tähän koodiin voi kuka tahansa tehdä omia muutoksiaan ja vaikkapa julkaista uudelleen. Avointa lähdekoodia ei saa omia, vaan jos siihen on tehnyt lisäyksiään ja julkaisee ohjelman on myös näitten lisäysten koodi julkaistava.



Juu vastasin vähän tyngästi, koska risoo ihmisten laiskuus tulla kyselee koulutehtäviin suoria vastauksia

Arvoisa herra skOh, en ole koulussa. Elämänkoulussa ehkä.

Vierailija
Jalka
skOh
Phony
skOh
Lähdekoodi on runkokoodi softalle.



Hieman tarkennusta tähän. Lähdekoodi on ohjelmoijan kirjoittama koodi. Muukin kuin "runkokoodi". Lähdekoodi käännetään koneen ymmärtämään muotoon vaikkapa .exeksi.
Jos lähdekoodi julkaistaan, siitä tulee avointa. Tähän koodiin voi kuka tahansa tehdä omia muutoksiaan ja vaikkapa julkaista uudelleen. Avointa lähdekoodia ei saa omia, vaan jos siihen on tehnyt lisäyksiään ja julkaisee ohjelman on myös näitten lisäysten koodi julkaistava.



Juu vastasin vähän tyngästi, koska risoo ihmisten laiskuus tulla kyselee koulutehtäviin suoria vastauksia



Arvoisa herra skOh, en ole koulussa. Elämänkoulussa ehkä.

Arvoisa herra Jalka, jos tosiaan 'meinasit alkaa opiskelee vähä perusteita', on sulla melkosen outo tapa opiskella.

Vierailija
skOh

Arvoisa herra Jalka, jos tosiaan 'meinasit alkaa opiskelee vähä perusteita', on sulla melkosen outo tapa opiskella.

Anteeksi... en tarkoittanut suututtaa...

Vierailija

1.b) Avoimella lähdekoodilla tarkoitetaan lähdekoodia, joka on kaikkien katsottavissa. Yleensä avoimesta lähdekoodista puhuttaessa puhutaan kuitenkin vapaasta lähdekoodista. Eli lähdekoodista mitä saa muokata ja muokattua versiota levittää eteenpäin. Yleensä GPL-lisenssin alaisuudessa, eli muokattu versio pitää myös olla GPL-lisenssoitua ja binäärin mukana pitää toimittaa lähdekoodit tai kirjallinen lupaus niiden toimittamisesta pyydettäessä.

2. Tunnetuimpia mieleen tulevia: Firefox, Seamonkey, Thunderbird, Gimp, MySQL, PHP, Filezilla, phpBB (mm. tämä tiede-lehden foorumi toimii phpBB:llä), Apache, oscommerce, Miranda, Lynx, gcc, gdb, Gnome, Kde, OpenSSH, putty, VLC. Tämän lisäksi muita yhtä tunnettuja tai vähemmän tunnettuja on hyvin paljon.

3. Ei yleensä tuota ongelmia.

Vierailija
Jalka
Miten niitä koodeja sitten muutellaan? :roll: tyhmä kun olen niin en tiedä :D Ajattelin tässä vähän opetella tietotekniikanperusteita :wink:

Lähdekoodeja muutetaan yleensä tekstieditorilla.

Yleinen kulku on:
1. Hae alkuperäiset lähdekoodit
2. Käännä ohjelma
3. Tee muutos
4. Käännä uudestaan.

2. on siksi, että voi varmistua, että ohjelma kääntyy edes ennen omia muutoksia, jolloin vian etsiminen omista muutoksista on helpompaa.

3. kohta edellyttää yleensä käytetyn ohjelmointikielen hallitsemista. Esimerkiksi yksinkertainen C++ ohjelma voisi näyttää tältä:

[code:732czl44]#include
int main()
{
std::cout << "Hello world!" << std::endl;
return 0;
}

[/code:732czl44]

Ja tuota voisi muuttaa helposti esim. tähän muotoon:
[code:732czl44]#include
int main()
{
std::cout << "Good bye world!" << std::endl;
return 0;
}

[/code:732czl44]

Jolloin ohjelma ltulostaisi Hello world! tekstin sijasta Good bye world!.

Tuon lähdekoodin voisi esim. tallettaa hello.cpp nimiseen tiedostoon ja Linuxissa kääntää komennolla:
[code:732czl44]g++ hello.cpp -o myhello[/code:732czl44]

Jolloin g++ niminen ohjelma tekisi hello.cpp tiedostosta myhello nimisen binääritiedoston, minkä voisi puolestaan suorittaa esim. komentoriviltä komennolla

[code:732czl44]./myhello[/code:732czl44]

Suurempien ohjelmien, kuten OpenOfficen kääntäminen on huomattavasti monimutkaisempi prosessi, saati muutoksien tekeminen siihen. Joten ennen kuin sellaista lähtee yrittämään, kannattaa touhuta helloworldien kanssa pari vuotta vähintään.

(Koodeja ei tarkistettu syntaksivirheiden varalta, eikä niitä testattu. )

Neutroni
Seuraa 
Viestejä26912
Liittynyt16.3.2005
Jalka

1.a) Mitä tarkoitetaan lähdekoodilla

Tietokoneita ohjelmoidaan ohjelmointikielillä. Ne ovat käskyjä, joita kone noudattaa. Kun ohjelma tehdään, se kirjoitetaan jollakin ohjelmointikielellä. Esimerkiksi tässä on lyhyt lähdekoodi:

[code:1039nymx]
for(i=0;i<3;i++) {
printf("Ranttaliksi menee, jo %d. kertaa.\n",i+1);
}
[/code:1039nymx]

Tuo on c:tä. For-lause suorittaa perässään olevaa lohkoa kolme kertaa, kasvattaen joka kerralla muuttuja i:n arvoa nollasta lähtien.

printf on c-kieleen kuuluva funktio, joka tulostaa argumentissa olevan lauseen ruudulle. %d korvataan muuttujan i arvolla yhdellä lisättynä. Ohjelma siis tulostaa näytölle:

[code:1039nymx]
Ranttaliksi menee, jo 1. kertaa.
Ranttaliksi menee, jo 2. kertaa.
Ranttaliksi menee, jo 3. kertaa.
[/code:1039nymx]

Tietokone ei sellaisenaan ymmärrä lähdekoodia. Se käännetään kääntäjällä ajettavaksi ohjelmaksi, jolloin käskyt muunnetaan prosessorin ymmärtämiksi binäärikoodeiksi. Normaalisti ohjelmista julkistetaan vain käännetty versio. Isossa ohjelmassa siitä on erittäin aikaavievää ja kallista päätellä lähdekoodia, jota tarvitaan ohjelman toiminnan ymmärtämiseksi ja muuttamiseksi. Avoimen lähdekoodin ohjelmissa julkistetaan myös lähdekoodi.

Kannattaa huomata, että isoissa ohjelmissa, esimerkiksi käyttöjärjestelmissä, on miljoonia lähdekoodirivejä, jotka kääntyvät useiksi megatavuiksi konekieltä. Koska konekielen käskyt ovat äärimmäisen yksinkertaisia, tyyliä "lue muistista luku reksiteriin" "kerro kahden reksiterin sisältö" "hyppää ohjelmassa 100 tavua eteenpäin, jos tietty ohjaussignaali on päällä", niistä on tosiaan mahdotonta järkevällä vaivalla saada tolkkua.

Uusimmat

Suosituimmat