summaryrefslogtreecommitdiffstats
path: root/dev.html
blob: 6d1fc8f43a64eea9dda5c87655231fb97829d3da (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
<!--#set var="title" value="Development" -->
<!--#set var="pagetitle" value="Development" -->
<!--#include file="includes/header.html" -->
<h2>Source Repositories</h2>
<dl>
	<dt><a href="http://git.os.pehjota.net/pkg/">Packages in Git</a></dt>
	<dd>Most source packages are maintained in Git repositories.  To assist in the maintenance of a package, coordinate with its maintainer(s) and the <a href="http://www.pehjota.net/contact.html">system administrator</a>.</dd>
	<dt><a href="http://git.os.pehjota.net/doc/">Documentation</a></dt>
	<dd>Notes, specifications, and policies are maintained in Git repositories.</dd>
	<dt><a href="http://git.os.pehjota.net/www/">Web site</a></dt>
	<dd>These Web pages are maintained in a Git repository.</dd>
</dl>
<h2>Specifications</h2>
<dl>
	<dt><a href="http://specs.os.pehjota.net/source-package-format-1.0.html">Source Package Format 1.0</a></dt>
	<dd>The format in which source packages are developed.</dd>
	<dt><a href="http://specs.os.pehjota.net/source-package-format-2.0.html">Source Package Format 2.0</a></dt>
	<dd>The format in which source packages are developed.</dd>
	<dt><a href="http://specs.os.pehjota.net/architecture-string.html">Architecture String Syntax</a></dt>
	<dd>The meaning of the architecture string for binary architectures and application platforms.</dd>
	<dt><a href="http://specs.os.pehjota.net/multiarch.html">Multiarch</a> (to be written)</dt>
	<dd>The ability to install and use on a system packages built for multiple architectures.</dd>
	<!--
	<dt><a href="http://specs.os.pehjota.net/service-run-control.html">Service Run Control</a> (to be written)</dt>
	<dd>A modular system for ordering the starting and stopping of system services according to inter-service dependencies.</dd>
	-->
</dl>
<h2>Policies</h2>
<p>Packages must adhere to a number of policies for distribution as part of this operating system.</p>
<dl>
	<dt><a href="http://policies.os.pehjota.net/packaging.html">Packaging Policy</a> (to be written)</dt>
	<dd>Requirements for package naming, splitting, and data.</dd>
	<dt><a href="http://policies.os.pehjota.net/filesystem.html">Filesystem Hierarchy Policy</a> (to be written)</dt>
	<dd>The structure of the files and directories in the system.</dd>
	<dt><a href="http://policies.os.pehjota.net/software.html">Software Inclusion Policy</a> (to be written)</dt>
	<dd>Legal and technical requirements to protect user freedom and to ensure that all included software can be legally distributed and effectively supported.</dd>
</dl>
<h2>Development Environment</h2>
<p>All packages are cross-built using a toolchain consisting of kernel headers, GNU Binutils, GCC, and a standard C/C++ library.  The cortexa8-linux-eglibc port, for example, is <a href="http://git.os.pehjota.net/doc/notes.git/tree/tbb-cortexa8.txt">currently built</a> using Linux-libre 3.2.7, GMP 5.0.2, MPFR 3.1.0, MPC 0.9, Binutils 2.22, GCC 4.6.2, and EGLIBC 2.15.</p>
<p>This operating system currently supports the following programming languages: C (ISO/IEC 9899 as <a href="http://gcc.gnu.org/onlinedocs/gcc/Standards.html">implemented by GCC</a>), C++ (ISO/IEC 14882 as <a href="http://gcc.gnu.org/onlinedocs/gcc/Standards.html">implemented by GCC</a>), UNIX shell command language (POSIX.1-2008 XCU), and microprocessor assembly languages (with syntax and directives as implemented in GNU as).  Support for more languages (e.g. Perl and Python) will come as their respective interpreters and compilers are packaged; this may take time as these programs usually have many build-time and run-time dependencies and some of these programs cannot easily be cross-built.</p>
<h2>Remaining Tasks</h2>
<p>There are a number of <a href="todo">development projects</a> that remain to be done.</p>
<dl>
	<dt><a href="todo#boot-sequencing">Boot Sequencing</a></dt>
	<dd>A flexible method of determining the order in which init scripts should be executed.</dd>
	<dt><a href="todo#ma">Multiarch</a></dt>
	<dd>The ability to install and use packages built for non-native architectures.</dd>
	<dt><a href="todo#installation-bootstrap-tool">Installation Bootstrap Tool</a></dt>
	<dd>A tool to bootstrap the installation of a basic system.</dd>
	<dt><a href="todo#pkg-x-build-tool">Package Cross Building Tool</a></h3>
	<dd>A tool to build packages within a chroot environment</dd>
	<dt><a href="todo#ma-x-toolchains">Multiarch Cross Toolchain Packages</a></dt>
	<dd>Packages of toolchain components that use multiarch library paths.</dd>
	<dt><a href="todo#packaging">Packaging</a></dt>
	<dd>Software that should be packaged soon.</dd>
	<dt><a href="todo#opkg-libbb">Removing libbb from opkg</a></dt>
	<dd>The modification of opkg to dynamically link against a newer libbusybox.</dd>
</dl>
<!--#include file="includes/footer.html" -->