🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.sys.pc-unix
4 messages
4 total messages Started by as... Adam Salamon Tue, 05 Dec 1995 00:00
Polecenie ps pod Unix-em
#64
Author: as... Adam Salamon
Date: Tue, 05 Dec 1995 00:00
11 lines
923 bytes
Jakis czas temu napisalem pewien program w C, ktory wywolywal (poprzez
funkcje system) program ps. Obecnie chcialbym program zmodyfikowac i
odczytywac liste procesow na wlasna reke. Stad moje pytanie: jak wlasciwie
dziala polecenie ps (skad wie, jakie procesy sa w systemie)? Zauwazylem,
ze w niektorych implementacjach Unix-a program ps ma ustawiony bit 's',
natomiast w innych (np. Linux) - nie. Na czym polega roznica w
implementacji?

Jesli ktos cos wie na ten temat, prosze o odpowiedz.

Adam Salamon (as...@bull.mimuw.edu.pl)
Re: Polecenie ps pod Unix-em
#65
Author: pio... Piotr Auksztulewicz
Date: Tue, 05 Dec 1995 00:00
32 lines
2217 bytes
Adam Salamon (as...@bull.mimuw.edu.pl) wrote:
> Jakis czas temu napisalem pewien program w C, ktory wywolywal (poprzez
> funkcje system) program ps. Obecnie chcialbym program zmodyfikowac i
> odczytywac liste procesow na wlasna reke. Stad moje pytanie: jak wlasciwie

To sie nie oplaca. Po pierwsze narobisz sie jak glupi (o ile nie jest to
system, ktory ma pseudo-filesystem /proc), po drugie kod bedzie nieprzenosny.

> dziala polecenie ps (skad wie, jakie procesy sa w systemie)? Zauwazylem,
> ze w niektorych implementacjach Unix-a program ps ma ustawiony bit 's',
> natomiast w innych (np. Linux) - nie. Na czym polega roznica w
> implementacji?

W niektorych systemach (Linux) jest pseudo-filesystem /proc. Udaje on
w postaci hierarchii katalogow/plikow struktury danych jadra, takie jak
tablica procesow, tablica otwartych plikow, tablica segmentow pamieci itp.
Sprawdzajac zawartosci odpowiednich katalogow/plikow mozna sie dowiedziec
(prawie) wszystkiego o systemie. W takim systemie ps nie ma 's-ki', bo
prawa dostepu do plikow reprezentujacych procesy sa tak ustawione, ze
kazdy je moze czytac.
W pozostalych systemach ps dostaje sie do tablicy procesow zagladajac
do przestrzeni adresow jadra poprzez urzadzenie /dev/mem (lub odpowiednik,
np. na Ultrix-ie jest to /dev/drum (???!!)). Musi miec wtedy 's-ke', bo
prawa do /dev/mem sa ustawione na 600 (a co by bylo, jakby ustawic 666?)
Gdzie jest tablica procesow ps dowiaduje sie czytajac tablice symboli
z pliku wykonywalnego zawierajacego jadro (np. /vmunix). Jak sie nazywa
zmienna zawierajaca tablice procesow i jaka jest struktura tablicy
procesow, to juz zalezy od systemu.

----
Piotr Auksztulewicz                 pio...@zeus.polsl.gliwice.pl
Centrum Komputerowe Politechniki Slaskiej, Gliwice, Akademicka 16
Re: Polecenie ps pod Unix-em
#66
Author: j... Jan Rychter
Date: Tue, 05 Dec 1995 00:00
17 lines
1248 bytes
Adam Salamon (as...@bull.mimuw.edu.pl) napisal:
: Stad moje pytanie: jak wlasciwie
: dziala polecenie ps (skad wie, jakie procesy sa w systemie)? Zauwazylem,
: ze w niektorych implementacjach Unix-a program ps ma ustawiony bit 's',
: natomiast w innych (np. Linux) - nie. Na czym polega roznica w
: implementacji?

Michal Jankowski juz Ci wlasciwie odpowiedzial, ja dodam tylko ze jak
chcesz sie dokladnie przyjrzec z jakich plikow ps to czyta, to
przydatne bedzie polecenie strace (pod Linuxem) badz truss (pod
Solarisem). E.g. robisz strace ps - przygladasz sie temu co wychodzi
:)

jwr
_______________________________________________________________________
Jan Rychter                                           j...@itc.pw.edu.pl
http://www.itc.pw.edu.pl/~jwr                            j...@icm.edu.pl
Re: Polecenie ps pod Unix-em
#67
Author: Michal.J... Michal Jankowski
Date: Tue, 05 Dec 1995 00:00
5 lines
622 bytes
ps albo czyta informacje o procesach z pseudofilesystemu /proc
(Solaris, linux), albo z kernela (i wtedy musi miec dostep do pamieci
kernela, stad suid vel sgid)...

  MJ
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads