Since you said Linux Operating System … at it’s simplest you need to build a kernel with the required drivers compiled in, no modules, build a file system, image and boot the kernel and tell it to use the file system as root.
You need to decide which programs you want in your base filesystem image. Think small. Simple setup would just be serial or PC virtual console, single user, no login, not networking, no graphical UI, minimal tools, just 1 file system, find an alternate /etc/init which is very basic. Just the base setup of tools to boot up the operating system and look around a file system, so a shell, ls, cp, mv, ps maybe, doesn’t have to be much for a proof of concept. You just install the file system heirarchy into a file system, and boot the kernel telling it to use that file system, for which you have already compiled the driver into the kernel.
Or you could look at one of the existing initrds as a initial minimal file systems, and just boot a kernel with that. Still some integration work, as you would have to stop it trying to setup and mount a normal root file system, but if you hardware the kernel cmdline break or rd.break options on, depending on the initrd, then you will have a kernel running a file system.
After you have a base system booting, then it is all about defining what you want, and deciding how to go about it, and that is where it gets complicated. LFS has all the parts, you just need to decide how to put them together and maintain them in an ongoing manner.
You might want to try building and understanding minix, it used to be a small linux/unix like system, although I haven’t used it since the days of 1.2/1.44MB floppies.
Or you might like to start by building your own linux kernel image, and get an idea of the complexity your will need to handle if you hope to build it up to an equivalent of todays linux kernels and linux operating systems.