I suggest starting by reading developer documentation for your OS.