Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Izvrąavanje...

2 views
Skip to first unread message

Amos Sam

unread,
Apr 6, 2004, 6:06:51 PM4/6/04
to
Prvo, ispricavam se na crosspotu, ali neznam koja je prava grupa za pitanje.
:-((

Sad ide pitanje...

Zanima me kako OS (nije bitno koji!!) izvrsava aplikaciju?
Dakle kako OS zna sto aplikacija zahtijeva?!?
Mislim da je isto ako pitam kako radi interpreter.

Ovo je samo informacije radi, jer se prepucavam s jednim
prijateljem oko nacina kako se izvrsava aplikacija!!

Nadam se da pitanje nije preteško ;-)).

Thx

--
That's all from Amos Sam


SickBoy

unread,
Apr 7, 2004, 5:25:34 PM4/7/04
to
Amos Sam wrote:
> Zanima me kako OS (nije bitno koji!!) izvrsava aplikaciju?
> Dakle kako OS zna sto aplikacija zahtijeva?!?

Svaki OS ima svoj API (application programming interface) sto je u biti
skup funkcija koje program poziva. Te funkcije se nalaze u sistemskim
DLL fajlovima (sto se tice windowsa).

Bruno Babic

unread,
Apr 8, 2004, 5:08:34 AM4/8/04
to
"Amos Sam" <am...@infokorcula.net> wrote in message
news:c4v9lf$i2a$1...@bagan.srce.hr...

> Zanima me kako OS (nije bitno koji!!) izvrsava aplikaciju?

Ucita exe ili sto vec u memoriju pocne i skoci na pocetak koda i pocne ga
izvrsavati.

> Dakle kako OS zna sto aplikacija zahtijeva?!?

OS niti ne zna sto aplikacija trazi, to samo zna aplikacija.

> Mislim da je isto ako pitam kako radi interpreter.

Interpreter radi na drugom principu. Interpreter ima sve u sebi, tj. zna
napraviti sve sto bi "aplikacija" mogla zatrebati, i onda on to radi kada
"aplikacija" zatreba da napravi to nesto.

--
--bbabic(a)foi.hr--
--
2b||!2b?


Kristijan Conkas

unread,
Apr 8, 2004, 7:22:23 AM4/8/04
to
On Wed, 7 Apr 2004 00:06:51 +0200, Amos Sam <am...@infokorcula.net> wrote:
> Prvo, ispricavam se na crosspotu, ali neznam koja je prava grupa za pitanje.
>:-((
>
> Sad ide pitanje...
>
> Zanima me kako OS (nije bitno koji!!) izvrsava aplikaciju?
> Dakle kako OS zna sto aplikacija zahtijeva?!?

Jako dobra knjiga za uvod u to podrucje je od Andrewa S. Tanenbauma, a
zove se "Operating Systems: Design And Implementation"
(ISBN: 0136301959).

Autor ima i noviju knjigu, "Modern Operating Systems" (ISBN: 0130313580),
ali nisam je imao prilike citati pa ne znam koliko je dobra.


--
v v
Kristijan Conkas

bernard cupic

unread,
Apr 8, 2004, 9:51:57 AM4/8/04
to

Pojednostavljeno receno, kada ti upises u terminalu naziv nekog
programa, OS potrazi datoteku s tim nazivom i ucita ju. U toj datoteci
su zapisane instrukcije sto treba raditi. OS kreira proces, dodijeli
mu njegov adresni prostor i krene izvrsavati instrukcije redom kako
su zapisane.

Eto, to bi bilo jednostavno. Za detalje ces morati malo zaroniti
dublje u literaturu.

Berni.

Miroslav Zubcic

unread,
Apr 8, 2004, 11:23:47 AM4/8/04
to
bernard cupic <bernar...@ANTISPAMuljanik.hr> writes:

> Pojednostavljeno receno, kada ti upises u terminalu naziv nekog
> programa, OS potrazi datoteku s tim nazivom i ucita ju. U toj datoteci

Maleni ispravak potencijalno netočnog navoda: Zapravo u ovom slučaju
_shell_ potraži datoteku s tim nazivom i onda forka istu, a kernel na
temelju magic numbera (prvih par bitova filea), zaključi koji
interpreter pozvati. Ako je to "#!/bin/sh", bit će pozvan shell, ako
je to "#!/usr/bin/perl" pozvat će perl. Ako se radi o binarnom ELF
fileu, on će biti posebno učitan (kernel zna čitati ELF sekcije), a
kernel će potražiti hardkodiranu stazu runtime "ld.so" linkera, u
.interp headeru i pozvati ga. Dalje od toga je stvar runtime linkera,
da pročita .dynamic sekciju i pohvata simbole iz shareanih libova itd
itd ... Linux kernel zna čitati i a.out i coff binaryje, a ostali
binaryji se hendlaju preko binfmt_misc sučelja, gdje se po magic
numberu mogu registrirati novi binarni formati. Recimo ja java JAR-ane
i classe samo chmodam 755 i izvršavam sa "./program.jar" odnosno
"./alat.class".

> Eto, to bi bilo jednostavno. Za detalje ces morati malo zaroniti
> dublje u literaturu.

I source kernela. :-)


--
The Network is the Filesystem.

Miroslav Zubcic

unread,
Apr 8, 2004, 11:08:36 AM4/8/04
to
Kristijan Conkas <cho...@izbrisi-ovo.net.hr> writes:

> Jako dobra knjiga za uvod u to podrucje je od Andrewa S. Tanenbauma, a
> zove se "Operating Systems: Design And Implementation"
> (ISBN: 0136301959).
>
> Autor ima i noviju knjigu, "Modern Operating Systems" (ISBN: 0130313580),
> ali nisam je imao prilike citati pa ne znam koliko je dobra.

Baš me zanima da li ovom knjigom još uvijek brije na microkernele. ;-)

Bernard Cupic

unread,
Apr 9, 2004, 5:03:02 PM4/9/04
to
Miroslav Zubcic wrote:
> bernard cupic <bernar...@ANTISPAMuljanik.hr> writes:
>
>
>>Pojednostavljeno receno, kada ti upises u terminalu naziv nekog
>>programa, OS potrazi datoteku s tim nazivom i ucita ju. U toj datoteci
>
>
> Maleni ispravak potencijalno netočnog navoda: Zapravo u ovom slučaju
> _shell_ potraži datoteku s tim nazivom i onda forka istu, a kernel na
> temelju magic numbera (prvih par bitova filea), zaključi koji
> interpreter pozvati. Ako je to "#!/bin/sh", bit će pozvan shell, ako
> je to "#!/usr/bin/perl" pozvat će perl. Ako se radi o binarnom ELF
> fileu, on će biti posebno učitan (kernel zna čitati ELF sekcije), a
> kernel će potražiti hardkodiranu stazu runtime "ld.so" linkera, u
> ..interp headeru i pozvati ga. Dalje od toga je stvar runtime linkera,

> da pročita .dynamic sekciju i pohvata simbole iz shareanih libova itd
> itd ... Linux kernel zna čitati i a.out i coff binaryje, a ostali
> binaryji se hendlaju preko binfmt_misc sučelja, gdje se po magic
> numberu mogu registrirati novi binarni formati. Recimo ja java JAR-ane
> i classe samo chmodam 755 i izvršavam sa "./program.jar" odnosno

A jesi ga pojednostavnio ;-)

Covjek je pitao bilo koji OS, a ti mu objasnio kako shell to radi ;-)

Senko Rasic

unread,
Apr 8, 2004, 7:03:45 PM4/8/04
to
Miroslav Zubcic wrote:
> Baš me zanima da li ovom knjigom još uvijek brije na microkernele. ;-)

... kaze u pogrdnom tonu netko tko brije na Plan9. Buahahaha .... ;-)))

Shalu nastranu, svatko tko misli da su microkerneli loshi zasluzuje
jedan 8502 i par brojeva Mog Mikra pa nek se veseli...

(PS. Ne, Linux moduli NEMAJU veze s microkernelom ;-)

--
Senko Rasic <senko at senko dot net>

Josip Deanovic

unread,
Apr 9, 2004, 5:25:17 AM4/9/04
to
Miroslav Zubcic <miroslav.z...@zesoi.fer.hr> writes:

> bernard cupic <bernar...@ANTISPAMuljanik.hr> writes:
>
>> Pojednostavljeno receno, kada ti upises u terminalu naziv nekog
>> programa, OS potrazi datoteku s tim nazivom i ucita ju. U toj datoteci
>
> Maleni ispravak potencijalno netočnog navoda: Zapravo u ovom slučaju
> _shell_ potraži datoteku s tim nazivom i onda forka istu, a kernel na
> temelju magic numbera (prvih par bitova filea), zaključi koji
> interpreter pozvati. Ako je to "#!/bin/sh", bit će pozvan shell, ako
> je to "#!/usr/bin/perl" pozvat će perl. Ako se radi o binarnom ELF
> fileu, on će biti posebno učitan (kernel zna čitati ELF sekcije), a
> kernel će potražiti hardkodiranu stazu runtime "ld.so" linkera, u

Maleni ispravak potencijalno netočnog navoda... :-)
Zapravo u slucaju skripte nece kernel parsati skriptu vec tvoj
current shell koji ce prema "hash bangu" vidjeti koji interpreter
treba nahuskati na skriptu.

Pri tome nece vrsiti forkanje nego execanje i tek tu treba spominjati
kernel i sto se dogada prilikom execanja interpretera.

--
Josip Deanovic

Miroslav Zubcic

unread,
Apr 9, 2004, 5:25:13 AM4/9/04
to
Senko Rasic <se...@senko.SOMEWHERE-OVER-THE-RAINBOW.net> writes:

> Miroslav Zubcic wrote:
>> Baš me zanima da li ovom knjigom još uvijek brije na microkernele. ;-)

> ... kaze u pogrdnom tonu netko tko brije na Plan9. Buahahaha .... ;-)))

Plan 9 kernel nije microkernel.

> Shalu nastranu, svatko tko misli da su microkerneli loshi zasluzuje
> jedan 8502 i par brojeva Mog Mikra pa nek se veseli...

> (PS. Ne, Linux moduli NEMAJU veze s microkernelom ;-)

No shit Sherlock!? :-)

Lado

unread,
Apr 9, 2004, 6:10:50 AM4/9/04
to
Josip Deanovic wrote:

> Zapravo u slucaju skripte nece kernel parsati skriptu vec tvoj
> current shell koji ce prema "hash bangu" vidjeti koji interpreter
> treba nahuskati na skriptu.

Slikovita inspiracija kroz rijec "nahushat" bi moglo ovako izgledat.

-> Scripta - provalnik
-> Interpreter - doberman, pitbul itd.
-> Shell - cuvar

Dakle cuvar vidi provalnika na monitoru, i po tjelesnoj gradji odluci hoce
li pustit dobermana ili putbula ili sta drugoga na "obradu" provalnika :-)

Miroslav Zubcic

unread,
Apr 9, 2004, 6:44:53 AM4/9/04
to
djo...@croadria.com (Josip Deanovic) writes:

> Maleni ispravak potencijalno netočnog navoda... :-)

Misliš valjda na potencijalni ispravak ispravka potencijalno netočnog
navoda?

> Zapravo u slucaju skripte nece kernel parsati skriptu vec tvoj
> current shell koji ce prema "hash bangu" vidjeti koji interpreter
> treba nahuskati na skriptu.

Na ovo moram odgovoriti ispravkom potencijalno netočnog potencijalnog
ispravka potencijalno netočnog navoda. :-)

#include <stdio.h>
#include <unistd.h>

int
main()
{
execve("/usr/bin/collateindex.pl", NULL, NULL);
return 0;
}

[nimiumvax!mvz!mvz]$ strace -ff -eexecve ./test
execve("./test", ["./test"], [/* 73 vars */]) = 0
execve("/usr/bin/collateindex.pl", [0], [/* 0 vars */]) = 0
usage: /usr/bin/collateindex.pl [options] file
Do 'perldoc /usr/bin/collateindex.pl' for documentation.

Nisam zvao system(), čak niti execl(3) koji je library call koji AFAIR
i AFAIK niti ne troši sh(1) kao system(3), već execve(2) koji je
syscall(2). Kernel je MORAO znati što radi i koga da pozove (perl u
ovom slučaju).

Vidi također fs/binfmt_script.c.

> Pri tome nece vrsiti forkanje nego execanje i tek tu treba spominjati
> kernel i sto se dogada prilikom execanja interpretera.

Shell će forkati komandu, kod execanja bi shell prepustio svoj
image memorijskog prostora novom procesu i shell bi nestao kao da si
napisao "exec ls".

Pid 11437 je v7 sh(1) (upotrijebljen ovdje radi manjeg outputa, jer
bash sere nekoliko desetina ekrana function i sys callova da to nije
normalno).

ltrace -f -p 11437

...

strcmp("tty", "trap") = 1
strcmp("tty", "times") = 1
fork() = 12435
[pid 11437] wait(0xbffff444 <unfinished ...>
[pid 12435] __fpending(0x42135d80, 0x4000af21, 0x40013854, 0x40013e68, 1) = 0
[pid 12435] +++ exited (status 0) +++
--- SIGCHLD (Child exited) ---
<... wait resumed> ) = 12435
sbrk(0) = 0x08051000
free(0x08050298) = <void>

Senko Rasic

unread,
Apr 9, 2004, 6:52:57 AM4/9/04
to
Miroslav Zubcic wrote:
> Plan 9 kernel nije microkernel.

Ali je ostao negdje u zapecku povijesti vise nego razliciti
microkerneli koji se uspjesno koriste ;-)

>>(PS. Ne, Linux moduli NEMAJU veze s microkernelom ;-)
>
> No shit Sherlock!? :-)

A zacudio bi se kakvi komentari znaju iskrsnuti, pa se
cisto ogradjujem ;-)

bernard cupic

unread,
Apr 9, 2004, 8:00:32 AM4/9/04
to
Miroslav Zubcic wrote:
> djo...@croadria.com (Josip Deanovic) writes:
>
>
>>Maleni ispravak potencijalno netočnog navoda... :-)
>
>
> Misliš valjda na potencijalni ispravak ispravka potencijalno netočnog
> navoda?
> ...

Amos jel' ucis? ;-) Nadam se da odgovor nije pretezak ;-))

Miroslav Zubcic

unread,
Apr 9, 2004, 10:19:21 AM4/9/04
to
Senko Rasic <se...@senko.SOMEWHERE-OVER-THE-RAINBOW.net> writes:

> Miroslav Zubcic wrote:

>> Plan 9 kernel nije microkernel.

> Ali je ostao negdje u zapecku povijesti

Nije. Takvi kerneli se more/less danas koriste. Pišu se za njih
driveri itd ...

> vise nego razliciti microkerneli koji se uspjesno koriste ;-)

Na primjer?

Davorin Vlahovic

unread,
Apr 9, 2004, 6:08:34 AM4/9/04
to
["Followup-To:" header set to hr.comp.os.linux.]

On 2004-04-08, Senko Rasic <se...@senko.SOMEWHERE-OVER-THE-RAINBOW.net> wrote:
> Shalu nastranu, svatko tko misli da su microkerneli loshi zasluzuje
> jedan 8502 i par brojeva Mog Mikra pa nek se veseli...
^^^^

Mislis, 6502? :)

--
I've found a great way to fight spammers....if you want to find out how,
mail me at postmaster@localhost ... very very soon, there'll be a reply.
To get my mail just reverse the order. Ie. "ylf" is changed into "fly".

Amos Sam

unread,
Apr 9, 2004, 11:59:42 AM4/9/04
to
> Amos jel' ucis? ;-) Nadam se da odgovor nije pretezak ;-))

Pa sam mislim da od ovog odgovora nesto i razumim :-((!

Ali cini mi se da ili ja nisam dobro objasni ili nitko nije dobro
razumi (prin ce bit ono prvo ;-)) ).

Nije bitno jeli Linux, Win, ili bilo koja x86 platforma.
Ma uopce nije bitna platforma.
Provat cu reformulirati pitanje.

Imamo biranu datoteku koja je izvrsna.
Kad je pokrenes kako operativni sustav (nije bitno dali je to io.sys ili
Linux
kernel niti Windows kernel, vec bilo koji "custom" sustav) "zna" sto
aplikacija salje na obradu i sto ocekuje, te u kojem "formatu" se obavlja
ta "transakcija"??

Nadam se da sam sad bio jasniji.

Ne trebaju mi primjeri nago samo teorija!!

mimix

unread,
Apr 9, 2004, 12:28:46 PM4/9/04
to
On hr.comp.programiranje.c, Amos wrote:
>
> Imamo biranu datoteku koja je izvrsna.
> Kad je pokrenes kako operativni sustav (nije bitno dali je to io.sys ili
> Linux
> kernel niti Windows kernel, vec bilo koji "custom" sustav) "zna" sto
> aplikacija salje na obradu i sto ocekuje, te u kojem "formatu" se obavlja
> ta "transakcija"??
>

Fajl se ucita u memoriju. Iz headera fajla procita se na kojoj
udaljenosti (offset) od pocetka fajla pocinju instrukcije. Ima neka
instrukcija jmp ili kako nesto (ne znam asm) kojom se skoci na prvu
instrukciju i program se izvodi. Eto, tako ja to zamisljam :-)
Naravno, kada se tu uvede multitasking, multithreading, neka memorijska
podrucja... stvari se zakompliciravaju.


--
Milan Mimica
NP:
www.nista-pametno.da.ru

Davorin Vlahovic

unread,
Apr 9, 2004, 12:05:13 PM4/9/04
to
["Followup-To:" header set to hr.comp.os.linux.]
On 2004-04-09, Miroslav Zubcic <miroslav.z...@zesoi.fer.hr> wrote:
>> vise nego razliciti microkerneli koji se uspjesno koriste ;-)
>
> Na primjer?

IIRC, QNX ima microkernel, i dobro mu ide.

Mladen Gogala

unread,
Apr 9, 2004, 2:32:38 PM4/9/04
to
On Fri, 09 Apr 2004 12:44:53 +0200, Miroslav Zubcic wrote:
....
Zanemari moj odgovor gore. U pravu si. Moram reci da je to poprilicno
nestandardno za kernel, ali, ocito, radi onako kako si naveo. Cudno.


--
Mladen Gogala
668: The Neighbour of the Beast.

Bernard Cupic

unread,
Apr 10, 2004, 5:23:34 PM4/10/04
to
Amos Sam wrote:
>>Amos jel' ucis? ;-) Nadam se da odgovor nije pretezak ;-))
>
>
> Pa sam mislim da od ovog odgovora nesto i razumim :-((!
>
> Ali cini mi se da ili ja nisam dobro objasni ili nitko nije dobro
> razumi (prin ce bit ono prvo ;-)) ).
>
> Nije bitno jeli Linux, Win, ili bilo koja x86 platforma.
> Ma uopce nije bitna platforma.
> Provat cu reformulirati pitanje.
>
> Imamo biranu datoteku koja je izvrsna.
> Kad je pokrenes kako operativni sustav (nije bitno dali je to io.sys ili
> Linux
> kernel niti Windows kernel, vec bilo koji "custom" sustav) "zna" sto
> aplikacija salje na obradu i sto ocekuje, te u kojem "formatu" se obavlja
> ta "transakcija"??

Kako ti razumiješ ono što čitaš?
Pa išao si u školu i naučio prepoznavati slova i iz njih slagati riječi i
rečenice. Isto tako postoji jezik koji računalo razumije, a prevoditelj
(kompajler) prevodi jezik koji mi razumijemo u jezik koji računalo razumije.
Nako toga to još linker složi u jednu cjelinu i poveže s dinamičkim
bibliotekama i dobiješ štivo koje računalo razumije. Procesor poznaje osnovni
skup instrukcija i kompejler je preveo nekakav kompleksni kod u niz tih
osnovnih instrukcija koje čine jezik nekog procesora.

Što tu sad nije jasno?
Dečki su otišli u detalje za koje, vjerujem, nisi zainteresiran, ali i iz
toga možeš dosta zaključiti.

Pozdrav.

Miroslav Zubcic

unread,
Apr 9, 2004, 6:35:15 PM4/9/04
to
"Amos Sam" <am...@infokorcula.net> writes:

> Ali cini mi se da ili ja nisam dobro objasni ili nitko nije dobro
> razumi (prin ce bit ono prvo ;-)) ).

Ha?

> Nije bitno jeli Linux, Win, ili bilo koja x86 platforma.
> Ma uopce nije bitna platforma.

???

> Provat cu reformulirati pitanje.

Što ćeš?

> Imamo biranu datoteku koja je izvrsna.

Kako je biraš?

> Kad je pokrenes kako operativni sustav (nije bitno dali je to io.sys ili
> Linux
> kernel niti Windows kernel, vec bilo koji "custom" sustav) "zna" sto
> aplikacija salje na obradu i sto ocekuje, te u kojem "formatu" se obavlja
> ta "transakcija"??

> Nadam se da sam sad bio jasniji.

Nadasve pismen i smislen ...

Stjepan

unread,
Apr 11, 2004, 5:12:21 PM4/11/04
to
ubili ste maloga : )


0 new messages