next up previous contents
Next: Obsługa sygnałów Up: Przenoszenie aplikacji do Linuxa Previous: Przenoszenie aplikacji do Linuxa   Contents

Wstęp

Przenoszenie aplikacji Unix do Linuxa jest dosyć łatwe. Linux i biblioteka GNU C używana przez niego zostały zaprojektowane z myślą o przenośności, rozumiejąc, że wiele aplikacji skompijuje się przez zmianę make. Te, które generalnie nie używają jakichś dziwnych cech lub osobliwych implementacji, lub nie są oparte na nieudokumentowanym lub niezdefiniowanym zachowaniu, powiedzmy, jednego wywołania systemowego powinny działać.

Linux jest w zasadzie zgodny ze standardem IEEE 1003.1-1988 (POSIX.1), jednakże nie ma on obecnie takiego certyfikatu. Linux ma także zaimplementowane wiele cech, które można znaleźć w odmianach Unixa takich jak SVID lub BSD, jednocześnie niekoniecznie jest on zgodny we wszystkich wypadkach. Generalnie, Linux został zaprojektowany aby być kompatybilnym z innymi implementacjami Unixa, aby uczynić przenoszenie aplikacji łatwym; w wielu przypadkach ma poprawione lub unowocześnione zachowanie znajdywane w innych implementacjach.

Dla przykładu, argument timeout przekazywany wywołaniu systemowemu select jest zmniejszany podczas działania przez Linuxa. Inne implementacje nie zmieniają tej wartości, a aplikacje, które nie spodziewają się takiego działania mogą się załamać po przeniesienu na Linuxa. Strony podręcznika w BSD i SunOS ostrzegają, że w przyszłości implementacja wywołania select może modyfikować argument timeout. Niestety, wiele aplikacji zakłada, iż wartość pozostanie nienaruszona.

Celem tego dokumentu jest przedstawienie głównych zagadnień związanych z przenoszeniem aplikacji pod Linuxa, podkreślając róznice między Linuxem, POSIX.1 oraz SVID i BSD w następujących obszarach: obsługa sygnałów, I/O terminala, kontrola procesów, zbieranie informacji i przenośna warunkowa kompilacja (portable conditional compilation).


next up previous contents
Next: Obsługa sygnałów Up: Przenoszenie aplikacji do Linuxa Previous: Przenoszenie aplikacji do Linuxa   Contents

2000-03-01


Poltronic