<runtime ram="76M" caps="1000" binary="init" config="cbe_shell.config">

	<requires>
		<gui/>
		<timer/>
		<file_system label="cbe"    writeable="yes"/>
		<file_system label="fonts"  writeable="no"/>
		<rom    label="clipboard"/>
		<report label="clipboard"/>
		<rm/>
	</requires>

	<content>
		<rom label="cbe_shell.config"/>
		<rom label="ld.lib.so"/>
		<rom label="libc.lib.so"/>
		<rom label="libm.lib.so"/>
		<rom label="init"/>
		<rom label="vfs"/>
		<rom label="vfs_pipe.lib.so"/>
		<rom label="cached_fs_rom"/>
		<rom label="terminal"/>
		<rom label="posix.lib.so"/>
		<rom label="ncurses.lib.so"/>
		<rom label="bash-minimal.tar"/>
		<rom label="coreutils.tar"/>
		<rom label="vfs.lib.so"/>
	</content>

	<config>
		<parent-provides>
			<service name="ROM"/>
			<service name="PD"/>
			<service name="RM"/>
			<service name="CPU"/>
			<service name="LOG"/>
			<service name="Timer"/>
			<service name="File_system"/>
			<service name="Gui"/>
			<service name="Report"/>
		</parent-provides>

		<default-route> <any-service> <parent/> <any-child/> </any-service> </default-route>

		<default caps="100"/>

		<start name="terminal">
			<resource name="RAM" quantum="12M"/>
			<provides> <service name="Terminal"/> </provides>
			<config copy="yes" paste="yes">
				<initial width="800" height="600"/>
				<vfs> <dir name="fonts"> <fs/> </dir> </vfs>
			</config>
			<route>
				<service name="File_system"> <parent label="fonts"/>    </service>
				<service name="Gui">         <parent label="terminal"/> </service>
				<service name="Report" label="clipboard"> <parent label="clipboard"/> </service>
				<service name="ROM"    label="clipboard"> <parent label="clipboard"/> </service>
				<any-service> <parent/> <any-child/> </any-service>
			</route>
		</start>

		<start name="vfs" caps="150">
			<resource name="RAM" quantum="12M"/>
			<provides><service name="File_system"/></provides>
			<config>
				<vfs>
					<tar name="bash-minimal.tar" />
					<tar name="coreutils.tar" />
					<dir name="dev">
						<zero/> <null/> <terminal/>
						<inline name="rtc">2018-01-01 00:01</inline>
					</dir>
					<dir name="pipe"> <pipe/> </dir>
					<dir name="tmp"> <ram /> </dir>
				</vfs>

				<policy label_prefix="vfs_rom" root="/"/>
				<default-policy root="/" writeable="yes"/>
			</config>
			<route>
				<service name="Terminal"> <child name="terminal"/> </service>
				<any-service> <parent/> </any-service>
			</route>
		</start>

		<start name="vfs_rom">
			<resource name="RAM" quantum="16M"/>
			<binary name="cached_fs_rom"/>
			<provides> <service name="ROM"/> </provides>
			<config/>
			<route>
				<service name="File_system"> <child name="vfs"/> </service>
				<any-service> <parent/> </any-service>
			</route>
		</start>

		<start name="/bin/bash" caps="450">
			<resource name="RAM" quantum="28M" />
			<exit propagate="yes"/>
			<config>
				<libc stdin="/dev/terminal" stdout="/dev/terminal"
					  stderr="/dev/terminal" rtc="/dev/rtc" pipe="/pipe"/>
				<vfs>
					<fs buffer_size="1M" label="shell"/>
					<dir name="cbe"> <fs buffer_size="4M" label="cbe"/> </dir>
				</vfs>
				<arg value="bash"/>
				<env key="HOME" value="/"/>
				<env key="TERM" value="screen"/>
				<env key="PATH" value="/bin" />
				<env key="PS1"  value="cbe:$PWD> "/>
			</config>
			<route>
				<service name="File_system" label="cbe"> <parent label="cbe"/> </service>
				<service name="File_system" label="shell"> <child name="vfs"/> </service>
				<service name="ROM" label_suffix=".lib.so"> <parent/> </service>
				<service name="ROM" label_last="/bin/bash"> <child name="vfs_rom"/> </service>
				<service name="ROM" label_prefix="/bin">    <child name="vfs_rom"/> </service>
				<any-service> <parent/> <any-child/> </any-service>
			</route>
		</start>

	</config>

</runtime>
