6 AnswersNew Answer
If you're asking, you're a long way off ready. If you just want to do a hobby or a school project, cool, learn more computer theory, learn some assembly for your target system, learn C, and have fun hacking for the sake of it. Just had an interesting thread of a similar nature where (I hope) the guy was learning or working on a college project. It was interesting trying to figure out a possible solution because it was way outta my area. But it isn't something I'd commit to. Neither will most sane people. And you can't go it alone. If you actually are serious, rather learn C properly (not a few online courses), continue computer science class, and find an existing OS like (eg Debian, FreeBSD) and see what you can contribute. Also read read read. Then either fork it one day to make your OS, or realise you're already working on a great project and keep contributing.
Before you attempt an OS, can you build a simple command line interpreter, or a shell as it's typically called?
Before you even attempt to write an operating system please read https://wiki.osdev.org/Beginner_Mistakes#A_Hard_Truth The fact that you requested advice on which language(s) to use tells me you are not ready for such an undertaking.
Please keep in mind that a great undertaking must begin with a series of small steps. You won't be able to jump without learning to walk first. C++ is a good place to start since well-known OSes like Windows use C++ as their basic structure. But real OS is a very complex thing which requires good deal of knowledge on assembly language and computer architecture in general. So like what Ace has said, focus yourself on building DOS-like command line interpreter as the first stage on your journey to be OS designer. That is, if you're really serious and not only asking this question out of curiosity.
C/C++ and Assembly.
definitely not c# nor python, as Andrew suggested. unless you want a terribly inefficient os... but c++ could work (and does work, for some os's)