Most DOS extenders come with some interface to DOS services. Read their docs about that, but often, they just simulate int 0x21 and such, so you do "as if" you are in real mode (I doubt they have more than stubs and extend things to work with 32-bit operands; they most likely will just reflect the interrupt into the real-mode or vm86 handler).
Docs about DPMI (and much more) can be found on http://en.wikipedia.org/wiki/DOS_Protected_Mode_Interface).
DJGPP comes with its own (limited) glibc derivative/subset/replacement, too.
It is possible to cross-compile from Linux to DOS, see the devel/msdos/ directory of your local FTP mirror for metalab.unc.edu; Also see the MOSS DOS-extender from the Flux project from the university of Utah.
Other documents and FAQs are more DOS-centered; we do not recommend DOS development.
Windows and Co. This document is not about Windows programming, you can find lots of documents about it everywhere... The thing you should know is that there is the cygwin32.dll library, for GNU programs to run on Win32 platform; thus, you can use GCC, GAS, all the GNU tools, and many other Unix applications.