You pretty much have to seek out the knowledge regarding Operating systems in addition to taking on the challenge of learning something like C/C+ or Rust. You have to then break all the ways of thinking about your memory model after being given a GC language.
Understanding hardware is needed to debug specific CPU/IO issues that could be caused by assumptions or lack of knowledge.
Next comes learning the different algorithms needed by an OS in a new language and then implementing them. This takes a lot of time to get down correctly.
It's also a really small and niche community which means you don't have a lot of support from peers that understand the problems you encounter the community isn't an easy one to feel accepted into. It can be hard to get support because you need to be very detailed in your questions or you will be ignored.