• 2 odgovora
  • 4.494 pregleda
Kernel Module + Socket 22.07.2002. u 15:49 · pre 295 meseci #1
Imam jedan mali problem:

Pravim neki Linux Kernel modul. Kako da kreiram TCP/IP socket iz njega.
Naso sam neku dokumentaciju, u kojoj kaze da se koristi fajs sys/socketcall.h i procedura socketcall(). Imam kernel 2.4.2.

Unapred hvala!
Potpis
Sad ja znam zašto sam vam ovo ispričao, ovo će sigurno nekome koristiti....
Re: Kernel Module + Socket 23.07.2002. u 22:27 · pre 295 meseci #2
Posto ne znam vise detalja sto radis, evo ti obajsnjenje jedno.
Kako vjerovatno znas postoje dva space, user i kernel. Neka krenemo od user levela (zboh pojasnjenja). Program krene izvrsavati socket(), bind() ili connect(). To se predaje kernel strani pomocu sys_socketcall(), koja je locirana u /usr/src/linux/net/socket.c. Ta funkcija uzima argumente i selektira ekivalentne funkcije koje je user pozvao. Npr., ako je user pozvao socket() funkciju, sys_socketcall() ce prebaciti controlu sys_socket() funkciji.

sys_socket() funkcija je odgovorna za kreiranje memorije za novu socket strukuturu and inicijalizaciju nekih varijabli. U zavisnosti od vrste socketa, dodjeluje ops pointer relevantnoj proto_ops strukturi. proto_ops struktutra zadrzava function pointere za vrstu socketa koje razliicite funkcije su potrebne socketu.
Znaci, ako kennel treba kreirati sockete, koristi sys_socket(), sys_lister(), sys_bind(), a sysconnectcall() sluzi za vezu user i kernel spacea.

--br

papak
Re: Kernel Module + Socket 24.07.2002. u 15:22 · pre 295 meseci #3
OK, jasno, to je ono sto mi treba.
Potpis
Sad ja znam zašto sam vam ovo ispričao, ovo će sigurno nekome koristiti....
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme