First we did highs and middles, and now it’s time for the lows.
Bottom comes from the Old English botm (or bodan), ground (and also ground). I guess that makes sense since the ground is usually the bottom of things. Anyway, before that it was the Proto Germanic buthm, which might be from the Proto Indo European bhudhno-, which means bottom. The ground was the bottom, and then the bottom was the ground.
Low showed up in the late thirteenth century, although earlier it appeared as just lah. Weirdly enough, this word isn’t found in Old English, so it’s thought to be from the Old Norse lagr, and before that the Proto Indo European legh-, lie down or lay. That does make sense, although it’s strange that it skipped right over Old English like that. Fun fact, the low that’s a synonym for moo is not related at all, and it actually does have an Old English equivalent.
Down is actually the shortened form of the Old English ofdune, which is a combination of the words of (just of, big surprise) and dune (down). Dune (which is where dune comes from, by the way) comes from dun, which is a hill or mountain. So because things roll down a hill, we have down. Also down as in feathers is totally unrelated because of course it is.
Under is from the Old English under, which means…under. No big surprises here. Before that it was the Proto Germanic under- and Proto Indo European ndher, also under. So I guess we have a winner for least changed word.
Finally today, beneath. It comes from the Old English bineoþan, which looks fancy but is just beneath. It’s a combination of be- (which means by here) and neoþan, which is related to niþera, lowest or under, and the origin word for nether. Niþera can actually be traced to the Proto Germanic nitheraz and Proto Indo European ni-, below or down. Funny how we don’t use nether anymore when we can trace it further back.
Tony Jebson’s page on the Origins of Old English