A岛-AC匿名版
首页版规 | 丧尸路标 | 名词解释 | Bug反馈 | 请关注A岛微博 | 芦苇娘的胖次| 人,是会思考的芦苇|芦苇娘表情包下载|App下载:芦苇娘(安卓)|基佬紫(安卓)|WP|Win10|芦苇娘(iOS)|橙A岛(iOS)
当前在线: 常用串:丧尸图鉴·壁纸楼·豆知识·淡定红茶·胸器福利·黑妹·总有一天·这是芦苇·赵日天·二次元女友·什么鬼·荒野探索·面包车女孩·AC大逃杀新版

技术宅


名 称
E-mail
标题
颜文字
正文
附加图片
•程序语言、压制投稿、视频制作以及各计算机领域的技术问题
•技术版官方QQ群:243472212
电脑组装及产品等问题请移步数码,否则删
•本版发文间隔为15秒。

无标题 无名氏 2018-07-23(一)10:54:17 ID:HKV8nHs [举报] [订阅] No.14598503 [回应] 管理
用camal命名法的话,如果遇到缩写词开头要怎么写?以HTTP为例的话是hTTP?还是http?又或者干脆无视首字母小写就直接用HTTP?
回应有 1 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-23(一)11:10:54 ID:CzpreVW [举报] No.14598607 管理
难道没写过web相关?Http
无标题 无名氏 2018-07-23(一)11:44:02 ID:HKV8nHs (PO主) [举报] No.14598853 管理
>>No.14598589
其实也是差不多的形式,一个自定义字段是缩写的形式,于是就有XXXChecked的感觉,变量名都用驼峰这里就跟着驼峰了,但是具体怎么驼就有点犯难,也确实没看到过类似的例子,就算是HTTP的话也会有HTTPRequest这种命名需求,不过见到的这种都是Pascal命名,没有Camel的,所以也不确定Camel这么写可不可以,肥肥们平常不会遇到么,还是说用Camel本身就是个错误|д` )
无标题 无名氏 2018-07-23(一)12:21:16 ID:tlD9CtF [举报] No.14599144 管理
那你碰到go这种用首字母大小写区分access level怕不是要纠结死( ゚ 3゚)
无标题 无名氏 2018-07-23(一)12:41:48 ID:jdddofx [举报] No.14599319 管理
看着不爽就在HTTP前面再加个什么( ゚∀。)
无标题 无名氏 2018-07-23(一)13:28:24 ID:9uiHsOo [举报] No.14599671 管理
Google的规范是把简写看作一个单词 也就是http和Http
微软给C#的规范则是对于不少于3个字母的简写看作一个单词 否则整体大小写 比如html和Html ioStream和IOStream

无标题 无名氏 2018-07-23(一)08:31:36 ID:iFWRMUa [举报] [订阅] No.14597669 [回应] 管理
买了新手机,但是又感觉旧手机好像也还能用,突然想到,如果我只用新手机来满足基本的生活需要比如接打电话,聊天支付,而娱乐都在旧手机上,能不能减缓电池和闪存的损耗从而让新手机能用到更久呢?

po不太懂相关的知识,只是一个猜想|∀゚
回应有 1 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-23(一)09:12:01 ID:rCPf1Fr [举报] No.14597921 管理
智能手机的设计寿命也就两三年 而且是故意的 你想多了
无标题 无名氏 2018-07-23(一)09:12:30 ID:Hu93py7 [举报] No.14597926 管理
不应该是娱乐新手机,打电话旧手机吗
无标题 无名氏 2018-07-23(一)09:29:26 ID:8XY7sha [举报] No.14598033 管理
>>No.14597921
换块电池照样用,不玩游戏我实在想不出什么换手机的理由
无标题 无名氏 2018-07-23(一)09:32:13 ID:TJWGL9l [举报] No.14598049 管理
可以
不过还有一种更好的方式
你可以把新手机放回盒子然后找个柜子的角落里收起来
这样即时是数年后新手机还能和全新一样
无标题 无名氏 2018-07-23(一)11:22:48 ID:zIILj9L [举报] No.14598695 管理
换个电池系统重置又能再战一年,不过现在的app也是越来越占资源了

无标题 无名氏 2018-07-23(一)10:23:57 ID:olykT39 [举报] [订阅] No.14598324 [回应] 管理
小米螺丝刀好用吗(`・ω・)
无标题 无名氏 2018-07-23(一)10:27:19 ID:Debrznd [举报] No.14598340 管理
南旗(`・ω・)
无标题 无名氏 2018-07-23(一)10:31:00 ID:RYwwm0x [举报] No.14598358 管理
同上推荐南旗
无标题 无名氏 2018-07-23(一)10:38:08 ID:olykT39 (PO主) [举报] No.14598399 管理
好的谢谢(^o^)ノ
无标题 无名氏 2018-07-23(一)10:41:42 ID:5xG3X3G [举报] No.14598419 管理
好看不好用(`・ω・)
无标题 无名氏 2018-07-23(一)10:44:18 ID:p8K8s8n [举报] No.14598435 管理
南旗s2
小米垃圾

无标题 无名氏 2018-07-22(日)19:40:21 ID:1b6wxuK [举报] [订阅] No.14594469 [回应] 管理
感觉最近node后端写太多了前端全忘光了(虽然原来也就只会api
打算捡起来又怕复习完把后端忘了...想问一下该怎么平衡呢
无标题 无名氏 2018-07-22(日)21:54:50 ID:PK7LDON [举报] No.14595486 管理
怎么会忘了。。。就算忘了再回头稍微看一下也会回想起大部分吧
无标题 无名氏 2018-07-23(一)00:29:06 ID:GOLAKbk [举报] No.14596537 管理
我也是 可能这就是智商差距吧( ゚∀。)
无标题 无名氏 2018-07-23(一)02:51:48 ID:fJ2Vtcq [举报] No.14597082 管理
如果会忘就是原来就不熟练咯,js这种东西看起来简单实际上坑不少的,所以po主大概原来就是不怎么会(说错了别打我),如果只是简单的前端的话上网临时查查API再看看自己之前写的代码差不多就记起来了吧
无标题 无名氏 2018-07-23(一)08:14:45 ID:wSZ2b5u [举报] No.14597561 管理
>>No.14595486

无标题 无名氏 2018-07-22(日)20:08:55 ID:auXPZp9 [举报] [订阅] No.14594654 [回应] 管理
朱军 软件测试一般是用哪些工具来测试的,还有就是面试的时候一般会问哪些问题|∀` )
无标题 无名氏 2018-07-22(日)20:18:50 ID:1ErSBG7 [举报] No.14594715 管理
首先要知道是什么软件?先了解下面试的公司是做什么产品的。

无标题 无名氏 2018-07-18(三)20:26:09 ID:W4XXZIG [举报] [订阅] No.14566555 [回应] 管理
朱军,请问通过猎头去日本搞IT靠谱吗,最近通过猎头面试上了一家日本公司( ´_ゝ`)
回应有 14 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-22(日)14:30:40 ID:W4XXZIG (PO主) [举报] No.14592295 管理
>>No.14592281
然后是社长给我做的面试( ´ー`)
无标题 无名氏 2018-07-22(日)16:20:45 ID:WYqsi5s [举报] No.14593083 管理
正社员?你去日本什么签证?
无标题 无名氏 2018-07-22(日)17:18:17 ID:quAtXh8 [举报] No.14593515 管理
po我也想走这条路,终身雇佣和房价什么的比较有吸引力。求经验(つд⊂)
无标题 无名氏 2018-07-22(日)17:51:34 ID:W4XXZIG (PO主) [举报] No.14593718 管理
>>No.14593083
技术签证吧
无标题 无名氏 2018-07-22(日)17:53:05 ID:W4XXZIG (PO主) [举报] No.14593723 管理
>>No.14593515
一有工作经验,二会一些日语,三网上找日本的公司(一般IT行业的比较多)

无标题 无名氏 2018-07-21(六)20:53:30 ID:g73kiAL [举报] [订阅] No.14587980 [回应] 管理
想做程序员,哪怕是最蹩脚最愚蠢的程序员,只要是程序员就行了
回应有 2 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-21(六)21:06:41 ID:lWN2hkx [举报] No.14588056 管理
讲真,技术是最没用最不重要的,真正重要的是嘴,能说会道能扯你就是高级技术工程师,越能说代表技术越高( ・_ゝ・)
无标题 无名氏 2018-07-21(六)22:48:04 ID:5FjhNEC [举报] No.14588706 管理
斯布雷斯不要上岛
无标题 无名氏 2018-07-22(日)16:58:15 ID:kh5kp7w [举报] No.14593376 管理
>>No.14588706
雅戈,我不做魔法师了!
无标题 无名氏 2018-07-22(日)17:37:33 ID:NNwnULN [举报] No.14593627 管理
斯布雷斯:没天赋,每天工作24小时,如痴如醉的写程序,最后成了程序员中的传说
雅阁:写程序水品一般,但是非常照顾同僚擅长理财,最后接过老板的位置为广大程序员创造了良好的业界环境
艾梅达尔:天才程序员,普通人一天的工作量他一小时就能完成,最厉害的是他总能超额完成,而且从不加班。
帕尔卡:他默默无闻,但他让所有人都能学会编程。
无标题 无名氏 2018-07-22(日)17:45:34 ID:lOAODhE [举报] No.14593670 管理
>>No.14593627
艾克萨罗斯:欲成程序员,先练二头肌。记住,拳头是对付甲方最后的武器!

无标题 无名氏 2018-07-22(日)13:48:10 ID:Q5SArk1 [举报] [订阅] No.14591992 [回应] 管理
朱军,请问A岛的API还有谁保存着吗|-` )
无标题 无名氏 2018-07-22(日)13:49:05 ID:EsNuqjp [举报] No.14591995 管理
紫岛开源的,里面可以看得到吧
无标题 无名氏 2018-07-22(日)13:55:53 ID:Q5SArk1 (PO主) [举报] No.14592039 管理
>>No.14591995
可是我是ios( ・_ゝ・)
无标题 无名氏 2018-07-22(日)13:58:42 ID:EsNuqjp [举报] No.14592051 管理
>>No.14592039
网页请求的 API 和返回数据不都一样吗?把紫岛的请求地址找到,然后用 Swift 测试就好了。不过应该是有 API 文档的吧,你可以去发邮件问问三酱

无标题 无名氏 2018-07-22(日)11:34:02 ID:mr6dq5g [举报] [订阅] No.14591101 [回应] 管理
关于内存两组双通道的问题。
如果一组双通道用频率3600的内存,另一组双通道用频率2400的内存,可以吗?3600的会被降频吗?
无标题 无名氏 2018-07-22(日)11:35:59 ID:DFVhkYb [举报] No.14591117 管理
可以
无标题 无名氏 2018-07-22(日)11:41:25 ID:iX9dgaI [举报] No.14591157 管理
可以
取最低的那个

无标题 无名氏 2018-07-16(一)18:37:02 ID:0DVJna4 [举报] [订阅] No.14553729 [回应] 管理
ryzen 到底用不用双通道?
最近想装台ryzen2600的电脑预算不太够,所以考虑上单根8g内存,但听说ryzen需要双通高频,不然限制CPU性能。(;´Д`)想问一问朱军
回应有 9 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-18(三)09:05:16 ID:0DVJna4 (PO主) [举报] No.14562634 管理
>>No.14561776
对于这个我决定条便宜的买,大黑箱子盖上什么光都看不见|∀゚
无标题 无名氏 2018-07-18(三)11:03:06 ID:MoYILWP [举报] No.14563166 管理
绝地求生,8x1和8x2相差20帧左右,1066 1600锁3.7。不知道是大小还是双通的提升
无标题 无名氏 2018-07-18(三)15:20:12 ID:0DVJna4 (PO主) [举报] No.14564557 管理
>>No.14563166
(´゚Д゚`)具体是什么分辨率多少帧到多少帧,能给我参考一下吗?
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2018-07-22(日)10:37:43 ID:0DVJna4 (PO主) [举报] No.14590801 管理
分享图片
无标题 无名氏 2018-07-22(日)10:37:59 ID:0DVJna4 (PO主) [举报] No.14590802 管理
>>No.14590801爽( ゚∀゚)

收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2018-07-21(六)10:49:46 ID:QIFg10S [举报] [订阅] No.14584134 [回应] 管理
朱军,同学拉我搞了个大创项目是云数据电影排片购票的,基于微信小程序。具体是要学哪些语言呢,我只会一些普通的前端|-` )
回应有 5 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-21(六)15:42:42 ID:MGx2ZAC [举报] No.14585900 管理
可以给我看下需求文档吗
无标题 无名氏 2018-07-21(六)15:52:40 ID:QIFg10S (PO主) [举报] No.14585958 管理
>>No.14585900
还没定( ´_ゝ`)就一个题目,关键还被大创看上了>>No.14585343
java感觉很难用啊,那就屁眼通红好了
无标题 无名氏 2018-07-21(六)16:14:16 ID:Jxm58qV [举报] No.14586065 管理
Python吧,挺多现成的解决方案的,而且简单方便啊
无标题 无名氏 2018-07-21(六)19:16:18 ID:MGx2ZAC [举报] No.14587229 管理
>>>No.14585958
最近在练这个,其实后台java,小程序比较烦,如果难度比较适中,我估计我也想弄起来玩一下
无标题 无名氏 2018-07-22(日)08:40:32 ID:5jmERDu [举报] No.14590287 管理
东软的朋友吗?

无标题 无名氏 2018-07-17(二)13:42:01 ID:bdioaes [举报] [订阅] No.14558250 [回应] 管理
c++好找工作吗 从实习开始 我看软件开发这一块招聘java用的多 只有零星几个c/c++ 要不要考虑学java( ´_ゝ`)
回应有 7 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-20(五)23:59:28 ID:XnRhLTP [举报] No.14582138 管理
鄙视链定点是纸条打孔
无标题 无名氏 2018-07-21(六)00:37:32 ID:ZNOtN7E [举报] No.14582336 管理
>>No.14582138
(|||゚Д゚)
无标题 无名氏 2018-07-22(日)01:18:02 ID:qKw5l2T [举报] No.14589483 管理
>>No.14582138
这个太硬核了
无标题 无名氏 2018-07-22(日)02:19:52 ID:tlD9CtF [举报] No.14589694 管理
>>No.14582138
纸带打孔都是弟弟,最早是雇佣一群女工人工连线构成逻辑电路( ゚ 3゚)
无标题 无名氏 2018-07-22(日)02:22:01 ID:ll1cIhI [举报] No.14589700 管理
>>14589694
抱歉,印花机在鄙视链顶端望着你们

无标题 无名氏 2018-07-21(六)15:32:14 ID:nGUZKmg [举报] [订阅] No.14585845 [回应] 管理
电脑1win7的资源管理器一直停止工作怎么回事啊?什么都点不开
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2018-07-21(六)15:32:53 ID:nGUZKmg (PO主) [举报] No.14585849 管理
|∀゚祭品
无标题 无名氏 2018-07-21(六)15:43:06 ID:IXO20U0 [举报] No.14585903 管理
重装,下一个
无标题 无名氏 2018-07-21(六)15:45:33 ID:MGx2ZAC [举报] No.14585920 管理
cmd tasklist 找到出问题的id taskkill /f /pid

收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2018-07-18(三)11:00:46 ID:28FrubD [举报] [订阅] No.14563153 [回应] 管理
朱军,我经常听说阿里ddns很好,我现在有用电脑做一个简易的nas,有时远程用。
已经找过电信,现在已经有外网ip,当然还是动态的。路由器里一直挂的是花生壳免费的域名,因为有外网ip也没有用到内网穿透。最近路由器固件更新支持阿里云了,那么我从花生壳换成阿里云,能有什么提升吗?( ゚∀゚)
我感觉一个域名解析应该不会影响什么吧,最多变化ip的时候dns更新的快一些?
祭品
回应有 1 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-18(三)11:59:53 ID:28FrubD (PO主) [举报] No.14563524 管理
>>No.14563441
以前好像有.win域名,10年67块,现在似乎没有了。
我看现在最便宜的是.top域名,10年148块,也算能接受吧| ω・´)
不过要是几乎没提升,那我就不花这个冤枉钱了
无标题 无名氏 2018-07-18(三)16:17:49 ID:sFWLesV [举报] No.14564894 管理
一直在用dnspod的ddns,有shell的路由器才行
无标题 无名氏 2018-07-18(三)16:22:26 ID:NJYT2lj [举报] No.14564926 管理
应该没啥提升
无标题 无名氏 2018-07-20(五)18:55:25 ID:tZH86WK [举报] No.14579864 管理
没用内网穿透,没区别的。花生壳支持的域名类型也够多
无标题 无名氏 2018-07-21(六)15:14:16 ID:EsNuqjp [举报] No.14585734 管理
>>No.14563524
买10年干嘛呢,一年换一个,3块钱不是爽歪歪

无标题 无名氏 2018-07-21(六)11:37:25 ID:8KezueB [举报] [订阅] No.14584418 [回应] 管理
诸君
我家现在网络是100m
光猫-路由器1(不开wifi)-路由器2(开wifi)
路由器1是网件的一个很垃圾的,300m的
路由器2是k2
这样用有什么影响吗,最大的反应就是登录刺激战场要很久。。。但进去就没事了
无标题 无名氏 2018-07-21(六)11:40:43 ID:YI3QsLj [举报] No.14584440 管理
多了一层NAT转发

收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2018-07-21(六)02:29:58 ID:l1n6VR1 [举报] [订阅] No.14582873 [回应] 管理
1803到底什么毛病啊,自动更新、易升更新、msdn镜像安装都失败了(|||゚Д゚),报错是这个,查了下只是笼统的说驱动问题,完全不知道怎么解决啊
无标题 无名氏 2018-07-21(六)06:18:37 ID:Tlwvjo8 [举报] No.14583159 管理
先把各种驱动更新到最新然后再试
无标题 无名氏 2018-07-21(六)09:02:33 ID:RaIje8m [举报] No.14583593 管理
更新到1803看视频卡,浏览器卡,玩游戏卡,实在是用不下去只好卸载更新了|ー` )

无标题 无名氏 2018-07-21(六)01:00:43 ID:0j0vfkS [举报] [订阅] No.14582496 [回应] 管理
大佬们 前端的学习路线到底是啥呢 马上要毕业了这个暑假我想好好做人(;´Д`)
无标题 无名氏 2018-07-21(六)06:06:11 ID:SBMlae0 [举报] No.14583147 管理
游戏前端请。
无标题 无名氏 2018-07-21(六)06:12:08 ID:FYTanM0 [举报] No.14583153 管理
我只知道现在前后端分离,要学什么react,vue,regular这些

无标题 无名氏 2018-07-21(六)03:42:47 ID:hIc2Dbx [举报] [订阅] No.14583007 [回应] 管理
今天上午突然断电了一小会,刚刚发现笔记本外接硬盘里面的文件都无法读取了,就剩个文件的样子摆在那里,打不开也不能进行操作,怎么修啊(*´д`)

无标题 无名氏 2018-07-18(三)07:55:31 ID:9SONPod [举报] [订阅] No.14562269 [回应] 管理
朱军,准大一新生,假期玩游戏太久有点烦,有什么计算机类入门书籍介绍一下吗?想试着动动手
回应有 15 篇被省略。要阅读所有回应请按下回应链接。
收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2018-07-20(五)13:35:40 ID:pxvZ6Xs [举报] No.14577262 管理
分享图片
无标题 无名氏 2018-07-21(六)01:23:35 ID:YOG7Dtt [举报] No.14582642 管理
>>No.14577262
滋磁,另推荐csapp,先通读一边大概就知道方向了。
以后精读的机会有得是。
无标题 无名氏 2018-07-21(六)02:03:47 ID:aSF0r8V [举报] No.14582778 管理
office那几个用熟练了吗?latex呢?
我现在还对word一无所知
无标题 无名氏 2018-07-21(六)02:14:02 ID:aSF0r8V [举报] No.14582810 管理
>>No.14565050
附议(つд⊂)
以及ppt之类,大学生应该都用得上
无标题 无名氏 2018-07-21(六)02:16:40 ID:aSF0r8V [举报] No.14582818 管理
高德纳的《The art of computer programming》
( ゚∀。)

收起 查看大图 向左旋转 向右旋转
无标题 无名氏 2018-07-17(二)20:59:22 ID:VMg426R [举报] [订阅] No.14560562 [回应] 管理
有没有对操作系统原理了解的肥肥啊
想问一下进程的组成相关问题
就是关于PCB、程序段、数据段里面存的是些什么啊,程序段数据段详细希望
另外c和c++分配的内存有什么差别?
回应有 5 篇被省略。要阅读所有回应请按下回应链接。
无标题 无名氏 2018-07-18(三)00:30:26 ID:tlD9CtF [举报] No.14561609 管理
>>No.14561511
这个就是各个操作系统自己的实现了,你可以看一下Linux的虚拟内存机制( ゚ 3゚)看完你应该就有个大概的认识了
无标题 无名氏 2018-07-18(三)00:39:02 ID:HSbnWFu [举报] No.14561637 管理
PCB用户态接触不到,里头主要就一个PID,一些权限信息,分配了什么资源,以及它的分页有关的映射。最重要的一个是那个保存现场,可以理解为GBA模拟器的即时档,给你进程存一个即时档,暂停了,切到别的,别人运一段之后在读你即时档接着运行你的进程。

段在操作系统里用来标记这段二进制内存到底是什么,他们一般带有一些权限,比如这里可不可以运行,可不可以读可不可以写。

pe文件(exe/elf)在被载入内存的时候,所有这些段被载入到他们要求(在pe头的段表里要求)的位置。

.text
代码段实际就把pe程序(exe/elf)里面的机器码部分复制到它要求的(在pe头的段表里要求)的位置,然后系统(pe加载器)做基本准备工作(比如把main的参数捋一捋),之后把程序运行权(IP,指令寄存器)交给应用程序。对于一般的程序,除非调用系统函数,程序跑来跑去跑不出代码段。当调用外部程序(系统API)的时候,则call或者jmp到系统领空(这些机器码在pe文件进内存的时候被映射到了整个虚拟内存的某个固定位置)。对于每个应用程序,这些系统API代码都是共享的,但是大家看起来每人都各自有一份,这是用页表实现的。

.data
数据段一般塞一些全局变量和static,如果它是一个类,当系统先把运行权(IP)交给程序的时候,它先不进入main,而是构造这些东西。当你把main放到dll/so里并且静态链接整个程序的时候,pe文件就可以通过这个机会把回调函数注册给dll/so从而对一些事件进行响应(比如MFC就是这么搞的)。在古代的C++里这会导致不符合标准的问题(成员函数指针转换类型后不允许被调用),当代已经符合标准了。

.rdata
只读数据段放一些只读数据。逻辑上带const(比如char* a = "f**k.\n"里头这个f**k串本身,是分配了内存的右值,就在rdata段内,它永远不会被写)

.bss
放没初始化的全局和static变量。

段的属性:
大部分操作系统提供一些邪恶的API,可以把一段堆内存在运行时改为可运行的。这使得你可以自己在运行时分配一块堆内存,生成一些机器码,跳到上面开始跑。这时候程序会在堆里跑起来(组成jit)。一般在操作系统的设置里可以关闭这些邪恶的API以保证系统的安全,但这么做会禁用一部分带高级jit的解释器。

段寄存器:
运行时用于标记段在内存中的位置。windows用某个段寄存器(fs)标记SEH帧,以在程序崩溃时(比如除0)启动结构化异常处理(SEH)。这个技术最早来自IBM和微软的一个合作项目。这是一个容易遭到溢出攻击的技术(它大大降低了溢出攻击的难度),所以后来有了另一个安全版的SEH(他增加了一个形同虚设的异或校验)。在64位系统中SEH彻底改变了,变得非常复杂。

导入表:
用来记录你的pe程序运行过程中要用到什么dll/so和里面的什么函数,并且预留一个地址跳转表。比如你的程序想要调用listen函数,应用载入内存之前pe并不知道系统函数在哪。所以程序载入时,系统(pe加载器)根据导入表里函数的名字,dll/so的名字,在相应的dll/so里找到其导出表里对应的实际函数地址,回填给导入表里预留的地址跳转表。这样应用程序运行时就能根据导入表回填的实际地址调用到实际的API函数了。

导出表:
dll/so暴露给别人导入表看的,暴露出来的部分就是接口(API)。

重定位表:
dll/so被载入到别的应用程序的内存里。但这会导致出现如下毛病:
它先选定一个基地址,比如0x00401000,然后有两句跳转如下
a(0x00401020): //循环开始
循环体...
b(0x00401156): jmp 0x00401020 //循环尾巴跳回上面
该dll期望被载入到0x00401000的位置,这样它就舒服了。
但是他实际被载入到了0x00701000的位置,因为0x00401000的位置被别人占了。
这下所有跳转都歪了0x00300000。
重定位表记录了这些跳的地址的立即数在代码段和其他段里的位置,对每个这些数都都+0x00300000,大家就都能跳对了。
调用外部函数则还是走导入表,所以没有影响。
对于exe/elf这类pe文件,因为虚拟内存里它是第一个被载入的,没有人会占它的地盘,所以它基本都能成功被载入到自己想要的位置(除非你要求载入到奇怪的地方),那么所以大部分pe文件不需要重定位表。

堆内存的分配:
内核API返回页→系统API返回页→C/C++的库自己算算,自己管管,返回给应用程序。
由于C/C++的库自己算算或管管,怎么管标准没有规定,所以C/C++的内存分配是没谱的。
但是标准规定new的东西delete干净,[]配对,malloc的东西free干净。所以配对使用的时候,编译器都保证分配的内存被释放干净。将new的东西free在部分编译器的库中会导致内存泄漏。如果程序内存泄漏了,进程销时操作系统会回收分配出去的页。

realloc
每个编译器对realloc的实现不一样,理论上这个函数应该尽量返回原地址,并且扩大改地址所分配的内存。如果它没做到,则会对地址的内容进行一次愚蠢的拷贝。C++里没有类似实现。

内存的碎片化:
长期使用malloc/new/realloc频繁分配内存都会导致内存碎片化。小块的常驻内存均匀的摊开到整个内存空间里,导致大块内存分配不出来。(比如2000个1字节内存把2G空间切分成了不到2M一段的小块)。如果想要解决这个问题,请自己实现内存池。如果希望解决这个问题的同时又可以使用标准库的容器,可以使用C++17标准库容器pmr扩展。
无标题 无名氏 2018-07-18(三)08:18:04 ID:VMg426R (PO主) [举报] No.14562340 管理
>>No.14561637
蟹蟹(つд⊂)
无标题 无名氏 2018-07-19(四)23:05:04 ID:haWjTmz [举报] No.14574034 管理
>>No.14560562
建议买书看,想详细学习这方面的知识光问和上网查很难召到详细答案的,首选翻译过来的计算机类图书
无标题 无名氏 2018-07-21(六)01:52:17 ID:fJ2Vtcq [举报] No.14582743 管理
如果想知道现在流行的系统内部原理的买本windows internals看看(上下两本,第七版的下我看的时候还没出)或者找一本linux源码解析啃,看你喜欢哪一个系统了,不过实际的原理都差不多。代码力够好的话也可以看一些微内核的代码和文档,不过没书领着可能会看懵。如果想知道系统是怎么和硬件通信完成各种任务的买本《30天自制操作系统》自己跟着做一遍就好。几个阻碍点可能在于1.windows internals是全英文,对windows的讲解非常详细,包括进程是如何创建的,系统是怎么管理内存的,安全性是如何保证的等等,所以比较生涩难懂2.在linux源码中包含了一部分汇编和一大部分C所以如果基础不好很难看懂3.一些设计模式如果没有相关基础可能想不通4.自己写系统可能会遇到书上没有提过的问题,这个时候如果经验不足可能就无法继续进行。如果只是想简单了解一下上面的大佬已经讲了一部分了,可以再去百度上搜搜一些博客查一查。

UP主: