忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12
最近访问板块 发新帖
楼主: yejia80550708

[实践] 【好书推荐】奔跑吧 linux 内核 [复制链接]

论坛徽章:
0
发表于 2017-11-20 10:00 |显示全部楼层
学习学习。真想回答,但实在是不会。

论坛徽章:
25
IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之福建
日期:2016-07-18 09:10:1715-16赛季CBA联赛之广东
日期:2016-07-25 18:17:09C
日期:2016-10-25 16:10:552017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之同曦
日期:2017-02-11 13:43:1415-16赛季CBA联赛之同曦
日期:2017-05-13 19:24:3815-16赛季CBA联赛之上海
日期:2017-07-19 17:38:4415-16赛季CBA联赛之福建
日期:2017-08-02 09:45:3315-16赛季CBA联赛之山东
日期:2017-08-23 17:34:3615-16赛季CBA联赛之上海
日期:2017-11-14 09:20:50数据库技术版块每日发帖之星
日期:2016-06-30 06:20:00
发表于 2017-11-22 09:33 |显示全部楼层
这个真的不知道,学习下吧。

论坛徽章:
90
CU大牛徽章
日期:2013-11-29 22:26:36CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2014-02-21 14:22:02CU大牛徽章
日期:2014-02-21 14:22:07CU大牛徽章
日期:2014-02-21 14:22:09CU大牛徽章
日期:2015-02-28 17:45:342015元宵节徽章
日期:2015-03-06 16:56:38羊年新春福章
日期:2015-02-28 17:42:522015七夕节徽章
日期:2015-09-14 09:24:55CU大牛徽章
日期:2014-02-21 14:22:44CU大牛徽章
日期:2015-02-28 17:48:12CU大牛徽章
日期:2015-02-28 17:47:58
发表于 2017-11-24 14:18 |显示全部楼层
一切都是文件这个特有感触,在树莓派上要给 gpio 输出高电平就给相应的 gpio 文件写入 1 就可以,低电平反之,硬件控制太简单了

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
发表于 2017-11-28 22:19 |显示全部楼层
1.linux内核有哪几大模块?
这个比较固定了。内存管理,进程管理,文件系统,网络,驱动,锁?。

内存管理又可分为:
a. 内核自身(内核态)的管理,可以认为是为管理内存而做的工作,有点类似meta data的意思,如分段,分页,slab/slub/slob,buddy,tlb之类。
b. 进程的虚拟内存管理,主要是进程地址空间的管理,如进程内存区域的分配,映射,缺页的处理。
c. 在一个就是各种cache,如内核的一些基本常用的结构都会有个pool,还有就是页缓存和块缓存加速磁盘访问,但是感觉这2个和前面的还不一样,放到一起不知道合适不。。

进程管理可分为:进程/线程的创建/撤销/复制/通信/调度。
文件系统可分为:
a. 虚拟文件系统(vfs)主要是提供一个抽象层,屏蔽不同文件系统差异,提供统一的视图(open,close, read, write..)
b. 具体的文件系统, 如ext2/3/4,fat16/32,btrfs。。。
c. 还有一个就是类似proc这个pseudo 文件系统,sysfs也有点类似,但是感觉放到driver那里合适一点

网络应该主要是各种的协议栈,传输层(tcp/udp), 网络层(ip),route,设备接口(link),sock和各种的网络设备(eth,tun,geneve,ifb。。。)

驱动感觉东西更多,char/block 设备,bus, driver,sysfs,以及其他各种设备的driver。

锁虽然单独做为一个有点勉强,但是还是很重要的,主要各种的同步(spinlock,memory  barrier,rcu,semaphore, rw lock..)和delay(softirq, tasklet, wrok queue)的机制吧


2.     cache 在 Linux 内核中有哪些应用?(一两个例子即可)
这个在上面提了一下,如页缓存和块缓存,其目的当然是通过把一部分磁盘的数据放到内存里加速对磁盘的访问,减小内存和磁盘访问速度的差距,后台会有内核线程去sync data到磁盘。页缓存page cache应该是为了优化file IO,块缓存buffer cache是为了优化block IO,以前好像是2套不同的实现,但是现在好像同一了。

3.   cache coherency 和 memoryconsistency 有什么区别?
cache coherency主要是因为多核cpu一般都有自己的cache,但是memory确实共享的,所以当同一份数据(memory上的)在cache上有多个copy时需要确保 他们不能乱掉,有些协议如mesi就是控制这个的。
memory consistency 主要是因为程序并发,如多cpu或多线程访问同一数据,做不同的操作,如果没有控制,那么最后的数据就不可预测,出现了inconsistency。还有就是因为compiler 的优化,或cpu 执行时的乱序也可能导致inconsistency,Linux kernel里头的spinlock,semaphore,barrier,mfence之类的就是实现这个目的。
个人理解,cache coherency 更多的硬件去实现的,memory consistency跟我们关系更密切一点,内核的各种锁,屏障。。(说句题外话,你们是怎么研究锁的,感觉看了实现代码也就那样,不知道哪里该加哪里不该加,没有机会去实现总是感觉玄而又玄。。)

4.     如何理解Linux一切皆是文件?
个人理解就是在linux,不但文件可以是文件,其他的所有东西也可以用文件来表示。
比如一个设备/dev/sda就是代表系统里的一个disk,/dev/cdrom就是光驱,对这个文件的操作就是对设备的操作。
比如我想查看当前系统cpu的一些信息,那我就可以去操作(读)/proc/cpuinfo。
在比如我想产生随机数,那我就可以去读/dev/random。
总之,这样的好处就是统一了操作接口,打开一个文件生成fd,然后对fd进行读写或其他的操作。
但是我觉得有一点不好的(或不统一的)是网络设备有点特殊,为什么网卡在/dev/下没有设备?网络发送或接受数据要通过一个特殊的socket描述符去做,虽然也是一个fd,但是感觉就不统一了。其他个人理解,为什么不能把stream socket 当成一个char 设备,datagram socket当成一个block设备?(可能理解的不对)

论坛徽章:
18
程序设计版块每日发帖之星
日期:2015-08-17 06:20:0015-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:56黑曼巴
日期:2016-12-26 16:00:32每日论坛发贴之星
日期:2016-07-18 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:51程序设计版块每日发帖之星
日期:2016-06-03 06:20:00程序设计版块每日发帖之星
日期:2016-06-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-30 06:20:00
发表于 2017-12-11 11:10 |显示全部楼层
关于Coherence与Consistency的区别,知乎上的这个帖子说的比较清楚。
https://www.zhihu.com/question/25252397

论坛徽章:
0
发表于 2018-01-11 14:39 |显示全部楼层
A man of genius makes no mistakes. His errors are the portals of
您需要登录后才可以回帖 登录 | 注册

本版积分规则

DTCC2018购票6.8折优惠进行时

中国数据库技术大会是国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会。 2018年5月10-12日,第九届中国数据库技术大会将如约而至。本届大会以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余位技术专家,共同探讨Oracle、MySQL、NoSQL、大数据等领域的前瞻性热点话题与技术。
----------------------------------------
优惠时间:2018年2月13日前

报名链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP