I believe it depends of the software architecture but operating system knowledge would not be sufficient.
First of all you need some basic code structure knowledge to identify deployable components of a software. For example you need to know the directory structure and necessary configurations for a Java Web Application to run on Unix. If it is a .NET application then you need to know if this is an MVC app or .NET Web Forms app. You need to understand the main differences between language run times and frameworks that the software uses.
Then you need some knowledge about code repositories (git, svn etc.) to maintain code. DevOps engineers need to know about branching and merging mechanisms.
Also you need to know how this software is deployed, configured and run in the OS layer.
I believe DevOps engineers should be the ones that have a lot of experience in software development and also maintained it system wise.
Edit: There is a toolchain given in Wikipedia that summarizes DevOps actions.
Code – Code development and review, Version control tools, code merging
Build – continuous integration tools, build status
Ali Doruk Baykal
Senior Sofware Developer and Team Leader
I believe it depends of the software architecture but operating system knowledge would not be sufficient.
I believe DevOps engineers should be the ones that have a lot of experience in software development and also maintained it system wise.
Edit: There is a toolchain given in Wikipedia that summarizes DevOps actions.