[roll] Roll fuchsia [Component Manager] Add Rust Bootfs

Initial commit for adding a Rust version of the Bootfs filesystem in
component manager, with the overall goal of removing bootsvc from the
bootstrap process.

--------------------

This change is functionally gated by the flag "--host_bootfs".
When set, the bootsvc C++ bootfs service is uninstalled from the
namespace and it is replaced by the Rust bootfs service. This happens
before component manager uses anything in '/boot', so it remains a good
proof of concept.

While Fuchsia can boot with this new bootfs service (tested by removing
the handle passed to component manager), please note two things before
enabling this flag:
1) There's currently a problem with the Rust VFS which is setting
invalid INODES, meaning things like "ls -R" will think there's a loop.
2) Since the C++ bootfs is still being created we'll be wasting memory.

Next steps are:
1) Fix the invalid INODE issue.
2) Stop creating the C++ bootfs in bootsvc when this flag is set.
3) Port the C++ integration test over to a Rust system test.

Original-Bug: 44784

Testing:
This WIP implementation has only currently been manually tested by
verifying that the created /boot directory served the same files with
the same permissions.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/619308
Original-Revision: 48da0ac29ba4e750e8374ddc12b65135a717910e
GitOrigin-RevId: 54772727fbcdea25391e2e6cc8efdef1e2b21f41
Change-Id: I92fb9f593b33bd68ea54737e8ab809796dfdca77
1 file changed
tree: d71d83d2f1305220d9de44faf22b32bb872fa3cd
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.