For example, if you implement some sort of user
space functionality, such as providing a basic HTTP server, in the kernel, the same syscall interface
makes it possible to interact with the HTTP server; there is no need to use a new or different programming
interface.
On the downside, the sharp delineation between kernel and user space creates some disadvantages
for normal users. For example, unlike Microsoft Windows, user space programs do not have direct
access to hardware devices. For user space programs to access a sound card, for example, the system
administrator must take steps to permit this sort of access. However, this is a small inconvenience
compared to the increased stability for which Linux systems are known.
The Security Model
As you learned earlier in this book, all users are not created equal. Some users, such as the root
user, are effectively omnipotent and can do anything on a system. Most users have more limited
access. The user (and group) IDs of these less privileged users control what programs they can execute
and the files they can access. The same restrictions apply to the development environment.
For example, if you write a program, you might not be able to access a certain feature, such as
locking memory with the mmap() system call, unless your program runs with root permissions.
Pages:
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373