On Linux, the process is much simpler, as most of the significant parameters may be changed 'on the fly', effortlessly, and without as much as a reboot, let alone kernel compilation.
All current kernel parameters may be found in /proc/sys/kernel location. Explore it, to see that each parameter has its own file, with either a Boolean Yes/No (or 1/0) or a string value.
The set of parameters required for Oracle10g (only part of the list is quoted here) says:
shmmax = 2147483648
shmmni = 4096
shmall = 2097152
shmmin = 1
shmseg = 10
There are different ways of implementing it: first of all, you can get the values directly into the memory constructs, for example:
# echo 2147483648 > /proc/sys/kernel/shmmax
This will adjust the value correctly, with the slight drawback - the value will return to whatever the default was after the next reboot.
Alternatively, for a more permanent modification, you can place the required definitions in the kernel configuration file: /etc/sysctl.conf.
and inform the kernel of the changes with:
# sysctl -p
command, which will read the values from the sysctl.conf file and place them in the
appropriate files under /proc/sys/kernel.
Any subsequent reboots will also make use of these values.