开发日记-20190822 关键词 读书笔记《Unix环境高级编程(第二版)》《掌控习惯》DAY 2

Preface

话说,昨天开始尝试着去改变自己,从基础的习惯开始,11:30准时睡觉,平时差不多12:30才睡觉。按理说,比平时早了一个小时睡觉吧,然后我就把闹钟提前了45分钟,想着还能比平常多睡15分钟,美滋滋。结果,相比平常早起了2个小时。然后明显,早上感觉有些疲劳,看来还需要一些时间适应这个时间差。好习惯的养成和坏习惯的戒除,难度其实都是很大的,不然为什么凡人永远无穷无尽,天才往往凤毛麟角呢?都是细节,为什么电竞职业选手往往会注意一般玩家绝对不会注意到的细节,而且会去特意磨炼它呢?因为微习惯对于整个系统造成的影响是巨大的!

依然,今天继续读书,今天就比较尴尬了,因为并没有整块的时间,勉强看完的这一章还是抽吃饭的时间搞定了,辛酸和苦楚。

Content

Unix所使用的技术是为每个系统调用在标准C库中设置一个具有同样名字的函数。用户进程用标准C调用序列来调用这些函数,然后,函数又用系统所要求的技术调用相应的内核服务。例如函数可将一个或多个C参数送入通用寄存器,然后执行某个产生软中断进入内核的机器指令。从应用角度考虑,可将系统调用视作C函数。

系统调用和库函数之间的另一个差别是:系统调用通常提供一种最小界面,而库函数通常提供比较复杂的功能。我们从sbrk系统调用和malloc库函数之间的差别中可以看到这点,在以后当比较不带缓存的I/O函数以及标准I/O函数时,还将看到这种差别。

ANSI C标注你的意图是提供C程序的可移植性,使其能适应大量不同的操作系统,而不只是UNIX。此标准不仅定义了C程序设计语言的语法和语义,也定义了其标准库(ANSI 1989第四章;Plauger 1992;Kernighan及Richie 1988中的附录B)。因为很多新的UNIX系统都提供C标准中说明的函数库,所以此库对我们来讲是很重要的。

有很多由实现定义的幻数和常熟,其中有很多已经被编写到程序中,或由特定的技术所确定,由于大量标准化工作的努力,已有若干种可移植的方法用以确定这些幻术和实现定义的限制。这非常有助于软件的可移植性。

以下三种类型的功能是必须的:

  • 编译时间选择项(该系统是否支持作业控制)
  • 编译时间限制(该短整型的最大值是什么)
  • 运行时间限制(文件名的最大字符数是什么)

前两个,编译时间选择项可在头文件中定义。程序在编译时可以包含这些头文件。但是运行时间限制则要求进程调用一个函数以获得此种限制值。

另外,某些限制在一个给定的实现中可能是固定的(因此可以静态地在一个头文件中定义),而在另一个实现上可能是变动的(需要有一个运行时间函数调用)。这种类型限制的一个例子是文件名的最大字符数。系统V由于历史原因只允许文件名有14个字符,而伯克利的系统则将此增加为255。SVR4允许我们对每一个创建的文件系统指明是系统V的文件系统还是BSD文件系统,而每个系统有不同的限制。这就是运行时间限制的一个实例,文件名的最大长度依赖于文件所处的文件系统。例如,根文件系统中的文件长度限制可能是14的字符,而在某个其他文件系统中文件名长度限制可能是255个字符。

为了解决这些问题,提供了三种限制:
(1)编辑时间选择项及限制(头文件)。
(2)不与文件或目录相关联的运行时间限制。
(3)与文件或目录相关联的运行时间限制。

使事情变得更加复杂的是,如果一个特定的运行时间限制在一个给定的系统上并不改变,则可将其静态地定义在一个头文件中,但是如果没有将其定义在头文件中,则应用程序必须调用三个conf函数中的一个,以确定其运行时间值。

所有由ANSI C定义的限制都是编译时间限制。表2-2中列出了文件定义的C标准限制。这些常数总是定义在该头文件中,而且在一个给定系统中并不会改变。第三列列出了ANSI C标准可接受的最小值。这用于整形长度为16为的系统,它使用1的补码表示。第四列列出了整形长度为32位的当前系统的值,用的是2的补码表示法。注意,对不带符号的数据类型都没有列出其最小值,他们都应为0。

掌控习惯 第二章

然而,从长远来看,你不能坚持习惯的真正原因是你的自我形象妨碍着你。这就是为什么你不能太执着于一个版本的身份的原因。进步要求你吐故纳新。成为你自己的最佳版本需要你不断地修饰你的信仰,提升和扩展你的身份。

你的身份来自你的习惯。你并没有与生俱来的信念。每个信念,包括你自己的信念,都是通过后天习得并由经验磨砺出来的。

一种行为重复的次数越多,与之相关的身份就越是得以强化。事实上,身份这个词是最初来源于拉丁语单词essentitas,意思是存在,以及identidem,意思是反复。你的身份实际上就是你的“反复存在”。

随着时间推移,一次性的经历的影响会逐渐小时,而习惯的影响则会日益增强,这意味着你的习惯提供了塑造你身份的大部分数据。如此说来,养成习惯的过程实际上就是成为你自己的过程。

每个习惯不仅会得到结果,还会教会你更重要的事情:信任自己。你开始相信你真的能完成这些事情。当票数不断增加,证据开始改变时,你讲述给自己的故事也开始改变。

基于身份的习惯这一说法是本书中我们初次引入的另一个关键主题——反馈回路——时用到的。你的习惯塑造你的身份。这是一条双行道。

归根结底,你的习惯很重要,因为他们有助于你成为你想成为的那种人。你对自身所怀有的深层次信念就是借助于习惯这一渠道发展而来的。可以说,你变成了你的习惯。

到家了

现在是22:30,已经到家了,感觉今天好累啊,是我纵欲无度的原因吗?还是想坚持好习惯,逐步摒弃坏习惯。我有一双鞋子,全红色,一直以来,我都给自己默默下定一个决心,若是我有一天,希望一展我锋芒的时候,我就会穿上这双鞋子。但愿我在一年内能有这个机会吧。

好习惯的坚持真的挺难的,光是每天写日记这个习惯我都是及其艰难地坚持下来了,现在已经是半年了吧。虽然有大概半个月的日记都是只有三个单词“SHAME ON ME”。我之前说过,当我发出这个的时候,说明我当天基本就是在玩乐,而且,感觉这个如果设置为所有人可见,会有一种彻底在水的感觉,思考再三,还是决定设定成私密的就行了。但是好歹也是维持了自己的众多诺言之一,还是有些欣慰的。

好啦,继续剩下的学习任务《Linux系统管理手册》感觉暂时先放一放吧。因为里面的内容我真的感觉缺乏实践,有点脱离我初衷的感觉,所以暂时切到《Unix环境高级编程》吧,这也在一定程度上能让我适当巩固巩固自己的所学,倒也是不错的一件事情。哭笑不得。

你可能感兴趣的:(日记,读书笔记,linux,ubuntu,掌控习惯,Unix)