You really don't need to know a lot. You choose to know a lot probably because you either feel uncomfortable not knowing the whole picture, or because your just curious. I have meet a ton of great developers that their knowledge base was their language and libraries because that was all they needed to know to be great. One guy I know that hires peoples ask one question in interviews to gauge peoples knowledge "You click the address bar of a browser type in www.google.com and push down enter on the keyboard what happens?". There are some people that give 5 min answer and some that could spend a hour just explaining the keyboard interaction with the operating system across 4 different operating systems for a hour. Find what domain you enjoy and just do it.
Everything is "just" something, and their is no way around having to do cumbersome work and making decisions to get some where doing anything.
You should stay in software because you want to. If you need others to validate a reason for you then you probably should get out while you can. Keep it as a hobby, but the second you start questioning something like this you either need to try something new or go on a camping trip and drop some mind altering drugs so you can find a answer. Maybe do some volunteer work in a third world country.