Kirjoittaja Aihe: linux binäärit  (Luettu 10057 kertaa)

JPK1990

  • Vieras
Re: linux binäärit
« Vastaus #20 : 15.01.06 - klo:15.41 »
Niin taas samasta aiheesta asiaa eli loytyyko tietoa ELF binaareista suomeksi? meika haluaa tietaa kaiken linuxista.

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: linux binäärit
« Vastaus #21 : 15.01.06 - klo:17.23 »
Niin taas samasta aiheesta asiaa eli loytyyko tietoa ELF binaareista suomeksi? meika haluaa tietaa kaiken linuxista.

löytyisikö komennolla man elf mitään kiinnostavaa?
Janne

JPK1990

  • Vieras
Re: linux binäärit
« Vastaus #22 : 21.02.06 - klo:17.51 »
Elikkäs olen tässä suunnitelemassa pienoista ohjelmaa C-kielellä ja olen tutkinut ohjelmointiputkan antimia, mutta en ole löytänyt mitään kääntämiseen liittyvää. ? Eli gcc kääntää c-kielisen ohjelman *.o tiedostoksi ? mutta miten sitten kun haluaa ELF-binäärin? Entäs mitäs make tekee?

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: linux binäärit
« Vastaus #23 : 21.02.06 - klo:20.59 »
Eli gcc kääntää c-kielisen ohjelman *.o tiedostoksi ?

jos niin haluaa. kyllä se osaa sen linkatakin.

mutta miten sitten kun haluaa ELF-binäärin?

linkkaamalla.

Entäs mitäs make tekee?

make suorittaa makefilen määrämät komennot.
Janne

JPK1990

  • Vieras
Re: linux binäärit
« Vastaus #24 : 21.02.06 - klo:23.02 »
Entäs kun on preprosessointi, compile, asembly jne, mitä ne on?
Mitenkä ohjelma saa tietyn määrän prosessoriaikaa ilman että ohjelma tekee älytöntä loopia joka käyttäisi 100% tarjolla olevasta tehosta? viestiikö se ytimelle jotenkin suoritinajan tarpeesta?

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: linux binäärit
« Vastaus #25 : 21.02.06 - klo:23.51 »
Entäs kun on preprosessointi, compile, asembly jne, mitä ne on?

nämä ovat kyllä aika peruskauraa. jos aiot oikeasti tehdä jotain c-kielellä, niin suosittelen, että ostat C-kieltä käsittelevän kirjan ja luet sen, ellet sitten pääse opettelemaan kieltä jollekin kurssille.

preprosessoinnilla tarkoitetaan sitä, kun esikäsittelijä kä läpi käännettävät lähdekooditiedostot 'laventaen' kaikki esikäsittelijän käsiteltäväksi tarkoitetut lauseet, C:ssä ne ovat niitä #:lla alkavia.

compile on kääntämistä ja assembly on symbolista konekieltä.

Mitenkä ohjelma saa tietyn määrän prosessoriaikaa ilman että ohjelma tekee älytöntä loopia joka käyttäisi 100% tarjolla olevasta tehosta? viestiikö se ytimelle jotenkin suoritinajan tarpeesta?

ohjelma ei saa yhtään enempää suoritusaikaa kuin mitä käyttöjärjestelmän skeduleri on sille valmis antamaan. suoritettavan prosessin prioriteettä on toki mahdollista muuttaa, mikä antaa jonkinlaista vihjettä skedulerille, mutta skedulerin ei ole pakko siltikään totella sitä.
Janne

JPK1990

  • Vieras
Re: linux binäärit
« Vastaus #26 : 23.02.06 - klo:16.35 »
eli prosessi säätää omaa prosessoriaikaansa prioriteetin avulla  :) onko se nice sama asia?

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: linux binäärit
« Vastaus #27 : 23.02.06 - klo:19.15 »
eli prosessi säätää omaa prosessoriaikaansa prioriteetin avulla  :) onko se nice sama asia?

nice on sama asia. prosessi voi itse pyytää tiettyä prioriteettia tai prosessin ajaja voi määrätä sen.
Janne

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
Re: linux binäärit
« Vastaus #28 : 24.02.06 - klo:12.35 »
eli prosessi säätää omaa prosessoriaikaansa prioriteetin avulla  :) onko se nice sama asia?

En laskisi tuota prioriteettien muuttamista prosessoriajan säätelyksi. Todellinen säätely tapahtuu blockaavien käyttöjärjestelmäkutsujen avulla. Esim. jos ohjelma lukee ison tiedoston se tekee kj:lle read() kutsun, jonka suorituksen aikana ohjelma nukkuu ja ei kuluta CPU:ta. Kun read() on valmis siirtyy suoritus takaisin ohjelmaan...

Prioritettien muuttamien  vaikuttaa siihen, mitenkä nopeasti ohjelman suoritus jatkuu kun read() kutsu on tässä esimerkissä valmis.