summaryrefslogtreecommitdiff
path: root/daemon/INTERNALS
blob: cf6b54ac40d8c7d099ac576852d9c4d01775e05d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
* GDM Internals

This document attempts to describe the internal design of GDM.

** GdmManager

The GdmManager is the top-level singleton object.  It contains a
GdmDisplayStore object and a number of GdmDisplayFactory objects.

** GdmDisplayStore

This is a container for storing GdmDisplay objects.

** GdmDisplayFactory

A GdmDisplayFactory is an abstract class of object that is capable of
creating GdmDisplay objects.

*** GdmLocalDisplayFactory

A subclass of GdmDisplayFactory that uses logind to identify
local hardware on which to start a GdmDisplay.

*** GdmXdmcpDisplayFactory

A subclass of GdmDisplayFactory that listens for requests for XDMCP
logins and creates a GdmDisplay for them.

** GdmDisplay

A GdmDisplay is an abstract class of object that represents a single X
Server diplay.

*** GdmStaticDisplay

A subclass of GdmDisplay that represents a local display.

*** GdmXdmcpDisplay

A subclass of GdmDisplay that represents a remote XDMCP display.


** GdmSlave

A GdmSlave is an abstract class of object that performs work for a
GdmDisplay.  A Slave is run in a sub-process spawned by each GdmDisplay.  The
slave communicates with the parent display using the D-Bus protocol.

*** GdmSimpleSlave

A subclass of GdmSlave that runs both a login greeter and a user
session.

** GdmServer

A class, used by the slave, that manages running a local X Server.

** GdmLaunchEnvironment

A class, used by the slave, that manages a GdmSession.

** GdmSession

A class, used by multiple components, to manage PAM conversations and
sessions. It's used by GdmLaunchEnvironment to manage program sessions
(greeters, choosers, initial-setup), by GdmSimpleSlave to manage user
sessions, and by the worker itself to perform reauth.

** GdmSessionWorkerJob

A class that manages running a GdmSessionWorker subprocess.  This will
also provide the GdmSession D-Bus address to the subprocess.

** GdmSessionWorker

This class handles the PAM conversation and relays the questions and
messages to the GdmSession through the private D-Bus connection.  When
the user is authenticated this subprocess "exec"s the user session.


Local Variables:
mode: outline
End: