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确保两个地址都是连续的。
  • 相关阅读:
    git整理
    oracle中utl_raw
    mysqltest语法整理
    oracle存储过程中拼接字符串及转义逗号
    oracle存储过程中循环游标,变量的引用
    oracle触发器
    oracle序列相关
    编译1
    面向对象的脚本语言的类的实现
    词法分析器
  • 原文地址:https://www.cnblogs.com/xmuliushuo/p/3296006.html
Copyright © 2011-2022 走看看