Podgląd pojedynczego posta
Stary 26.09.2012, 07:41   #4
sobrus
Jukebox Hero
 
Avatar użytkownika sobrus
 
Data rejestracji: 17.09.2004
Lokalizacja: Back for the Attack
Posty: 10,800
sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>
M@X, co dokładnie masz na myśli mówiąc "ini, rejestr i DLL Hell".
Uzywałem Windows wiele lat i się z tym ostatnim nie spotkałem.
Ini i rejestr to norma, linuks wcale nie jest lepszy, a nawet ma jeszcze gorzej.
Ustawienia mogą być w:

/etc
/home/.config
/home/nazwa_programu
gconf (to taki rejestr, zależy jakiego środowiska używamy. gconf jest dla gnome, inne środowiska mają swoje)

a może nawet jeszcze gdzieś. A "dll-hell" przy "dependency hell" to raj.

A biblioteka moze być w linuksie w jednej wersji, o ile wersja nie jest nazwą pakietu/pliku. Np libavcodec53 i libavcoded54 mogą współistnieć, ale już glibc jest obowiązkowo w jednej wersji.
Ale w obrębie libavcodec53 też są wersję, więc wcale nie jest tak różowo. Jeżeli programowi nie odpowiada - to nalezy go przekompilować :/ A nie zawsze sie da - czasem trzeba wprowadzić poprawki w źródle. Stare wersje pakietów wypadają z repozytorium. Dla developera to masakra. Wyobraźmy sobie Adobe wydające darmowe update każdej nowej i starej wersji co pół roku i dla każdej dystrybucji.

Drzewa zależności załatwiają większość sprawy. Ale nie wszystko. Nie zawsze są dobrze ułożone. Czasem spełnienie zależności nie jest możliwe np. ze względu na konflikt z innym programem. Czasem wywalenie pakietu nie będącego w zależnościach może uwalić program, czasem program instaluje syf którego wcale nie potrzebuje (to jest zgłaszane jako bugi).
I zostaje problem starych pakietów, powiedzmy libavcodec51 które już nie są używane, ale zostały kiedyś zainstalowane (są programy do ich wynajdywania, ale nie zawsze ich usuwanie jest bezpieczne).

Co do OSX to nie wiem dokładnie jak działa, ale być może tak jak PCBSD - wszystkie wymagane biblioteki są instalowane do katalogu z programem w wersjach które ten program wymaga. Oznacza to że możemy mieć w systemie 50 wersji tej samej biblioteki, ale to poniekąd strata miejsca i stare programy nie skorzystają z nowych (np szybszych).
Windows wprowadził cos takiego jak WinSxS. W tym katalogu trzymane są właśnie m.in biblioteki w różnych wersjach.

Problem z rozwiązaniem PCBSD to też np. licencja. Nie wolno załączać kodu będącego własnością innej firmy do swojego programu.

Każdy kij ma dwa końce - Linuks zajmuje 4GB i programy zasuwają, bo zawsze maja najnowsze biblioteki skompilowane najnowszym kompilatorem (a gcc naprawde jest świetny i coraz lepszy pod względem wydajności), a Windows zajmuje 20GB i działa tak-sobie, bo odpalanie 10 letniego kodu na najnowszym procesorze nie jest optymalne. Ale za to nie ma dependency hell.

O działaniu OSX nie wiem praktycznie nic.

Ostatnio zmieniany przez sobrus : 26.09.2012 o godz. 08:09
sobrus jest offline   Odpowiedz cytując ten post