8 (905) 200-03-37 Владивосток
с 09:00 до 19:00
CHN - 1.14 руб. Сайт - 21.13 руб.

216628 |.

Цена: 801руб.    (¥37.9)
Артикул: 593834330122

Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.

Этот товар на Таобао Описание товара
Продавец:奥维博世图书专营店
Адрес:Пекин
Рейтинг:
Всего отзывов:0
Положительных:0
Добавить в корзину
Другие товары этого продавца
¥109.22 308руб.
¥ 26.5 25.3535руб.
¥54.41 150руб.
¥591 247руб.

Заголовок:【Подлинный】 (Специальная книга) Ядра Linux Полное справочное руководство | 197467
Цена книги:79 Юань
Автор книги:Qiu Tie;
Издательство:Машиностроительная промышленность Пресса
Дата публикации:2011-01-01 Суббота 00:00:00
Номер ISBN: 9787111323570
формат:16
Количество страниц:684
Издание:1-1
Введение в контент
Linux, как операционная система с открытым исходным кодом, широко использовался в компьютерах и встроенных устройствах, поэтому становится все более важным изучать развитие и программирование ядра Linux.Основываясь на последней версии ядра Linux 2.6.30, в этой книге систематически анализируется и суммирует широко используемые API -интерфейсы ядра, проектирует типичные примеры и предоставляет подробные объяснения сценариев разработки.Модули API ядра, проанализированные в этой книге, включают в себя: API механизма модуля ядра, API ядра управления процессом, API -API планирования процесса, API механизма прерывания, API ядра управления памятью, API времени ядра, механизм синхронизации ядра, API файловой системы API API и API файловой системы API API и API файловой системы API и API API FILE SYSTEM, ядро ​​API API и ядро ​​API API и ядро ​​API API и ядро ​​API ядра API и ядро ​​API API и ядро ​​API API и ядро ​​API API и ядро ​​API API и API файловой системы API и API API FILE SYSTEM. API управления драйвером и устройством устройства.
Эта книга основана на анализе API API Linux, углубленной практике и подробном контенте, и читатели могут проводить эффективное анализ ядра и практику программирования с низкой отправной точки.Эта книга может использоваться в качестве учебника или справочника для студентов компьютера, электроники и информации в колледжах и университетах для изучения и программы операционной системы Linux, или в качестве справочника для разработчиков Linux, а также энтузиастов программирования и разработчиков Linux.
Каталог
Предисловие
Как использовать эту книгу
Глава 1 Основные знания анализа API ядра Linux 1
Меры предосторожности 1 ядра Linux 1
Компиляция модуля шаблон Makefile в этой книге 1
Функция отладки ядра Printk 2
Компиляция и настройка ядра 4 4
Теплое напоминание 10
Ссылки 11
ГЛАВА 2 МЕХАНИЗМ МОДЕЛЯ МОДУЛЯ ЛИНУСКА API 12
Функция: __module_address () 12
Функция: __module_ref_addr () 14
Функция: __module_text_address () 16
Функция: __print_symbol () 18
Функция: __symbol_get () 20
Функция: __symbol_put () 22
Функция: find_module () 24
Функция: find_symbol () 27
Функция: module_is_live () 30
Функция: module_put () 32
Функция: module_refcount () 34
Функция: sprint_symbol () 36
Функция: symbol_put_addr () 38
Функция: try_module_get () 40
Функция: use_module () 42
Ссылки 44
Глава 3 Linux управления процессом API 45
Функция: __task_pid_nr_ns () 45
Функция: find_get_pid () 47
Функция: find_pid _ns () 49
Функция: find_task_by_pid_ns () 51
Функция: find_task_by_pid_type _ns () 53
Функция: find_task_by_vpid () 55
Функция: find_vpid () 57
Функция: get_pid () 59
Функция: get_task_mm () 60
Функция: is_container_init () 63
Функция: kernel_thread () 65
Функция: mmput () 67
Функция: ns_of_pid () 69
Функция: pid_nr () 71
Функция: pid_task () 73
Функция: pid_vnr () 75
Функция: put_pid () 77
Функция: task_active_pid_ns () 79
Функция: task_tgid_nr_ns () 81
Ссылка 83
Глава 4 Linux Process Processing API API 84
Функция: __wake_up () 84
Функция: __wake_up_sync () 87
Функция: __wake_up_sync_key () 89
Функция: ABORT_EXCLUICE_WAIT () 91
Функция: add_preempt_count () 95
Функция: add_wait_queue () 97
Функция: add_wait_queue_exclusizing () 100
Функция: AutoreMove_wake_function () 102
Функция: complete () 106
Функция: complete_all () 108
Функция: complete_done () 111
Функция: current_thread_info () 113
Функция: default_wake_function () 115
Функция: do_exit () 118
Функция: finines_wait () 120
Функция: init_waitqueue_entry () 123
Функция: init_waitqueue_head () 125
Функция: Ertruptible_sleep_on () 127
Функция: Etretrupible_sleep_on_timeout () 130
Функция: preempt_notifier_register () 133
Функция: preempt_notifier_unregister () 136
Функция: Prepare_to_wait () 139
Функция: PREPARE_TO_WAIT_EXCLUICES () 142
Функция: remove_wait_queue () 146
Функция: shard_setscheduler () 149
Функция: set_cpus_allowed_ptr () 152
Функция: set_user_nice () 155
Функция: sleep_on () 158
Функция: sleep_on_timeout () 160
Функция: sub_preempt_count () 162
Функция: task_nice () 164
Функция: try_wait_for_completion () 166
Функция: wait_for_completion () 169
Функция: wait_for_completion_intertible () 172
Функция: wait_for_completion_intertible_ timeout () 175
Функция: wait_for_completion_killable () 179
Функция: wait_for_completion_timeout () 182
Функция: wake_up_process () 184
Функция: доход () 187
Ссылки 188
Глава 5 Linux Механизм прерывания API 189
Функция: __SET_IRQ_HANDLER () 189
Функция: __tasklet_hi_schedule () 191
Функция: __tasklet_schedule () 194
Функция: disable_irq () 196
Функция: disable_irq_nosync () 196
Функция: disable_irq_wake () 198
Функция: enable_irq () 201
Функция: enable_irq_wake () 203
Функция: free_irq () 205
Функция: kstat_irqs_cpu () 207
Функция: remove_irq () 209
Функция: request_irq () 213
Функция: request_threaded_irq () 216
Функция: SET_IRQ_CHIDE_HANDLER () 219
Функция: set_irq_chip () 221
Функция: set_irq_chip_data () 225
Функция: set_irq_data () 227
Функция: set_irq_handler () 229
Функция: set_irq_type () 232
Функция: set_irq_wake () 234
Функция: setup_irq () 237
Функция: tasklet_disable () 239
Функция: tasklet_disable_nosync () 241
Функция: tasklet_enable () 243
Функция: tasklet_hi_enable () 244
Функция: tasklet_hi_schedule () 246
Функция: tasklet_init () 248
Функция: tasklet_kill () 250
Функция: tasklet_shedule () 252
Функция: tasklet_trylock () 254
Функция: tasklet_unlock () 255
Ссылки 257
Глава 6 Linux Memange Management API 258
Функция: __free_pages () 258
Функция: __get_free_pages () 258
Функция: __get_vm_area () 260
Функция: __kRealloc () 262
Функция: alloc_pages () 265
Функция: alloc_pages_exact () 268
Функция: alloc_vm_area () 270
Функция: do_brk () 272
Функция: do_mmap () 273
Функция: do_mmap_pgoff () 276
Функция: do_munmap () 279
Функция: find_vma () 281
Функция: find_vma_intersection () 284
Функция: free_pages () 286
Функция: free_pages_exact () 287
Функция: free_vm_area () 288
Функция: get_unmaped_area () 288
Функция: get_user_pages () 290
Функция: get_user_pages_fast () 292
Функция: get_vm_area_size () 294
Функция: get_zeroed_page () 295
Функция: kcalloc () 297
Функция: kfree () 299
Функция: kmalloc () 299
Функция: kmap_high () 301
Функция: kmem_cache_alloc () 303
Функция: kmem_cache_create () 305
Функция: kmem_cache_destroy () 308
Функция: kmem_cache_free () 308
Функция: kmem_cache_zalloc () 309
Функция: kmemdup () 311
Функция: krealloc () 313
Функция: ksize () 315
Функция: kstrdup () 318
Функция: kstrndup () 319
Функция: kunmap_high () 321
Функция: kzalloc () 321
Функция: memdup_user () 323
Функция: mempool_alloc () 325
Функция: mempool_alloc_pages () 327
Функция: mempool_alloc_slab () 329
Функция: mempool_create () 331
Функция: mempool_create_kzalloc_pool () 333
Функция: mempool_destroy () 334
Функция: mempool_free () 335
Функция: mempool_free_pages () 335
Функция: mempool_free_slab () 336
Функция: mempool_kfree () 336
Функция: mempool_kmalloc () 337
Функция: mempool_kzalloc () 339
Функция: mempool_resize () 341
Функция: nr_free_buffer_pages () 343
Macro: page_address () 345
Макро: page_cache_get () 346
Macro: page_cache_release () 348
Функция: page_zone () 349
Macro: grobe_kernel_address () 352
Функция: grobe_kernel_read () 354
Функция: grove_kernel_write () 355
Функция: vfree () 357
Функция: vma_pages () 358
Функция: vmalloc () 359
Функция: vmalloc_to_page () 361
Функция: vmalloc_to_pfn () 363
Функция: vmalloc_user () 365
Ссылка 366
ГЛАВА 7 МЕХАНИЗМ ГРНЕЛЯ МЕХАНИЗМА Ядра Linux API 368
Функция: __round_jiffies () 368
Функция: __round_jiffies_relative () 369
Функция: __round_jiffies_up () 371
Функция: __round_jiffies_up_relative () 373
Функция: __timeCompare_update () 375
Функция: add_timer () 377
Функция: current_kernel_time () 378
Функция: del_timer () 380
Функция: del_timer_sync () 382
Функция: do_getTimeOfday () 384
Функция: do_settimeOfday () 386
Функция: get_seconds () 388
Функция: getNstimeOfday () 390
Функция: init_timer () 391
Функция: init_timer_deferrable () 393
Функция: init_timer_deferrable_key () 395
Функция: init_timer_key () 398
Функция: init_timer_on_stack () 400
Функция: init_timer_on_stack_key () 402
Функция: mktime () 404
Функция: mod_timer () 406
Функция: mod_timer_pending () 408
Функция: ns_to_timespec () 410
Функция: ns_to_timeval () 412
Функция: round_jiffies () 414
Функция: round_jiffies_relative () 416
Функция: round_jiffies_up () 418
Функция: round_jiffies_up_relative () 420
Функция: set_normalized_timespec () 422
Функция: setup_timer () 424
Функция: setup_timer_key () 426
Функция: setup_timer_on_stack () 428
Функция: setup_timer_on_stack_key () 430
Функция: timecompare_offset () 432
Функция: timeCompare_transform () 435
Функция: timeCompare_update () 436
Функция: timer_pending () 439
Функция: timespec_add_ns () 441
Функция: timespec_compare () 442
Функция: timespec_equal () 444
Функция: timespec_sub () 446
Функция: timespec_to_ns () 448
Функция: timeVal_compare () 450
Функция: timeVal_to_ns () 452
Функция: try_to_del_timer_sync () 453
Ссылки 456
Глава 8 Механизм синхронизации ядра Linux API 457
Функция: atomic_add () 457
Функция: atomic_add_negative () 458
Функция: atomic_add_return () 460
Функция: atomic_add_unless () 461
Macro: atomic_cmpxchg () 463
Функция: atomic_dec () 464
Функция: atomic_dec_and_test () 466
Функция: atomic_inc () 467
Функция: atomic_inc_and_test () 469
Macro: atomic_read () 470
Macro: atomic_set () 471
Функция: atomic_sub () 472
Функция: atomic_sub_and_test () 474
Функция: atomic_sub_return () 475
Функция: down () 477
Функция: Down_Intertible () 479
Функция: down_killable () 481
Функция: down_read () 483
Функция: down_read_trylock () 485
Функция: down_timeout () 487
Функция: down_trylock () 489
Функция: down_write () 491
Функция: down_write_trylock () 492
Функция: Downgrade_Write () 494
Macro: init_rwsem () 496
Макро: read_lock () 498
Функция: read_seqbegin () 499
Функция: read_seqretry () 500
Макро: read_trylock () 503
Макро: read_unlock () 504
Макро: rwlock_init () 505
Функция: sema_init () 508
Макро: seqlock_init () 509
Макро: spin_can_lock () 511
Макро: spin_lock () 513
Макро: spin_lock_bh () 514
Макро: spin_lock_init () 516
Макро: spin_lock_irq () 518
Макро: spin_lock_irqsave () 520
Макро: spin_trylock () 522
Макро: spin_unlock () 525
Макро: spin_unlock_bh () 526
Макро: spin_unlock_irq () 526
Macro: spin_unlock_irqrestore () 527
Макро: spin_unlock_wait () 527
Функция: up () 529
Функция: up_read () 531
Функция: up_write () 532
Макро: write_lock () 532
Функция: write_seqlock () 534
Функция: write_sequnlock () 534
Макро: write_trylock () 535
Макро: write_unlock () 537
Ссылки 537
Глава 9 Linux файловая система ядра API 539
Функция: __mnt_is_readonly () 539
Функция: current_umask () 541
Функция: d_alloc () 542
Функция: d_alloc_root () 544
Функция: d_delete () 547
Функция: d_find_alias () 547
Функция: d_invalidate () 549
Функция: d_move () 550
Функция: d_validate () 551
Функция: dput () 553
Функция: fget () 554
Функция: find_inode_number () 557
Функция: generic_fillattr () 559
Функция: get_empty_filp () 561
Функция: get_fs_type () 563
Функция: get_max_files () 565
Функция: get_super () 566
Функция: get_unused_fd () 569
Функция: haf_submounts () 570
Функция: i_bdev () 572
Функция: iget_locked () 573
Функция: inode_add_bytes () 575
Функция: inode_get_bytes () 576
Функция: inode_needs_sync () 578
Функция: inode_set_bytes () 580
Функция: inode_setattr () 581
Функция: inode_sub_bytes () 584
Функция: Invalidate_inodes () 586
Функция: is_bad_inode () 587
Функция: make_bad_inode () 588
Функция: may_umount () 590
Функция: may_umount_tree () 591
Функция: mnt_pin () 593
Функция: mnt_unpin () 594
Функция: mnt_want_write () 596
Функция: new_inode () 596
Функция: notify_change () 598
Функция: put_unused_fd () 600
Функция: Register_filesystem () 602
Функция: unregister_filesystem () 604
Функция: unshare_fs_struct () 604
Функция: vfs_fstat () 606
Функция: vfs_getattr () 608
Функция: vfs_statfs () 610
Ссылки 613
Глава 10 Linux Device Driver Divance и API управления устройствами 614
Функция: __class_create () 614
Функция: __class_register () 615
Функция: cdev_add () 616
Функция: cdev_alloc () 617
Функция: cdev_del () 619
Функция: cdev_init () 624
Macro: class_create () 628
Функция: class_destroy () 629
Макро: class_register () 631
Функция: class_unregister () 632
Функция: device_add () 637
Функция: device_create () 638
Функция: device_del () 640
Функция: device_destroy () 640
Функция: device_initialize () 646
Функция: device_register () 652
Функция: device_rename () 652
Функция: device_unregister () 657
Функция: get_device () 663
Функция: put_device () 663
Функция: Register_chrdev () 667
Функция: Register_keyboard_notifier () 668
Функция: unregister_chrdev () 669
Функция: unregister_keyboard_notifier () 675
Описание некоторых связанных функций 679
Ссылки 679
Приложение Linux ядра API Quick Search Table 680
Вступив в 21 -й век, ИТ -технология движется вперед с беспрецедентной скоростью.Как операционная система с открытым исходным кодом, Linux продолжает расти и улучшаться с совместными усилиями многих энтузиастов.Поскольку различные компоненты и системные распределения, разработанные программой GNU, могут работать на ядре Linux, все ядро ​​Linux соответствует широкой публичной лицензии (GNU), делая Linux на ПК, серверах и разработке встроенных систем, а другие поля широко использовались ПолемВ долгосрочной разработке ядра Linux редактор обнаружил, что в настоящее время мало книг вводит APIS ядра.В настоящее время книги по программированию и разработке ядра Linux можно разделить на три категории: первая категория - анализ ядра Linux Категория-это программирование Linux, которая в основном фокусируется на программировании на уровне пользователя, обычно включающего API пользователя;Для программирования и разработки с использованием ядра Linux вам необходимо иметь всеобъемлющее понимание API ядра.Написание этой книги началось в июне 2009 года. Все примеры проверки API ядра основаны на последней версии исходного кода Linux ядра 2.6.30, когда ядро ​​2.6.30 было только что выпущено.После почти 15 месяцев анализа исходного кода, практики программирования и проверки экземпляров, обычно использованные API -интерфейсы ядра были систематически обобщены, и были написаны типичные программы проверки, которые достигли единства теоретического анализа и практического программирования.Модули API ядра, проанализированные в этой книге, включают в себя: API механизма модуля ядра, API ядра управления процессом, API -API планирования процесса, API механизма прерывания, API ядра управления памятью, API времени ядра, механизм синхронизации ядра, API файловой системы API API и API файловой системы API API и API файловой системы API и API API FILE SYSTEM, ядро ​​API API и ядро ​​API API и ядро ​​API API и ядро ​​API ядра API и ядро ​​API API и ядро ​​API API и ядро ​​API API и ядро ​​API API и API файловой системы API и API API FILE SYSTEM. Устройства драйвера и управления устройствами API.Во время примера процесса написания, благодаря Чэну Сяо за участие в проверке некоторых случаев в главе 8, Ван Вей, Ван Якун и Ю Лонг, команда проекта с открытым исходным кодом приняла участие в обсуждении проекта и проанализировала примеры.Кроме того, в процессе написания мы выслушали мнения и предложения коллег и экспертов -сверстников и проконсультировались с большим количеством домашней и иностранной литературы, особенно энтузиастов Linux, которые активны в сообществе с открытым исходным кодом и выразили свою благодарность им. ПолемИз -за быстрой скорости обновления Linux и ограниченной широты и глубины знаний редактора, пожалуйста, критикуйте и исправляйте любые ошибки и неуместные аспекты в книге.По вопросам в книге, читатели могут отправить их по электронной почте: openlinux2100@gmail.com, чтобы своевременно общаться с автором, чтобы их можно было исправить и улучшить во время перепечатки.Редактор 1 октября 2010 г. в Даляне
..

Книги, продаваемые в этом магазине, являются настоящими книгами