G4ѤT\Biw dV,*u,~d8C5Â/ĵmA '(TDx=M0A͂e/Hox!G\Ig|d0CX@FOqOi@M<08 A0Z~9ШNT؁Շ^ ;h^ךÚh5V֡`ce<Y‡hPdXX `[hbMelٴKGx16(K7`oEo 15@s8!~X0gݱ3US]|hu4 Y96̀|r -D$Pf2{ؾ)`YGx%boe Ձ~LhbdE |4'~Hta;Y>]s▃Չ90 д(mD;xD2 %E5@ cڠh$ME2X{&:#-mʌ8z&{ش0cIklawisza NumLock,CapsLock,w przypadku innych klawiatur rowniez klawisz Meta itp. Podobnie przy wyprowadzaniu znakow na ekran.
  • Drugi powod to fakt, ze tworcy Linux'a chcieli dac uzytkownikowi mozliwosc uzywania wirtualnych konsol (lub, jak kto woli, wirtualnych terminali). Pojawil sie od razu problem, w jaki sposob przelaczac sie miedzy owymi konsolami tak aby bylo to niezauwazalne gdziekolwiek indziej. To (tzn. rozpoznanie znakow ktore np. maja spowodowac zmiane konsoli) powinno byc robione nawet wczesniej niz dane trafia do dyscypliny linii,bo my wlasciwie nie wiemy co dyscplina linii zrobi z odczytanymi znaczkami. Autorzy Linux'a z drugim problemem poradzili sobie w nastepujacy sposob. Otoz najpierw stworzyli bardzo "regularne" kody klawiszy. Ich regularnosc polega na tym, ze najstarsze bity kodu klawisza opisuja jego typ. Ponadto w jest zdefiniowana 16-elementowa tablica wskaznikow do funkcji, kazda funkcja w tej tablicy odpowiada typowi klawisza. Dodatkowo jest zdefiniowana tablica odwzorowan kodow pozycycjnych (ang. scan code) w kody 2-bajtowe. W ten sposob my mozemy dokonac wstepnej obrobki klawiszy zanim stana sie one widoczne gdziekolwiek indziej. Tak wiec algorytm odczytwania klawisza jest nastepujacy:
    1. Nacisnelismy klawisz
    2. Zostalo zgloszone przerwanie klawiatury
    3. keysym= key_map[keycode]
    4. Wez typ klawisza o kodzie keysym
    5. Wywolaj odpowiednia funkcje zalezna od kodu podajac jej jako parametr keysym
    Zwykle funkcja wymieniona w ostatnim punkcie robi bardzo niewiele i (prawie) zawsze wstawia dodatkowa struktur do kolejki "tqueue" (patrz wczesniej - tam, gdzie sa opisane procedury obslugi przerwan w tym temacie) i dopiero funkcja z tej struktury robi wlasciwa obsluge przerwan.

    Przyznam sie szczerze, ze jedynym powodem omawiania konsoli byla ciekawosc wlasnie tego jak Linux' potrafi ukryc te specjalne klawisze przed reszta swiata nie tracac niz z elastycznosci - prosze zauwazyc ze, gdy pracujemy pod systemem X-Windows,uzywajac fvwm , to klawisze Alt-Fn maja inne znaczenie, niz gdy pracujemy z normalna konsola, po prostu wtedy jest uzywana inna tablica odwzorowan.


    Autor: K.Jonca