Apologies for my basic question, but I am kinda new to optimization methods, and I am bumping into the optimization problem below:

$\min\_{x} (c\_1 \cdot u\_1 + c\_2 \cdot u\_2)\\
 \mbox{subject to:}\\
 u\_1 \geq f(x) \\
 u\_2 \geq g(x) \\
 u\_1, u\_2 \geq 0
$

In general, I would like to minimize the cost function with decision variable $x$. However, $x$ does not exist in my objective function but instead is hidden in two constraints. $f(x), g(x)$ are two functions of $x$, which can be any functions. In the simplest case, it can be just a linear function such as $w^Tx$; however, it can be altered to any more complicated function. 

My questions are:

1. Is this a linear or non-linear problem? I think it is a non-linear problem but I am not so sure.
2. Do you know any solver that I can use to solve this problem and which methods to use? Would be nice if I can directly use it with Python.

Any suggestion/hint would be highly appreciated. Thank you in advance.