240 发简信
IP属地:山东
  • ULK3 内存分配( 高端内存映射)

    下面两个函数返回page指针: alloc_pages(gfp_mask,order); alloc_page(gfp_mask); 下面几个...

  • 读书笔记:LLD3(5)tasklet 和工作队列

    tasklet:调度一个tasklet,表明我们只是希望内核选择某个其后的时间来执行调度的函数。与定时器类 似,tasklet也...

  • 读书笔记:LLD3(4)内核定时器

    内核定时器可用来在未来的某个时间点(基于时钟滴答)调度执行的某个函数。 当定时器运行时,调度定时器的进程可能正在休眠或在其他处理器上执行,或干脆...

  • 读书笔记:LLD3 (3)异步通知

    异步通知:poll此类方法是采用轮询机制实现,有时不算一个好方法。而通过异步通知,应用程序可以在数据可用时收到一个信号,而不需要不停得使用轮询来...

  • 读书笔记:LLD3(2)非堵塞型I/O

    非堵塞型I/O:当数据不可用时,进程调用read或write系统调用时,进程不会堵塞,会立即返回,即使现在没有数据可读或者可写。 非堵塞型I/O...

  • 读书笔记:LLD3(1)堵塞型I/O

    堵塞型I/O:当数据不可用时,如果进程调用read或write系统调用时,此时会造成进程的堵塞,当数据传输完成后,再返回进程。 休眠的两个规则:...

  • 读书笔记:写一个块设备驱动(4)

    首先32位linux内核(2.6.32)中线性地址(虚拟地址)分为两块: 3G~4G为内核地址空间 其余为进程地址 内核总共占据物理内存1G,分...

  • 读书笔记:写一个块设备驱动(3)

    对我们的块驱动程序的参数进行设置(磁头,柱面,扇区/柱面),通过对fosp中的getgeo成员进行赋值: static struct block...

  • 读书笔记:写一个块设备驱动(2)

    上一节给出了一个块驱动程序的框架。其中 static struct request_queue *simp_blkdev_queue; 这个结构...