Thanks for the markdown insights, I've never used it to that extent.
I agree, pandoc being a problem for porting. I'd gotten as far as
http://johnmacfarlane.net/pandoc/ earlier (how not right?

) but didn't go further.
I can jump start you on your crossover from desktop Linux to Android - so let's call that my best trade for the eye opener on what markdown can really do.
The Linux distributions you're accustomed to are really better described as GNU/Linux and have the hardware resources that need no further elaboration. And obviously, a number of open, quasi-private, and private extensions abound to shape personalization of your platform.
Comparing under those terms, Android is a compact, real-time Apache/Linux distribution, with a number of open and proprietary derivatives used as the final product you'll encounter.
You've encountered busybox as the replacement for a number of common building blocks for two reasons - limited hardware resources, and Apache licensing, not GPL, along with the massive changes that could be required to implement and fully elaborate the GNU versions.
The Android Linux kernel was originally branched, leading to religious arguments as to whether it could be called Linux with its number of changes off of the main line, but a few years ago, at rev 3 as memory serves, the Android Linux kernel rendezvoused with the main line, differences were reconciled and now Android changes are absorbed using the same procedures as for others.
I'm tempted to draw a comparison with the original minix not being able to support multiple users while the follow-on unix, a single user system, could, but that's really here just for comedy value.
Root privileges are prohibited to the user by design - carriers and makers do not generally want people mucking about, citing support as a valid issue, and danger to the telcos as an invalid one.
That said, the act of rooting does provide the exact analog to sudo from the common user perspective. That process entails adding the su-access binary library to a reserved /system folder, and superuser management access through a matching app. The su app in turn acts very much like a desktop Linux in that a user pop-up occurs when root access is requested by a process, allowing the user to grant always or once, or reject the request. The app then creates and maintains the equivalent of a sudoers file, but biased for just apps rather than users because of the single user nature of Android and the inherent trust in the owner that has purposely rooted the device.
Because of the compact, real-time nature of the system, X is completely missing and the ui/ux difference is highly non-trivial and its explanation leads to why Android is unlike earlier Linux phone systems.
Prior to Lollipop -
Android = compact, real-time Linux with (primarily Apache-licensed) library services + the Dalvik Virtual Machine (a sophisticated stack engine and far more than a JavaVM replacement) + apps that execute within the Dalvik and use kernel and system services
Most apps have been written in Java but not all. Native code apps exist, but nonetheless, received a wrapper in order to execute under Dalvik control and to follow the same architecture for an execution profile as Java apps.
Java apps were originally compiled at load time but in Gingerbread, the just in time compiler was introduced and non-native apps were incrementally compiled during execution.
The system proved highly effective and subtracting for compile time, Java apps (aka SDK-based apps) ran at the same speed as native code apps (aka NDK-based apps).
Lollipop formally replaced the Dalvik VM with the Android Runtime engine (ART). All SDK-based apps compile at installation time and essentially run the same as NDK-based based apps under ART, thereby allowing some users to experience performance improvements (depending on their personal app usage) while retaining the overall Android architecture.
Leading to the paradigm that everything the user sees is the result of an app for the majority of the experience, including the desktop and home screens - so where GNU/Linux has a desktop (usually founded in some way on X) and a window manager - Android has a launcher. To replace your desktop experience, replace the launcher by adding an app, same as you would for the dialer, browser, sms, or email app.
By the way, you can get the Terminal Emulator app and issue whatever built-in Linux-level commands you have installed. If rooted, rather than sudo, simply change to root with the su command and no arguments (same as you would on a desktop).
An sh is always there, busybox will give you a bash equivalent, or you can do as I did and install a better cross-compiled bash and use that.
That's the overview, hope it helps bridge the gap for you.