Osaamattomien palsta tämä näköjään

Anonyymi

Yksi hörhö jankkaa jostain bash-skriptistä, toinen vastaava kehittelee ideoita joita kukaan ei tarvitse, kolmas selittää kuinka taitamattomia muut ovat jne.

Taidan olla ainoa, joka edes jotain osaa (assembler, C jne.).

77

2348

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Bash Shell on ensiasennettu (natiivi) osa käyttöjärjestelmääsi. Jokaisen tulisi tuntea käyttöjärjestelmänsä.

      • Anonyymi

        Höpöndaalia. Saa sen ladattua kyllä netistä.


      • Anonyymi
        Anonyymi kirjoitti:

        Höpöndaalia. Saa sen ladattua kyllä netistä.

        En muistanut Windowsin olemassa oloa, minulle Windows on ... Hymn ... ei mitään. Käyttöjärjestelmän suorituskykyisenä pitäminen tai sen helpottaminen tarjoaa saumaa kehitellä jotain. Mikään ei ole sen kiehtovampaa kuin onnistua jossakin joka on 100% oma idea ja toimii tehtävässään täydellisesti: https://s6.gifyu.com/images/Paate---_007.png


      • Anonyymi
        Anonyymi kirjoitti:

        Höpöndaalia. Saa sen ladattua kyllä netistä.

        kertokaapa, kuinka bash shellin saa ladattua android -laitteeseen (puhelin tai tabletti, toisaalta: onko puhelimen ja tabletin välillä muuta eroa kuin näytön koko ?) ?

        Olen joskus rootannut android -puhelimen, ja itse roottaus kyllä onnistui, mutta lopputuloksesta jäi puuttumaan tuo bash shell !

        Itse en ymmärrä sitä, että JOS joku on onnistunut tekemään apuohjelman tai ohjeet, miten saa puhelimen rootattua, niin miksei siihen ole älytty lisätä myös bash shellin asennusta siinä roottaukse yhteydessä ?


      • Anonyymi
        Anonyymi kirjoitti:

        kertokaapa, kuinka bash shellin saa ladattua android -laitteeseen (puhelin tai tabletti, toisaalta: onko puhelimen ja tabletin välillä muuta eroa kuin näytön koko ?) ?

        Olen joskus rootannut android -puhelimen, ja itse roottaus kyllä onnistui, mutta lopputuloksesta jäi puuttumaan tuo bash shell !

        Itse en ymmärrä sitä, että JOS joku on onnistunut tekemään apuohjelman tai ohjeet, miten saa puhelimen rootattua, niin miksei siihen ole älytty lisätä myös bash shellin asennusta siinä roottaukse yhteydessä ?

        No, sillä ei taida olla kovin paljoa riippuvuuksia, joten adb:n kautta debug-portissa? Androidissa kyllä pyörii joku shell-ympäristö jo oletuksena adb portissa, joskin aika rajoittunut?
        Riippuu puhelimesta, mistä hakemistosta shellin voi ajaa - terminaaliin sitä tuskin saa kuitenkaan yhdistettyä jos sen näin asentaa - tai mistäpä sen tietää..
        Oletko kokeillut termux appia androidissasi?


      • Anonyymi
        Anonyymi kirjoitti:

        kertokaapa, kuinka bash shellin saa ladattua android -laitteeseen (puhelin tai tabletti, toisaalta: onko puhelimen ja tabletin välillä muuta eroa kuin näytön koko ?) ?

        Olen joskus rootannut android -puhelimen, ja itse roottaus kyllä onnistui, mutta lopputuloksesta jäi puuttumaan tuo bash shell !

        Itse en ymmärrä sitä, että JOS joku on onnistunut tekemään apuohjelman tai ohjeet, miten saa puhelimen rootattua, niin miksei siihen ole älytty lisätä myös bash shellin asennusta siinä roottaukse yhteydessä ?

        Windows on niin paska että sellaista ei jaksa säätää. ja mikään ei toimi!


      • Anonyymi
        Anonyymi kirjoitti:

        Windows on niin paska että sellaista ei jaksa säätää. ja mikään ei toimi!

        Ei ehjää kannata säätää. Menee vain piloille.


      • Anonyymi
        Anonyymi kirjoitti:

        En muistanut Windowsin olemassa oloa, minulle Windows on ... Hymn ... ei mitään. Käyttöjärjestelmän suorituskykyisenä pitäminen tai sen helpottaminen tarjoaa saumaa kehitellä jotain. Mikään ei ole sen kiehtovampaa kuin onnistua jossakin joka on 100% oma idea ja toimii tehtävässään täydellisesti: https://s6.gifyu.com/images/Paate---_007.png

        Käyttöjärjestemän tulee olle vakaa, Windows sitä ei ole.


      • Anonyymi
        Anonyymi kirjoitti:

        kertokaapa, kuinka bash shellin saa ladattua android -laitteeseen (puhelin tai tabletti, toisaalta: onko puhelimen ja tabletin välillä muuta eroa kuin näytön koko ?) ?

        Olen joskus rootannut android -puhelimen, ja itse roottaus kyllä onnistui, mutta lopputuloksesta jäi puuttumaan tuo bash shell !

        Itse en ymmärrä sitä, että JOS joku on onnistunut tekemään apuohjelman tai ohjeet, miten saa puhelimen rootattua, niin miksei siihen ole älytty lisätä myös bash shellin asennusta siinä roottaukse yhteydessä ?

        Tässä taas nähtiin osaamattomuus! Niin moni tumpelo rajaa näytön, vaihkei tarvitse.

        Se mitä yllä höristään rootauksesta, ei liity mitenkään Androidiin, vaan piirisarjaan ja laitteistoon ja voit rootata ihan minkä tahansan käyttiksen.


      • Anonyymi

      • Anonyymi
        Anonyymi kirjoitti:

        Tässä taas nähtiin osaamattomuus! Niin moni tumpelo rajaa näytön, vaihkei tarvitse.

        Se mitä yllä höristään rootauksesta, ei liity mitenkään Androidiin, vaan piirisarjaan ja laitteistoon ja voit rootata ihan minkä tahansan käyttiksen.

        Roottaus
        Roottaus eli roottaaminen on prosessi, joka antaa Android-laitteen käyttäjälle root-oikeudet laitteeseensa. Se tarkoittaa oikeuksia lukea ja muuttaa kaikkia Android-laitteen tietoja


      • Anonyymi

        POISTIN WINDOWSIN!


      • Anonyymi
        Anonyymi kirjoitti:

        Höpöndaalia. Saa sen ladattua kyllä netistä.

        No katos kun M$ tauti iskee..

        Aivosäätiön mukaan otsalohkodementiassa otsalohkot ja ohimolohkojen etuosat vaurioituvat, mikä johtaa usein impulsiivisuuteen ja merkittäviin muutoksiin luonteessa. Varsinaiset muistiongelmat ilmenevät tyypillisesti vasta sairauden myöhäisemmässä vaiheessa.


      • Anonyymi
        Anonyymi kirjoitti:

        En muistanut Windowsin olemassa oloa, minulle Windows on ... Hymn ... ei mitään. Käyttöjärjestelmän suorituskykyisenä pitäminen tai sen helpottaminen tarjoaa saumaa kehitellä jotain. Mikään ei ole sen kiehtovampaa kuin onnistua jossakin joka on 100% oma idea ja toimii tehtävässään täydellisesti: https://s6.gifyu.com/images/Paate---_007.png

        Kauhapellen horinoita!


    • Anonyymi

      Assembler on tietokoneohjelma, jolla käännetään symbolisella konekielellä eli assembly-kielellä kirjoitettuja ohjelmia. Sen taitamisesta ei haittaa ole, mutta ne taidot on tarpeettomia nykyään.

      • Anonyymi

        Tietokoneissa kenties. Mutta yksinkertaisia mikrokontrollereita voi välillä joutua komentamaan raakalaismaisesti. Yleensä riittää onneksi C.


      • Anonyymi
        Anonyymi kirjoitti:

        Tietokoneissa kenties. Mutta yksinkertaisia mikrokontrollereita voi välillä joutua komentamaan raakalaismaisesti. Yleensä riittää onneksi C.

        "Tietokoneissa kenties. Mutta yksinkertaisia mikrokontrollereita voi välillä joutua komentamaan raakalaismaisesti. Yleensä riittää onneksi C"

        Kommentoidaanpa tähän väliin AVR -mikrokontrollereista.

        Vuosia sitten mietin, laajennanko osaamistani AVR vaiko PIC -mikrokontrollereihin.
        Kun tutustuin noiden assembly -kieliin, valinta oli AVR, sillä PIC:ien assembly vaikutti lähinnä järkyttävän sekavalta.

        AVR:n assembly sensijaan on aivan luettavaa.
        Mutta: AVR:n suunnittelijat tekivät kuitenkin yhden aika ikävän suunnitteluvirheen.

        Ja sitten Microchip (PICin kehittäjä) osti kilpailijansa Atmelin (joka oli kehittänt AVR -mikrokontrollerit).

        Ikävä kyllä Microchip ei yrityskaupan jälkeen jatkokehittänyt AVR -alustaa julkaisemalla päivitetyt versiot AVR -kontrollereista, joissa tuo typerä suunnittelumoka olisi ollut korjattu, vaikka aivan hyvin näin olisi voitu tehdä.

        Ai että MIKÄKÖ moka ?

        No se, että siinä missä x86 -prosessoreissa pino-osoitin (SP, ESP, RSP) on yksi ns. yleiskäyttöisistä rekistereistä ja sellaisena suoraan osoitettavissa, niin AVR:ssä 16 -bittinen SP on jaettu kahteen 8-bittiseen rekisteriin SPL ja SPH, ja nuo ovat I/O -avaruudessa, eli SP:n arvon voi lukea In -käskyllä tai muuttaa Out -käskyllä.

        Mutta harmina tässä on sekä C -kielen että Pascalin / Objectpascalin tapa varata paikalliset muuttujat pinosta, ja käyttää pinomuistia myös parametrien välitykseen kutsuttaessa aliohjelmaa.

        Tästä laitevalmistajan huonosta valinnasta johtuen sekä avr-gcc että Freepascal for AVR molemmat hoitavat pinomuistin varauksen paikallisille muuttujille näin:

        cli
        in R16, SPL
        in R17, SPH

        ; tässä välissä muistivaraus, esim:

        sbiw R16, n ; n = paikallisten muuttujien kokonaiskoko tavuina kutsutussa aliohjelmassa

        out SPL, R16
        out SPH, R17
        sei

        Toimii kyllä, mutta joka ainoan aliohjelman alussa ja lopussa on tuo cli ... sei -pari, eli keskeytysten käsittely estetään hetkeksi.

        Lisää keskeytyslatenssia tuollainen, eli keskeytysten käsittely on hitaampaa kuin se muuten olisi, jos keskeytyspyyntö tulee noiden cli ja sei -käskyjen välillä.

        Olisiko parempia ratkaisuja ?

        Paras mahdollinen ratkaisu edellyttäisi sitä, että Microchip tekisi päivitety version kontrolleristaan, ja tällöin uudet valmistetut kappaleet toimisivat paremmin, mutta jo valmistettujen kontrollerien osalta tämä ei tietenkään mitään auta.

        Toinen mahdollinen ratkaisu on nähty Rainier -nimisen herran taholta (hakukoneeseen Rainier iafrica niin löytyy vanhoja, mutta ilmaisia demoversioita pascal -kääntäjästä AVR:lle, jossa asia on hoidettu toisin). Tuo ratkaisu tosin estää rekursion käytön ja muutenkin vaatii ohjelmoijalta enemmän miettimistä, joten en voi sanoa sen olevan aina ja kaikin puolin "parempi" mutta ainakaan ei tarvitse kieltää keskeytyksiä joka aliohjelman aluksi ja lopuksi.

        Kolmas ratkaisu olisi se, että laitteiston tukema pinomuisti (siis SP -rekisterin osoittama) olisi vain ja ainoastaan paluuosoitteille, ja parametrit / paikalliset muuttujat hoidettaisiin erillisen "softapinon" avulla, teoriassa tähän täytyisi varata joko X tai Y -rekisteri, Z -rekisteriä mielellään EI, koska LPM -käsky tarvitsee sitä.

        X- ja Y -rekistereistä kannattaisi valita se, jossa CPU tukee käskyä tyyliin mov R16, X n tai mov R16, X-n , jolloin samalla X:n arvolla voi osoittaa useita eri muistipaikkoja vaihtelemalla tuon n:n arvoa. Jos ei Microchip laitevalmistajana halua tehdä tälle asialle mitään, niin itse pitäisin parhaana ratkaisuna tuota X -tai Y -rekisterin ottamista softapino-osoittimeksi, jolloin SP -rekisteri osoittaisi vain laitepinoon, johon tulisi vain paluuosoitteet mutta parametrit ja paikalliset muuttujat laitepinosta erilliseen softapinoon - menetettäisiin yksi 16 -bittinen rekisteri, mutta vastineeksi ei tarvitsisi kieltää keskeytyksiä jokaisen aliohjelman aluksi/lopuksi.


      • Anonyymi kirjoitti:

        "Tietokoneissa kenties. Mutta yksinkertaisia mikrokontrollereita voi välillä joutua komentamaan raakalaismaisesti. Yleensä riittää onneksi C"

        Kommentoidaanpa tähän väliin AVR -mikrokontrollereista.

        Vuosia sitten mietin, laajennanko osaamistani AVR vaiko PIC -mikrokontrollereihin.
        Kun tutustuin noiden assembly -kieliin, valinta oli AVR, sillä PIC:ien assembly vaikutti lähinnä järkyttävän sekavalta.

        AVR:n assembly sensijaan on aivan luettavaa.
        Mutta: AVR:n suunnittelijat tekivät kuitenkin yhden aika ikävän suunnitteluvirheen.

        Ja sitten Microchip (PICin kehittäjä) osti kilpailijansa Atmelin (joka oli kehittänt AVR -mikrokontrollerit).

        Ikävä kyllä Microchip ei yrityskaupan jälkeen jatkokehittänyt AVR -alustaa julkaisemalla päivitetyt versiot AVR -kontrollereista, joissa tuo typerä suunnittelumoka olisi ollut korjattu, vaikka aivan hyvin näin olisi voitu tehdä.

        Ai että MIKÄKÖ moka ?

        No se, että siinä missä x86 -prosessoreissa pino-osoitin (SP, ESP, RSP) on yksi ns. yleiskäyttöisistä rekistereistä ja sellaisena suoraan osoitettavissa, niin AVR:ssä 16 -bittinen SP on jaettu kahteen 8-bittiseen rekisteriin SPL ja SPH, ja nuo ovat I/O -avaruudessa, eli SP:n arvon voi lukea In -käskyllä tai muuttaa Out -käskyllä.

        Mutta harmina tässä on sekä C -kielen että Pascalin / Objectpascalin tapa varata paikalliset muuttujat pinosta, ja käyttää pinomuistia myös parametrien välitykseen kutsuttaessa aliohjelmaa.

        Tästä laitevalmistajan huonosta valinnasta johtuen sekä avr-gcc että Freepascal for AVR molemmat hoitavat pinomuistin varauksen paikallisille muuttujille näin:

        cli
        in R16, SPL
        in R17, SPH

        ; tässä välissä muistivaraus, esim:

        sbiw R16, n ; n = paikallisten muuttujien kokonaiskoko tavuina kutsutussa aliohjelmassa

        out SPL, R16
        out SPH, R17
        sei

        Toimii kyllä, mutta joka ainoan aliohjelman alussa ja lopussa on tuo cli ... sei -pari, eli keskeytysten käsittely estetään hetkeksi.

        Lisää keskeytyslatenssia tuollainen, eli keskeytysten käsittely on hitaampaa kuin se muuten olisi, jos keskeytyspyyntö tulee noiden cli ja sei -käskyjen välillä.

        Olisiko parempia ratkaisuja ?

        Paras mahdollinen ratkaisu edellyttäisi sitä, että Microchip tekisi päivitety version kontrolleristaan, ja tällöin uudet valmistetut kappaleet toimisivat paremmin, mutta jo valmistettujen kontrollerien osalta tämä ei tietenkään mitään auta.

        Toinen mahdollinen ratkaisu on nähty Rainier -nimisen herran taholta (hakukoneeseen Rainier iafrica niin löytyy vanhoja, mutta ilmaisia demoversioita pascal -kääntäjästä AVR:lle, jossa asia on hoidettu toisin). Tuo ratkaisu tosin estää rekursion käytön ja muutenkin vaatii ohjelmoijalta enemmän miettimistä, joten en voi sanoa sen olevan aina ja kaikin puolin "parempi" mutta ainakaan ei tarvitse kieltää keskeytyksiä joka aliohjelman aluksi ja lopuksi.

        Kolmas ratkaisu olisi se, että laitteiston tukema pinomuisti (siis SP -rekisterin osoittama) olisi vain ja ainoastaan paluuosoitteille, ja parametrit / paikalliset muuttujat hoidettaisiin erillisen "softapinon" avulla, teoriassa tähän täytyisi varata joko X tai Y -rekisteri, Z -rekisteriä mielellään EI, koska LPM -käsky tarvitsee sitä.

        X- ja Y -rekistereistä kannattaisi valita se, jossa CPU tukee käskyä tyyliin mov R16, X n tai mov R16, X-n , jolloin samalla X:n arvolla voi osoittaa useita eri muistipaikkoja vaihtelemalla tuon n:n arvoa. Jos ei Microchip laitevalmistajana halua tehdä tälle asialle mitään, niin itse pitäisin parhaana ratkaisuna tuota X -tai Y -rekisterin ottamista softapino-osoittimeksi, jolloin SP -rekisteri osoittaisi vain laitepinoon, johon tulisi vain paluuosoitteet mutta parametrit ja paikalliset muuttujat laitepinosta erilliseen softapinoon - menetettäisiin yksi 16 -bittinen rekisteri, mutta vastineeksi ei tarvitsisi kieltää keskeytyksiä jokaisen aliohjelman aluksi/lopuksi.

        Hyvin olet perehtynyt AVR-ohjelmointiin. Pidä kuitenkin mielessä, että prosessori on vain kasibittinen, et voi odottaa siltä x86:n ominaisuuksia. Arkkitehtuureissakin on merkittäviä eroja. AVR on RISC-arkkitehtuuri, jossa moni asia tehdään vähän vaikeamman kautta, esimerkiksi mainitsemasi automaattimuuttujien tilanvaraus.

        Toisin kuin PIC-prosessorit alunperin, AVR suunniteltiin C-ohjelmointia silmälläpitäen ja rajoitteista huolimatta Atmel onnistui tavoitteessa hyvin. Pienellekin AVR-kontrollerille on mielekästä kirjoittaa koodia C-kielellä.

        Funktion kutsuparametrien välitys ja automaattimuuttujat ovat hankalia asioita silloin, kun RISC-prosessorin rekisterit eivät riitä. Kannattaakin aina tarkkaan harkita millaisia funktioita kirjoittaa. Kasibittinen kontrolleri ei pysty samaan, mikä x86-ympäristössä on jopa helppoa.

        Kuten arvelit, jotkut kääntäjät (mm. IARCC) käyttävät kahta pinoa eli parametreille ja automaattimuuttujille on oma pino. Se tehostaa toimintaa, mutta ei ilmaiseksi. Rajallinen RAM-resurssi on lohkottava kahdelle pinolle ja yksi rekisteripari on uhrattava pino-osoittimeksi.

        Olit huolissasi keskeytyslatenssista. Mikä sovellus voi olla niin reaaliaikainen, että keskeytysten kielto viiden käskyn on ongelma? AVR kun on vieläpä suht' nopea prosessori lajissaan. Esimerkkikoodisi:

        cli
        in R16, SPL
        in R17, SPH
        sbiw R16, n
        out SPL, R16
        out SPH, R17
        sei

        lienee turvallista optimoida muotoon:

        in R16, SPL
        in R17, SPH
        sbiw R16, n
        cli
        out SPL, R16
        out SPH, R17
        sei

        Minusta keskeytysten kielto ja salliminen funktion alussa ja lopussa on sittenkin pikkujuttu, en kiinnittäisi moiseen liikaa huomiota. Parempi keskittää huomio funktioiden suunnitteluun siten, että tarvitsee turvautua mahdollisimman harvoin pinomuistin käyttöön tällä tavoin, 32 rekisteriä riittävät melko pitkälle.


      • Anonyymi

        NYT POISTAN WINDOWSIN!


    • Anonyymi

      C ja C ovat ohjelmointikieliä, joita voi käyttää monilla alustoilla ja lukuisissa käyttöjärjestelmissä. Näin monipuolisen kielen taidot on hyödyksi käyttöjärjestelmää avustavien ohjelmien kirjoittamisessa, vielä nykyäänkin.

      • Anonyymi

        Osaatko heittää stetsonista mikä on C-kielen vastine assemblerin NOP-komennolle? Ajoitushommissa joutuu välillä sitäkin turhaketta käyttämään. Sehän tuhlaa vain kellojakson ja sitä on periaatteessa idioottimaista käyttää, mutta toisinaan on vaan pakko.


      • Anonyymi
        Anonyymi kirjoitti:

        Osaatko heittää stetsonista mikä on C-kielen vastine assemblerin NOP-komennolle? Ajoitushommissa joutuu välillä sitäkin turhaketta käyttämään. Sehän tuhlaa vain kellojakson ja sitä on periaatteessa idioottimaista käyttää, mutta toisinaan on vaan pakko.

        Ai ARM-prossussako? Vai x86?


      • Anonyymi

        Saimaanapina ei osaa koodata mitään!


      • Anonyymi kirjoitti:

        Osaatko heittää stetsonista mikä on C-kielen vastine assemblerin NOP-komennolle? Ajoitushommissa joutuu välillä sitäkin turhaketta käyttämään. Sehän tuhlaa vain kellojakson ja sitä on periaatteessa idioottimaista käyttää, mutta toisinaan on vaan pakko.

        Vastakysymys: Osaatko heittää stetsonista mikä on autossa vastine peräsimelle?

        Vaikka C onkin hyvin laiteläheinen ohjelmointikieli, se on eri asia kuin assembler. C-kääntäjän tehtävä on kääntää lähdekoodista mahdollisimman tehokasta ja/tai tiivistä konekoodia. Yhtenä tällaisena optimointina se, kun kääntäjä havaitsee lähdekoodissa jotakin, jolla ei ole toiminnallista vaikutusta lopputulokseen, kääntäjällä on lupa ohittaa tällainen osa koodista. Olisikin merkillistä, jos lopputuloksessa olisi NOP-käskyjä. Siksi niitä ei ole C-kielessäkään.

        Olet kuitenkin oikeassa NOP-käskyn suhteen: "Ajoitushommissa joutuu välillä sitäkin turhaketta käyttämään". Siksi kääntäjiin on tehty erilaisia lisäyksiä, joilla C-koodiin on mahdollista sijoittaa assemblerin käskyjä. Lisäykset ja assembler ovat konekohtaisia, joten niiden käyttäminen tarkoittaa C-koodin siirrettävyyden menetystä. Niiden käytöllä saattaa olla vaikutusta myös kääntäjän optimointeihin ainakin ko. funktion sisällä.

        Käytännössä jokainen kääntäjä tuntee jonkin __asm { ... } -lisäyksen, jolla käännettyyn kooodiin saa lisättyä mm. NOP-käskyn. Vaihtoehtona esimerkiksi Microsoft on koonnut intrin.h headeriin suuren joukon muitakin käskyjä, joiden käyttäminen on siirrettävyyden kannalta hieman turvallisempaa. Tässä tapauksessa C-kielen vastine assemblerin NOP-käskylle on siis __nop().

        https://learn.microsoft.com/en-us/cpp/intrinsics/nop?view=msvc-170

        Osaatko heittää stetsonista mikä on NOP, koska ainakaan x86-prosessorit eivät tunnista sellaista käskyä?

        Anonyymi kirjoitti edellä: "Assembler on tietokoneohjelma, jolla käännetään symbolisella konekielellä eli assembly-kielellä kirjoitettuja ohjelmia. Sen taitamisesta ei haittaa ole, mutta ne taidot on tarpeettomia nykyään."

        Tarpeettomia vain amatööreille ja hällä väliä -koodareille. Pro osaa ainakin lukea assembly-koodia, jotta selviää debuggerin kanssa ja pystyy varmistamaan kääntäjän ja optimoijan tekemiset ainakin ohjelman kriittisissä osissa.

        Niin, kuten jokainen pro hyvin tietää, NOP on synonyymi x86-prosessorin käskylle XCHG (E)AX, (E)AX.


      • Anonyymi
        y2017 kirjoitti:

        Vastakysymys: Osaatko heittää stetsonista mikä on autossa vastine peräsimelle?

        Vaikka C onkin hyvin laiteläheinen ohjelmointikieli, se on eri asia kuin assembler. C-kääntäjän tehtävä on kääntää lähdekoodista mahdollisimman tehokasta ja/tai tiivistä konekoodia. Yhtenä tällaisena optimointina se, kun kääntäjä havaitsee lähdekoodissa jotakin, jolla ei ole toiminnallista vaikutusta lopputulokseen, kääntäjällä on lupa ohittaa tällainen osa koodista. Olisikin merkillistä, jos lopputuloksessa olisi NOP-käskyjä. Siksi niitä ei ole C-kielessäkään.

        Olet kuitenkin oikeassa NOP-käskyn suhteen: "Ajoitushommissa joutuu välillä sitäkin turhaketta käyttämään". Siksi kääntäjiin on tehty erilaisia lisäyksiä, joilla C-koodiin on mahdollista sijoittaa assemblerin käskyjä. Lisäykset ja assembler ovat konekohtaisia, joten niiden käyttäminen tarkoittaa C-koodin siirrettävyyden menetystä. Niiden käytöllä saattaa olla vaikutusta myös kääntäjän optimointeihin ainakin ko. funktion sisällä.

        Käytännössä jokainen kääntäjä tuntee jonkin __asm { ... } -lisäyksen, jolla käännettyyn kooodiin saa lisättyä mm. NOP-käskyn. Vaihtoehtona esimerkiksi Microsoft on koonnut intrin.h headeriin suuren joukon muitakin käskyjä, joiden käyttäminen on siirrettävyyden kannalta hieman turvallisempaa. Tässä tapauksessa C-kielen vastine assemblerin NOP-käskylle on siis __nop().

        https://learn.microsoft.com/en-us/cpp/intrinsics/nop?view=msvc-170

        Osaatko heittää stetsonista mikä on NOP, koska ainakaan x86-prosessorit eivät tunnista sellaista käskyä?

        Anonyymi kirjoitti edellä: "Assembler on tietokoneohjelma, jolla käännetään symbolisella konekielellä eli assembly-kielellä kirjoitettuja ohjelmia. Sen taitamisesta ei haittaa ole, mutta ne taidot on tarpeettomia nykyään."

        Tarpeettomia vain amatööreille ja hällä väliä -koodareille. Pro osaa ainakin lukea assembly-koodia, jotta selviää debuggerin kanssa ja pystyy varmistamaan kääntäjän ja optimoijan tekemiset ainakin ohjelman kriittisissä osissa.

        Niin, kuten jokainen pro hyvin tietää, NOP on synonyymi x86-prosessorin käskylle XCHG (E)AX, (E)AX.

        "Niin, kuten jokainen pro hyvin tietää, NOP on synonyymi x86-prosessorin käskylle XCHG (E)AX, (E)AX."

        EI OLE, ei sinne päinkään.
        XCHG vaihtaa kahden rekisterin sisältöä keskenään, ja
        xchg eax, eax vaihtaa eax rekisterin sisältöä eax rekisterin kanssa. Eli tuhlaa useita kellojaksoaja tekemättä käytännössä mitään. NOP tuhlaa yhden kellojakson.


      • Anonyymi
        Anonyymi kirjoitti:

        Osaatko heittää stetsonista mikä on C-kielen vastine assemblerin NOP-komennolle? Ajoitushommissa joutuu välillä sitäkin turhaketta käyttämään. Sehän tuhlaa vain kellojakson ja sitä on periaatteessa idioottimaista käyttää, mutta toisinaan on vaan pakko.

        "Osaatko heittää stetsonista mikä on C-kielen vastine assemblerin NOP-komennolle"

        Sellaista ei ole olemassa.

        Teoriassa voisi toimia {} , tai kutsu tyhjää funktiota, joka ei tee mitään, mutta C- kääntäjien tekijöiden fanaattinen asenne optimointiin tekee tuonkin tyhjäksi !

        Malliesimerkkinä tästä on se, että C -kielen funktio ZeroMemory() ei ole luotettava: jos kääntäjä huomaa, ettei tiettyyn muuttujaan viitata kertaakaan ZeroMemory(muuttuja...) -kutsun jälkeen, niin kääntäjä optimoi koko ZeroMemory() -kutsun pois lopullisesta käännetystä ohjelmasta !

        Ratkaisuksi tuohon Microsoft on tarjonnut erillisen SecureZeroMemory() -funktion (ja tehnyt oman kääntäjänsä niin, ettei tuota optimoida myös pois).

        MS:n C -kääntäjän käyttäjälle ihan ok, mutta entä, jos käyttää muuta kuin Microsoftin C -kääntäjää? Voiko esim. gcc optimoida pois SecureZeroMemory() -funktion kutsun pois ohjelmastasi ?

        C -kääntäjiin *pitäisi* lisätä "lopeta fanaattiset optimoinnit" -kääntäjäoptio.
        Mutta eipä lisätä, kun C -kääntäjien kehitystyöstä päättävät puupäät, joiden mielestä "ei sellaista tarvita".

        Saisikohan jostain listan tyypillisimmistä C -kääntäjäoptimoinnin uhrifunktioista ?
        Toisaalta, auttaisiko sekään ?

        JOS ja kun C -kääntäjä jättää pois lopullisesta EXE (tai DLL) -tiedostosta funktiokutsun, jonka ohjelman kirjoittanut ihminen on lähdekoodiin kirjoittanut, niin eipä sitä kutsu sitten siellä EXE:ssä tai DLL:ssä enää ole, ja niinpä sitä ei sieltä voi millään työkaluohjelmallakaan löytää.

        Millä ihmeen keinolla voisin tehdä apu- tai työkaluohjelman, joka osaisi etsiä EXE ja DLL -tiedostoista tietyt kohdat, ja saisi listan noista kohdista niin, että siinä olisi tieto:

        "Ihmisohjelmoija laittoi tähän ZeroMemory() -funktion kutsun, mutta kääntäjä optimoi sen pois" - ja tuon tiedon yhteyteen muistiosoite, jota tuo tieto koskee.

        Tuollaisella tiedolla voisi tehdä vaikkapa vakoiluohjelman, joka vakoilee muista ohjelmista salasanoja, salausavaimia jne. - jos tuollaisen vakoiluohjelman laittaisi web -palvelimelle kenen tahansa imuroitavaksi, niin kunhan tuolla olisi tehty muutama merkittävä tietomurto, niin muuttaisivatkohan C -kääntäjien tekijät mielipidettään optimoinneista ? Ilman tuollaista vakoiluohjelmaa ja sen laajalle levittämistä: Eivät varmasti muuta !


      • Anonyymi
        Anonyymi kirjoitti:

        "Osaatko heittää stetsonista mikä on C-kielen vastine assemblerin NOP-komennolle"

        Sellaista ei ole olemassa.

        Teoriassa voisi toimia {} , tai kutsu tyhjää funktiota, joka ei tee mitään, mutta C- kääntäjien tekijöiden fanaattinen asenne optimointiin tekee tuonkin tyhjäksi !

        Malliesimerkkinä tästä on se, että C -kielen funktio ZeroMemory() ei ole luotettava: jos kääntäjä huomaa, ettei tiettyyn muuttujaan viitata kertaakaan ZeroMemory(muuttuja...) -kutsun jälkeen, niin kääntäjä optimoi koko ZeroMemory() -kutsun pois lopullisesta käännetystä ohjelmasta !

        Ratkaisuksi tuohon Microsoft on tarjonnut erillisen SecureZeroMemory() -funktion (ja tehnyt oman kääntäjänsä niin, ettei tuota optimoida myös pois).

        MS:n C -kääntäjän käyttäjälle ihan ok, mutta entä, jos käyttää muuta kuin Microsoftin C -kääntäjää? Voiko esim. gcc optimoida pois SecureZeroMemory() -funktion kutsun pois ohjelmastasi ?

        C -kääntäjiin *pitäisi* lisätä "lopeta fanaattiset optimoinnit" -kääntäjäoptio.
        Mutta eipä lisätä, kun C -kääntäjien kehitystyöstä päättävät puupäät, joiden mielestä "ei sellaista tarvita".

        Saisikohan jostain listan tyypillisimmistä C -kääntäjäoptimoinnin uhrifunktioista ?
        Toisaalta, auttaisiko sekään ?

        JOS ja kun C -kääntäjä jättää pois lopullisesta EXE (tai DLL) -tiedostosta funktiokutsun, jonka ohjelman kirjoittanut ihminen on lähdekoodiin kirjoittanut, niin eipä sitä kutsu sitten siellä EXE:ssä tai DLL:ssä enää ole, ja niinpä sitä ei sieltä voi millään työkaluohjelmallakaan löytää.

        Millä ihmeen keinolla voisin tehdä apu- tai työkaluohjelman, joka osaisi etsiä EXE ja DLL -tiedostoista tietyt kohdat, ja saisi listan noista kohdista niin, että siinä olisi tieto:

        "Ihmisohjelmoija laittoi tähän ZeroMemory() -funktion kutsun, mutta kääntäjä optimoi sen pois" - ja tuon tiedon yhteyteen muistiosoite, jota tuo tieto koskee.

        Tuollaisella tiedolla voisi tehdä vaikkapa vakoiluohjelman, joka vakoilee muista ohjelmista salasanoja, salausavaimia jne. - jos tuollaisen vakoiluohjelman laittaisi web -palvelimelle kenen tahansa imuroitavaksi, niin kunhan tuolla olisi tehty muutama merkittävä tietomurto, niin muuttaisivatkohan C -kääntäjien tekijät mielipidettään optimoinneista ? Ilman tuollaista vakoiluohjelmaa ja sen laajalle levittämistä: Eivät varmasti muuta !

        "C -kääntäjiin *pitäisi* lisätä "lopeta fanaattiset optimoinnit" -kääntäjäoptio."

        Kokeile määritellä muuttujasi volatile-tyyppiseksi.


      • Anonyymi
        Anonyymi kirjoitti:

        "Osaatko heittää stetsonista mikä on C-kielen vastine assemblerin NOP-komennolle"

        Sellaista ei ole olemassa.

        Teoriassa voisi toimia {} , tai kutsu tyhjää funktiota, joka ei tee mitään, mutta C- kääntäjien tekijöiden fanaattinen asenne optimointiin tekee tuonkin tyhjäksi !

        Malliesimerkkinä tästä on se, että C -kielen funktio ZeroMemory() ei ole luotettava: jos kääntäjä huomaa, ettei tiettyyn muuttujaan viitata kertaakaan ZeroMemory(muuttuja...) -kutsun jälkeen, niin kääntäjä optimoi koko ZeroMemory() -kutsun pois lopullisesta käännetystä ohjelmasta !

        Ratkaisuksi tuohon Microsoft on tarjonnut erillisen SecureZeroMemory() -funktion (ja tehnyt oman kääntäjänsä niin, ettei tuota optimoida myös pois).

        MS:n C -kääntäjän käyttäjälle ihan ok, mutta entä, jos käyttää muuta kuin Microsoftin C -kääntäjää? Voiko esim. gcc optimoida pois SecureZeroMemory() -funktion kutsun pois ohjelmastasi ?

        C -kääntäjiin *pitäisi* lisätä "lopeta fanaattiset optimoinnit" -kääntäjäoptio.
        Mutta eipä lisätä, kun C -kääntäjien kehitystyöstä päättävät puupäät, joiden mielestä "ei sellaista tarvita".

        Saisikohan jostain listan tyypillisimmistä C -kääntäjäoptimoinnin uhrifunktioista ?
        Toisaalta, auttaisiko sekään ?

        JOS ja kun C -kääntäjä jättää pois lopullisesta EXE (tai DLL) -tiedostosta funktiokutsun, jonka ohjelman kirjoittanut ihminen on lähdekoodiin kirjoittanut, niin eipä sitä kutsu sitten siellä EXE:ssä tai DLL:ssä enää ole, ja niinpä sitä ei sieltä voi millään työkaluohjelmallakaan löytää.

        Millä ihmeen keinolla voisin tehdä apu- tai työkaluohjelman, joka osaisi etsiä EXE ja DLL -tiedostoista tietyt kohdat, ja saisi listan noista kohdista niin, että siinä olisi tieto:

        "Ihmisohjelmoija laittoi tähän ZeroMemory() -funktion kutsun, mutta kääntäjä optimoi sen pois" - ja tuon tiedon yhteyteen muistiosoite, jota tuo tieto koskee.

        Tuollaisella tiedolla voisi tehdä vaikkapa vakoiluohjelman, joka vakoilee muista ohjelmista salasanoja, salausavaimia jne. - jos tuollaisen vakoiluohjelman laittaisi web -palvelimelle kenen tahansa imuroitavaksi, niin kunhan tuolla olisi tehty muutama merkittävä tietomurto, niin muuttaisivatkohan C -kääntäjien tekijät mielipidettään optimoinneista ? Ilman tuollaista vakoiluohjelmaa ja sen laajalle levittämistä: Eivät varmasti muuta !

        gcc kääntäjä tuntee NOP() komennon näin;

        __asm__("nop");


      • Anonyymi

        ON AIKA POISTAA WINDOWS!


    • Anonyymi

      Tietotekniikkaan liittyvä osaamattomuus ja termistön tuntemus täällä on todellakin maailman heikointa. Juuri luvin ketjun jossa "Liukusäädin (trackbar)" käsite aiheuttaa hämmennystä ja toinen jossa "modaalinen toiminto" pistää mieheltä pään sekaisin. Yksi ei osannut edes selaimen asetussivua aukaista, muuttaakseen selaimen käyttämää kirjasinkokoa, eikä kukaan osannut antaa oikeaa vastausta, voi Jeesus tätä meininkiä.

      Tässä täytyy muistaa että näiltä kysyttäessä kuinka kauan palstan käyttäjät ovat omistaneet tietokoneen, niin täällä ei ole ketään jolla kone olisi ollut vähemmän kuin 10 vuotta, useimmat kehuvat osaavansa ainakin 5 ohjelmointi kieltä ja yksi valepukki kehui osaavansa jo vuosia sitten 22 ohjelmointi kieltä ja oppivansa joka vuosi uuden, Huh hu ..

      • Anonyymi

        "Juuri luvin ketjun jossa "Liukusäädin (trackbar)" käsite aiheuttaa hämmennystä ja toinen jossa "modaalinen toiminto" pistää mieheltä pään sekaisin"

        Heh -aloitin itse ketjun tuosta aiheesta.

        Trackbar on itselleni koodaajana hyvinkin tuttu, mutta se, miten tuo "Liukusäädin" liittyy youtuben pikanäppäimiin, ei todellakaan ole selvää. Ei omassa näppäimistössäni ainakaan ole mitään liukusäädintä !

        Myös modaalisuus sinänä on hyvinkin tuttu asia normaaliohjelmoinnin puolella.

        Mutta web -sivut: niillä näyttää olevan ihan oma logiikkansa (tai logiikan puute).

        Web -sivuissa oleva piilomodaalisuus on käyttäjälle erittäin haitallinen asia !

        normaaliohjelmoinnin puolella on erittäinkin tuttu asia esim. dialogBox:in modaalisuus:

        kun dialog box on näytöllä, sen takana oleva normaali-ikkuna on estetty, eli mikään klikkaus tai näppäily ei tuohon takana olevaan normaali-ikkunaan vaikuta, ennekuin ko. dialogBox on suljettu (useimmiten OK tai peruuta -valintanapilla).

        Mutta web -sivuissa on valitettavan usein piilomodaalisuutta, eli jokin osa web -sivusta tavallaan "varastaa" näppäimistöfokuksen, ja sitten saman web -sivun toisen osan pikanäppäimet eivät enää toimi. Juuri tästä kritisoin youtuben surkeaa käyttöliittymää.

        JOS olisi erillinen youtube -sovellus (kuten monessa Android -laitteessa onkin), niin asia voisi olla paremminkin - mutta windowsissa en ole youtube -sovellusta ikinä nähnyt.


      • Anonyymi
        Anonyymi kirjoitti:

        "Juuri luvin ketjun jossa "Liukusäädin (trackbar)" käsite aiheuttaa hämmennystä ja toinen jossa "modaalinen toiminto" pistää mieheltä pään sekaisin"

        Heh -aloitin itse ketjun tuosta aiheesta.

        Trackbar on itselleni koodaajana hyvinkin tuttu, mutta se, miten tuo "Liukusäädin" liittyy youtuben pikanäppäimiin, ei todellakaan ole selvää. Ei omassa näppäimistössäni ainakaan ole mitään liukusäädintä !

        Myös modaalisuus sinänä on hyvinkin tuttu asia normaaliohjelmoinnin puolella.

        Mutta web -sivut: niillä näyttää olevan ihan oma logiikkansa (tai logiikan puute).

        Web -sivuissa oleva piilomodaalisuus on käyttäjälle erittäin haitallinen asia !

        normaaliohjelmoinnin puolella on erittäinkin tuttu asia esim. dialogBox:in modaalisuus:

        kun dialog box on näytöllä, sen takana oleva normaali-ikkuna on estetty, eli mikään klikkaus tai näppäily ei tuohon takana olevaan normaali-ikkunaan vaikuta, ennekuin ko. dialogBox on suljettu (useimmiten OK tai peruuta -valintanapilla).

        Mutta web -sivuissa on valitettavan usein piilomodaalisuutta, eli jokin osa web -sivusta tavallaan "varastaa" näppäimistöfokuksen, ja sitten saman web -sivun toisen osan pikanäppäimet eivät enää toimi. Juuri tästä kritisoin youtuben surkeaa käyttöliittymää.

        JOS olisi erillinen youtube -sovellus (kuten monessa Android -laitteessa onkin), niin asia voisi olla paremminkin - mutta windowsissa en ole youtube -sovellusta ikinä nähnyt.

        "Myös modaalisuus sinänä on hyvinkin tuttu asia normaaliohjelmoinnin puolella."

        Ei vaan näytä siltä että ymmärtäisit tai olisi alkuunkaan tuttu.


      • Anonyymi
        Anonyymi kirjoitti:

        "Myös modaalisuus sinänä on hyvinkin tuttu asia normaaliohjelmoinnin puolella."

        Ei vaan näytä siltä että ymmärtäisit tai olisi alkuunkaan tuttu.

        " kolmas selittää kuinka taitamattomia muut ovat"

        Sellaista on elämä.


      • Anonyymi
        Anonyymi kirjoitti:

        " kolmas selittää kuinka taitamattomia muut ovat"

        Sellaista on elämä.

        Mutta tärkeintä on kiinnittää huomio muihin, ettei oma taitamattomuus paljastuisi.


      • Anonyymi
        Anonyymi kirjoitti:

        Mutta tärkeintä on kiinnittää huomio muihin, ettei oma taitamattomuus paljastuisi.

        Anonyymejä kaikki tyyni.


      • Anonyymi
        Anonyymi kirjoitti:

        Anonyymejä kaikki tyyni.

        Ei kai, kyllä tämän itseään perättömästi ammattikoodariksi tituleeraavan tunnistaa jo kolmesta kirjaimesta ja minulla on vahva epäily että sinunkin identiteetti vuotaa.


      • Anonyymi
        Anonyymi kirjoitti:

        "Juuri luvin ketjun jossa "Liukusäädin (trackbar)" käsite aiheuttaa hämmennystä ja toinen jossa "modaalinen toiminto" pistää mieheltä pään sekaisin"

        Heh -aloitin itse ketjun tuosta aiheesta.

        Trackbar on itselleni koodaajana hyvinkin tuttu, mutta se, miten tuo "Liukusäädin" liittyy youtuben pikanäppäimiin, ei todellakaan ole selvää. Ei omassa näppäimistössäni ainakaan ole mitään liukusäädintä !

        Myös modaalisuus sinänä on hyvinkin tuttu asia normaaliohjelmoinnin puolella.

        Mutta web -sivut: niillä näyttää olevan ihan oma logiikkansa (tai logiikan puute).

        Web -sivuissa oleva piilomodaalisuus on käyttäjälle erittäin haitallinen asia !

        normaaliohjelmoinnin puolella on erittäinkin tuttu asia esim. dialogBox:in modaalisuus:

        kun dialog box on näytöllä, sen takana oleva normaali-ikkuna on estetty, eli mikään klikkaus tai näppäily ei tuohon takana olevaan normaali-ikkunaan vaikuta, ennekuin ko. dialogBox on suljettu (useimmiten OK tai peruuta -valintanapilla).

        Mutta web -sivuissa on valitettavan usein piilomodaalisuutta, eli jokin osa web -sivusta tavallaan "varastaa" näppäimistöfokuksen, ja sitten saman web -sivun toisen osan pikanäppäimet eivät enää toimi. Juuri tästä kritisoin youtuben surkeaa käyttöliittymää.

        JOS olisi erillinen youtube -sovellus (kuten monessa Android -laitteessa onkin), niin asia voisi olla paremminkin - mutta windowsissa en ole youtube -sovellusta ikinä nähnyt.

        Jaa taas on kauhasessio saimaalla menossa!


      • Anonyymi

        MITTÄ TÄYTTY! NYT POISTAN WINDOWSIN!


    • Anonyymi

      Tuo sämppääminen loppuisi, kun nuo yli-pitkät roskaketjut poistettaisiin.

      • Anonyymi

        MINÄ POISTIN WINDOWSIN.


    • Anonyymi

      Joko täällä toimii plus ( ) <-sulkeissa merkki?

      • Anonyymi

      • Anonyymi

      • Anonyymi
        Anonyymi kirjoitti:

        Testi, toimiiko merkeistä edes
        tämä ⊹
        tai
        tämä

        Joko täällä toimii plus ( ) <-sulkeissa merkki?


      • Anonyymi
        Anonyymi kirjoitti:

        Joko täällä toimii plus ( ) <-sulkeissa merkki?

        Tuossa edellisessä testissä poimin plussan (WIN piste) näppäinkombolla avautuvasta valikosta ja sieltä kohdasta erikoismerkit.


      • Anonyymi
        Anonyymi kirjoitti:

        Tuossa edellisessä testissä poimin plussan (WIN piste) näppäinkombolla avautuvasta valikosta ja sieltä kohdasta erikoismerkit.

        Isompi + merkki toimii edelleen.

        Foorumin tampio koodarihan tuon on aiheuttanut. Joissakin kielissä plussalla voi yhdistellä merkkijonoja.


      • Anonyymi

        WINDOWS EI TOIMI, POISTIN SEN.


      • Anonyymi
        Anonyymi kirjoitti:

        Isompi + merkki toimii edelleen.

        Foorumin tampio koodarihan tuon on aiheuttanut. Joissakin kielissä plussalla voi yhdistellä merkkijonoja.

        "Joissakin kielissä plussalla voi yhdistellä merkkijonoja"

        BASIC oli ensimmäinen ohjelmointikieli, jossa näin voi tehdä.

        Delphi (itseasiassa Turbo Pascal) oli toinen ohjelmointikieli, jossa näin voi tehdä.

        Samoin Delphi oli ensimmäinen *konekielelle kääntävä* ohjelmointikieli, jossa näin voi tehdä. (Basic kun on useimmiten tulkki, BASIC -käänätäjät ovat vähintäänkin harvinaisia).


    • Anonyymi

      (+) Toimii, miksi ei teillä?

      • Anonyymi

        POISTA NYT SE KAMALA WINDOWS.


    • Anonyymi

      " toinen vastaava kehittelee ideoita joita kukaan ei tarvitse,"

      Eli olet itse idiootti.

      Se että SINÄ et tarvitse jotain ideaa, ei tarkoita, etteikö joku muu sitä ideaa tarvitsisi.

      C-kielen osaaminen sinänsä ei tee kenestäkään tosiosaajaa.

      Valitettavan usein C-koodaajat tyrkyttävät C -kieltä joka paikkaan ja valehtelevat C -kielen olevan "laitteistoläheinen".

      Ainoa oikeasti laitteistoläheinen kieli on assembly.

      Jos muuta väität, kerropa. miten C -kielellä pääsee suoraan käsiksi CPU:n CARRY -lippuun ?

      Aivan oikein: ei mitenkään.

      inline -assembly ominaisuutena löytyy muistakin kielistä kuin C (esim. Delphi).

      Esimerkiksi tapauksissa, joissa siihen CARRY -lippuun on tarve päästä käsiksi, niin inline -assemblyn käyttömahdollisuus on erittäin hyödyllinen ominaisuus.

      Tämä vain kommenttina niille, joiden mielestä "laitteistoläheiset tarpeet koodataan C:llä, eikä assemblya tarvita mihinkään".

      Fakta: Jos on tarve kehittää vaikkpa ns. "huge integer" -toteutus (tarpeen esim. RSA -salauksen toteutuksessa), niin nopein toteutus on sellainen, jossa ainakin tietyt avainosat on tehty inline assemblylla, loppuosan koodista voi tietysti kirjoittaa haluamallaan korkean tason kielellä.

      assemblysta kielenä:

      Osa C -koodaajista on halunnut käyttää assemblyväärennöstä nimeltään "AT&T" -syntax (jota en voi suositella kenellekään).

      Normaali on tietenkin ns. Intel / Microsoft -syntaksi, ja jopa gcc:stäkin tuki tuollekin löytyy, tosin gcc:n hölmöstä rakenteesta johtuen gcc:ssä pitää ensin asettaa assemblymoodi asetukseen "intel", sitten haluamasi assemblykoodi ja lopuksi laitetaan moodi takaisin kohtaan "at&t". Näin on siis pakko tehdä, vaikka ei ikinä haluaisi kirjoittaa ensimmäistäkään at&t -syntaksin assemlyriviä, ja tämä johtuu hölmöstä gcc:n sisäisestä rakenteesta, mutta se taas on asia, jolle loppukäyttäjä (=yksittäinen C -kielellä koodaaja) ei voi mitään (paitsi sen, että jos gcc ei miellytä
      niin voi käyttää esim. Microsoftin tai Embarcaderon C -kääntäjää).

      • Anonyymi

        Yleensä ohjelmoinnissa halutaan pysyä mahdollisimman kaukana laitteistosta ilman riviäkään inline assemblyä.

        Suorituskyky lakkasi olemasta ongelma suurelta osin 80-luvun alussa 16-bit koneilla. C-kieltä harvemmin tarvittu missään viiteentoista vuoteen.


      • Anonyymi
        Anonyymi kirjoitti:

        Yleensä ohjelmoinnissa halutaan pysyä mahdollisimman kaukana laitteistosta ilman riviäkään inline assemblyä.

        Suorituskyky lakkasi olemasta ongelma suurelta osin 80-luvun alussa 16-bit koneilla. C-kieltä harvemmin tarvittu missään viiteentoista vuoteen.

        "C-kieltä harvemmin tarvittu missään viiteentoista vuoteen."
        C on toiseksi suosituin ohjelmointikieli heti Pythonin jälkeen v2022...


      • Anonyymi
        Anonyymi kirjoitti:

        "C-kieltä harvemmin tarvittu missään viiteentoista vuoteen."
        C on toiseksi suosituin ohjelmointikieli heti Pythonin jälkeen v2022...

        Luettelehan tällä vuosikymmenellä tehtyjä sovelluksia mitkä ohjelmoitu C:llä niin saat vähän käsitystä.

        C:tä on lähinnä jossain hyvin matalalla tasolla vaikka kameran firmwaressa tai vastaavassa, kun se on sellainen laitteistonläheinen.


      • Anonyymi
        Anonyymi kirjoitti:

        Luettelehan tällä vuosikymmenellä tehtyjä sovelluksia mitkä ohjelmoitu C:llä niin saat vähän käsitystä.

        C:tä on lähinnä jossain hyvin matalalla tasolla vaikka kameran firmwaressa tai vastaavassa, kun se on sellainen laitteistonläheinen.

        The following are some examples of C programming applications.

        Operating Systems. ...
        GUI (Graphical User Interface) ...
        Embedded Systems. ...
        Google. ...
        Design of a Compiler. ...
        Mozilla Firefox and Thunderbird. ...
        Gaming and animation. ...
        MySQL.


      • Anonyymi
        Anonyymi kirjoitti:

        The following are some examples of C programming applications.

        Operating Systems. ...
        GUI (Graphical User Interface) ...
        Embedded Systems. ...
        Google. ...
        Design of a Compiler. ...
        Mozilla Firefox and Thunderbird. ...
        Gaming and animation. ...
        MySQL.

        C:llä ei tehdä graafisia käyttöliittymiä, Mozilla tekee ohjelmansa Rustilla, MySQL on ysäriltä.

        Eli luettele niitä _sovellusohjelmia_ jotka on tehty tällä vuosikymmenellä C:llä.


      • Anonyymi
        Anonyymi kirjoitti:

        C:llä ei tehdä graafisia käyttöliittymiä, Mozilla tekee ohjelmansa Rustilla, MySQL on ysäriltä.

        Eli luettele niitä _sovellusohjelmia_ jotka on tehty tällä vuosikymmenellä C:llä.

        Mozillan ohjelmointikielet: JavaScript, HTML, Cascading Style Sheets, C, XML, Rust, C++, XBL

        Eli mukana on myös C -kieli ja C++
        Miksi yrität valehdella sellaista asiaa, jonka jokaisen on hyvin helppo tarkistaa, oletko ubuttaja, muutoin ei tuollaista tyhmyyttä voi selitellä.


      • Anonyymi
        Anonyymi kirjoitti:

        C:llä ei tehdä graafisia käyttöliittymiä, Mozilla tekee ohjelmansa Rustilla, MySQL on ysäriltä.

        Eli luettele niitä _sovellusohjelmia_ jotka on tehty tällä vuosikymmenellä C:llä.

        MySQL ohjelmointikielet: C, C++

        Eli mukana on myös C -kieli ja C++
        Miksi yrität valehdella sellaista asiaa, jonka jokaisen on hyvin helppo tarkistaa, oletko ubuttaja, muutoin ei tuollaista tyhmyyttä voi selitellä.


      • Anonyymi

        Tein päätöksen, poistin windowsin.


      • Anonyymi
        Anonyymi kirjoitti:

        MySQL ohjelmointikielet: C, C

        Eli mukana on myös C -kieli ja C
        Miksi yrität valehdella sellaista asiaa, jonka jokaisen on hyvin helppo tarkistaa, oletko ubuttaja, muutoin ei tuollaista tyhmyyttä voi selitellä.

        Puhe oli tämän vuosikymmenen ohjelmista. MySQL julkaistiin vuonna 1995.

        Lisäksi on syytä ymmärtää sen olevan tietokantamoottori eli maailman ohjelmista tuollaiset on häviävän pieni osuus.

        Vähän niinkuin ohjelmointikielten kääntäjät. Ne eivät sisällä minkään yrityksen liiketoiminnan logiikkaa tai ole vaikka sovellusohjelma. Ei pääse edes promillekerhoon niistä ohjelmista mitä tehdään.


      • Anonyymi
        Anonyymi kirjoitti:

        Mozillan ohjelmointikielet: JavaScript, HTML, Cascading Style Sheets, C, XML, Rust, C , XBL

        Eli mukana on myös C -kieli ja C
        Miksi yrität valehdella sellaista asiaa, jonka jokaisen on hyvin helppo tarkistaa, oletko ubuttaja, muutoin ei tuollaista tyhmyyttä voi selitellä.

        HTML, CSS, XML ja XBL eivät edes ole ohjelmointikieliä.

        Kyllä Mozillalla C:täkin kirjoitetaan, vähäisiä määriä lowlevel koodia. Voit tarkistaa vaikka tästä: https://github.com/orgs/mozilla/repositories?page=1

        Aivan kaikki missä C:tä käytetty ovat lowleveliä kuten esimerkiksi Jpeg pakkaus palikka.


      • Anonyymi
        Anonyymi kirjoitti:

        Mozillan ohjelmointikielet: JavaScript, HTML, Cascading Style Sheets, C, XML, Rust, C , XBL

        Eli mukana on myös C -kieli ja C
        Miksi yrität valehdella sellaista asiaa, jonka jokaisen on hyvin helppo tarkistaa, oletko ubuttaja, muutoin ei tuollaista tyhmyyttä voi selitellä.

        Selitähän tuota tyhmyyttä minkä helvetin takia pitäisi käyttää 70-luvun työkaluja vuonna 2023 kun parempiakin on?

        Mozilla ainakin käyttää uudempia ja tekivät itse sen Rustin korvaamaan C-kieltä matalalle tasolle.


      • Anonyymi
        Anonyymi kirjoitti:

        Selitähän tuota tyhmyyttä minkä helvetin takia pitäisi käyttää 70-luvun työkaluja vuonna 2023 kun parempiakin on?

        Mozilla ainakin käyttää uudempia ja tekivät itse sen Rustin korvaamaan C-kieltä matalalle tasolle.

        Katso peliin niin näet jästin!


      • Anonyymi
        Anonyymi kirjoitti:

        Selitähän tuota tyhmyyttä minkä helvetin takia pitäisi käyttää 70-luvun työkaluja vuonna 2023 kun parempiakin on?

        Mozilla ainakin käyttää uudempia ja tekivät itse sen Rustin korvaamaan C-kieltä matalalle tasolle.

        Onko taas kauhasessio menossa.


      • Anonyymi
        Anonyymi kirjoitti:

        Selitähän tuota tyhmyyttä minkä helvetin takia pitäisi käyttää 70-luvun työkaluja vuonna 2023 kun parempiakin on?

        Mozilla ainakin käyttää uudempia ja tekivät itse sen Rustin korvaamaan C-kieltä matalalle tasolle.

        "Selitähän tuota tyhmyyttä minkä helvetin takia pitäisi käyttää 70-luvun työkaluja vuonna 2023 kun parempiakin on?"

        Hommat tehdään niillä työkaluilla, joilla se parhaiden onnistuu, eikö sinulla ole aivoja ollenkaan, kun kaikki pitää rautalangasta vääntää.

        "Mozilla ainakin käyttää uudempia ja tekivät itse sen Rustin korvaamaan C-kieltä matalalle tasolle."

        Valehtele, et ole edes yrittänyt varmistaa asiaa, vai etkö edes osaa sitäkään.


      • Anonyymi
        Anonyymi kirjoitti:

        "Selitähän tuota tyhmyyttä minkä helvetin takia pitäisi käyttää 70-luvun työkaluja vuonna 2023 kun parempiakin on?"

        Hommat tehdään niillä työkaluilla, joilla se parhaiden onnistuu, eikö sinulla ole aivoja ollenkaan, kun kaikki pitää rautalangasta vääntää.

        "Mozilla ainakin käyttää uudempia ja tekivät itse sen Rustin korvaamaan C-kieltä matalalle tasolle."

        Valehtele, et ole edes yrittänyt varmistaa asiaa, vai etkö edes osaa sitäkään.

        "Hommat tehdään niillä työkaluilla, joilla se parhaiden onnistuu"

        Tietenkin.

        Hommat ei yleensä onnistu parhaiten C:llä joten siksi yleensä käytetään muita työkaluja. Siksi et osaa luetella niitä tällä vuosikymmenellä tehtyjä sovellusohjelmia mitä olisi tehty C:llä.


      • Anonyymi
        Anonyymi kirjoitti:

        "Hommat tehdään niillä työkaluilla, joilla se parhaiden onnistuu"

        Tietenkin.

        Hommat ei yleensä onnistu parhaiten C:llä joten siksi yleensä käytetään muita työkaluja. Siksi et osaa luetella niitä tällä vuosikymmenellä tehtyjä sovellusohjelmia mitä olisi tehty C:llä.

        Oletko hullu?


      • Anonyymi
        Anonyymi kirjoitti:

        Oletko hullu?

        En. Enkä myöskään möyhkää mistään C-kielestä koska sitä tarvitsee nykyään niin vähän.


    • Anonyymi

      Kukaan ei tee skripteillä mitään eikä moduuleilla eli Dilleillä :D

      Ei ainakaan skripteillä tai pythoneilla järkevä mitään aikaan saa jota joku toinen ei olisi jo keksinyt :D

      • Anonyymi

        Noinhan se saattaa äkkinäisestä tuntua, mutta ymmärryksen mukana avartuu kokonaan uusi maailma.


      • Anonyymi

        Vapunenhan ei osaa asentaa Thunderbirdiin edes sähköpostitiliä. Joku voisi siihen tehdä skriptin hänelle avuksi.


      • Anonyymi

        Windowshan ei sovi tositoimiin, joten poistin sen.


      • Anonyymi

        Saimaanapinahan se on jäänyt viimevuosituhannelle!


    • Anonyymi

      Puhutko nyt grafiikkakiihdyttimien intereistä vai ms-dosistqa=

    • Anonyymi

      Tosiaankin osaamattomien palsta tämä on, ei osata kirjoittaa eikä ymmärretä luettua.

    • Anonyymi

      Minulla on sellainen teoria näistä joistain keskustelualueista (mm. tieteet, tietotekniikka), että vähäinen suosio johtuu joidenkin henkilöiden suorittamasta keskustelun myrkyttämisestä.

      Esim. joku kysyy jotain asiaa, niin haukutaan tämä kysyjä.
      Jos joku kertoo jostain havainnosta, sama juttu.

    • Anonyymi

      "toinen vastaava kehittelee ideoita joita kukaan ei tarvitse"

      Se, että SINÄ et tarvitse jotain ideaa, ei tarkoita sitä, että kukaan muukaan ei tarvitse.

      Juuri sinunlaistesi takia täällä ei saa asiallisia vastauksia kysymyksiin.

      Jos ihmiset edes hieman ymmärtäisivät tekniikkaa, aika moni mielellään maksaisi 10-50 € paremmasta selaimesta, jonka muistinkäyttö ei olisi niin hillitöntä kuin se nykyselaimilla on.

      Jos ongelma ratkaistaisiin paremmalla ohjelmointityöllä, niin nyt tehty ratkaisu todennäköisesti toimisi ainakin 10, ehkä jopa 25-50 vuotta !

      Kun taas: Moniin kannettaviin ei edes rahalla saa lisää muistia, ja jos saakin, se maksaa paljon.

      Lisäksi:

      Omassa kannettavassani on 16 gigatavua RAM -muistia ja 64 -bittinen windows.

      Tästä huolimatta, kun käyttö saavuttaa 9-11 gigatavua, niin selain menee yleensä niin pahasti jumiin, että ainoa vaihtoehto on tappaa selain windowsin Tehtävänhallinta (Task Manager) -toiminnolla.

      Siis 5 GT fyysistä RAM -muistia on käyttämättömänä, ja silti selain menee jumiin kun siltä on muisti vähissä. Eli selain ensinnäkin kuluttaa aivan liikaa muistia ja toisekseen ei edes osaa hyödyntää kaikkea koneessa olevaa RAM -muistia.

      En varmasti ole ainoa, joka kärsii tästä ongelmasta.

      Jos kärsijöitä on vaikkapa miljoona ja jokainen maksaisi 10€, tässä olisi 10 miljoonaa € rahaa ohjelmistokehitykseen.

      Tosin ongelmana on se, että:

      1) Kaupallisten selainten (Google Chrome, Microsoft Edge) tekijöitä ei kiinnosta, ja avointa lähdekoodia oleva Firefox kun on GPL -lisensoitu, niin GPL on myrkkyä sponsoroidulle ohjelmistokehitykselle.

      Kas kun Firefoxin lähdekoodin voi kuka tahansa laillisesti kopioida ja myös jakaa edelleen. Lisäksi GPL on "tarttuva" lisenssi, eli jos itse kopioisin Firefoxin lähdekoodin, muokkaisin sen muistinhallinnan kokonaan uusiksi niin en voisi laillisesti jakaa pelkkää EXE -tiedostoa vaan GPL -lisenssi aiheuttaisi minulle velvollisuuden pitää lähdekoodi jokaisen EXE:n lataajan saatavilla.

      Tämä ja se, että jokainen lähdekoodin lataaja voisi laillisesti jakaa edelleen lataamaansa lähdekoodia johtaisi siihen, että voin myydä 1 kpl lisenssejä ja ensimmäinen maksaja voisi laillisesti jakaa kopioita edelleen, jolloin kukaan ei haluaisi maksaa minulle 2. lisenssistä, kun saman saa ilmaiseksi muualta.

      Eli 10 miljoonan € sijasta lisenssimyyntitulot ovatkin 10 €.

      Tämä on GPL -lisenssin mukanaan tuoma kirous: se estää tehokkaasti sen, että joku sijoittaisi ison summan ohjelmistokehitykseen ja sitten jokainen käyttäjä maksaisi vaikkapa 10€ saadakseen käyttöoikeuden parempaan versioon (alkuperäistä Firefoxia. jossa on huono muistinhallinta, voisi siis kaikissa tapauksissa ladata edelleen laillisesti ja ilmaiseksi).

      JOS vain lisenssi sen sallisi, niin väitän, että huomattava määrä ihmisiä valitsisi mieluummin vaihtoehdon ladata maksua vastaan versio Firefoxista, jossa erinomainen muistinhallinta kuin ladata ilmaiseksi nykyversio Firefoxista, jossa muistinhallinta on todella surkeasti toteutettu.

      Mutta Minun ei kannata investoida 1 miljoona € parempaan muistinhallintaan Firefoxiin sillä idealla, että myisin lisenssejä parempaan 10€/kpl, jolloin jo miljoona käyttäjää = olisin omillani ja 10 milj. käyttäjää = 9 milj. € voittoa, koska tuo kirottu GPL -lisenssi aiheuttaa sen, että saatuani 10€ yhdestä lisenssistä, niin sen yhden lisenssin ostaja voisi laillisesti jakaa ilmaiseksi kopiota paremmasta Firefoxista, jolloin myyntituloni olisi 10€ 10 miljoonan € sijasta, ja 1 milj € panostuksella liiketappio siis 999990 €.

      Eikä kannata kenenkään muunkaan (kun säännöt ovat samat kaikille) ja siksi emme tule näkemään versiota Firefoxista, jossa surkea muistinhallinta olisi korvattu erinomaisella muistinhallinnalla.

    Ketjusta on poistettu 17 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Maksetaanko Vornaselle palkkaa 2 viikon sairaslomasta

      Eli torstain kännistä 2 viikon palkallinen sairasloma? Saako muut duunarit myös rännätä 2 viikkoa työnantajan laskuun?
      Perussuomalaiset
      296
      2630
    2. Miksi tunnet vetoa..

      Miksi tunnet vetoa juuri häntä kohtaan? Mikä sen saa aikaan?
      Ikävä
      99
      2075
    3. Mitä te palstan ihanat naiset

      Ajattelette hyvin viisaista miehistä, jotka ovat koko ajan jotenkin oudosti väärässä? Vaikka älykkyysosamääräsi olisi 21
      Sinkut
      77
      1606
    4. Tapaus Vornanen

      Se oli torstai-ilta ja kansanedustaja Vornanen oli juhlimassa seurueensa kanssa pitkän edustusviikon jälkeen. Baarissa o
      Maailman menoa
      158
      1448
    5. Nainen, kohtelin sua kuin paskaa

      Ja silti odotin että annat kaiken anteeksi. Yllätyin kun niin ei käynytkään. Olethan kaikin puolin alle mun tason ja sun
      Ikävä
      66
      1288
    6. Nainen, seuraan sun uutta elämää

      Hieman naurattaa tuo sun uusi rooli 🤭. Kun et sovi siihen mitenkään. Mutta pakkohan sulla jokin paikka olla missä hämme
      Ikävä
      53
      1205
    7. Olet kaikki mitä ikinä tahdonkaan

      Voi sinä ihana Jarno olet just se ihminen keneen menin täysin ihastumaan. Kuin salama kirkkaalta taivaalta meidän koht
      Suhteet
      19
      1076
    8. Voi hitto Rinsessa säikähdin

      Että olitkin silloin joku huijari. Huh, sano ettet ole.
      Ikävä
      11
      1074
    9. Ilona Siekkinen

      Onko Ilona Siekkinen todellinen henkilö vai tekoälyllä luotu henkilö? Koostettu monesta eri kuvasta ja liitetty yhteen m
      Yhteiskunta
      1
      1020
    10. AVARN Security ja julkisen toimeksiannon laiton henkilörekisteri

      Kyseessä ei ole VR:än ylläpitämä, vaan Avarnin laiton henkilörekisteri. https://www.is.fi/kotimaa/art-2000000482739.htm
      Turvallisuuspalvelut
      13
      911
    Aihe