Blog

得失效应

Content #

几年前,我提出了一个人际吸引理论,叫得失理论,它给出了不同的预测。我的理论表明,他人积极的、有回报行为的增加对我们的影响,比那个人不断有回报的行为对我们的影响更大。我们会喜欢一个人,由于他对我们的喜欢随着时间的推移在增加,而不是一直喜欢我们善良的老弗雷德(Fred)或莫莉(Molly)——他们一直喜欢我们。即使善良的老弗雷德或莫莉实际上比新朋友提供了更多的奖赏、帮助与表扬。同样,我们也会不喜欢某个人,他对我们的尊重会随着时间的推移而减少,而不是像弗兰克(Frank)或莫伊拉(Moira)那样一直不喜欢我们。该理论预测,在“得”情况下,你会最喜欢一个人(在这种情况下,这个人一开始讨厌你,逐渐会变得喜欢你),而在“失”的情况下,你会最不喜欢这个人(在这种情况下,这个人一开始喜欢你,逐渐开始讨厌你)。

要使得失效应发生作用,需要两个条件。第一,不只是一系列积极或消极的陈述构成了某个得失;必须有一个完整的系列来暗示某种真正的变化。如果你告诉我你认为我是愚蠢的和虚伪的,后来你又告诉我你认为我慷慨、有运动天赋,根据我的定义,这并不构成“得”。但是如果你告诉我你认为我是愚蠢和虚伪的,但后来说你改变了主意——你现在相信我是聪明和真诚的——这是一个真正的“得”,因为它表明了一种逆转,用相反的态度代替了消极的态度。第二,态度的变化必须是渐进的。如果你突然告诉我你对我的看法改变了180度,我很可能会产生困惑和怀疑,特别是如果我看不到有任何理由让你改变对我的看法。“我们头三次见面时你认为我很傻,但现在你觉得我很聪明?你到底想从我这里得到什么?”逐渐的改变是有意义的,可以让我放心,能增加我对你的喜爱。

From #

试着让别人帮你一个忙

Content #

对于一只饥饿的老鼠或一个饥饿的人来说,一碗干粮是一种奖赏——无论它是来自男人还是女人,在白天还是晚上,在冬天还是夏天。对于溺水者来说,在任何情况下,施以救援都是一种奖赏。这类奖赏是跨情境的。但是,在我们生活的大部分领域中,赞美和恩惠是否被作为奖赏取决于具体情况;有时,赞美者或施惠者的吸引力,会比他们默不作声或袖手旁观时的吸引力小得多。这就是为什么戴尔·卡内基的建议并不总是正确的。

如果你想让别人喜欢你,那么作为一种讨好别人的手段帮他们一个忙,可能不会奏效。相反,你可以试着让别人帮你一个忙。回想一下,我描述过一种现象,叫做为残忍辩护。如果某个人伤害了另外一个人,他们通常会试图通过责备或诋毁受害者来证明自己的行为是正当的。但是辩护过程是与善意行为相伴而行的。如果你帮了某人一个忙,你会试图说服自己,你所施恩惠的接受者是一个有吸引力的、可爱的、应该得到帮助的人,以此来证明你的行为是正当的。实际上,你会对自己说:“为什么我要为威尔付出这么多努力(或者花这么多钱,或者花这么多时间帮他搬家)?因为威尔是个很好的人——这就是我这样做的理由!

From #

消极的评价会增加我们对评价者的钦佩

Content #

一些研究表明,消极的评价通常会增加我们对评价者的钦佩,只要他(她)所评价的不是我们自己!在一项实验中,特蕾莎·阿玛贝尔要求大学生阅读两篇专业的小说评论的摘要。两篇评论在写作风格和质量上都很相似,但一篇是非常正面的,另一篇则非常负面。学生们认为,与积极的评价者相比,消极的评价者尽管不太讨人喜欢,但却聪明得多、能干得多,而且是专家。

有时候,人类追求准确和共同理解的动机,会超越被喜欢、被欣赏、被赞美的欲望。我们当然希望得到爱和赞扬,但同样重要的是,我们也希望被了解和理解。

From #

无限的选择让我们把当前的选择比作幻想

Content #

正如巴里·施瓦茨所概括的那样:“这是痛苦的药方。”施瓦茨和其他人的研究发现,由大量选择产生的这种思维方式,会导致人们对最终作出的选择不太满意——即使按照客观标准,他们的选择符合他们所说的、他们想要的关系或职业。

不可避免的人类社会比较过程让选择悖论变得更糟,因为似乎每个人都找到了自己的梦中情人,而你却没有。安萨里说,他去参加朋友的婚礼,听这对夫妇说到他们“彼此最特别、最可爱的地方”。比如,“你是一个棱镜,把生命之光变成彩虹。”“你是润肤露,滋润我的心。”“没有你,我的灵魂会起湿疹。”婚礼结束后,他发现其中的四对夫妇分手了,原因可能是他们觉得自己缺乏那些誓言中所表达的爱。“他们是不是分手得太早了?我听到那些话也感到担忧。我拥有他们所拥有的那种爱吗?”

我们在行动中的确存在着选择悖论:无限的选择让我们把当前的选择比作幻想。没有人能与幻想抗衡。

From #

选择的悖论

Content #

所以现在你找到了自己的真命天子:住在你附近的某个人;他(她)和你有很多相同的价值观和信仰;这是一个喜欢你的人,而且他(她)所喜欢的人只有你;他(她)是一个长相英俊或漂亮的人。现在怎么办呢?你会说:“我找到了我的人生伴侣!抓住这个机会吧!”或者你会说:“嗯,等等——这真的是最适合我的人吗?也许我很快会遇到更好的人?”

现代世界扩大了我们在生活各个领域的选择范围。曾经有一款名为莱维斯(Levis)蓝色调品牌的牛仔裤,这款牛仔裤要么适合你,要么不适合。现在有数不清的品牌,每一个品牌都有几种选择,像靴型、直腿型、修身型、休闲型、高腰型、低腰型或撕裂型。以前你可能从几种谷物中做出选择,现在你一下子拥有了400多种不同的选择,在超市里可以摆满整个通道。正如巴里·施瓦茨(Barry Schwartz)所指出的,人们认为拥有更多的选择总是比拥有很少的选择好,所以当你问他们时,他们总是说想要更多的选择。

但是施瓦茨发现,拥有太多的选择可能会产生一个悖论:能够在多种选择中作出选择固然很好,但当所有这些选择一起妨碍我们作出任何决定时,情况就不那么好了。如果我们看得足够久,我们会想,我们总能找到一条完美的牛仔裤、麦片粥、学校、工作……或者伴侣。随着选择的增多,我们对完美的期望也越来越高,这意味着我们常常会这样想:如果我们观察得更久,是否会作出更好的选择。施瓦茨认为,由此而导致的结果是,我们变得更加挑剔,对最终的选择不会太满意;为了追求完美,我们不得不权衡和评估如此之多的选择,这让我们疲惫不堪。有时我们只是被众多的选择所麻痹,最终什么也没有做。

From #

挑剔的人更受欢迎

Content #

虽然不安全感确实增加了我们与任何我们所期待的人联系的欲望,但是在约会的条件下,我们往往更容易被那些似乎只喜欢我们的人所吸引——只有我,而不是所有其他成千上万的人,在等待着这样一次机会。那些看上去喜欢所有人的人,似乎对他们的感情不那么挑剔,因此他们远不如那些挑剔的人更受欢迎。

保罗·伊斯特威克(Paul Eastwick)和伊莱·芬克尔在一项实验中研究了这一现象,其中一组青年男女参加了一项多次速配的约会。之后,他们被要求评估自己所经历的每次约会的可取性、吸引力、是否产生了化学反应、是否会同意另一次约会;而最有趣的,是让他们评估自己心目中的选择对象,以及他们希望约会对象答应其他人约会邀请的数量。对所有约会都感兴趣的人在约会时也很可能会对所有潜在的第二次约会说“是”。但他们的约会伙伴认为,这些热情、容易获得满足的参与者不那么受欢迎,对他们个人来说,他们的化学反应也不那么强烈。当参与者认为他们的伴侣只想和他们第二次约会时,他们会更乐意做出回应。这项研究或许可以解释,当调情进展顺利时,人们会有一种令人兴奋的感觉,感觉房间里除了你和那个特别的人,没有其他人。这是一种令人兴奋、令人振奋和建立自尊的感觉,远远好过看着那个“特别的人”在最终接近你之前、先和房间里的其他人搭讪。

From #

不安全感会让我们喜欢那个喜欢我们的人

Content #

我们的不安全感和自我怀疑越强,我们就会越喜欢那个喜欢我们的人。

伊莱恩·瓦尔斯特(Elaine Walster)做了一项有趣的实验,一些女大学生在等待性格测试结果的时候,遇到了一位圆滑、英俊的年轻男子,他实际是实验者的帮手。他开始和每个学生交谈,表示他喜欢她,然后开始约会。这时,实验者走进来,把每个学生领进一间办公室,告诉她的测试结果。一半的学生得到了非常正面的描述,旨在暂时提升她们的自尊。另一些人则收到了一些负面的描述,旨在暂时降低她们的自尊。最后,学生们被要求对她们喜欢的各种各样的人(老师或朋友)进行评分:“既然我们还有点空闲,为什么不评价一下你在等的那个人呢?”收到负面反馈的学生比收到正面反馈的学生更喜欢自己的男性崇拜者。简而言之,我们喜欢被人喜欢——我们越没有安全感,就越喜欢那些喜欢我们的人。

这个实验的一个含义是,对自己有安全感的人不那么“需要帮助”;也就是说,他们不太可能接受任何主动提出的建议。就像一个饥肠辘辘的人会接受几乎任何类型的食物,一个营养充足的人可以拒绝一份新鲜的奶酪三明治,一个没有安全感的人会接受几乎所有表示感兴趣的人,而一个有安全感的人会更加挑剔。此外,一个没有安全感的人甚至会找一个不那么有吸引力的人来减少被拒绝的可能性。

From #

美貌的一个缺点

Content #

美貌赋予人们以力量,但美貌也有一个缺点:人们受到批评时,会长相漂亮的批评者更为苛刻。

在我与哈罗德·西格尔(Harold Sigall)所做的一项实验中,一位女性被打扮成具有吸引力或不吸引人的样子(穿着不合身的衣服,戴着丑陋的假发),接下来她对几位男性大学生进行了访谈。之后,她给每个学生提供了他们本人的评价。一半的学生得到了很好的评价,另外一半学生得到了不好的评价。当评价者打扮得不吸引人时,男生们似乎不太关心他们从她那里得到了一个好的评价,还是得到了一个差的评价;在这两种情况下,他们都挺喜欢她。然而,当她打扮得很吸引人,当她给他们一个有利的评价时,他们会非常喜欢她,但是当受到她的批评时,他们会比任何时候都更讨厌她。

From #

虚拟内存的数据布局

Content #

虚拟内存(Virtual Memroy)对应于物理内存(Physical Memory)。其中,前者是由操作系统抽象出来的一个概念,它在后者的基础之上进行了一层抽象,以帮助运行于其上的应用程序合理地分配内存,并管理内存使用。

因此,如下面的代码所示,我们在应用程序中打印出的各种指针值,它们实际上都对应于虚拟内存中的某个地址,而非实际的物理内存地址(Physical Address, PA)。这些地址被称为“虚拟地址(Virtual Address,VA)”。所有程序可以使用的虚拟地址则构成了虚拟地址空间(VAS)。

#include <stdio.h>
int main(void) {
  int x = 10;
  printf("%p", &x);  // 0x7fff32cf54fc.
  getchar();
  return 0;
}

CPU 在访问内存中的数据时,会借助其芯片上名为“内存管理单元(MMU)”的硬件,首先将虚拟地址动态翻译为对应的物理地址,然后再进行实际的数据获取。你可以通过下图来直观地理解这个过程。

虚拟内存机制的一个最重要特征,就是为每一个应用程序进程都抽象出了独立于物理内存的虚拟地址空间。这意味着,从进程的角度来看,它可以独享整个计算机上的所有内存。现代操作系统通常采用 32 或 64 位地址空间,两者分别拥有 2^32 与 2^64 个地址。通过这种方式,编译器在构建应用时,便不需要考虑各二进制数据段应该被实际加载到内存中的何处,所有应用均可使用统一的静态文件结构。

比如,在 64 位 Linux 系统中,与应用代码相关的 Segment 会从 VAS 的固定地址 0x400000 处开始加载。而其他 Section 内容将在满足一定对齐要求的情况下,按顺序被连续加载到高地址方向的虚拟内存中。这样,无论是程序在二进制文件内的静态视图,还是被加载到 VAS 后的运行时视图,它们都可以在虚拟内存的隔离下,在表现层有着稳定一致的布局。

而通过下面这行命令,我们便可以查看某个运行进程的 VAS 布局情况。注意,其中的 “” 需要被替换为进程对应的 ID。

cat /proc/<pid>/maps

这里,我们尝试将开头处的那个 C 程序的 ID 替换到上述命令中。在运行该命令后,可以得到如下图所示的输出结果。

这里,命令按照地址由低到高的顺序打印出了进程 VAS 内,每一块已经被占用的连续虚拟内存地址,对应的映射信息。如最右侧一列所示,这些内存中的内容或是来自于某个具体文件(/www/workspace/main),或被用作其他用途([heap])。

将上图中的信息进行归类,我们可以得到如下图所示的 Linux 进程在 VAS 内的统一数据布局结构。这里我根据类别,将不同的数据用不同的颜色进行了标注。并且,为了方便你找到这两个图之间的内存段对应关系,我将上图中的一些关键性地址信息也选择性地标注在了下图中。

总的来看,Linux 进程 VAS 中的数据,按照地址由低到高的顺序,可以被分为下面这几个主要部分。

...

ELF文件类型

Content #

ELF 作为一种文件格式,它究竟在被哪些类型的文件使用呢?

在 elf.h 头文件的定义中,ELF 格式可以应用在四种不同的文件类型上,它们对应的宏常量分别是 ET_REL、ET_DYN、ET_EXEC,以及 ET_CORE。

这四种 ELF 文件类型,虽然名称各不相同,但其内部数据的整体组织方式都遵循同样的 ELF 文件格式标准。而不同点在于,由于每种文件类型的功能定位各不相同,因此其内部的 ELF 格式组成结构也各有差异。

就拿可重定位文件来说吧,该类型文件可用于支持大型项目的增量式开发,也就是将程序中可以模块化、独立分发的功能进行单独编译,并形成可重定位文件。而依赖于这些功能实现的应用程序代码,便可与这些可重定位文件一起编译。最后,在经过链接器的静态链接处理后,便能够得到程序对应的可执行文件。这种方式的好处在于,当每次程序功能发生变化时,都可以将需要重新编译的代码约束在最小的范围。

Viewpoints #

From #

25|可执行二进制文件里有什么?