最近,深入的阅读了《Linux内核设计与实现》这本书,以下是碰到的一些问题,在此和大家进行交流学习。

碰到的问题

1.为什么不要在linux内核中使用浮点数(这个问题由于书上讲的不够明白,所以导致自己不能理解,去参考别的资料才弄懂)

浮点的编码跟整数编码是不一样的,计算时需要专门的寄存器和浮点计算单元来处理,一个浮点运算指令使用的CPU周期也更长。因此对于内核来说就会想尽量回避浮点数运算,譬如说浮点数经过定点整数转换后进行运算,效率会高很多,即使CPU带有浮点数运算部件,一般内核还是要避免直接进行浮点数运算,因为这些部件有可能被用户进程占用了,内核要判断这些浮点数部件是否被占用,保护现场,然后用浮点运算部件计算结果,恢复现场,开销会很大。如果CPU不支持浮点数运算,也就只能软件实现浮点数运算,要是你设计内核的话,相比起多做额外功夫(写浮点数实现代码)并且使得内核的效率不高,大家更加情愿避免这个问题。

2.为什么内核的栈那么小,而用户栈却很大而且还可以动态增长?栈的大小规定为4KB,8KB是否是人为规定?

未解决

3.关于Ubuntu下启用root用户的问题

虽然知道Ubuntu下root账户是默认禁止的,但是一想到要在那么多命令下前面每条加入sudo就不痛快,所以想着启用root账户。 首先设置root密码,利用现有管理员帐户在终端执行命令:

sudo  passwd root

接着输入密码和root密码,重复密码。于是我们就可以通过

su - root

命令来使用root账户登录了(这里需要注意一点的是,带参数-是为了带入登录者的环境变量和工作目录,不带-也是可以的,不过我觉得应该会碰到一些莫名其妙的问题,稳妥起见,我觉得一般加上-或者-l比较好)下面这张图是有无参数的区别:



可以明显看出不带参数-用root登录之后的工作目录仍是之前用户的工作目录。

4.因为刚刚接触内核这一块,从来没有配置过内核,所以也不知道哪些需要用到哪些不用用到,所以下载了最新版本的内核并没有自己去个性化的配置以及编译,而且书上写了Ubuntu的发布版中包含了预编译的内核,那对于我们新手来讲,是否有还需要再编译一遍内核的必要呢?书上讲了三种编译方式,看完了觉得make defconfig是新手最容易上手的创建配置命令,但是这样做了跟用发行版本身的预编译没什么差别,于是便没有再去创建自己的配置而后编译。而且,书上还讲了在内核代码树的根目录下有一个.config的文件,保存了当前的配置信息,那么我觉得随着自己的深入学习以后再来更改,不知道是否可以?进到相关目录查看了下,发现里面有一个Kconfig的文件,里面内容很少,如图



但是好像指向了另一个目录source "arch/$SEARCH/Kconfig",在这里并没有发现$SEARCH文件夹,在arch里直接看到了Kconfig文件



这个文件里内容比较多,应该是配置文件。这里不是很懂,需要老师指导。

最新文章

  1. Unity学习疑问记录之协程
  2. Spring中的IOC\DI\AOP等概念的简单学习
  3. BackTrack5-r3安装VMware Tools
  4. cAdvisor0.24.1+InfluxDB0.13+Grafana4.0.2搭建Docker1.12.3 Swarm集群性能监控平台
  5. nginx应用总结(2)--突破高并发的性能优化
  6. 17.1---编写一个函数交换两个变量的值(CC150)
  7. 【leetcode】Populating Next Right Pointers in Each Node II
  8. 明白何谓Margin Collapse
  9. TQImport3XLS.Map
  10. 转载:redis备份策略
  11. jvm参数优化
  12. Unix网络编程代码 第13章 守护进程和inetd超级服务器
  13. shell编程while
  14. 《powershell 的版本号所引起的载入 FSharp 编译器问题》基本解决
  15. 第四十二节,configparser特定格式的ini配置文件模块
  16. 一个可扩展的深度学习框架的Python实现(仿keras接口)
  17. Springboot+ActiveMQ(ActiveMQ消息持久化,保证JMS的可靠性,消费者幂等性)
  18. ORACLE中使用row_number over()排序
  19. Hanlp分词1.7版本在Spark中分布式使用记录
  20. sprint最后冲刺-out to out

热门文章

  1. RDIFramework.NET ━ 9.8 用户权限管理 ━ Web部分
  2. [Android Tips] 18. Enable/Disable WiFi via adb
  3. dump redo日志文件的信息
  4. 线性时间的排序算法--桶排序(以leetcode164. Maximum Gap为例讲解)
  5. Spring中bean的scope详解
  6. jQuery与其他JS库冲突解决
  7. UVM中的class
  8. pb数据窗口设置操作
  9. [OGRE]最小ogre程序的流程
  10. java正则表达式的使用