The services provided by the XS school server range from generic much less so:
Dhcpd passes out ip addresses in the 172.18.x.0 class C internal subnets. It also sets up the XS as the name server for the XO’s, and establishes the search domain names (entered in the “search clause” of /etc/resolv.conf.
Named/bind9 provides name services to the network. Specifically, it provides name resolution for “schoolserver.<domain name>”. Named is configued to provide caching name service, and seeded with ip addresses of .com, .net, .org authoritative name servers. The OLPC configuration suggestions include the suggestion to use OpenDNS servers as a means of achieving content filtering. (OpenDNS provides servers which do not resolve the names of adult content sites).
Router. Iptables are set to masquerade internet queries, so that the XS becomes the router for all XO’s to the internet and the gateway to whatever ISP is available to the local community.
Web server. Httpd (apache) is running with php and python extensions enabled on the XS.
The XS facilitates XO interactions
Backup. The name resolution provided by Named is required for the XO’s in a classroom to “register” with the school server. After registration, the XO’s begin to back up their journals to the server via rsync every 30 minutes while they are connected. The XO 1.5 and 1.75 have 4GB flash, and about 2GB available for journal entries. So the XS hard disk needs about 200GB for 100 students just to keep a current snapshot available. The rsync “mirror” (delete what’s been deleted in source) is (turned on or turned off — research needed).
Password free authentication. The registration process informs the XS of the public key for each of the XOs, and the name associated with that key. Thereafter, identities are handled transparently by SSL.
Presence service. The XOs are designed to “discover” peers, even it the absence of a school server. When no school server is present, each XO dhcp client self assigns itself an ip address in the 169.x.x.x subnet, and uses a network extension of dbus, and telepathy-salut, to establish connections to the other online XOs.
When a school server is present, the network extension of dbus switches its mechanism of discovery, and uses a service on the XS called ejabberd. This is XMPP server provides basic messaging between the presence services that are running on each XO.
The OLPC literature suggests that the jabber server function doesn’t scale well to situations where there are more than 150 clients.
Moodle. Moodle is an open source client server http based course/learning management system that is used by more than 50 million users wordwide, see wikipedia.
Database. Moodle requires a backend database for storage of the data. In my limited experience, mysql is most often used as a generic backend database. The OLPC literature has suggested that Postgresql is more robust in those situations where intermittent power might interrupt database transactions.
Various content. Mike Dawson developed tools for generating content for his Afghanistan deployment. Tony Anderson created tools for delivering content and quizes in Haiti and Kenya. All 32 GB of the Khan Academy videos have been transcribed to OGV format so that the XS can store and supply them to XOs. A loose association of OLPC people are working on it.