Fig 1-17 32-bit address Space, steps in making the system call read(fd, buffer, nbytes):
Same 32-bit address space drawn horizontally:
Code
Data
C library
DLL
stack
------
-----
---------
ß----
|---------------------------------------------------------------------------------------------------|-----…-------|
VA= 0 VA=Amax VA=0xffffffff
For 32-bit Linux, Amax = 0xc0000000 -1 = 0xbfffffff (3GB user space)
For 32-bit Windows, Amax = 0x80000000 -1 = 0x7fffffff (2GB user space)
For 32-bit Solaris UNIX, Amax = 0xffffffff (4GB user space)
(64-bit systems have much larger user spaces)
Fig. 1-18 major UNIX syscalls
Fig. 1-23 The Win32 API (aka WinAPI) calls that roughly correspond to UNIX calls of Fig. 1-18