A data processing system comprising: an operating system for supporting processes, each process being associated with one or more resources each identifiable by a file descriptor, the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated, and being responsive to instructions of a certain type to re-initialise a process; characterised by: a library for interfacing between each process and the operating system; and a memory shared between the operating system and the library for storing state information for at least one process, the state information being associated with a resource; the library being arranged to analyse instructions from the processes to the operating system, and being arranged to, on detecting an instruction to re-initialise a process so as to be associated with a resource that is associated with pre-existing state information, cause state information equivalent to the pre-existing state information to be stored in the memory as state information for the re-initialised process and to be associated with the resource; and a descriptor table maintained by said library, wherein each resource is identifiable by means of a descriptor, and said descriptor table is configured to indicate if each descriptor is owned by a kernel of the operating system or a user level stack, and wherein if an instruction comprises a descriptor owned by the user level stack, said instructions are passed to said user level stack and if an instruction comprises a descriptor owned by the kernel, said instructions are passed to said kernel. an operating system for supporting processes, each process being associated with one or more resources each identifiable by a file descriptor, the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated, and being responsive to instructions of a certain type to re-initialise a process; a library for interfacing between each process and the operating system; and a memory shared between the operating system and the library for storing state information for at least one process, the state information being associated with a resource; the library being arranged to analyse instructions from the processes to the operating system, and being arranged to, on detecting an instruction to re-initialise a process so as to be associated with a resource that is associated with pre-existing state information, cause state information equivalent to the pre-existing state information to be stored in the memory as state information for the re-initialised process and to be associated with the resource; and a descriptor table maintained by said library, wherein each resource is identifiable by means of a descriptor, and said descriptor table is configured to indicate if each descriptor is owned by a kernel of the operating system or a user level stack, and wherein if an instruction comprises a descriptor owned by the user level stack, said instructions are passed to said user level stack and if an instruction comprises a descriptor owned by the kernel, said instructions are passed to said kernel.