# Get started with Fuchsia

Welcome to Fuchsia!

This get-started section provides instructions on how to download the
Fuchsia source code, build a Fuchsia system image, and run Fuchsia on
an emulator.

Note: If you want to run Fuchsia on a hardware device, see
[Install Fuchsia on a device][install-fuchsia-on-a-device] after completing
Step 2 below.

The steps are:

1.  [Download the Fuchsia source code][download-fuchsia].
1.  [Configure and build Fuchsia][build-fuchsia].
1.  [Start the Fuchsia emulator][start-the-fuchsia-emulator].
1.  [Explore Fuchsia][explore-fuchsia].

## Appendices

### Learn more about Fuchsia

If you are new to Fuchsia, explore [Fuchsia fundamentals][fuchsia-fundamentals]
to gain a better understanding of the platform and developer tools.

If you're ready to go deeper into Fuchsia concepts and start contributing,
check out the following resources:

*   [Fuchsia's software model][software-model]
*   [Components][components]
*   [Fuchsia packages][fuchsia-packages]
*   [Contribute changes][contribute-changes]
*   [Find a starter project][find-a-starter-project]

### Get started with Zircon

The Fuchsia project includes [Zircon][zircon], the core (kernel) platform
that powers Fuchsia.

If you're interested in working on Zircon, see
[Getting started with Zircon][get-started-with-zircon].

<!-- Reference links -->

[install-fuchsia-on-a-device]: /docs/development/hardware/README.md
[download-fuchsia]: /docs/get-started/get_fuchsia_source.md
[build-fuchsia]: /docs/get-started/build_fuchsia.md
[start-the-fuchsia-emulator]: /docs/get-started/set_up_femu.md
[explore-fuchsia]: /docs/get-started/explore_fuchsia.md
[software-model]: /docs/concepts/software_model.md
[components]: /docs/concepts/components/v2/
[fuchsia-packages]: /docs/concepts/packages/package.md
[contribute-changes]: /docs/development/source_code/contribute_changes.md
[find-a-starter-project]: /docs/contribute/open_projects/
[zircon]: /docs/concepts/kernel/README.md
[get-started-with-zircon]: /docs/development/kernel/getting_started.md
[fuchsia-fundamentals]: /docs/get-started/learn/README.md
