Introduction U-boot offers a “hush” shell similar to the Linux shell. But the U-boot shell is much simpler compared to a typical Linux shell. A Linux shell provides two kinds of commands – shell-built-ins (e.g.: type, cd, [ ) and external commands (e.g.: grep, vim). The shell-built-ins are commands which are part of the shell’s binary, whereas external commands are binaries residing on file system. Invoking a shell-built-in is easier compared to invoking an external command. When a shell-built-in is invoked, it can be executed by invoking the function which implements it. Executing an external command involves looking up for that requested program in known paths of file system, setting up and running the process, and finally its teardown. All the commands of U-boot are analogous to shell-built-ins of Linux shell. All these commands are C functions, and they finally become a part of the U-boot binary when it is built. U-boot uses an elegant mechanism called “Linker Lists” to incl...