> For the complete documentation index, see [llms.txt](https://kmanu225.gitbook.io/cs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kmanu225.gitbook.io/cs/software-engineering/unix-linux-on-windows-choosing-the-right-environment.md).

# Unix/Linux on Windows: Choosing the Right Environment

Windows is often the standard desktop operating system in companies, while much of modern software development still depends on Linux.

You might develop on Windows and deploy to Linux, work with Linux containers, rely on Bash and GNU tools, or need to run software that was built specifically for a Linux environment. In each case, the question is similar: **how do you get the Linux capabilities you need without leaving Windows?**

There is no single answer. Depending on your goal, the right solution might be Git Bash, MinGW-w64, MSYS2, Cygwin, WSL 2, Docker, a virtual machine, or even a remote Linux system.

This series compares these approaches and focuses on one central question: **which part of Linux do you actually need: the tools, the runtime, POSIX compatibility, or a complete Linux system?**

<figure><img src="https://3366121826-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fdo9UTLEVhvOrL0zBVbm6%2Fuploads%2FhltGMgbM9bmzyZNM9tZN%2Flinux-on-windows.png?alt=media&amp;token=cfcf2f4e-12d0-4a04-a13f-e7e7cb52c40f" alt=""><figcaption><p>Where each solution sits in the HW/SW stack</p></figcaption></figure>
