# &ktimemon;

Martin
Maierhofer

    m.maierhofer@tees.ac.uk

&Niels.Reedijk;&Rinse.Devries;
2001-11-29
0.03.01

&ktimemon; is een systeemmonitor voor de K Desktop Environment

KDE
ktimemon
systeemmonitor
timemon

# Inleiding

&ktimemon; is een klein programma dat uw systeemgebruik bijhoudt. Het toont balkgrafieken met informatie over CPU-, geheugen- en swap-gebruik als ook harde-schijf-gebruik en context-wissel-activiteit. Net als alle andere &kde;-toepassingen kunt u het programma instellen via een grafische interface.

Momenteel biedt &ktimemon; ondersteuning voor een beperkt aantal systemen: &Linux;-gebaseerde installaties met het `/proc`-bestandssysteem, &Solaris;-gebaseerde installaties met de bibliotheek `kstat` en Digital &UNIX; (voorheen DEC/OSF1)-gebaseerde installaties met de systeemaanroep `table`(2). Hulp bij het overzetten naar andere platformen is meer dan welkom.

U kunt &ktimemon; starten vanaf de commandoprompt, of vanuit het &kde; startmenu, submenu Hulpmiddelen. De applet-versie kunt u starten door met uw rechter muisknop te klikken op het paneel, en in het contextmenu te kiezen voor Paneelmenu Toevoegen Applet Systeemmonitor. Bij het starten van de niet-applet-versie vanaf de commandoprompt biedt &ktimemon; ondersteuning voor de gebruikelijke &X-Window;-programma-argumenten, zoals `-geometry`. &ktimemon; is sessie-bewust, het houdt dus de huidige status (kleuren, &etc;) bij en herstelt ze bij de volgende sessie.

## Basisbeginselen

Na het starten van &ktimemon; verschijnt er een klein venster met informatie over uw besturingssysteem. Als u de muisaanwijzer enkele seconden op dit venster plaatst, dan verschijnt er een tekstballon (dus een klein ballonvormig venstertje). De tekstballon bevat numerieke informatie over de parameters die getoond worden door de balkgrafieken. U kunt de teksballon uitschakelen. Zie voor meer informatie bij Configuratie.

### Weergavemodi

&ktimemon; kan de systeeminformatie op twee manieren tonen. Zoals uitgelegd in het hoofdtuk Configuratie kunt u muisknoppen toewijzen aan diverse acties. Standaard is de linkermuisknop toegewezen aan de moduswisseling. Dus als u ergens in het venster van &ktimemon; met de linker muisknop klikt, dan schakelt de weergegeven informatie van de Normale modus (standaard) naar de Uitgebreide modus en omgekeerd. Opmerking: deze functionaliteit zit niet in de applet-versie van &ktimemon;.

#### Normale modus

Nadat u &ktimemon; voor het eerste hebt gestart zal het informatie tonen over het huidige gebruik van de processor, geheugen en swap. Er worden drie balkgrafieken gebruikt om deze informatie te tonen. De balken worden regelmatig bijgewerkt. De standaard verversingssnelheid is 0,5 sec., maar dat kunt u aanpassen. Zie hoofdstuk Configuratie. De drie balkgrafieken representeren (van links naar rechts):

CPU-gebruik.

  &ktimemon; toont de balk in drie verschillende kleuren. Deze representeren de CPU-tijd in verschillende modi. Van onder naar boven zijn dat: kernelmodus, usermodus en usermodus met verlaagde prioriteit (nice). Omdat &Solaris; voor die laatste geen ondersteuning blijkt te bieden geeft het bovenste gedeelte van de balk op deze systemen de wait-status aan. Het gat tussen de bovenkant van de balk en de bovenkant van het venster representeert het percentage ongebruikte CPU-tijd.

Geheugengebruik.

  Net als de balk voor CPU-gebruik bestaat deze balk uit drie subvelden. Deze representeren (van beneden naar boven):geheugen gereserveerd door processen, geheugen gebruikt voor I/O-buffering en geheugen gebruikt voor bestand-caching. Op Digital &UNIX;-gebaseerde systemen representeert de middensectie het inactieve geheugen (dus geheugen dat is gereserveerd, maar voor een bepaalde tijd niet wordt gebruikt). Op &Solaris;-gebaseerde systemen wordt de middensectie niet gebruikt, de bovenste sectie representeert de hoeveelheid geheugen gebruikt door de kernel. Ook hier is het gat tussen de bovenkant van de balk en de bovenkant van het venster de hoeveelheid ongebruikt geheugen.

Swap-gebruik.

  Deze balk bestaat uit een sectie die het huidige swap-gebruik representeert, in verhouding tot de totale hoeveelheid aan swap-ruimte op het systeem.

Als u met de muisknop die is toegewezen Moduswisseling klikt in het venster van &ktimemon;, dan schakelt deze over in de Uitgebreide modus. Opmerking: de uitgebreide modus zit niet bij de applet-versie van &ktimemon;.

#### Uitgebreide modus

In deze modus worden de drie balkgrafieken gebruikt om andere systeeminformatie te tonen. Deze functionaliteit zit niet in de applet-versie van &ktimemon;. Van links naar rechts representeren ze:

Paging-activiteit.

  De balk bestaat uit twee onderdelen. Het onderste gedeelte toont het aantal geheugenpagina's dat is geschreven naar de secondaire opslag gedurende de laatst verversing van de weergave. De bovenste helft geeft een indicatie van het aantal pagina's dat is gelezen uit de secondaire opslag.

Swapping-activiteit.

  De tweede balk toont de analoge informatie over de swap-activiteit.

Contextwisselingen.

  Deze balk bestaat wederom uit een geheel. Deze geeft een indicatie van het aantal contextwisselingen tijdens de laatse verversing van de weergave.

Omdat er geen natuurlijke manier is om de informatie die in de uitgebreide modus wordt getoond te schalen, gebruikt &ktimemon; standaard automatisch schalen. Dit wordt verder uitgelegd in de sectie Veel voorkomende vragen. U kunt ook zelf de schaling opgeven, zie het hoofdstuk Configuratie voor meer informatie.

Beide typen balkgrafieken die dezelfde kleuren gebruiken. Dus de kleurinstelling voor Normale modus wordt ook gebruikt voor het weergeven van informatie in Uitgebreide modus. Kijk bij het hoofdstuk Configuratie hoe u het kleurenschema kunt wijzigen.

## Menustructuur

Standaard is de &RMB; toegewezen aan de actie Contextmenu openen. Als u met de &RMB; ergens in het venster van &ktimemon; klikt wordt er een menu geopend. Deze wordt verder behandeld in de volgende secties.

### Voorkeuren...

De menuoptie Instellingen... opent de configuratiedialoog. Configuratieopties worden behandeld in het hoofdstuk Configuratie.

### In systeemvak

Deze optie vindt u alleen in de stand-alone versie van de toepassing, niet in de applet. Als u deze optie selecteert zal &ktimemon; het hoofdvenster sluiten en een verkleind venster in het systeemvak plaatsen. Afgezien van het verkleinde formaat zal &ktimemon; verder op dezelfde manier functioneren.

### Help

&help.menu.documentation;

### Horizontale balken

De menuoptie Horizontale balken wisselt van verticale balken naar horizontale balken en andersom. Niet echt bruikbaar, maar het was eenvoudig om dit in te programmeren :o)

### Afsluiten

De menuoptie Afsluiten sluit de toepassing af. Deze menuoptie is niet aanwezig in de applet-versie van het programma. Als u &ktimemon; afsluit zal ze haar huidige status onthouden, dus het kleurenschema, venstergrootte, vensterstatus, etc. en deze staat herstellen bij de volgende programmastart. Om de appletvariant te verwijderen uit uw paneel, klik op het applethandvat en kies voor menuoptie Systeemmonitor verwijderen. Ook de appletversie zal zijn vorige staat onthouden en herstellen bij een volgende start.

De configuratie van het programma wordt opgeslagen in het bestand `$`HOME`/.kde/share/config/ktimemonrc`, bij de appletversie is dit `$`HOME`/.kde/share/config/ktimemon_panelappletrc`. `$`HOME`` refereert aan de persoonlijke map van de gebruiker. Als u dit bestand verwijdert, dan zal &ktimemon; de volgende keer in de standaard staat starten.

## Configuratie

U kunt &ktimemon; instellen via een eenvoudig dialoog (Kijk ook bij de sectie Configuratiemenu). Op het tabblad Algemeen kunt u de verversingssnelheid instellen en de schaling aanpassen (zie ook bij Uitgebreide modus). Als het keuzevakje Automatisch is geselecteerd, dan kunt u de schalingfactors niet instellen. Deze worden dan automatisch door &ktimemon; bepaald. Kijk voor meer informatie over automatisch schalen in de sectie Veel voorkomende vragen.

Bij tabblad Kleuren kunt u de kleuren van de balkgrafieken aanpassen. Klik op Toepassen om uw wijzigingen te bekijken.

Bij tabblad Interactie kunt de muisbindingen aanpassen. U kunt het klikken met de muisknop in het venster van &ktimemon; laten negeren, een modusschakeling uitvoeren (niet bij appletversie, kijk ook bij Modi), het contextmenu aanroepen (zie ook bij Menu), of een extern proces aanroepen. De bijhorende commandoprompt wordt geïntepreteerd door de standaard-shell. U kunt dus gebruik maken van shell-commando's, omgevingsvariabelen, &enz;.

Op het tabblad Interactie vindt u ook een keuzevakje waarmee u de automatische weergave van de tekstballon kunt deactiveren. De tekstballon toont numerieke informatie over de balkgrafieken (zie ook bij basisbeginselen).

## Veel voorkomende vragen en antwoorden

Voor welke besturingssystemen biedt &ktimemon; ondersteuning?

&ktimemon; ondersteunt &Linux;-gebaseerde systemen, met het `/proc`-bestandssysteem, &Solaris;-gebaseerde systemen met de bibliotheek `kstat` en Digital &UNIX; (voorheen DEC/OSF1)-systemen met de `table`(2) systeemaanroep-interface. Alleen de &Linux;-versie is goed getest. Mocht u problemen ondervinden bij het gebruik van de &Solaris;/Digital &UNIX;-versie, aarzel dan niet om contact met me op te nemen.

Bovendien zijn bijdragen aan &ktimemon; om het geschikt te maken voor andere platformen meer dan welkom. Neem contact op met me op m.maierhofer@tees.ac.uk als u van plan bent om &ktimemon; over te zetten naar andere &UNIX;-smaken.

Hoe werkt automatisch schalen?

Ik ben blij dat u het vraagt. Omdat er geen goede manier is om de schaalfactor voor paging/swapping-operaties en contextwisselingen te bepalen (anders dan bijv. geheugengebruik, waar het totaal aan geheugen als uitgangspunt kan worden gebruikt) maakt &ktimemon; gebruik van een semi-intelligente (ahum...) autoschalingsmechanisme. Automatisch schalen werkt als volgt:

- Elke balkgrafiek, zoals beschreven in de sectie Uitgebreide modus heeft een toegewezen schaalfactor. De oorspronkelijke waarden van deze factors wordt ingesteld op een voorgedefinieerde waard.

- Telkens als er een nieuw verversing plaatsvindt wordt de bijhorende waarde geschaald met de overeenkomende factor. Als de kan worden getoond in de door de factor gekozen schaal, dan zal er geen wijziging optreden. (Dus kleine wijzigingen in activiteit worden weergegeven door de hoogte van de balk te wijzigen.)

- Als de geschaalde waarde te groot of te klein zou zijn om te worden weergegeven met de huidige schaalfactor, dan wordt de schaling bijgesteld, zodat de nieuwe weergegeven waarde ongeveer halverwege de balkgrafiek staat. Op die manier hebben de volgende wijzigingen een grote kans dat ze relatief aan de huidige waarde kunnen worden getoond, in plaats van dat de schaal opnieuw dient te worden bijgesteld.

Waarom verschijnt er een dialoog met de tekst Kreeg diagnostische uitvoer van subcommando?

Als u een muisknop verbindt met een extern commando, zoals beschreven in hoofdstuk Configuratie, dan controleert &ktimemon; niet of het commando werkt. In plaats daarvan wordt er een shell-prompt aangeroepen die het commando uitvoert. Op die manier kunt u gebruik maken van shell-commando's omgevingsvariabelen, etc. die geschikt zijn voor uw standaard-shell. Om de gebruiker te laten weten wat er gebeurt luistert &ktimemon; naar de uitvoer van stderr bij het aanroepen van het opgegeven commando. Deze uitvoer wordt in dit dialoog getoond.

Dit kan behulpzaam zijn als er iets mis gaat bij het aanroepen van het commando, maar kan ook vrij irritant zijn als het aangeroepen commando onschuldige uitvoer stuurt naar stderr. Een eenvoudige oplossing is het toevoegen van `2>/dev/null` aan het einde van het commando. Dit leidt de diagnosemeldingen naar /dev/null, wat voor u betekent dat de dialoog niet meer wordt geopend.

## Dankbetuigingen en licentie

&ktimemon; is gebaseerd op een Xt-versie van mijn broer.

Met dank aan Tobe Toben, ttoben@artis.uni-oldenburg.de, Cristian Tibirna ctibirna@gch.ulaval.ca, Dirk A. Mueller dmuell@rhrk.uni-kl.de, Mark Krischer krischem@amp.com, en Lubos Lunak l.lunak@sh.cvut.cz voor bugrapporten, patches, commentaar en suggesties.

&meld.fouten;&vertaling.niels; &underGPL;