By far the most common organization is the Monolithic System
As per this system the entire Operating system runs as a single program in kernel mode
The OS is written as a collection of procedures , linked together into a single large executable binary program. When this technique is used , each procedure in the system is free to call one another , if the latter provides some computation that the former needs . Now being able to call any procedure we want is efficient but having thousands of procedure that can call each other without restriction may also lead to a system that is unwieldy and difficult to understand.Also a crash in the system can bring the whole system down.
In terms of information hiding ,there is essentially none — every procedure is visible to one another
However it is possible to have a some structure. The services provided by the OS are requested by putting the parameters in a well-defined place(e.g. on a stack)and then executing a trap instruction .This instruction switches machine from the user mode to the kernel mode and transfer control to the OS . The OS then fetches the parameters and determines which system call is to be carried out. After that it indexes into a table that contains in slot k a pointer to the procedure that carries out system call k
In this model for each system call there is one service procedure that takes care of it and executes it