XS Community Edition/0.3/Hacking: Difference between revisions
(4 intermediate revisions by 2 users not shown) | |||
Line 21: | Line 21: | ||
==Extended Services== |
==Extended Services== |
||
⚫ | |||
<ul> |
|||
⚫ | |||
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. |
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. |
||
====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. |
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. |
||
====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. |
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. |
||
====Activity update (activity updater)==== |
|||
The activity updater enables teachers to easily distribute new or updated activities to their students |
The activity updater enables teachers to easily distribute new or updated activities to their students. |
||
====Virtual Private Network (open vpn)==== |
|||
⚫ | |||
⚫ | |||
</ul> |
|||
==The Code== |
==The Code== |
||
Line 50: | Line 44: | ||
===Downloading code=== |
===Downloading code=== |
||
'''$ git clone http://dev.sugardextrose.org/ |
'''$ git clone http://dev.sugardextrose.org/xs-config''' |
||
'''$ git clone git://dev.sugardextrose.org/ |
'''$ git clone git://dev.sugardextrose.org/xs-config''' <-- (Shows progress through git:// protocol) |
||
or for commit access (requires login and password) |
or for commit access (requires login and password) |
||
'''$ git clone http://dev.sugardextrose.org/git/ |
'''$ git clone http://dev.sugardextrose.org/git/xs-config''' |
||
===Code layout=== |
===Code layout=== |
||
The 0.3 revision of XSCE software has been made more modular. |
|||
TODO new code layout. |
|||
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/. |
|||
⚫ | |||
⚫ | |||
<ol> |
<ol> |
||
Line 142: | Line 139: | ||
Project Link http://openvpn.net/ |
Project Link http://openvpn.net/ |
||
===OOB=== |
|||
Build system |
|||
===Offline Yum=== |
|||
Offline set up |
Latest revision as of 23:49, 8 August 2013
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.
Core Services
Dynamic Host Configuration Protocol (dhcpd)
Dynamic Host Configuration Protocol is a network protocol used to configure devices so that they can connect and communicate over an IP network. DHCP allows the school server to assign IP addresses to connected XOs.
Internet Domain Name Server (named)
The Domain Name System converts the name of a Web site (www.google.com) to an IP address (65.115.71.34). Named is a daemon within BIND that responds to DNS queries from remote machines.
Network Address Translation (NAT), Gateway, IP Masquerading, Firewall (iptables)
The School Server used Network Address Translation to provide security, privacy, and scalability. NAT enhances scalability as an entire school only needs a single IP address. This can be further augmented by additional filtering. Privacy in enhance because students machines are not directly accessible from the public internet.
XMPP server (ejabberd)
Extensible Messaging and Presence Protocol (XMPP)is a communications protocol for near real-time, instant messaging (IM), presence information, and contact list maintenance. In the classroom environment it's used to give support to XO Collaboration features through Gabble.
IDMGR
Identity Manager is a service which accepts requests for registration from laptops School_Identity_Manager
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.
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.
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.
Activity update (activity updater)
The activity updater enables teachers to easily distribute new or updated activities to their students.
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.
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:
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.cfg/etc/
When necessary, the xs-[ServiceName] scripts installs files from under cfg/etc as necessary.cfg/html/top/
The web based GUI is located under cfg/html/top/
Building
$ make rpm
Hacking
Dynamic Host Configuration Protocol (dhcpd)
DHCP (Dynamic Host Configuration Protocol) allows the school server to assign IP addresses to connected XOs. DHCP is a network protocol used to configure network devices so that they can connect and communicate over an IP network.
Project Link http://www.isc.org/software/dhcp
Internet Domain Name Server (named)
The Domain Name System (DNS) converts the name of a Web site (www.google.com) to an IP address (65.115.71.34). Named is a daemon within BIND that responds to DNS queries from remote machines.
Project Link https://www.isc.org/software/bind
Network Address Translation/NAT, Gateway, IP Masquerading, Firewall (iptables)
NAT. The School Server used Network Address Translation to provide security, privacy, and scalability. NAT enables all of the XOs within a school to appear to the world as a single machine. As a security measure all packets pass through the server. This can be further augmented by additional filtering. Privacy in enhance because students machines are not directly accessible from the public internet. Finally NAT enhances scalability as an entire school only needs a single IP address.
Project Link http://www.netfilter.org/projects/iptables/
XMPP server (ejabberd)
Extensible Messaging and Presence Protocol (XMPP)is a communications protocol for near real-time, instant messaging (IM), presence information, and contact list maintenance. In the classroom environment it's used to give support to XO Collaboration features through Gabble.
Project Link http://www.ejabberd.im/
IDMGR The Identity Manager is a service which accepts requests for registration from laptops School_Identity_Manager
Project Link http://wiki.laptop.org/go/School_Identity_Manager
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/