Information Technology Reference
In-Depth Information
This chapter shows how the size of the kernel
stack can dynamically grow using the common
mechanism of page faults giving a number of
advantages:
Chou, A., Yang, J. F., Chelf, B., Hallem, S., &
Engler, D. (2001). An Empirical Study of Op-
erating Systems Errors. In Proceedings of the
18th ACM, Symposium on Operating System
Principals (SOSP) , (pp. 73-88), Lake Louise,
Alta. Canada.
1.
Stack pages are allocated on demand. If a
kernel process needs minimal stack only
one page is allocated. Only kernel processes
that need larger stacks will have more pages
allocated.
Corbato, A. (1968). Paging Experiment with
the Multics System . MIT Project MAC Report,
MAC-M-384.
2.
The stack pages allocated per kernel pro-
cess need not be contiguous but rather
non-contiguous physical pages are mapped
contiguously by the MMU.
Cowan, C., Pu, C., Maier, D., Hinton, H., Wal-
pole, J., Bakke, P., et al. (1998). StackGuard:
Automatic Adaptive Detection and Prevention of
Buffer-Overflow Attacks. In Proceedings of the
7th USENIX Security Conference, San Antonio,
TX.
3.
Stack overflows can be caught and damage
to other kernel process stacks prevented.
4.
Larger kernel stacks can be efficiently pro-
vided. This facilitates porting of code that
has not been designed for minimal stack
usage into the Linux kernel.
Dankwardt, K. (2001). Real Time and Linux,
Part 3: Sub-Kernels and Benchmarks . Retrieved
from
Denning, P. (1970). Virtual Memory. [CSUR].
ACM Computing Surveys , 2 (3), 153-189.
doi:10.1145/356571.356573
referenceS
Denning, P. J. (1968). The Working Set Model for
Program Behavior. Communications of the ACM ,
11 (5), 323-333. doi:10.1145/363095.363141
Analysis of the Linux kernel (2004). San Francisco,
CA: Coverity Corporation.
Draves, R. P., Bershad, B. N., Rashid, R. F., &
Dean, R. W. (1991). Using continuations to imple-
ment thread management and communication in
operating systems. In Proceedings of the thirteenth
ACM symposium on Operating systems principles,
Pacific Grove, CA, (pp. 122-136).
Anzinger, G., & Gamble, N. (2000). Design of
a Fully Preemptable Linux Kernel . MontaVista
Software.
Baratloo, A., Tsai, T., & Singh, N. (2000). Trans-
parent Run-Time DefenseAgainst Stack Smashing
Attacks. In Proceedings of the USENIX annual
Technical Conference .
Frantzen, M., & Shuey, M. (2001). StackGhost:
Hardware facilitated stack protection. In Proceed-
ings of the 10th conference on USENIX Security
Symposium - Washington, D.C. (Vol. 10, p. 5).
Bershad, B. N., Chambers, C., Eggers, S., Maeda,
C., McNamee, D., & Pardyak, P. et al (1995).
SPIN - An Extensible Microkernel for Applica-
tion-specific Operating System Services. ACM
Operating Systems Review, 29 (1).
Friedman, M. B. (1999). Windows NT Page
Replacement Policies. In Proceedings of 25th
International Computer Measurement Group
Conference , (pp. 234-244).
Search WWH ::




Custom Search