Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

[Mreze racunala] Nativno rjesenje za Sockets API pod win32

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji siročići (oni koji nemaju svoj podforum) -> Računarski kolegiji
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Bubba
Forumaš s poteškoćama u pisanju
Forumaš s poteškoćama u pisanju


Pridružen/a: 17. 11. 2006. (18:09:12)
Postovi: (53)16
Spol: muško
Sarma = la pohva - posuda
10 = 27 - 17

PostPostano: 23:28 uto, 28. 10. 2008    Naslov: [Mreze racunala] Nativno rjesenje za Sockets API pod win32 Citirajte i odgovorite

Pozdrav svima,

predpostavljam da ce se, ako vec i nije (jer nisam bio na zadnjim vjezbama), poceti raditi Sockets API. Na sluzbenim stranicama dana su odredjena [url=http://web.math.hr/nastava/mreze/linkovi.php]rjesenja[/url]za omogucavanje Sockets API-ja pod Windowsima, no drzim da su sva nepotrebna.

Mali, kratki i sazeti background citave price - iako je, logicno, win32 primarni environment subsystem na Windowsima, nije i *jedini*. Koncepcijski, od najranijeg doba razvoja NT dizajna, zamisljena i implementirana su tri environment - win32, POSIX i OS/2. Windowsi 2000 imaju poprilicno okrljasenu verziju POSIX i OS/2 subsystema sa on-demand loadingom (call sa odgovarajucim flagom u PE headeru) ali u NT 5.1+ isti su maknuti zbog security issueova; ipak, Microsoft nudi besplatan paket, tzv. Services for Unix.

Services for Unix
[url=http://technet.microsoft.com/en-us/interopmigration/bb380242.aspx]Technet[/url]
[url=http://www.microsoft.com/downloadS/details.aspx?familyid=896C9688-601B-44F1-81A4-02878FF11778&displaylang=en]Preuzimanje [217.6 MB][/url]
[url=http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX]Wikipedia[/url]

Sam paket je puno mocniji i (inter)operabilniji nego sto ova potreba zahtijeva, no svi potrebni libraryji i ostale sistemske datoteke koje bi vam mogle biti potrebne ukljucene su u paket. Paket je dostupan za gotovo sve recentnije NT-noidne sustave, kao i na Visti. Instalacija je prilicno jednostavna, a ako vas ostali paketi ne interesiraju i nisu vam potrebni (sto je vjerojatno stvar), potrebno je izabrati "Custom" instalaciju i odabrati samo "Interx GNU Components" te instalirati citav paket.

[URL=http://www.imagesforme.com/show.php/203247_sfuinstall1.png][img]http://www.imagesforme.com/out.php/t203247_sfuinstall1.png[/img][/URL]

Dakle, bitna napomena je da ovo *nije* nikakva emulacija ili bilo sto slicno kao sto su wine, cygwin i slicna rjesenja. Na Windowsima je takva mogucnost napravljena "by design", uvodjenjem koncepta nativnog subsystema (ntdll.dll). Takodjer, koliko primjecujem, sama procedura je laksa (sto po tehnickoj snalazljivosti, sto po "tezini" u preuzetim megabajtima), jedonstavnija i usudio bih se reci - bolja!

Umalo zaboravih - postoje odredjeni problemi na relaciji [url=http://en.wikipedia.org/wiki/Data_Execution_Prevention]DEP[/url] - gcc (i jos koji paketi Interxa, no za ovu pricu nije ni bitno); najjednostavnije rjesenje te ujedino i moja generalna preporuka (koja zapravo seze i dalje od ovog slucaja) je da DEP kao takav iskljucite jer se u velikom broju slucajeva predstavlja kao nepotrebno breme i niskoristi. [url=http://msdn.microsoft.com/en-us/library/ms791539.aspx]Ovdje[/url] je opisano kako se pozabaviti gasenjem istog (alwaysoff opcija). Ipak, ako nekome DEP znaci stogod u zivotu, [url=http://www.suacommunity.com/forum/tm.aspx?m=11769]ovdje[/url] je pak objasnjeno kako se pozabaviti real time gasenjem DEP-a za trenutno pokrenute procese (malo tricky, ali radi).

Evo jedan primjercic kako to zapravo radi:

[URL=http://www.imagesforme.com/show.php/203256_sfurezultat.png][img]http://www.imagesforme.com/out.php/t203256_sfurezultat.png[/img][/URL]

Kratak recap je - nativno, besplatno i jednostavno Windows rjesenje za vase Sockets API poduhvate pod Windowsima. Mozete zadrzati sav productivity set aplikacija (IDE i slicno) s Windowsa, samo imajte na umu da morate kompajlirati preko gcc-a u SFU paketu.

Ako se nekome ovo rjesenje ucini zgodnijim a naleti na probleme, forum posjecujem rijetko pa me hvatajte na bubba (at) banelli (dot) biz.

HTH,

Bubba
Pozdrav svima,

predpostavljam da ce se, ako vec i nije (jer nisam bio na zadnjim vjezbama), poceti raditi Sockets API. Na sluzbenim stranicama dana su odredjena rjesenjaza omogucavanje Sockets API-ja pod Windowsima, no drzim da su sva nepotrebna.

Mali, kratki i sazeti background citave price - iako je, logicno, win32 primarni environment subsystem na Windowsima, nije i *jedini*. Koncepcijski, od najranijeg doba razvoja NT dizajna, zamisljena i implementirana su tri environment - win32, POSIX i OS/2. Windowsi 2000 imaju poprilicno okrljasenu verziju POSIX i OS/2 subsystema sa on-demand loadingom (call sa odgovarajucim flagom u PE headeru) ali u NT 5.1+ isti su maknuti zbog security issueova; ipak, Microsoft nudi besplatan paket, tzv. Services for Unix.

Services for Unix
Technet
Preuzimanje [217.6 MB]
Wikipedia

Sam paket je puno mocniji i (inter)operabilniji nego sto ova potreba zahtijeva, no svi potrebni libraryji i ostale sistemske datoteke koje bi vam mogle biti potrebne ukljucene su u paket. Paket je dostupan za gotovo sve recentnije NT-noidne sustave, kao i na Visti. Instalacija je prilicno jednostavna, a ako vas ostali paketi ne interesiraju i nisu vam potrebni (sto je vjerojatno stvar), potrebno je izabrati "Custom" instalaciju i odabrati samo "Interx GNU Components" te instalirati citav paket.



Dakle, bitna napomena je da ovo *nije* nikakva emulacija ili bilo sto slicno kao sto su wine, cygwin i slicna rjesenja. Na Windowsima je takva mogucnost napravljena "by design", uvodjenjem koncepta nativnog subsystema (ntdll.dll). Takodjer, koliko primjecujem, sama procedura je laksa (sto po tehnickoj snalazljivosti, sto po "tezini" u preuzetim megabajtima), jedonstavnija i usudio bih se reci - bolja!

Umalo zaboravih - postoje odredjeni problemi na relaciji DEP - gcc (i jos koji paketi Interxa, no za ovu pricu nije ni bitno); najjednostavnije rjesenje te ujedino i moja generalna preporuka (koja zapravo seze i dalje od ovog slucaja) je da DEP kao takav iskljucite jer se u velikom broju slucajeva predstavlja kao nepotrebno breme i niskoristi. Ovdje je opisano kako se pozabaviti gasenjem istog (alwaysoff opcija). Ipak, ako nekome DEP znaci stogod u zivotu, ovdje je pak objasnjeno kako se pozabaviti real time gasenjem DEP-a za trenutno pokrenute procese (malo tricky, ali radi).

Evo jedan primjercic kako to zapravo radi:



Kratak recap je - nativno, besplatno i jednostavno Windows rjesenje za vase Sockets API poduhvate pod Windowsima. Mozete zadrzati sav productivity set aplikacija (IDE i slicno) s Windowsa, samo imajte na umu da morate kompajlirati preko gcc-a u SFU paketu.

Ako se nekome ovo rjesenje ucini zgodnijim a naleti na probleme, forum posjecujem rijetko pa me hvatajte na bubba (at) banelli (dot) biz.

HTH,

Bubba


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
venovako
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2002. (22:46:38)
Postovi: (2F9)16
Sarma = la pohva - posuda
56 = 65 - 9

PostPostano: 0:37 sri, 29. 10. 2008    Naslov: Citirajte i odgovorite

Mozda jos jedan prijedlog...

Winsock API vise-manje prati POSIX socket-e, do na malo gnjavaze oko inicijalizacije i cleanup-a.

Uz fino poslozene #ifdef-ove moze se natjerati program da se kompajlira i radi na *nix i Windows sustavima koristeci u oba slucaja nativne API-e.

[url=http://web.studenti.math.hr/~venovako/oldOS.zip]Ovdje[/url] su dvije moje davnasnje zadace iz Operacijskih sustava (sigurno lose napisane i pune bugova) koje ilustriraju receno, samo uzmite u obzir da se to kompajliralo na starom PA-RISC studentu i nemustom C++ kompajleru pa su #include direktive malo cudne.
Mozda jos jedan prijedlog...

Winsock API vise-manje prati POSIX socket-e, do na malo gnjavaze oko inicijalizacije i cleanup-a.

Uz fino poslozene #ifdef-ove moze se natjerati program da se kompajlira i radi na *nix i Windows sustavima koristeci u oba slucaja nativne API-e.

Ovdje su dvije moje davnasnje zadace iz Operacijskih sustava (sigurno lose napisane i pune bugova) koje ilustriraju receno, samo uzmite u obzir da se to kompajliralo na starom PA-RISC studentu i nemustom C++ kompajleru pa su #include direktive malo cudne.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji siročići (oni koji nemaju svoj podforum) -> Računarski kolegiji Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan