免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2845 | 回复: 6
打印 上一主题 下一主题

[内核入门] linux系统能跑在低于1G的内存吗? [复制链接]

论坛徽章:
13
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:1215-16赛季CBA联赛之广东
日期:2018-07-05 22:34:3615-16赛季CBA联赛之江苏
日期:2018-09-03 12:10:2115-16赛季CBA联赛之上海
日期:2018-09-25 03:49:2215-16赛季CBA联赛之广东
日期:2018-09-25 04:09:12
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-01-15 19:09 |只看该作者 |倒序浏览
题外话:
刚开始自学内核时,有种无从下手的感觉,后来硬着头皮看《Linux内核源代码情况分析》一段时间,虽然很晕,但发现自己渐渐的会问了。
“会问了”是个很重要的起点,“提问”其实是对“神秘感”的最好描述。另外,实际问题是客观存在的、“固定”的,我们大脑里存的问题是“爆炸→收敛”的,实际剩余问题是“收敛”的。在实际剩余问题收敛到0之前(每个人根据自己的情况定义这个“0”),不要轻易认为自己懂了,因为一个更深层的问题,可能会推翻之前的好多理解。不要太宠着自己的大脑,拼命的问问自己还在疑惑什么吧。


1. 3G-4G用户空间统一映射到0-1G内核空间,由于用户程序没有权限访问内核空间,那么linux系统如果安装在512M内存上,那些应用程序还能跑得起来吗?
我是学习了好长一段时间,才“爆炸”到这个问题上的,而且这个问题对于内核的理解有很大帮助,所以拿出来分享和讨论一下:
用户态无权使用这段编号,是受内核限制,比如do_page_falut()处理用户空间的缺页异常时,如果发现虚拟地址在这个范围,就会让用户进程段错误,而硬件并没有限制只有内核指令才可以访问0-1G的实际内存。
所以用户态访问0-1G实际内存需要满足2个条件:
① 内核愿意;
② 使用0-3G区间的虚拟地址进行映射。

2. 实际内存大小的意义是什么,为什么越大越好?
同一时刻所有进程“代码所占空间+静态数据所占空间+栈空间+malloc()总和-free()总和”,超过实际内存时,就会分配失败,这样程序就不能完成希望做的事了。

3. “公共场所”帮某个用户进程盖座“私人别墅”,不会误占了其它进程正在使用的地盘吗,别人不会误闯进来吗?
每个进程的3G-4G虚拟空间“天然”就映射到了0-1G物理空间,但是否可以访问的判断标准,不是是否已经有映射关系,而是是否已经分配,另外,用户进程访问0-1G物理地址,还要判断是否进入内核态,这样很自然的,公共场所的使用就“汇总”给内核1份代码处理了,自然就可以避免冲突了。

4. “用户态→内核态”是不是指“用户进程→内核进程”的意思?
不是。“态”和“进程”,对于CPU来说,是2种不同的环境划分,“态”反映在段寄存器的rpl字段值,“进程”反映当前使用的task_struct结构信息。

“用户态→内核态”伴随着2个主要切换(通过int指令完成):
① 段寄存器rpl切换
  用户进程不可以直接使用“特权指令”随意修改,但可以使用内核的接口规规矩矩的修改。
② 指令跳转、堆栈切换
  中断函数的地址是“固定”的,并且在内核空间(公共空间),所以从“用户程序内存镜像”跳转到“内核程序内存镜像”是没问题的,内核管理着每个用户进程的信息,从内核态返回用户态也是没问题的。
  另外,这一点很容易被当作判断进程切换的标准。然而,虽然EIP、ESP的指向,也属于进程的一种环境,而且看起来进程的切换,也就是变化EIP、ESP去做另一件事,但是即使执行同一个进程,EIP、ESP也在不断变化,所以它们并不能用于判断进程的切换,哪怕执行到“别的可执行文件”加载到内存的指令。进程环境其实记录在task_struct结构,所以当前使用的task_struct结构切换,才说明进程切换了,并且与dpl切换相互独立。

5. 内核代码执行时,正使用的task_struct结构,可能对应着一个用户进程的上下文环境,内核怎么能预测这个环境是什么样?
进程上下文环境,和程序本身的功能(逻辑)没有关系,因为内核只关心如何顺利执行完用户指令的环境,用户程序的逻辑不影响这个环境。

评分

参与人数 1可用积分 +6 收起 理由
Godbach + 6 赞一个!

查看全部评分

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
2 [报告]
发表于 2016-01-16 14:12 |只看该作者
当然可以!!!!!!!!!

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2016-01-18 16:08 |只看该作者
回复 1# _nosay

感谢分享。


   

论坛徽章:
13
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:1215-16赛季CBA联赛之广东
日期:2018-07-05 22:34:3615-16赛季CBA联赛之江苏
日期:2018-09-03 12:10:2115-16赛季CBA联赛之上海
日期:2018-09-25 03:49:2215-16赛季CBA联赛之广东
日期:2018-09-25 04:09:12
4 [报告]
发表于 2016-01-18 19:18 |只看该作者
Godbach 发表于 2016-01-18 16:08
回复 1# _nosay

感谢分享。


谢谢鼓励,表达的很差,不过正在锻炼中。。

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
5 [报告]
发表于 2016-01-19 18:28 |只看该作者
标签“白电县”是啥意思

论坛徽章:
13
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:1215-16赛季CBA联赛之广东
日期:2018-07-05 22:34:3615-16赛季CBA联赛之江苏
日期:2018-09-03 12:10:2115-16赛季CBA联赛之上海
日期:2018-09-25 03:49:2215-16赛季CBA联赛之广东
日期:2018-09-25 04:09:12
6 [报告]
发表于 2016-01-20 09:27 |只看该作者
nswcfd 发表于 2016-01-19 18:28
标签“白电县”是啥意思


电白县,位于广东省茂名市电白区,总是打雷,电压特别高,电呈白色。

论坛徽章:
0
7 [报告]
发表于 2016-06-21 19:49 |只看该作者
谢谢分享。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP