LINUX系统编程(影印版)
LINUX系统编程(影印版)
Robert love
出版时间:2008年03月
页数:368
在某些时刻,几乎所有的程序员都要与其程序所处操作系统中的系统调用和程序库打交道。本书主要讨论如何编写Linux系统软件——代码位于底层,并且直接跟内核及核心系统程序库对话。《Linux系统编程》描述了使用标准接口包括使用Linux独有的高级接口时,在功能和性能之间如何进行权衡取舍的策略。

该书同样也是一本内行人士编写灵活高效代码的学习指南。作为内核黑客和本书的作者,Robert Love不仅阐释了系统接口应该如何工作,还介绍了它们实际上是如何工作的,以及怎样安全有效地使用它们。《Linux系统编程》包含了帮助你在任何层面编写更佳代码的实用技巧。

本书主题包括:

* 读写文件以及其他文件I/O操作,包括Linux内核如何实现和管理文件I/O,内存映射与优化技术
* 进程管理的系统调用,包括实时进程
* 文件与目录——创建、移动、复制、删除和管理
* 内存管理——内存分配接口,管理内存,以及优化内存访问
* 信号及其在Unix系统中的角色,以及基本和高级信号接口
* 时间、休眠和时钟管理,从基础开始讲述,并且涵盖POSIX时钟和高精度计时器
拥有《Linux系统编程》,你将从理论和应用的角度深入了解Linux,可以最大限度地利用系统的潜能。

Robert Love很早就成为一位Linux用户和黑客。他一直并且充满激情地活跃在Linux内核与GNOME桌面社区之中。他近来为Linux内核作出的贡献包括内核事件层方面的工作以及inotify,GNOME相关的贡献包括Beagle、GNOME卷管理器、网络管理器以及Project Utopia等。目前,Robert供职于Google开源软件办公室。
  1. Foreword
  2. Preface
  3. 1. Introduction and Essential Concepts
  4. System Programming
  5. APIs and ABIs
  6. Standards
  7. Concepts of Linux Programming
  8. Getting Started with System Programming
  9. 2. File I/O
  10. Opening Files
  11. Reading via read( )
  12. Writing with write( )
  13. Synchronized I/O
  14. Direct I/O
  15. Closing Files
  16. Seeking with lseek( )
  17. Positional Reads and Writes
  18. Truncating Files
  19. Multiplexed I/O
  20. Kernel Internals
  21. Conclusion
  22. 3. Buffered I/O
  23. User-Buffered I/O
  24. Standard I/O
  25. Opening Files
  26. Opening a Stream via File Descriptor
  27. Closing Streams
  28. Reading from a Stream
  29. Writing to a Stream
  30. Sample Program Using Buffered I/O
  31. Seeking a Stream
  32. Flushing a Stream
  33. Errors and End-of-File
  34. Obtaining the Associated File Descriptor
  35. Controlling the Buffering
  36. Thread Safety
  37. Critiques of Standard I/O
  38. Conclusion
  39. 4. Advanced File I/O
  40. Scatter/Gather I/O
  41. The Event Poll Interface
  42. Mapping Files into Memory
  43. Advice for Normal File I/O
  44. Synchronized, Synchronous, and Asynchronous Operations
  45. I/O Schedulers and I/O Performance
  46. Conclusion
  47. 5. Process Management
  48. The Process ID
  49. Running a New Process
  50. Terminating a Process
  51. Waiting for Terminated Child Processes
  52. Users and Groups
  53. Sessions and Process Groups
  54. Daemons
  55. Conclusion
  56. 6. Advanced Process Management
  57. Process Scheduling
  58. Yielding the Processor
  59. Process Priorities
  60. Processor Affinity
  61. Real-Time Systems
  62. Resource Limits
  63. 7. File and Directory Management
  64. Files and Their Metadata
  65. Directories
  66. Links
  67. Copying and Moving Files
  68. Device Nodes
  69. Out-of-Band Communication
  70. Monitoring File Events
  71. 8. Memory Management
  72. The Process Address Space
  73. Allocating Dynamic Memory
  74. Managing the Data Segment
  75. Anonymous Memory Mappings
  76. Advanced Memory Allocation
  77. Debugging Memory Allocations
  78. Stack-Based Allocations
  79. Choosing a Memory Allocation Mechanism
  80. Manipulating Memory
  81. Locking Memory
  82. Opportunistic Allocation
  83. 9. Signals
  84. Signal Concepts
  85. Basic Signal Management
  86. Sending a Signal
  87. Reentrancy
  88. Signal Sets
  89. Blocking Signals
  90. Advanced Signal Management
  91. Sending a Signal with a Payload
  92. Conclusion
  93. 10. Time
  94. Time’s Data Structures
  95. POSIX Clocks
  96. Getting the Current Time of Day
  97. Setting the Current Time of Day
  98. Playing with Time
  99. Tuning the System Clock
  100. Sleeping and Waiting
  101. Timers
  102. Appendix. GCC Extensions to the C Language
  103. Bibliography
  104. Index
书名:LINUX系统编程(影印版)
作者:Robert love
国内出版社:东南大学出版社
出版时间:2008年03月
页数:368
书号:978-7-5641-1141-0
原版书出版商:O'Reilly Media
Robert love
 
Robert Love从早些年开始就是一个Linux用户和黑客。他活跃,也热衷于Linux内核和GNOME桌面社区。他现在对Linux内核的贡献包括从事内核事件层和inotify。GNOME相关的贡献包括Beagle,GNOME Volume Manager,Network Manager和Utopia项目。现在Robert在Google公司的Open Source Program Office(开源程序办公室)工作。
Robert是《Linux Kernel Development (SAMS, 2005)》和《Linux System Programming (O’Reilly, 2007)》两本书的作者。他也是Linux Journal的特约编辑。现在正在为O’Reilly做一项新的工作,这将是有史以来最伟大的书,不管是写作,给予或采用。Robert在佛罗里达大学获得了一个数学方面的BA(文学学士)学位和一个计算机科学方面的BS(理学学士)学位。值得自豪的是,Robert出生在佛罗里达州南部,现在称为马萨诸塞州剑桥的家里。
 
 
The image on the cover of Linux System Programming is a man in a flying machine.
Well before the Wright brothers achieved their first controlled heavier-than-air flight
in 1903, people around the world attempted to fly by simple and elaborate machines.
In the second or third century, Zhuge Liang of China reportedly flew in a Kongming
lantern, the first hot air balloon. Around the fifth or sixth centuries, many Chinese
people purportedly attached themselves to large kites to fly through the air.
It is also said that the Chinese created spinning toys that were early versions of helicopters,
the designs of which may have inspired Leonardo da Vinci in his initial
attempts at a solution to human flight. da Vinci also studied birds and designed parachutes,
and in 1845, he designed an ornithopter, a wing-flapping machine meant to
carry humans through the air. Though he never built it, the ornithopter’s birdlike
structure influenced the design of flying machines throughout the centuries.
The flying machine depicted on the cover is more elaborate than James Means’
model soaring machine of 1893, which had no propellers. Means later printed an
instruction manual for his soaring machine, which in part states that “the summit of
Mt. Willard, near the Crawford House, N.H., will be found an excellent place” to
experiment with the machines.
But such experimentation was often dangerous. In the late nineteenth century, Otto
Lilienthal built monoplanes, biplanes, and gliders. He was the first to show that
control of human flight was within reach, and he gained the nickname “father of
aerial testing,” as he conducted more than 2,000 glider flights, sometimes traveling
more than a thousand feet. He died in 1896 after breaking his spine during a crash
landing.
,colo.3719 Page 369 Thursday, September 6, 2007 2:29 PM
Flying machines are also known as mechanical birds and airships, and are occasionally
called by more colorful names such as the Artificial Albatross. Enthusiasm for
flying machines remains high, as aeronautical buffs still build early flying machines
today.
The cover