Given that Paterson has stoutly denied ever looking at any CP/M code (and nobody has ever produced any contradicting evidence), it's clear that in his “quick and dirty operating system”, he took the CP/M user documentation and built something with somewhat the same architecture and user-visible behaviour, using his own code, and tailoring it to the somewhat more powerful 8086. OS designers have been doing this for decades: look at the documentation for Univac and RCA lookalikes for System/360 (available on bitsavers), and compare to DOS/360. Or that “hobby” system written by some guy named Torvalds...
CP/M has no tree shaped file system. MS-DOS borrows from Unix as much as from CP/M. For instance the ".." directory being parent (in spite of there being no such directory entry), navigated by a "cd" command, and command pipelines separated by | (in spite of there being no multitasking; all done via temporary files under the hood).
Later versions of MS-DOS had a "Xenix" API, inspired and named after Microsoft's Unix flavor.
The term "BIOS" comes from CP/M, referring to the low-level hardware-abstraction layer of CP/M (Basic Input/Output System), the machine-dependent part.
IBM PC family machines put the BIOS into the machine rather than OS image, allowing machine-language programs to take it for granted that they can invoke BIOS routines.
Not that it was that much of an important feature at that time either. With the 360KB size of 5.25" drives, there were only so many files you could put in a disk. Support for hard drives was also introduced later, with version 2.0 and if I remember correctly, support for 3.5" 720KB drives came only with MSDOS 3.20.
The fact that devices like CON exist (virtually) in every dir is also a consequence of this.