Разработка приложений в среде Linux. Второе издание - Майкл Джонсон
Шрифт:
Интервал:
Закладка:
system call — системный вызов. Механизм, используемый процессами режима пользователя для запроса служб режима ядра.
termcap. Первоначальная база данных возможностей терминалов.
terminfo. Новая, улучшенная база данных возможностей терминалов.
tty — терминал. Терминальный интерфейс, ориентированный на битовые потоки.
unreliable signals — ненадежные сигналы. Реализации сигналов, которые делают непротиворечивую обработку сигналов невозможной. Большинство реализаций ненадежных сигналов либо доставляют сигналы, не учитывая состояние выполнения процесса, либо сбрасываются обработчиками сигналов в стандартные значения при доставке сигнала.
user mode — режим пользователя. Ограниченная исполняющая среда, в которой запускаются программы.
vcs. Устройство в памяти, предназначенное для доступа и изменения содержимого виртуальной консоли.
vcsa. Устройство в памяти, предназначенное для доступа и изменения содержимого и атрибутов виртуальной консоли.
well-known port — официальный порт. Номер порта, который Internet центр Assigned Numbers Authority принял в качестве основного для конкретной службы. Например, HTTP, основной протокол для Web, имеет официальный номер порта 80, и большинство Web-серверов прослушивают этот порт. Официальные порты обычно, но не всегда, являются зарезервированными.
zombie — "зомби". Процесс, который был завершен, но его родительский процесс не учел его состояние завершения, в результате чего такой процесс не отображается в таблице процессов системы.
Литература
1. Albitz, Paul; and Liu, Cricket. DNS and BIND (second edition). O'Reilly, 1996. ISBN 1-54592-236-0.
2. Bach, Maurice J. The Design of the UNIX Operating System. Prentice Hall, 1986. ISBN 0-13-201799-7.
3. Beck, Michael; Bohme, Harold; Dziadzka, Mirko; Kunitz, Ulrich; Magnus, Robert; and Verworner, Dirk. LINUX Kernel Internals. Addison-Wesley, 1996. ISBN 0-201-87741-4.
4. Butenhof, David R. Programming with POSIX Threads. Addison-Wesley, 1997. ISBN 0-201-63392-2.
5. Cameron, Debra; Rosenblatt, Bill; and Raymond, Eric. Learning GNU Emacs. O'Reilly, 1996. ISBN 1-56592-152-6.
6. Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Reference Manual. O'Reilly, 1994. ISBN 1-56592-078-3.
7. Computer Systems Research Group, UC Berkeley. 4.4BSD Programmer's Supplementary Documents. O'Reilly, 1994. ISBN 1-56592-079-1.
8. Computer Systems Research Group, UC Berkeley. 4.4BSD User's Reference Manual. O'Reilly, 1994. ISBN 1-56592-075-9.
9. Computer Systems Research Group, UC Berkeley. 4.4BSD User's Supplementary Documents. O'Reilly, 1994. ISBN 1-56592-076-7.
10. Computer Systems Research Group, UC Berkeley. 4.4BSD System Manager's Manual. O'Reilly, 1994. ISBN 1-56592-080-5.
11. Cormen, Thomas H.; Leiserson, Charles E.; and Rivest, Ronald L. Introduction to Algorithms. McGraw-Hill, 1992. ISBN 0-07-013143-0.
12. Gallmeister, Bill O. POSIX.4: Programming for the Real World. O'Reilly, 1995. ISBN 1-56592-074-0.
13. Garfinkel, Simson; and Spafford, Gene. Practical UNIX & Internet Security. O'Reilly, 1996. ISBN 1-56592-148-8.
14. IEEE. Portable Operating System Interface (POSIX) Part 2. IEEE, 1993. ISBN 1-55937-255-9.
15. Kernighan, Brian W.; and Ritchie, Dennis M. The С Programming Language (second edition). Prentice Hall, 1988. ISBN 0-13-110362-8.
16. Koenig, Andrew. CTraps and Pitfalls. Addison-Wesley, 1989. ISBN 0-201-17928-8.
17. Lamb, Linda. Learning the vi Editor. O'Reilly, 1990. ISBN 0-937175-67-6.
18. Lehey, Greg. Porting UNIX Software. O'Reilly, 1995. ISBN 1-56592-126-7.
19. Loukides, Mike; and Oram, Andy. Programming with GNU Software. O'Reilly, 1997. ISBN 1-56592-112-7.
20. McKusick, Marshall Kirk; Bostic, Keith; Karels, Michael J.; and Quarterman, John S. The Design and Implementation of the 4.4BSD Operating System. Addison-Wesley, 1996. ISBN 0-201-54979-4.
21. Murray, James D.; and van Ryper, William. Encyclopedia of Graphics File Formats (second edition). O'Reilly, 1996. ISBN 1-56592-161-5.
22. Newham, Cameron; and Rosenblatt, Bill. Learning the bash Shell. O'Reilly, 1995. ISBN 1-56592-147-X.
23. Nichols, Bradford; Buttlar, Dick; and Proulx Farrell, Jacqueline. Pthreads Programming. O'Reilly, 1996. ISBN 1-56592-115-1.
24. Nohr, Mary Lou. Understanding ELF Object Files and Debugging Tools. Prentice Hall, 1994. ISBN 0-13-091109-7.
25. The Open Group. The Single UNIX(R) Specification — Authorized Guide to Version 3. The Open Group, 2002. ISBN 1-931624-13-5.
26. Oram, Andrew; and Talbott, Steve. Managing Projects with make. O'Reilly, 1993. ISBN 0-93715-90-0.
27. Oualline, Steven. Practical С Programming. O'Reilly, 1993. ISBN 1-56592-03-5.
28. Rubini, Alessandro. Linux Device Drivers. O'Reilly, 1998. ISBN 1-56592-292-1.
29. Salus; Peter H. A Quarter Century of UNIX. Addison-Wesley, 1994. ISBN 0-201-54777-5.
30. Schneier, Bruce. Applied Cryptography. John Wiley and Sons, 1996. ISBN 0-471-11709-9.
31. Siever, Ellen; Weber, Aaron; and Figgens, Stephen P. Linux in a Nutshell. O'Reilly, 2003. ISBN 0-59600-482-6.
32. Sobell, Mark G. A Practical Guide to Red Hat Linux 8. Addison-Wesley, 2002. ISBN 0-201-70313-0.
33. Stevens, W. Richard; Fenner, Bill; and Rudoff, Andrew M. UNIX Network Programming, Volume 1. Addison-Wesley, 2004. ISBN 0-13-141155-1.
34. Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. Addison-Wesley, 1994. ISBN 0-201-63346-9.
35. Stevens, W. Richard. Advanced Programming in the UNIX Environment. Addison-Wesley, 1992. ISBN 0-201-56317-7.
36. Strang, John. Programming with curses. O'Reilly, 1991. ISBN 0-937175-02-1.
37. Strang, John; Mui, Linda; and O'Reilly, Tim. termcap & terminfo. O'Reilly, 1991. ISBN 0-937175-22-6.
38. Summit, Steve. С Programming FAQs; Frequently Asked Questions. Addison-Wesley, 1996. ISBN 0-201-84519-9.
39. Tranter, Jeff. Linux Multimedia Guide. O'Reilly, 1996. ISBN 1-56592-219-0.
40. Vahalia, Uresh. UNIX Internals: The New Frontiers. Prentice Hall, 1997. ISBN 0-13-101902-2.
41. Vaughan, Gary; Elliston, Ben; Tromey, Tom; and Taylor, Ian Lance. GNU Autoconf Automake, and Libtool. New Riders, 2000. ISBN 1-57870-190-2.
42. Welsh, Matt and Kaufman, Lars. Running Linux (second edition). O'Reilly, 1996. ISBN 1-565-92151-8.
Примечания
1
Andrew Tanenbaum, Computer Networks, Prentice Hall, 1981, стр. 168.
2
По этой причине некоторые люди называют GPL "вирусом". — Примеч. авт.
3
Это справедливо для тех, кто привык к раскладке qwerty. Те, кто обучался на клавиатуре Дворака, используют множество макросов vi, которые делают его удобным в наборе.
4
Несмотря на то что такое поведение выглядит неудобным, это важное средство, а не ошибка. Неразворачиваемые переменные критически важны при написании обобщенных суффиксных правил, которые создают подразумеваемые зависимости.
5
Большинство версий make, включая версию GNU, распространяемую с Linux, определят бесконечный цикл и завершатся с выдачей соответствующего сообщения об ошибке.
6
Большинство, но не все, поставщики услуг доступа в Internet назначают динамические IP-адреса, а не статические.
7
Несмотря на имя, которое может ввести в заблуждение, этот системный вызов устанавливает имя узла, а не имя Internet-хоста машины.
8
Сетевые информационные службы (Network Information Services — NIS) предоставляют для машин в сети механизм совместного использования информации, такой как пользовательские имена и пароли. Ранее они назывались "желтыми страницами" (Yellow Pages — YP). Имя домена NIS — часть этого механизма, который реализуется за пределами ядра системы с тем исключением, что доменное имя хранится в структуре utsname.
9
К сожалению, ни одно из средств, описанных в этой главе, не может отследить ошибки в памяти, связанные с глобальными переменными; для этого нужна помощь компилятора. В первом издании этой книги рассматривался инструмент под названием Checker, который представлял собой модифицированную версию компилятора gcc, однако он больше не поддерживается. К официальному компилятору gcc добавлена новая технология под названием mudflap, которая описана в текущем руководстве по gcc.
10
Для большей переносимости многие из средств mpr анализа журнала используют gdb для связывания адреса с соответствующим местом в исходном коде. Чтобы это работало, программа должна содержать отладочную информацию.
11
Большинство традиционных систем Unix передают ошибку шины (SIGBUS) процессу, который пытается использовать невыровненные данные. Ядро Linux обрабатывает доступ к невыровненным данным так, чтобы процесс мог нормально продолжать работу, хотя за это приходится платить существенным снижением производительности.
12
Во всяком случае это справедливо для систем Linux/Intel и Linux/SPARC. Размер страницы зависит от базовой аппаратной архитектуры и в некоторых системах может составлять 16 Кбайт и больше.
13
Разница между -fPIC и -fpic заключается в способе генерации независимого от расположения кода. В некоторых архитектурах с помощью -fpic можно собрать только относительно небольшие совместно используемые библиотеки, тогда как в других эти флаги дают один и тот же эффект. Если только нет веских причин на обратное, лучше использовать -fPIC вместо -fpic, тогда все будет работать должным образом во всех архитектурах.
14
В случае удаления /etc/ld.so.cache система может замедлиться. Для восстановления /etc/ld.so.cache запустите ldconfig.
15
Для многопоточных приложений библиотека хранит код ошибки там, где функция errno(), которой известно, какой поток является текущим, может получить ее. Разные потоки могут содержать разные текущие коды возврата ошибок.