关于保险

以下内容是从我个人角度出发分析:
话说作为一个农村人以前我也是很不懂也不愿意花钱在保险上,但是经过一次家庭的事故,我现在觉得其实可以考虑买一些基本的保险。
但现在我研究了一下保险这东西,其实也算是金融类的一大块,其实跟我们存钱一样,就是一种储蓄,只不过他很多时候存储的
是一份安心。
先说总体原则;买保险一般越年轻越便宜,因为得病概率小,要买的年数多。
买保险原则;意外险->医疗(意外医疗和住院医疗)->重大疾病->人寿险
报销原则:无论买了多少保险,正常是报销加起来不能高于实际花费。

首先,第一点大家肯定很关心社保这东西。
社保三不报:
(一)社保只报销因疾病引起的医疗费用,因意外伤害导致的医疗费用不能报销;
(二)社保不对非工作期间发生的意外伤害和意外医疗责任进行赔付;
(三)无论意外身故还是疾病身故,社保都没有身故赔偿,身故后也只返还当时个人账户的金额,而这部分金额很少。
还有一点就是,社保是先支出,后报销,也就是说自己垫着先治好,之后再拿发票报销,
所以,有些时候就是,我特么自己就没那么多钱治病,我怎么治好然后拿去报销,我就只能等死。
养老保险累计缴费年限满15年,就可以正常领取养老保险,理论上应该是你缴费越多然后每个月领的就越多
基本医疗保险,一旦中断缴费(一般这东西好像会有一个月左右的缓冲期),断保期间将不再享受医疗保险待遇,医疗费用不能报销。另外,医疗保险累计缴费年限男满25年、女满20年,就可以享受退休医疗待遇。

第二点说意外险:意外伤害,意外医疗
意外险是纯属于消费类的东西,就是买一份自己的安心,作用就是当发生意外的时候能得到一定的理赔。
意外险一般也比较便宜,不用你话很多钱。
意外险伤害险,一般只是赔付那些意外被烧伤呀,受伤残废或者发生意外突然就gameover那种,然后这样你可以拿到一份理赔。
注意它是不赔付你的医疗费的。
如果要赔付你的医疗费用,则需要买的应该是意外医疗险,这样你因为发生了意外,然后住院的话,他才是给你报销的。
意外险要注意一点就是买的时候你要确定什么属于意外,比如说这种中暑啊,怀孕二保一啊,猝死啊,这些都不算意外的!!!
这里提到一点就是,关于你老婆怀孕生娃的保险,这个的话可以考虑一个剩余保险,包括妊娠特定疾病保障、分娩身故保障、先天性疾病保障及新生儿身故保障,涵盖了孕妇妊娠及分娩两个阶段的关键保障需求
住院医疗这个会有一个住院津贴的东西,这个需要自己去详细了解,我目前也没找,这个就是你住院的时候每天会贴给你多少多少钱,让你住院。

第三点是重疾险,
这里我觉得要跟拿他跟商业保险一起说,这个似乎是具有提前给付的,也就是不管你得病了治疗不治疗,好像有医院证明就可以提前理赔。然后让你选择到底怎么治。
重大疾病这里会有明确的指出什么算重大疾病,你去买的时候要注意看协议,而且还要填个人健康信息,就是说有没有什么先天性遗传呀这些东西。
如果说,你觉得你现在很胖,然后比较当心今后自己会会得高血压或者心脏病,然后当心自己挂了家里老人没人养,那么这个时候你就可以考虑了。
重大疾病这个东西我举得得看自己的嗅觉,而且比较贵。

最后说人寿:
寿险简单说就是买生或者买死
买死呢就是,一般来说比如你中年以后背着房贷车贷,如果gameover了,那么整个家庭就垮了包括老婆孩子父母等都没有了依靠,死亡险就是应对这种情况的,让你可以放心的走,死了以后还有一笔钱给他们。
买生呢就是你觉得你可以活很久,然后活到约定的年龄没有gameover就给你一笔钱恭喜你,或者是说活到一定的年龄没有死,那么你每个月或者每年就一直零钱。

当然保险也会有很多属于投资或者理财的,这个需要大家自己去了解,我只想了解大事故或者得病这些。

结语:总之就是买保险就是买一份放心吧,你别想着有啥用途,而且保险公司会有精算师,他们是不会亏本的了。
我觉得就是如果有钱,可以考虑拿一点带你钱,买一些你可能会预期的保险,意外险是便宜最好买的了。
有说得不对的,大家尽情拍砖。

Traceroute test program implement

traceroute 通过逐渐变更的TTL值发送UDP包(我见busybox 也有icmp 类型的),然后等待ttl 值变为0的那一跳回复icmp time exceeded 包来测试网络的连通性。首先,traceroute送出一个TTL是1的IP数据包到目的地,当路径上的第一个路由器收到IP数据包时,将TTL减1。此时,TTL变为0,所以将该路由器会将此IP数据包丢掉,并返回一个ICMP time exceeded数据包,当traceroute收到这个消息后,接着继续发生TTL为2的IP数据包给第二个路由器。以此类推,直到IP数据包达到最后一台路由器时,会返回一个ICMP echo reply 或者 地址不可达的数据包。我们通过建立原始套接字来接收返回的icmp 数据包,然后通过解析数据包的字段,析出地址,然后给出连通性的信息。

以下代码存储测试,写完可以跑了就没理了,没考虑过释放内存,关闭套接字等一系列细节,就一测试程序,跑完就结束了。

获取知乎大鱼塘图片

无意间习得独孤九剑钓鱼式,帮各位知友承包鱼塘!
(如果你是男生,我教你另外一套拳,水果妹的水果拳,….)

改动下面的问题编号,即可或许相应的问题下的图片,记得有两处。
eg:35846840

comment:知乎上习得钓鱼式 。

最美的风景,在路上

每个选择的不一样,看见的风景也会截然不同,但大家都是选择了让自己开心的方式去游玩。有的人选择了出国,看看外边的世界,去大城市溜达溜达。有的选择了在家的周边,每次重新逛那大街小巷,熟悉每一个花草。有的人选择到处走走,看看我大天朝的美丽山河,跟着朋友小伙伴们,一起游玩大江南北。
我们选择不同,欢乐却一样!
破风,我选择的最美风景在路上。

千岛湖巡航

千岛湖巡回

mtd 和 mtdblock 的区别

由于下午工作的时候在write和read flash的时候遇到一个问题,porting 别人写的函数,然后用同样的接口,我怎么调用都是出错,调试了一下午,发现原来是它用mtd 然后我定义的是用mtdblock.
简单记录下查找的介绍:

MTD技术的基本原理
MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口,并进行了一个层次划分,层次从上到下大致为:设备文件、MTD设备层、MTD原始设备层、硬件驱动层。MTD的所有源代码在/drivers/mtd子目录下。

~ $ ls /dev/mtd* -l
crw-rw—- 1 root root 90, 0 Jan 1 00:00 /dev/mtd0
crw-rw—- 1 root root 90, 1 Jan 1 00:00 /dev/mtd0ro
crw-rw—- 1 root root 90, 2 Jan 1 00:00 /dev/mtd1
crw-rw—- 1 root root 90, 3 Jan 1 00:00 /dev/mtd1ro
crw-rw—- 1 root root 90, 4 Jan 1 00:00 /dev/mtd2
crw-rw—- 1 root root 90, 5 Jan 1 00:00 /dev/mtd2ro
crw-rw—- 1 root root 90, 6 Jan 1 00:00 /dev/mtd3
crw-rw—- 1 root root 90, 7 Jan 1 00:00 /dev/mtd3ro
brw-rw—- 1 root root 31, 0 Jan 1 00:00 /dev/mtdblock0
brw-rw—- 1 root root 31, 1 Jan 1 00:00 /dev/mtdblock1
brw-rw—- 1 root root 31, 2 Jan 1 00:00 /dev/mtdblock2
brw-rw—- 1 root root 31, 3 Jan 1 00:00 /dev/mtdblock3

/dev/mtd:
crw-rw-rw- 1 root root 90, 0 Jan 1 00:00 0
cr–r–r– 1 root root 90, 1 Jan 1 00:00 0ro
crw-rw-rw- 1 root root 90, 2 Jan 1 00:00 1
cr–r–r– 1 root root 90, 3 Jan 1 00:00 1ro
crw-rw-rw- 1 root root 90, 4 Jan 1 00:00 2
cr–r–r– 1 root root 90, 5 Jan 1 00:00 2ro
crw-rw-rw- 1 root root 90, 6 Jan 1 00:00 3
cr–r–r– 1 root root 90, 7 Jan 1 00:00 3ro

/dev/mtdblock:
brw——- 1 root root 31, 0 Jan 1 00:00 0
brw——- 1 root root 31, 1 Jan 1 00:00 1
brw——- 1 root root 31, 2 Jan 1 00:00 2
brw——- 1 root root 31, 3 Jan 1 00:00 3
~ $
可以看到有mtdN和对应的/dev/mtd/N、mtdblockN和对应的/dev/mtdblock/N两类MTD设备,分别是字符设备,主设备号90和块设备,主设备号31。其中/dev/mtd0和/dev/mtd/0是完全等价的,/dev/mtdblock0和/dev/mtdblock/0是完全等价的,而/dev/mtd0和/dev/mtdblock0则是同一个MTD分区的两种不同应用描述,操作上是有区别的。
/dev/mtdN设备

/dev/mtdN 是MTD架构中实现的mtd分区所对应的字符设备(将mtd设备分成多个区,每个区就为一个字符设备),其里面添加了一些ioctl,支持很多命令,如MEMGETINFO,MEMERASE等。

mtd-utils中的flash_eraseall等工具,就是以这些ioctl为基础而实现的工具,实现一些关于Flash的操作。比如,mtd 工具中 flash_eraseall中:

if (ioctl(fd, MEMGETINFO, &meminfo) != 0)
{
fprintf(stderr, “%s: %s: unable to get MTD device info\n”,exe_name, mtd_device);
return 1;
}
MEMGETINFO是Linux MTD中的drivers/mtd/mtdchar.c中的ioctl命令,使用mtd字符设备需要加载mtdchar内核模块。该代码解释了上面的第一个现象。
/dev/mtdblockN设备

/dev/mtdblockN,是Flash驱动中用add_mtd_partitions()添加MTD设备分区,而生成的对应的块设备。MTD块设备驱动程序可以让flash器件伪装成块设备,实际上它通过把整块的erase block放到ram里面进行访问,然后再更新到flash,用户可以在这个块设备上创建通常的文件系统。

而对于MTD块设备,MTD设备层是不提供ioctl的实现方法的,也就不会有对应的MEMGETINFO命令之类,因此不能使用nandwrite,flash_eraseall,flash_erase等工具去对/dev/mtdblockN去进行操作,否则就会出现上面的现象一,同时也解释了现象3——用mtd2擦除分区后,在用mtdblock2进行umount就会造成混乱。

mtd块设备的大小可以通过proc文件系统进行查看:

~ $ cat /proc/partitions
major minor #blocks name

31 0 512 mtdblock0
31 1 1024 mtdblock1
31 2 5632 mtdblock2
31 3 9216 mtdblock3
254 0 30760960 mmcblk0
254 1 30756864 mmcblk0p1
~ $
后面的两个是SD块设备的分区大小。每个block的大小是1KB。
MTD设备分区和总结
通过proc文件系统查看mtd设备的分区情况:

~ $ cat /proc/mtd
dev: size erasesize name
mtd0: 00080000 00020000 “boot”
mtd1: 00100000 00020000 “kernel”
mtd2: 00580000 00020000 “roofs70”
mtd3: 00900000 00020000 “app”
~ $
可以发现,实际上mtdN和mtdblockN描述的是同一个MTD分区,对应同一个硬件分区,两者的大小是一样的,只不过是MTD设备层提供给上层的视图不一样,给上层提供了字符和块设备两种操作视图——为了上层使用的便利和需要,比如mount命令的需求,你只能挂载块设备(有文件系统),而不能对字符设备进行挂载,否则会出现上面的现象2:无效参数。
这里对于mtd和mtdblock设备的使用场景进行简单总结:

mtd-utils工具只能应用与/dev/mtdN的MTD字符设备
mount、umount命令只对/dev/mtdblockN的MTD块设备有效
/dev/mtdN和/dev/mtdblockN是同一个MTD设备的同一个分区(N一样)

简单的说就是:mtd 是字符设备,然后mtdblock 是块设备。操作上,字符设备和块设备还是有差别的。

转自:http://my.oschina.net/shelllife/blog/123482

1 2 3 4