Kun Linuxin tulevaisuudesta keskustellaan, minkä verran sellaista on harkittu, että binäärikirjastoista luovuttaisiin kokonaan?
Linuxin kirjastojärjestelmä on nykyään sellainen spagetti, että homma leviää taatusti käsiin - ja on jo levinnyt. Ja kun Redhat, Debian ja kumppanit eivät kuitenkaan pääse yhteisymmärrykseen yhtikäs mistään, niin mitä jos vihellettäisiin peli kerralla poikki. Yksinkertainen on kaunista, sanotaan, ja miksei se pätisi myös käyttöjärjestelmään?
Miksei Linux voisi olla pelkkä minimalistinen alusta, ilman binäärikirjastoja, ja ohjelmista toimitettaisiin omavarainen versio, joka ei tarvitse binäärikirjastojen tukea lainkaan.
Olisi vain kerneli, sovellus ja minä.
Ohjelmabinäärit tietysti paisuisivat, mutta toisaalta käyttöjärjestelmä pienenisi. Ja kun useimmat kuitenkin käyttävät vain muutamaa sovellusta, ohjelmien kasvu tuskin haittaisi. Eikä nyky-kiintolevyjä mitenkään saa ohjelmilla täyteen. Jos normaalisti linkitetyn ohjelman koko on 10 megaa, ja se omavaraisena olisi 30 megaa, sen hyvin sietäisi.
Muutoksen edut olisivat selvät: Kaikki Linuxit pyörittäisivät samoja binäärejä. Kaikki ohjelmat toimisivat suoraan. Ohjelmia voisi huoletta asentaa ilman pelkoa jo asennettujen ohjelmien särkymisestä.
Haittoja tulee mieleen vain yksi: ohjelmabinäärien jonkinasteinen paisuminen. Minun mielestäni se hinta kannattaisi maksaa. Ainakin sitä voisi harkita.
Linuxin kirjastojärjestelmä on nykyään sellainen spagetti, että homma leviää taatusti käsiin - ja on jo levinnyt. Ja kun Redhat, Debian ja kumppanit eivät kuitenkaan pääse yhteisymmärrykseen yhtikäs mistään, niin mitä jos vihellettäisiin peli kerralla poikki. Yksinkertainen on kaunista, sanotaan, ja miksei se pätisi myös käyttöjärjestelmään?
Miksei Linux voisi olla pelkkä minimalistinen alusta, ilman binäärikirjastoja, ja ohjelmista toimitettaisiin omavarainen versio, joka ei tarvitse binäärikirjastojen tukea lainkaan.
Olisi vain kerneli, sovellus ja minä.
Ohjelmabinäärit tietysti paisuisivat, mutta toisaalta käyttöjärjestelmä pienenisi. Ja kun useimmat kuitenkin käyttävät vain muutamaa sovellusta, ohjelmien kasvu tuskin haittaisi. Eikä nyky-kiintolevyjä mitenkään saa ohjelmilla täyteen. Jos normaalisti linkitetyn ohjelman koko on 10 megaa, ja se omavaraisena olisi 30 megaa, sen hyvin sietäisi.
Muutoksen edut olisivat selvät: Kaikki Linuxit pyörittäisivät samoja binäärejä. Kaikki ohjelmat toimisivat suoraan. Ohjelmia voisi huoletta asentaa ilman pelkoa jo asennettujen ohjelmien särkymisestä.
Haittoja tulee mieleen vain yksi: ohjelmabinäärien jonkinasteinen paisuminen. Minun mielestäni se hinta kannattaisi maksaa. Ainakin sitä voisi harkita.
Vastaukset 9
Vanhimmat
Täysin älytön idea, ei millään pahalla :)
Jaetuista kirjastoista on muutakin etua kuin vaan se, että ohjelman exe pysyy pienenä. Etuna on mm. se että tietty kirjasto voidaan päivittää uuteen versioon ilman, että jokaista sitä käyttävää ohjelmaa tarvitsee kääntää uudestaan.
Toi on vain yks esimerkki, syitä on paljon muitakin.
Enpäs lannistu noin vähästä :)
Nettiin menevät ohjelmat toki kannattaa pitää ajan tasalla. Tavallisella desktop-käyttäjällä ei tällaisia ohjelmia kuitenkaan ole kovin paljon: nettiselain ainakin, sähköpostiohjelma ja messengeri ehkä lisäksi, mutta siinäpä ne alkavat olla. Ei olisi kovinkaan iso homma imuroida näitä ohjelmia uusiksi silloin tällöin.
Mitä tulee esim. toimistosovellusten, pelien ja muiden ei-nettiohjelmien päivittämiseen, niiden päivittäminen lienee lähinnä haitallista. Nykysysteemissä kun päivittää nettiselaimen, samalla "päivittyy" myös toimisto-ohjelma, ja saattaa lakata toimimasta. Jos ohjelmat olisivat itsenäisiä, saisi edes päättää, mitä ohjelmaa päivittää ja mitä ei.
Ja milloin kaikkea hyvää on saatu samassa paketissa? Toki muutoksella olisi hyötynsä ja haittansa.
Jotenkin vain tuntuu, että jaetut kirjastot ovat jäänne ajalta, jolloin kiintolevytila oli paljon tiukemmassa kuin nykyään. Nykyistä standardi 160 gigaista ei saa ohjelmilla täyteen. Ei edes staattisesti linkitetyillä.
Pikemminkin toi sun ajattelutapa on jäänne tietotekniikan alkuajoilta, sillon nimittäin harrastettiin tommosta kaiken yhteen möykkyyn ahtamista.
Sä et selvästikään ole ikinä itse ohjelmoinut mitään isompaa. Tolla sun mallillasi jo ohjelmien ylläpitokin menisi täysin mahdottomaksi. Ensinnäkin ohjelmoijan pitäs jatkuvasti kääntää ohjelmastaan uusia versioita. Toisekseen toi johtas pyörän uudelleen keksimiseen kun käytettävissä ei olisi valmiita kirjastoja mitä käyttää. Ja kolmanneksi se johtas yhteensopivuusonjelmiin ohjelmien välillä.
Nykyään ohjelmia kehitetäessä ei ole varaa keksiä pyörää aina uudestaan. Eikä se ole mielekästäkään. Nykyään suositaan oliopohjasta ja mahdollisimman modulaarista ohjelmistokehitystä, ja siinä myös jaetut kirjastot on tärkeässä asemassa koska ne vähentää päällekkäistä työtä ja parantaa yhteensopivuutta. Ohjelmistokehitys ilman esim jaettuja kirjastoja olisi hidasta, kankeaa ja hirveän kallista kaupallisten ohjelmien kohdalla.
Kaikenlisäksi mieti nyt vähän. Mitä järkeä siinä olisi jos esim jokainen GNOME-ohjelma lataisi kaikki käyttöliittymäkirjastot muistiin? Hirveää resurssien tuhlausta.
kirjastot on tehty sillein että ne ei hajota muita ohjelmia vaikka päivitätkin kirjaston uudempaan vaan siksi yleensä esim. ohjelmien tiedoissa on että vähintään kirjasto X versio x.x nje. . Hyöty tulee siinä että jos kirjastosta on vaikka löytynyt joku aukko niin se korjaa samalla mahdollisesti muutkin ohjelmat jotka käyttävät samaa kirjastoa.
Myönnän mielelläni, että minun näkökulmani ei ole ohjelmoijan, vaan käyttäjän. Ja mikä Linuxissa eniten mättää, niin se, että sitä on kehitetty liikaa juuri ohjelmoijan näkökulmasta. Jos Linuxin yleistymistä halutaan, sen on tultava lähelle käyttäjää - vaikka en ole varma, halutaanko Linuxin yleistymistä todella. Tai ainakaan se asia ei ole tärkeysjärjestyksessä kovin korkealla. Tämän osoittaa mm. se, että Linux-yhteisö on niin lahkoutunut. Yhtenäinen standardi olisi kaikkien etu, mutta sellaisesta ei ole välitetty sopia. Omat virittelyt, "itsensä toteuttaminen" tai mikä lie, on kehittäjille/distroilijoille tärkeintä.
Jos nyt ohjelmoinnista kuitenkin puhutaan, lähinnä ajattelin sellaista mallia, että ohjelman kehitysvaiheessa kaikki kirjastot ja kaikki mahdolliset työkalut ovat käytettävissä, mutta kääntämis/linkittämisvaiheessa huolehdittaisiin siitä, että tuloksena on itsenäinen exe. Binäärikirjastoista siis poimittaisiin vain ne osat, mitä ohjelma oikeasti tarvitsee, ja ne pultattaisiin ohjelmaan kiinni. Jos tällainen on tosiaankin teknisesti mahdotonta tai täydellisen järjetöntä, niin pahoittelen, että työnsin lusikkani soppaan.
Windowsissa tuo on se nimenomainen malli.
Linkittämisvaiheessa .lib -stubit staattisesti käännetään jokaiseen Win32 softaan, ja tuloksena onkin yli megatavun mokkula.
Nämä staattiset stubit tekevät versionhallintaa ja sisältävät peruslaatuiset usermode palvelut.
Linuxissa ei mitään kunnollista standardia versionhallintaa ole, vaan on täysin softan omilla harteilla joko ladata kirjastot dynaamisesti, ja siis itse tehdä versionhallinnan heuristiset toimenpiteet, tai antaa linkkerin hoitaa homman.
ELF-formaatti sallisi monenlaisten versiointisymbolien käytön, ja linkkerikin moisia tukee, mutta OpenSourcessa ei näitä haluta käyttävän, koska GPL-uskovaiset koodarit ovat laiskoja tai muuten vaan tyhmiä.
Ideasi on ollut ja on käytössä.
Jos et löydä distroosi sopivaa ohjelmaa niin lataa static paketti.
No sittenhän tässä ei ole hätää. Mutta kuinka tavallista on, että ohjelmasta tarjotaan myös static-versio?
eipä taida kovinkaan yleistä olla ainakaan avoimen lähdekoodin ohjelmissa että siitä vaan kääntelemään. Hah hah...