Good day everyone.
I am planning to build a terminal, which will support common commands like ls, cd, cat, etc. But I am confused on how I should structure my codebase so that if in future, I decide to support more advanced commands, it shouldn't have to be a total re-write. I checked out the official linux source code, but found it kind of cryptic and confusing.
In simple words, how should a low-level design of a terminal look like?