Jeżeli pragniesz poznać Linuksa Mandrake (obecnie Mandriva), to... dobrze trafiłeś. Witryna została zauważona przez twórców magazynu KOMPUTER ŚWIAT 5/2004(141) str. 46 poprzez umieszczenie linku oraz magazynu CHIP 4/2004 (str.114) poprzez umieszczenie artykułu opisującego ten serwis internetowy. Jak na hobbystyczną stronę o Linuksie to miłe ;) Acha... na stronie mandrakelinux.pl/informacje podano też link z opisem cytuję "duży zbiór praktycznych informacji o Mandrake" (mam ją w swoim archiwum - klub.chip.pl/twarogal).
Zapraszam do zadawania pytań na FORUM oraz mailem. Chętnie udzielę (bezpłatnie) odpowiedzi. Oficjalne ceny za jedną poradę na stronie MandrakeSoftPL (mam ją w moim archiwum z dnia 2.05.2004) wahają się od 20 do 350 zł.
Problem okienek w Linuksie jest bardzo rozległy,
więc informuję, że będę zajmował się nim wybiórczo. Ominę
zagadnienia związane z KDE, Gnome.
Co to są okienka np. KDE, Gnome? To programy
działające na serwerze X-Window. Podstawowym problemem nowicjuszy jest
mieszanie pojęć, dlatego na poczatek wyjaśnię kilka
nieporozumień.
Linux to Kernel (jądro systemu) plus ZBIÓR
oprogramowania. W przeciwieństwie do znanego powszechnie Windows ,
Linux działa także bez okienek. Wynika to zreszta z historii
systemu, który pierwotnie był dostępny tylko w wersji tekstowej i
wymagał znajomości komend unixowych.
monitor - urządzenie wyjściowe (wyświelta wyniki pracy systemu)
"ekran" - całość obrazu uzyskanego na wyjściu. Jeden "ekran" może składać się z wielu monitorów, które jako całość wyświetlają jeden obraz (np. telebim składa się z wielu małych monitorów wspólnie wyświetlających jeden duży "ekran"). Generalnie na PC-tach jeden "ekran" jest niepodzielony i mieści się na jednym monitorze, ale należy pamiętać, że Linux umie nadzorować "ekran" podzielony na wiele monitorów.
terminal o symbolu tty* , to urządzenie za pomocą którego użytkownik porozumiewa się z komputerem (tty z ang. teletype, albo teletypewriter). W przeszłości (czyli w czasach powstania nazwy terminal), terminale miały postać "dalekopisu", drukarki połączonej z klawiaturą (czasami nawet bez monitora), a serwer był w innym pomieszczeniu. Na dzień dzisiejszy niektórzy informatycy definiują terminal jako komputer za pomocą którego nastąpiło zalogowanie do odległego serwera. Przypominam inne pojęcia związane z terminalem: host lub klient (l.m. klienty) to komputer w sieci; natomiast user lub użytkownik to konto w systemie.
Uwaga, można się spotkać z określeniem terminal na inne urządzenia wyjścia-wejścia np. port szeregowy ttyS1 (czyli COM2) podłączony do modemu, ale to nas tutaj nie interesuje.
terminal wirtualny lub inaczej konsola, to program umożliwiający uruchomienie podprogramu "login" i co za tym idzie innych programów powiązanych z logowaniem (np. uruchomienie programu shell'a np. "bash").
Często na konsolę mówi się terminal zamiast terminal wirtualny, co jest trochę nieścisłe (prawdziwy terminal to urządzenie, wirtualny terminal to oprogramowanie "udające" urządzenie). User może uaktywnić wiele konsoli wciskając CTRL ALT F1 (F2, F3, F4, F5 itd.) - uzyskuje wówczas konsolę tty1, tty2 itd. Charakterystykę konsoli można wyświetlić lub zmienić za pomocą zlecenia: stty. Aby uporządkować widzenie systemu, na swój prywatny użytek stawiam znak równości pomiędzy słowem konsola, a programem getty.
Uwaga istnieje możliwość uruchomienia pseudo-terminala (zwanego także emulatorem terminala) w okienkach np. KDE. Pseudo-terminal ma symbol pty* np. pty1 (z ang. pseudo-tty)
powłoka, czyli shell (np. BASH) - program, który odbiera polecenia tekstowe i zamienia na ciąg znaków rozumianych przez Kernel (jądro systemu). Shell jest uruchamiany w konsoli po udanym zalogowaniu. Uwaga: zalecanym jest używanie powłoki BASH do pisania skryptów (szczególnie tych współpracujących z /etc/rc/* oraz .cronrc).
Najpopularniejsze okienka to: KDE (podobne do Windows) oparte na programie kdm oraz GNOME oparte na programie gdm. Inne środowiska graficzne to: Xfce, Ice, Window Maker, Enlightenment.
Aby uruchomić okienka np. KDE trzeba pierw uruchomić powłokę
tekstową (shella), a następnie serwer X-Window.
Oczywiście system robi to automatycznie, więc nowicjusze nawet nie
zdają sobie sprawy, że startujące okienka są uruchamiane w
kolejności: system, program getty, program login, shell, X-Window, KDE (w niektórych przypadkach X-Window przejmuje zadanie uruchomienia programu login, shell). Ciekawostką jest to, że
okienka typu KDE są "nakładką" na prymitywne okienka serwera
X-Window - można je zobaczyć w czystej formie wydając
zlecenie xinit.
Niestabilność okienek np. KDE nie wynika z niestabilności
systemu Linux, ale jakiejś paczki-modułu KDE, które jest (jak
powiedziałem wyżej) DODATKOWYM oprogramowaniem. Dlatego na serwery,
gdzie liczy się stabilność, używamy systemu bez okienek.
Różne dystrybucje Linuksa (Mandrake/Mandriva, Debian, Knopix itd.) w
okienkach np. KDE 3 wyglądają pozornie identycznie. Wynika to z
zainstalowania tego samego modułu KDE. Różnią się jednak między
sobą (i to czasami znacznie) ułożeniem katalogów, konfiguracją oraz zabezpieczeniami.
W Mandrake 9.2 istnieje sensowna (ze względu na
bezpieczeństwo) blokada okienek po zainstalowaniu w WYŻSZYM DLA
SERWERÓW POZIOMIE BEZPIECZEŃSTWA i odpaleniu Kernela-Secure. W
takim wypadku, aby uruchomić okienka trzeba podczas startu LILO
wybrać Kernel zwykły.
Podsystem graficzny X11 jest
odpowiedzią fundacji X.Org na zastój i kłopoty licencyjne
dotychczas używanego XFree86.
Jest wiele sposobów na wyłączenie serwera X-Window:
Mając uruchomione okienka wciśnij klawisze CTRL ALT BACKSPACE. Niestety, część Linuksów jest tak skonfigurowana, że automatycznie i natychmiastowo nastąpi ponowne włączenie X-Window. Skorzystaj wówczas z innych metod opisanych w podpunktach.
Tak przy okazji podam kilka skrótów klawiszowych dla okienek KDE:
CTRL ALT ESC - zabicie programu (można też użyć ikonki xKill)
CTRL ESC - lista działających aplikacji
ALT TAB - jak w Windows, przełączanie się pomiędzy działającymi programami
CTRL ALT DELETE - restart komputera
CTRL ALT BACKSPACE - wylogowanie
Wyedytuj plik /etc/inittab (np. zleceniem mcedit /etc/inittab). Wyszukaj wiersz id:5:initdefault:. Zmień wartość 5 czyli "okienka", na 3 czyli "tekst z funkcjami sieciowymi". Restartuj komputer zleceniem np. reboot. Zaloguj się wpisując login np. antek, ENTER, hasło usera antek, ENTER. Okienka załadujesz zleceniem startx.
Mając uruchomione okienka, kliknij w ikonkę z czarnym monitorkiem (by uzyskać powłokę tekstową) i wpisz zlecenie telinit 3. Czasami trzeba dodatkowo ręcznie zabić programy gdm (gdy używamy GNOME) lub kdm (gdy używamy KDE) zleceniami: killall gdm lub killall kdm.
Jeżeli nie znajdziesz ikonki o wyglądzie czarnego monitorka, to po prostu wciśnij klawisze CTRL F2 lub ALT F2 i wpisz zlecenie xterm lub konsole(uruchomi się pseudo-terminal).
Takie wyłączenie okienek jest niezbędne do np. poprawnej instalacji sterowników kart grafiki.
Serwer X czyli program
umożliwiający wyświetlanie okienek (i czcionek w nich zawartych)
uruchomi się automatycznie, jeżeli pliku /etc/inittab
, w linii id:5:initdefault: zmienisz wartość
5 czyli "okienka", na 3 czyli "tekst z funkcjami
sieciowymi" i zrestartujesz system. Przyjmuję, że wybrałeś wartość
3 i system zatrzyma się na powłoce tekstowej. Uwaga: jeżeli
w okienkach uruchomisz powłokę tekstową w
zwykłym okienku i wydasz polecenie telinit 3 ,
to system przeładuje się i zatrzyma w terminalu wirtualnym (konsoli). Zalogujesz
się wówczas zleceniem login oraz password.
Z poziomu powłoki tekstowej np. bash,
okienka uruchomisz zleceniem startx, czyli
skryptem pośredniczącym w uruchomieniu głównego programu
xinit. Można dodać opcję do zlecenia startx, aby wyświetlić okienka w innych (niż domyślnych)
parametrach wyświetlania, za pomocą zlecenia: startx -bpp 16 (bpp to skrót od bits per pixel,
16-bitowy kolor). Oczywiście nic nie stoi na przeszkodzie,
by zrezygnować z usług zlecenia startx i
okienka odpalić bezpośrednio poleceniem xinit.
Wówczas nie skorzystamy z ustawień wybranych podczas instalacji
naszego Linuksa (te są zapisane w startx) i okienka
uruchomimy w najbardziej ascetycznej wersji (bez KDE, Gnome
itp.). Inne spsoby uruchomienia okienek to zlecenie: init 5 (init 3 da tryb textowy) lub wspomniany wyżej telinit 5
Jako ciekawostkę potraktuj informację, że można w
nietypowy sposób, ręcznie skonfigurować system, by automatycznie
startował w okienkach i wywietlał "okno" logowania. W pliku
/etc/rc.d/rc.local dodaj (na samym końcu) wiersz xdm , a wówczas nawet mając w /etc/inittab
wartość 3, system wystartuje w okienkach i pokaże okienko logowania. Oczywiście, jeżeli
w powłoce tekstowej wpiszesz zlecenie xdm , to
także pojawi się okienko logowania oparte na serwerze X.
Gdyby nastąpiły problemy z wyświetlaniem okienek,
to wypróbuj zlecenia:
xinit (pod rootem)
XFdrake (pod rootem) tylko w Mandrake/Mandriva
xvidtune (pod rootem, umożliwia
zaawansowaną konfigurację monitora i karty grafiki)
xf86config lub xf86cfg (pod rootem, konfiguruje system X-Windows, mysz,
klawiaturę, monitor itp.)
fglrxconfig (pod rootem, konfiguruje system
X-Windows, mysz, klawiaturę, monitor itp.)
Uwaga: mysz oraz inne elementy wyświetlane podczas pracy w okienkach można konfigurować edytując bezpośrednio plik /etc/X11/xorg.conf
Przypominam, że blokowanie okienek może być świadomym działaniem
informatyków opiekujących się daną dystrybucją Linuksa. Np. Mandrake
9.2 zainstalowane w Wysokim Poziomie Bezpieczeństwa (msec
4) blokuje uruchomienie okienek podczas ładowania Kernela
SECURE. Chcąc odpalić okienka trzeba wybrać Kernel bez łaty
SECURE.
Przyjmuję, ze party naturalną ciekawością odkrywcy
już klepnąłeś xinit i... doznałeś lekkiego
rozczarowania ;) Jakaś dziwna powłoka tekstowa, brak ikonek do
uruchamiania programów i poleceń, nietypowyy kursor myszki... Oto
najbardziej oszczędne okna jakie Linux umie wyświetlić. Nie
wymagają dużych mocy sprzętowych, ale (uwaga!) pozwalają na
uruchomienie programów znanych np. z KDE: Mozillę, Kadu itd. Trzeba
podać pełną ścieżkę dostępu do plików inicjujących dany program.
Generalnie są one w /usr/local/danyprogram/plikstartujacy lub
/usr/bin/plikstartujacy . Netscape 4.8 instaluje się domyślnie w
katalogu /opt/netscape, więc aby uruchomić tę przeglądarkę należy
wpisać /opt/netscape/netscape
Terminal jest jeden, ale mamy domyślnie 7
konsoli, które przełączamy wciskając
ALT F1 do ALT F7 (zobacz
też CTRL ALT F1 do F7). Konsola nr 7 uzyskana klawiszami CTRL ALT
F7 jest uprawniona do utworzenia sesji okienek. Oczywiście
jeżeli uruchomisz drugą sesję okienek, to zajmie ona konsolę nr 8.
Pamiętaj, że konsola tekstowa nr 1 jest miejscem uruchomienia sesji
okienkowej, ale sama sesja okienkowa zajmuje konsolę 7.
Jak tworzyć kilka sesji
okienkowych na jednym Linuksie? To proste. Przyjmuję, ze
system wystartował i zatrzymał się w powłoce tekstowej. Zalogowałeś
się i uruchomiłeś prymitywne okienka zleceniem xinit . Masz otwartą sesję na konsoli nr 1 oraz nr 7.
Konsola nr 1 jest w trakcie wykonywania zlecenia xinit, więc
nie możesz nic w niej wpisywać, za to konsola nr 7 pozwala
normalnie pracować. Uruchom w niej jakiś programik np. xclock . Pojawi się prymitywny zegar. Teraz nie
przerywając pracy na konsoli nr 1 oraz 7, wciśnij klawisze CTRL ALT
F2. Uzyskasz dostęp do konsoli nr 2. Zaloguj się na niej. Wydaj
polecenie xinit -- :1 (xinit, spacja, dwa
myślniki, spacja, dwukropek, jeden). Nowa sesja graficzna
(zastartowana z konsoli nr 2) będzie zajmować konsolę nr 8. Nic nie
stoi na przeszkodzie, by takich sesji otworzyć więcej, przyjmując
za każdym razem większą liczbę po dwukropku. Ciekawostka: zleceniem
xinit -- :1 zażądaliśmy, by nowa sesja
graficzna została umieszczona na osobnym "ekranie", który
nazwaliśmy :1 . Ten "ekran" jest tworem czysto wirtualnym,
może bowiem składać się z kilku monitorów (na podobieństwo
telebimu, gdzie obraz składany jest przez zestawienie wielu
telewizorów). Gdy wpiszemy echo $DISPLAY
poznamy nazwę bieżącego "ekranu". Uzyskamy odpowiedź: :0.0
lub :0 (gdy nie otworzyliśmy kilku sesji na kilku konsolach,
to nie wyświetli się odpowiedź). Liczba po dwukropku oznacza nr
"ekranu", natomiast liczba po kropce oznacza numer monitora
wchodzącego w skład "ekranu". Jeżeli masz jeden monitor, to tej
pozycji może nie być.
Na koniec sztuczka: będąc w konsoli nr 1 i mając
aktywną sesję okienkową w konsoli nr 7 (na razie nic tam nie mamy
uruchomionego) odpalamy konsolę nr 2 i logujemy się. Teraz
najciekawsze - w konsoli nr 2 dajemy po kolei zlecenia: export DISPLAY=':0' xclock
i... uzyskaliśmy uruchomione zadanie xclock na wskazanej
konsoli nr 7.
Wyjaśnienie: określenie :0 to skrócona wersja
localhost:0.0 , która zawiera: nazwę komputera, nr "ekranu"
oraz monitora.
Podziękowania dla Daniela Koć i jego notatek w
magazynie "Linux dla każdego nr 1".
Polecam artykuł w magazynie Komputer Świat EKSPERT 5-6/2006 pt. "Megapulpit", "AKCJA NA DWA MONITORY". Przedstawiono tam konfigurację karty grafiki do obsługi jednego ekranu na dwa monitory (obraz został podzielony na dwie części: prawą i lewą).
Plik konfiguracji w zależności od wersji serwera X: /etc/X11/XF86Config lub /etc/X11/xorg.conf. Uwaga: często mamy oba pliki, z tym, że jeden jest linkiem symbolicznym (skrótem do drugiego).
Na koniec ciekawostka: od wersji Mandrake 10.0
można łatwo uruchomić kilka różnych sesji okienkowych na jednym
komputerze za pomocą zlecenia: drakedm
Uwaga: z powodu namnożenia się różnych złodziejskich witryn www, które kopiują moje strony i umieszczają je u siebie wraz z komercyjnymi reklamami (na których zarabiają) informuję, że wszelkie prawa są zastrzeżone.
Uwaga.
Aby uniknąć zasysania całej witryny gorzow-wlkp.pl/linux za pomocą programów typu TeleportPro, WebCopier itd. informuję, że udostępniłem spakowaną wersję (w formacie RAR).
Witryna była dostępna pod adresami:
strony.wp.pl/wp/twarogal , strony.wp.pl/wp/linuxtwarka ,
twarogal.republika.pl , klub.chip.pl/twarogal oraz gorzow-wlkp.net
(w latach 2003/04).