XS Community Edition/0.4/Hacking

From OLPC
Jump to navigation Jump to search

The Code

Downloading code

$ git clone http://dev.sugardextrose.org/xs-config

$ git clone git://dev.sugardextrose.org/xs-config <-- (Shows progress through git:// protocol)

or for commit access (requires login and password)

$ git clone http://dev.sugardextrose.org/git/xs-config

Code layout

The 0.3 revision of XSCE software has been made more modular.

Configuration consists of a series of scripts in the plugins.d tree. Major services are separated under plugins.d. The layout of each plugin is described in http://schoolserver.wordpress.com/xs-installation/add-a-service-to-school-server-by-creating-a-plugin/.


In the 0.2 release, the code lived in the xs-config/ dir. Consider these 3 subdirectories of xs-config:

  1. scripts/
    Configuration consists of a series of scripts which live in the scripts/ dir. The process is kicked off by running xs-setup. xs-setup calls a series of scripts with the naming convention the xs-[ServiceName] each of which set up an individual service.
  2. cfg/etc/
    When necessary, the xs-[ServiceName] scripts installs files from under cfg/etc as necessary.
  3. cfg/html/top/
    The web based GUI is located under cfg/html/top/

Building

$ make rpm

Design and architecture

The school server is a collection of common network related services which can be installed and configured as necessary. The School Server provides a core base of services on which extended service can be installed and modified and modified as modules.

Extended Services

Web server (apache)

A web server enables the school server to generate and deliver web pages at the request of client Laptop. The web server is a building block for many other extended services.

Project Link http://www.apache.org/

Proxy server and web cache (squid)

A proxy server and web cache reduces the overall bandwidth needs of the school. All Laptops requests pass through the proxy and are temporarily stored. If more than one student requests the same file, the proxy only has to go out to the public internet once.

Project Link http://www.squid-cache.org/

OLPC-update (rsync)

OLPC-update is necessary to update the kernel of XO due to modifications that have been made to the kernel which prevent standard package management systems from working correctly.

Project Link http://wiki.laptop.org/go/Olpc-update

Activity update (activity updater)

The activity updater enables teachers to easily distribute new or updated activities to their students

Project Link ???

Virtual Private Network (open vpn)

The Virtual private Network is useful for creating secure point-to-point connections in routed or bridged configurations which makes is possible for remote access facilities

Project Link http://openvpn.net/