<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://50.77.162.165/mediawiki/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Virtualized privileged environment - Revision history</title>
		<link>http://50.77.162.165/mediawiki/index.php?title=Virtualized_privileged_environment&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.15.5-7</generator>
		<lastBuildDate>Sun, 19 Apr 2026 18:38:13 GMT</lastBuildDate>
		<item>
			<title>Kevin Reid at 01:38, 9 February 2011</title>
			<link>http://50.77.162.165/mediawiki/index.php?title=Virtualized_privileged_environment&amp;diff=2126&amp;oldid=prev</link>
			<guid>http://50.77.162.165/mediawiki/index.php?title=Virtualized_privileged_environment&amp;diff=2126&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Problem==&lt;br /&gt;
&lt;br /&gt;
* The [[Category:E specification|E specification]] shall include [[Updoc]] tests.&lt;br /&gt;
* The chosen location for our E platform specification [[Category:E specification|is this wiki]].&lt;br /&gt;
* Wikis are editable by many people.&lt;br /&gt;
Therefore,&lt;br /&gt;
* There is a risk of malicious code inserted into our specification tests.&lt;br /&gt;
&lt;br /&gt;
We wish to be able to run Updoc tests, testing every aspect of an [[E implementation]], such that they can do no harm (beyond stopping the test suite from finishing, or making its output invalid).&lt;br /&gt;
&lt;br /&gt;
The [[E-on-Java]] [[cmdLoop]] has a confinement option, but it takes away all [[privilegedEnv]] elements, so the tests could not test streams, files and so on. [[E-on-CL]] provides a slightly larger set, but still does not provide file access.&lt;br /&gt;
&lt;br /&gt;
In general, we want to provide an environment that looks as close to the standard privileged environment as practical, but is actually completely confined — ''and yet still allows the tests to exercise as much of the implementation as practical.''&lt;br /&gt;
&lt;br /&gt;
==Proposal==&lt;br /&gt;
&lt;br /&gt;
Given these constraints, the obvious solution is to make every [[privilegedEnv]] authority virtualizable. Here is a review of the privileged environment as implemented in [[E-on-Java]] (as of r802, 2011-02-08).&lt;br /&gt;
&lt;br /&gt;
===Completely obvious virtualization strategies===&lt;br /&gt;
&lt;br /&gt;
* [[stdout]], [[stderr]], [[print]], [[println]], [[interp]] — these are already virtualized/implemented by [[updoc]]/[[cmdLoop]]&lt;br /&gt;
* [[currentVat]] — might want to review Vat's authority grants&lt;br /&gt;
* [[privilegedScope]] — refers to itself&lt;br /&gt;
&lt;br /&gt;
These are defined in terms of other privileges in ScopeSetup, so they will be automatically virtual:&lt;br /&gt;
* [[makeSturdyRef]]&lt;br /&gt;
* [[timeMachine]]&lt;br /&gt;
* [[rune]] — Defined in terms of {{uriGetter|unsafe}}&lt;br /&gt;
* [[swtWatch]]&lt;br /&gt;
&lt;br /&gt;
===Reasonable virtualization strategies===&lt;br /&gt;
&lt;br /&gt;
* {{uriGetter|file}}, {{uriGetter|fileURL}} — [[Opaque file objects]]&lt;br /&gt;
&lt;br /&gt;
===Messier virtualization strategies===&lt;br /&gt;
* {{uriGetter|jar}} — {{XXX}}&lt;br /&gt;
* {{uriGetter|http}}, {{uriGetter|ftp}}, {{uriGetter|gopher}}, {{uriGetter|news}}, {{uriGetter|captp}}/[[introducer]]/[[identityMgr]]&lt;br /&gt;
** Option 1: Allow access to network, but restricted hosts.&lt;br /&gt;
** Option 2: Allow full access — we're not trying to bit-confine the tests, after all. Maybe prohibit LAN access — this would be generally useful as a security policy. &amp;quot;The Internet in general, but nothing local&amp;quot;&lt;br /&gt;
** Option 3: Allow test code to talk among itself only.&lt;br /&gt;
* stdin — This will be determined by how the test suite goes about testing stdin.&lt;br /&gt;
&lt;br /&gt;
===Impossible by definition===&lt;br /&gt;
However, these cannot be tested by untrusted test files anyway:&lt;br /&gt;
&lt;br /&gt;
* {{uriGetter|unsafe}}&lt;br /&gt;
&lt;br /&gt;
=== Tricky cases===&lt;br /&gt;
&lt;br /&gt;
* [[makeCommand]] (shell command/subprocess invocation)&lt;br /&gt;
&lt;br /&gt;
===GUI authorities===&lt;br /&gt;
* {{uriGetter|awt}}&lt;br /&gt;
* {{uriGetter|swing}}&lt;br /&gt;
* {{uriGetter|JPanel}}&lt;br /&gt;
* {{uriGetter|swt}}&lt;br /&gt;
* [[currentDisplay]]&lt;br /&gt;
* [[swtGrid__quasiParser]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Unresolved design issues]]&lt;/div&gt;</description>
			<pubDate>Wed, 09 Feb 2011 01:38:30 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://50.77.162.165/wiki/Talk:Virtualized_privileged_environment</comments>		</item>
	</channel>
</rss>