zoukankan      html  css  js  c++  java
  • 【原】Linux内核面试题集锦

    1. 内核编程与在用户层编程有什么区别?
      1)内核编程时既不能访问C库也不能访问标准的C头文件。
      2)内核编程时必须使用GNU C。
      3)内核编程时缺乏像用户空间那样的内存保护机制。
      4)内核编程时难以执行浮点运算。
      5)内核给每个进程只有一个很小的定长堆栈。内核栈的大小一般是两页,意味着32位机的内核栈是8KB。
      6)由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发。
      7)要考虑可移植性的重要性。
    2. 什么是“写时拷贝”技术?
      写时拷贝是一种可以推迟甚至免除拷贝数据的技术,fork时内核并不复制整个进程地址空间,而是让父进程和子进程共享同一个拷贝。只有在需要写入的时候,数据才会被复制,从而使各个进程拥有各自的拷贝。
    3. kmalloc 和vmalloc的区别?
      vmalloc分配的内存虚拟地址是连续的,而物理地址则无须连续。kmalloc确保两个地址都是连续的。
  • 相关阅读:
    Linux 线程池的简单实现
    m3u8(HLS) 抓包
    一个面试问题的思考
    简单实现无需密码 sudo
    转: NAT 穿透
    一个平均分配算法
    raft 算法扫盲
    20210615 JVM 优化
    20210614. 并发编程
    20210606 Java 并发编程之美
  • 原文地址:https://www.cnblogs.com/xmuliushuo/p/3296006.html
Copyright © 2011-2022 走看看