[so] Suport pentru sisteme UNIX non-Linux

Dan Filimon dangeorge.filimon at gmail.com
Fri Apr 13 22:19:04 EEST 2012


Știu că la SO materia este centrată pe Windows și Linux.

Însă, având în vedere că pe Linux studiem API-ul POSIX, cred c-ar fi o
idee bună să nu fie folosite Linuxisme care să prevină funcționarea
temelor pe sisteme UNIX non-Linux. Și aici mă refer la Mac OS X,
diferite *BSD-uri, Solaris...

Spre exemplu, eu folosesc un Mac și marea majoritate a
funcționalității POSIX e implementată pe OS X.
Tema 1 a mers fără probleme pe OS X fără modificări față de Linux.
La tema 2, lucrurile n-au mai stat așa de bine fiindcă aparent cozile
de mesaje POSIX nu sunt suportate în OS X (cele SysV sunt...
surprinzător).

Tema 3 e tema despre care aș vrea să atrag atenția fiindcă testează
explicit în cod prezenția define-ului __linux__ în headere. Sunt
complet de acord că alte sisteme de operare nu sunt suportate, dar aș
propune ca acolo unde nu există o justificare pentru genul ăsta de
verificări, ele să nu fie puse.

Fac portabilitatea între platforme mai dificilă și cred că
portabilitatea e un lucru bun, mai ales cănd nu trebuie muncit prea
mult pentru ea.

Astea fiind zise, de exemplu OS X emite un semnal SIGBUS (10) la un
acces invalid când Linux ar emite SIGSEGV (11) și asta ar însemna că
trebuie modificat codul din tester care adaugă handlerul de tratare
SIGSEGV. Nu cer așa ceva (deși ar fi drăguț de avut... :)

Aș vrea cum spuneam, doar să nu se facă verificări explicite pentru
Linux ca să nu umplu codul de #ifdef-uri.

Mulțumesc!


More information about the so mailing list