I don't think your high-level experience will "hurt" your credibility for a low-level job (you might just get the occasional poking from low-level coders, they're cheeky fellas), but it won't help you to get one either that much.
Also, though it's all relative, C++ is not that high-level so it's not a huge gap from there to kernel programming, though the kernel programming job you'll land will be more likely to involve C and Assembly instead. Still, it's not as bad as if your experience was mostly with Mozart/Oz, OCaml, Ruby or C#: you're still relatively close to the machine, and have probably a decent knowledge of memory implications.
So you just need to emphasize this a bit, and probably try the following:
Contribute to Projects in your Area of Expertise
Contribute to an open-source projet involving C++ for low-level programming to show off your already hard-earned skills.
Contribute to Open-Source Kernel / Low-Level Projects
Contribute to an open-source project and/or create one or more pet projects involving at least some C to learn some of the tricks. Pet projects will be nice for you to learn, but I'd recommend to work on something with peers, as you'll learn a bunch of interesting things and if they are vocal about code smells and bad practices they will put you on the spot when you do something that's not aligned with best practices and what would be expected in your target job.
Learn from Code
Learn by reading a lot of system code, and keep doing that until your are familiar with how different types of kernels work:
- Have a look at the BSDs' source code (NetBSD, OpenBSD, FreeBSD) [monolithic]
- Have a look at the Linux kernel's source code [monolithic]
- Have a look at the OpenSolaris source code [monolithic]
- Have a look at the MINIX source code [micro-kernel]
- Read also about closed-source kernels of different kinds (their source can be found via different means; maybe try to get in touch with local universities as they often have licenses and partnerships with software companies):
- Windows [monolithic],
- QNX [micro-kernel],
- VxWorks [micro-kernel],
- others (Haiku, SkyOS, ...)
- and look at open-source drivers' implementations, of course
DIY: Learn by Writing Your Own
- Write the important parts of a system yourself:
- Hack away on good learning kernels (NACHOS, MINIX...)
- Follow a Kernel training course:
- at a local university or online
- or follow a project like the SOS Simple OS tutorial from scratch
Learn from Books
There's also a lot of good books on the topic, either free or online (tough possibly outdated, they're still relevant):
Get the knowledge, and show that you have it by publishing thing online. SCM commit logs and similar things are the only thing that will really matter for other kernel programmers to see when they review your job applications.
This applies to both finding a new job in a new company, or to attempt to transition smoothly internally.