GNU w relacji z Linuksem
Monday, 24. September 2007, 22:27:35
Co to jest Linux? Co to jest GNU? Co to jest GNU/Linux (czytane gnu slesz linuks)? W świecie FLOSS to są bardzo poważne, wręcz zasadnicze pytania. Zacznijmy od tego, czym jest system operacyjny.
Jedna z definicji jest taka, że systemem operacyjnym jest to oprogramowanie, które pośredniczy między konkretną aplikacją, a hardware'em. Ciekawe w tej definicji jest to, że dla dwóch różnych aplikacji działających na tym samym komputerze mogą istnieć dwa różne systemy operacyjne. Jednej aplikacji wystarczy standardowe wyjście dla tekstu, inna poprosi jeszcze o interpreter Javy i biblioteki graficzne.
Można na tej bazie stworzyć inną definicję, że systemem operacyjnym jest zbiór będący sumą systemów operacyjnych według definicji bazowej. Problem w tym, że w tym wypadku trzeba określić skończony zbiór typowych aplikacji. Jest to jednak najbardziej wygodna definicja, więc właśnie nią się posługuję. Normalnego człowieka interesuje tylko to, jakie aplikacje może na danym systemie odpalić, względnie jak sprawnie owe aplikacje będą działać. Nic więcej.
Może jeszcze jedna definicja, tym razem z innej prerspektywy. Systemem operacyjnym jest zbiór oprogramowania, na który składa się jądro, podstawowe sterowniki, powłoka (ablo powłoki), biblioteki standardowe i podstawowe narzędzia konfiguracyjne. Kolejna, bardzo nieprecyzyjna definicja. W każdym razie będzie mi potrzebna później, ponieważ wymienia wszystkie elementy, z jakich system operacyjny się składa. Warto zauważyć, że praktycznie jądro i powłoka implikują pozostałe elementy.
Może teraz trochę historii. Wiele lat temu rozpoczęto projekt stworzenia wolnego systemu operacyjnego o nazwie GNU. To były wczesne lata '80. Na początku lat '90 ów system był prawie gotowy, ale brakowało mu najważniejszej części - jądra. Ważna uwaga, w ówczesnych czasach system operacyjny nie musiał mieć powłoki graficznej, której projekt GNU nie zapewniał. Przypadkiem ktoś jednak stworzył sobie wtedy jądro systemu operacyjnego, które okazało się nawet całkiem sprawne. Inni ludzie dodali do niego liczne programy z projektu GNU i tak powstał system zwany GNU/Linux (ten / w środku należy czytać) albo System GNU z jądrem Linux. Zaznaczam, że nie było trybu graficznego.
Warto odnotować, że Microsoft dopiero w XXI wieku wprowadził do domów system operacyjny, który nie bazował na jądrze DOSu. Czym więc było to coś zwane MS Windows, co królowało w późniejszych latach '90? Systemem operacyjnym, czy tylko graficzną nakładką, powłoką na niego?
Oczywiście system GNU/Linux też postanowo udoskonalić dodając mu środowisko graficzne. Wybór padł na X Windows, projekt niezależny od GNU. Oczywiście trzeba było jeszcze dodać trochę dodatkowych bibliotek do tworzenia okienek i guziczków. Tutaj twórcy nie byli jednomyślni i powstało kilka rozwiązań, z których dwa najpopularniejsze to Gnome i KDE, te pierwsze związane z projektem GNU, drugie już nie.
Sprawdziłem na dwóch komputerach z systemami na jądrach Linuks w konsolach tekstowych, jak się nazywa system operacyjny, na jakim pracują. Oba przypadki zwróciły mi nazwę GNU/Linux. W sumie mogę się nawet z tym zgodzić. Właściwie to nawet muszę. Ale co mamy w trybie graficznym? Tutaj zdania są bardzo podzielone.
1. Uznać, że powłoka graficzna jest tak mało istotna, że nie zmusza do zmiany nazwy systemu. Istotna jest tylko powłoka tekstowa.
2. Uznać, ze powłoka graficzna jest tak istotna, że sama powinna implikować nazwę systemu.
3. Uznać, że nazwę systemeu należy wybrać ze względu na jądro i podstawową powłokę.
4. Uznać, że nazwę systemu powinni wybrać ludzie, którzy poskładali wszystkie niezbędne elementy w spójną całość.
5. Uznać, że system operacyjny nazywa się tak, jak go ludzie nazywają.
Gdyby pierwsza koncepcja była prawdziwa, znaczna część oprogramowania miałaby w wymaganiach napisane system operacyjny Alfa z powłoką graficzną Beta. Poszukiwano by całkiem często programistów znających system operacyjny Alfa z powłoką graficzną Beta. Ludzie by kupowali często komputery z zainstalowanym systemem operacyjnym Alfa z powłoką graficzną Beta. Cóż, w obecnych czasach powłoka graficzna jest istotna i nie da się temu zaprzeczyć. Podsumowując, system operacyjny nazywałby się wtedy de facto Alfa z powłoką graficzną Beta.
Kolejna z koncepcji jest bardziej trafna. Czasami mówi się nawet o poszukiwaniu aplikacji, która pracuje w danej powłoce, a nie wspomina się przy tym o jądrze. Cóż, programowanie wielu aplikacji to w sumie głównie programowanie pod powłokę. Jednak są wyjątki, dość liczne, które obalają ową koncepcję.
Kiedy dochodzimy do aplikacji wymagających większej wydajności, trzeba bardziej dobrać się do sprzętu, a wtedy bardziej bezpośredni dostęp do sprzętu zaczyna robić programiście dużą różnicę. Zasadniczo jądro i powłoka graficzna implikują w dzisiejszych czasach większość pozostałych składników systemu operacyjnego, więc może i trzecia koncepcja jest trafna. Dla formalności, w przypadku środowisk graficznych człon GNU, jeśli coś implikuje, to będzie to Gnome.
Wróćmy do Microsoftu. Firma na przełomie tysiącleci w swoim sztandarowym systemie operacyjnym zmieniła jądro, wymusiła nowe sterowniki, a zachowała starą nazwę handlową. Oczywiście zapewniła zgodność z wieloma starszymi aplikacjami. Podobnie, trochę później zrobiła też firma Apple. Cóż, wymieniono wiele, ale ze względu na zachowanie zgodności z dotychczasowymi aplikacjami zachowano dotychczasowe nazwy.
Jeśli chodzi o systemy na jądrze Linux, pochodzą one od wielu różnych producentów, a uruchamiają podobne zestawy aplikacji, czyli są to różne dystrybucje tego samego systemu operacyjnego. Różnią się trochę zastosowanym oprogramowaniem. Oczywiście każda z nich ma swoją unikalną nazwę, część zaś dodatkowo zawiera gdzieś człon GNU/Linux, część Linux, a część dystrybucji jakoś specjalnie o tym nie wspomina. Czyli punkt czwarty nie prowadzi w tym wypadku do konkretnych wniosków.
Większość ludzi nazywa te systemy po jądrze. W sumie jest to jedyny ich stały element. Tylko czy założenie, że większość ma racje, jest słuszne?
Cóż, jako że nie wiem, jak inaczej nazwać system oparty o jądro Linux, który zawiera powłoki Gnome i KDE, powłokę Bash, Javę Suna, Wine i parę innych rzeczy, uwzględniając przy tym jeszcze, że część z tych rzeczy nie była zawarta w oficjalnej dystrybucji, mogę przychylić się do zdania większości. Aczkolwiek, jako że jedna z powłók musi być domyślna, mogę też mówić o Linuksie z KDE.
Jedna z definicji jest taka, że systemem operacyjnym jest to oprogramowanie, które pośredniczy między konkretną aplikacją, a hardware'em. Ciekawe w tej definicji jest to, że dla dwóch różnych aplikacji działających na tym samym komputerze mogą istnieć dwa różne systemy operacyjne. Jednej aplikacji wystarczy standardowe wyjście dla tekstu, inna poprosi jeszcze o interpreter Javy i biblioteki graficzne.
Można na tej bazie stworzyć inną definicję, że systemem operacyjnym jest zbiór będący sumą systemów operacyjnych według definicji bazowej. Problem w tym, że w tym wypadku trzeba określić skończony zbiór typowych aplikacji. Jest to jednak najbardziej wygodna definicja, więc właśnie nią się posługuję. Normalnego człowieka interesuje tylko to, jakie aplikacje może na danym systemie odpalić, względnie jak sprawnie owe aplikacje będą działać. Nic więcej.
Może jeszcze jedna definicja, tym razem z innej prerspektywy. Systemem operacyjnym jest zbiór oprogramowania, na który składa się jądro, podstawowe sterowniki, powłoka (ablo powłoki), biblioteki standardowe i podstawowe narzędzia konfiguracyjne. Kolejna, bardzo nieprecyzyjna definicja. W każdym razie będzie mi potrzebna później, ponieważ wymienia wszystkie elementy, z jakich system operacyjny się składa. Warto zauważyć, że praktycznie jądro i powłoka implikują pozostałe elementy.
Może teraz trochę historii. Wiele lat temu rozpoczęto projekt stworzenia wolnego systemu operacyjnego o nazwie GNU. To były wczesne lata '80. Na początku lat '90 ów system był prawie gotowy, ale brakowało mu najważniejszej części - jądra. Ważna uwaga, w ówczesnych czasach system operacyjny nie musiał mieć powłoki graficznej, której projekt GNU nie zapewniał. Przypadkiem ktoś jednak stworzył sobie wtedy jądro systemu operacyjnego, które okazało się nawet całkiem sprawne. Inni ludzie dodali do niego liczne programy z projektu GNU i tak powstał system zwany GNU/Linux (ten / w środku należy czytać) albo System GNU z jądrem Linux. Zaznaczam, że nie było trybu graficznego.
Warto odnotować, że Microsoft dopiero w XXI wieku wprowadził do domów system operacyjny, który nie bazował na jądrze DOSu. Czym więc było to coś zwane MS Windows, co królowało w późniejszych latach '90? Systemem operacyjnym, czy tylko graficzną nakładką, powłoką na niego?
Oczywiście system GNU/Linux też postanowo udoskonalić dodając mu środowisko graficzne. Wybór padł na X Windows, projekt niezależny od GNU. Oczywiście trzeba było jeszcze dodać trochę dodatkowych bibliotek do tworzenia okienek i guziczków. Tutaj twórcy nie byli jednomyślni i powstało kilka rozwiązań, z których dwa najpopularniejsze to Gnome i KDE, te pierwsze związane z projektem GNU, drugie już nie.
Sprawdziłem na dwóch komputerach z systemami na jądrach Linuks w konsolach tekstowych, jak się nazywa system operacyjny, na jakim pracują. Oba przypadki zwróciły mi nazwę GNU/Linux. W sumie mogę się nawet z tym zgodzić. Właściwie to nawet muszę. Ale co mamy w trybie graficznym? Tutaj zdania są bardzo podzielone.
1. Uznać, że powłoka graficzna jest tak mało istotna, że nie zmusza do zmiany nazwy systemu. Istotna jest tylko powłoka tekstowa.
2. Uznać, ze powłoka graficzna jest tak istotna, że sama powinna implikować nazwę systemu.
3. Uznać, że nazwę systemeu należy wybrać ze względu na jądro i podstawową powłokę.
4. Uznać, że nazwę systemu powinni wybrać ludzie, którzy poskładali wszystkie niezbędne elementy w spójną całość.
5. Uznać, że system operacyjny nazywa się tak, jak go ludzie nazywają.
Gdyby pierwsza koncepcja była prawdziwa, znaczna część oprogramowania miałaby w wymaganiach napisane system operacyjny Alfa z powłoką graficzną Beta. Poszukiwano by całkiem często programistów znających system operacyjny Alfa z powłoką graficzną Beta. Ludzie by kupowali często komputery z zainstalowanym systemem operacyjnym Alfa z powłoką graficzną Beta. Cóż, w obecnych czasach powłoka graficzna jest istotna i nie da się temu zaprzeczyć. Podsumowując, system operacyjny nazywałby się wtedy de facto Alfa z powłoką graficzną Beta.
Kolejna z koncepcji jest bardziej trafna. Czasami mówi się nawet o poszukiwaniu aplikacji, która pracuje w danej powłoce, a nie wspomina się przy tym o jądrze. Cóż, programowanie wielu aplikacji to w sumie głównie programowanie pod powłokę. Jednak są wyjątki, dość liczne, które obalają ową koncepcję.
Kiedy dochodzimy do aplikacji wymagających większej wydajności, trzeba bardziej dobrać się do sprzętu, a wtedy bardziej bezpośredni dostęp do sprzętu zaczyna robić programiście dużą różnicę. Zasadniczo jądro i powłoka graficzna implikują w dzisiejszych czasach większość pozostałych składników systemu operacyjnego, więc może i trzecia koncepcja jest trafna. Dla formalności, w przypadku środowisk graficznych człon GNU, jeśli coś implikuje, to będzie to Gnome.
Wróćmy do Microsoftu. Firma na przełomie tysiącleci w swoim sztandarowym systemie operacyjnym zmieniła jądro, wymusiła nowe sterowniki, a zachowała starą nazwę handlową. Oczywiście zapewniła zgodność z wieloma starszymi aplikacjami. Podobnie, trochę później zrobiła też firma Apple. Cóż, wymieniono wiele, ale ze względu na zachowanie zgodności z dotychczasowymi aplikacjami zachowano dotychczasowe nazwy.
Jeśli chodzi o systemy na jądrze Linux, pochodzą one od wielu różnych producentów, a uruchamiają podobne zestawy aplikacji, czyli są to różne dystrybucje tego samego systemu operacyjnego. Różnią się trochę zastosowanym oprogramowaniem. Oczywiście każda z nich ma swoją unikalną nazwę, część zaś dodatkowo zawiera gdzieś człon GNU/Linux, część Linux, a część dystrybucji jakoś specjalnie o tym nie wspomina. Czyli punkt czwarty nie prowadzi w tym wypadku do konkretnych wniosków.
Większość ludzi nazywa te systemy po jądrze. W sumie jest to jedyny ich stały element. Tylko czy założenie, że większość ma racje, jest słuszne?
Cóż, jako że nie wiem, jak inaczej nazwać system oparty o jądro Linux, który zawiera powłoki Gnome i KDE, powłokę Bash, Javę Suna, Wine i parę innych rzeczy, uwzględniając przy tym jeszcze, że część z tych rzeczy nie była zawarta w oficjalnej dystrybucji, mogę przychylić się do zdania większości. Aczkolwiek, jako że jedna z powłók musi być domyślna, mogę też mówić o Linuksie z KDE.
By grizzly3, # 25. September 2007, 08:59:48
By Big_Z, # 25. September 2007, 14:11:43