2004-06-09 19:09:16 +00:00
|
|
|
<?php
|
2005-02-12 01:26:46 +00:00
|
|
|
require_once("docutil.php");
|
|
|
|
page_head("Development and debugging");
|
2003-09-04 07:16:14 +00:00
|
|
|
|
2005-02-12 01:26:46 +00:00
|
|
|
echo "
|
2003-08-19 06:44:58 +00:00
|
|
|
<p>
|
2005-07-27 11:59:38 +00:00
|
|
|
If you do C++ system programming you may be able
|
2003-08-19 06:44:58 +00:00
|
|
|
to help us maintain and enhance BOINC.
|
|
|
|
In any case, you are welcome to browse the source code and
|
|
|
|
give us feedback.
|
2005-02-12 01:26:46 +00:00
|
|
|
You should understand how BOINC works
|
2003-11-04 22:22:06 +00:00
|
|
|
(for both <a href=participate.php>participants</a>
|
2005-02-12 01:26:46 +00:00
|
|
|
and <a href=create_project.php>projects</a>)
|
2003-08-19 06:44:58 +00:00
|
|
|
before getting into the source code.
|
2004-12-01 05:03:53 +00:00
|
|
|
|
2005-07-27 11:59:38 +00:00
|
|
|
<p>
|
|
|
|
For starters, look through the
|
|
|
|
<a href=http://bbugs.axpr.net/index.php>BOINCzilla bug database</a>
|
|
|
|
and try fixing a bug or two.
|
|
|
|
Sign up for the
|
|
|
|
<a href=http://boinc.berkeley.edu/community.php#email_lists>boinc_dev</a>
|
|
|
|
email list to communicate with other BOINC developers.
|
|
|
|
Also, read:
|
2005-02-12 01:26:46 +00:00
|
|
|
<ul>
|
2005-06-11 19:58:57 +00:00
|
|
|
<li> <a href=compile.php>Get and compile BOINC software</a>
|
2005-02-13 02:23:20 +00:00
|
|
|
<li> <a href=coding.php>BOINC coding style</a>
|
2005-02-12 01:26:46 +00:00
|
|
|
</ul>
|
2005-07-27 11:59:38 +00:00
|
|
|
|
|
|
|
The following medium-to-large development projects are available:
|
|
|
|
<ul>
|
|
|
|
<li> Core client: use the
|
|
|
|
<a href=http://curl.haxx.se/libcurl/>libcurl</a> library
|
|
|
|
or some other open-source HTTP library,
|
|
|
|
replacing the HTTP_OP and PROXY classes.
|
|
|
|
This would let the core client use HTTPS.
|
2005-08-03 06:04:07 +00:00
|
|
|
(Carl C. is working on this).
|
2005-07-27 11:59:38 +00:00
|
|
|
<li> BOINC Manager:
|
|
|
|
Change the Statistics tab to use a single graph
|
|
|
|
with different colors for different projects.
|
|
|
|
<li> BOINC Manager:
|
|
|
|
add progress bars for file transfers and in-progress results.
|
|
|
|
<li> BOINC Manager:
|
|
|
|
add pie charts for disk usage
|
|
|
|
<li> Disk space management: prevent disk space usage from
|
|
|
|
exceeding user preferences,
|
|
|
|
and enforce resource shares,
|
|
|
|
with file deletion according to project policy,
|
|
|
|
<li> Core client: use select() instead of polling
|
|
|
|
for I/O (RPCs, file transfers, GUI RPCs).
|
|
|
|
</ul>
|
|
|
|
Please check with davea at ssl.berkeley.edu
|
|
|
|
before undertaking any of these.
|
|
|
|
<hr>
|
2005-02-12 01:26:46 +00:00
|
|
|
Various implementation notes:
|
2004-02-09 05:11:05 +00:00
|
|
|
<h2>Core client</h2>
|
2003-08-19 06:44:58 +00:00
|
|
|
<ul>
|
|
|
|
<li> <a href=client_files.php>File structure</a>
|
|
|
|
<li> <a href=client_fsm.php>FSM structure</a>
|
|
|
|
<li> <a href=client_data.php>Data structures</a>
|
|
|
|
<li> <a href=client_logic.php>Main loop logic</a>
|
2005-05-09 20:20:33 +00:00
|
|
|
<li> <a href=sched.php>Client scheduling policies (new)</a>
|
|
|
|
<li> <a href=client_sched.php>Client scheduling policies (old)</a>
|
2003-08-19 06:44:58 +00:00
|
|
|
<li> <a href=client_debug.php>Debugging</a>
|
2004-01-08 00:27:59 +00:00
|
|
|
<li> <a href=host_measure.php>Host measurements</a>
|
|
|
|
<li> <a href=host_id.php>Host identification</a>
|
2003-08-19 06:44:58 +00:00
|
|
|
<li> <a href=client_app.php>Core client/application interaction (basic)</a>
|
|
|
|
<li> <a href=client_app_graphic.php>Core client/application interaction (graphics)</a>
|
2004-12-19 20:35:37 +00:00
|
|
|
<!--
|
2004-08-03 14:02:13 +00:00
|
|
|
<li> <a href=disk_management.php>Disk space management</a>
|
2004-12-19 20:35:37 +00:00
|
|
|
-->
|
2003-08-19 06:44:58 +00:00
|
|
|
</ul>
|
2004-12-09 00:46:07 +00:00
|
|
|
<h2>Server programs</h2>
|
2003-08-19 06:44:58 +00:00
|
|
|
<ul>
|
|
|
|
<li> <a href=database.php>The BOINC database</a>
|
2004-12-09 00:46:07 +00:00
|
|
|
<li> <a href=sched_policy.php>Work distribution policy</a>
|
2004-02-09 05:11:05 +00:00
|
|
|
<li> <a href=backend_state.php>Backend state transitions</a>
|
|
|
|
<li> <a href=backend_logic.php>The logic of backend programs</a>
|
2004-12-02 22:56:49 +00:00
|
|
|
<li> <a href=server_debug.php>Debugging server components</a>
|
2004-02-09 05:11:05 +00:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
<h2>Protocols</h2>
|
2003-08-19 06:44:58 +00:00
|
|
|
<ul>
|
2003-10-13 19:23:40 +00:00
|
|
|
<li> <a href=comm.php>Protocol overview</a>
|
2003-08-19 06:44:58 +00:00
|
|
|
<li> <a href=protocol.php>The scheduling server protocol</a>
|
|
|
|
<li> <a href=rpc_policy.php>Scheduling server timing and retry policies</a>
|
|
|
|
<li> <a href=upload.php>Data server protocol</a>
|
|
|
|
<li> <a href=pers_file_xfer.php>Persistent file transfers</a>
|
|
|
|
</ul>
|
2004-02-09 05:11:05 +00:00
|
|
|
<h2>Miscellaneous</h2>
|
2003-08-19 06:44:58 +00:00
|
|
|
<ul>
|
2003-09-04 07:16:14 +00:00
|
|
|
<li> <a href=python.php>Python framework</a>
|
2003-08-19 06:44:58 +00:00
|
|
|
<li> <a href=prefs_impl.php>Preferences</a>
|
2004-05-24 04:03:34 +00:00
|
|
|
<li> <a href=trickle_impl.php>Trickle messages</a>
|
2004-12-10 19:17:32 +00:00
|
|
|
<li> <a href=version_diff.txt>How to see what has changed
|
|
|
|
between two versions of an executable</a>.
|
2005-01-16 21:38:16 +00:00
|
|
|
<li> <a href=acct_mgt.php>Account management systems</a>
|
2005-05-10 17:04:13 +00:00
|
|
|
<li> <a href=spec.txt>Spec info for RPMs</a>
|
2005-07-19 19:05:50 +00:00
|
|
|
<li> <a href=stats_summary.php>Statistics summaries</a>
|
2003-08-19 06:44:58 +00:00
|
|
|
</ul>
|
2003-09-04 07:16:14 +00:00
|
|
|
|
2003-11-04 22:22:06 +00:00
|
|
|
";
|
2005-02-12 01:26:46 +00:00
|
|
|
page_tail();
|
2003-08-19 06:44:58 +00:00
|
|
|
?>
|
2003-09-04 07:16:14 +00:00
|
|
|
|