话别指尖四年

2018年即将走过六分之一,农历新年的钟声也即将敲响,这是作别家乡北漂后在老家度过的第一个春节。从腊月二十六一路高速长途跋涉到家就是一阵的忙碌,从房子装修清理到走亲访友各种大事小事,从没有如此的忙碌地过年,也终于在这年末之余的夜晚,听着自选歌曲,让自己空档运转的大脑动动笔。

·车·房·

从繁忙一路红色的帝都五环路到一晃眼以为帝都经济衰退的大马路,从每辆电动车一个车位的小区到停满马路汽车的乡村小镇,这就是中国式迁徙的一个缩影,回家过年就像候鸟每年一次的长途跋涉,不管你是自驾、高铁、汽车还是腿儿着,这是农历新年大写的注脚,它代表了亲情友情的联络,代表了无数割舍的相聚,一年间隔的结点。一杯敬去年的过往,一杯迎来年的喜庆。从谁家的车换成了什么牌子,邻居们也能猜到他家是不是今年发了大财,是不是瞬间土豪金。一眼望去的攀比和面子,全都写在脸上,尴尬之余的尴尬,且算还是尴尬吧,哈哈哈。相聚之间,从车子再到房子,或许这就是中国城镇化建设十多年缩影的延续,2010年后你再也看不到农村在自家宅基地上翻盖新房子的场景,倘若有一个村子在用尽全力的盖新房子,那或许只有一种可能,那就是这个村子要拆迁了。慢慢地进城买房变成了一种标配,一种结婚的标配,一种生活质量升级的标配,从六线小城到四线地级市配合着一城的大搞大建,这场城镇化建设的脚步越来越快,催促着还没买房子的农村人蒙眼狂奔,奔向城市,奔向向往的未来。倘若有一天我们的消费升级失败了,或许这才能体会到消费动力不足的切肤之痛,我们习惯了GDP每年百分十几的增长,但现在你是否感到了动力的不足呢?

拥挤的马路装不下人们对于年货的奔波,再累也要让这个年过的安稳,老家最忌讳的就是年关将近周遭再发生一些小意外,但意外的意外还是会出现,从北京一路到家,四天时间,五起追尾事故,虽然都没有发生人员的伤亡,但总也是一扫年味儿的欢乐,徒增一份烦恼。作为一个新手,在路上开车也是战战兢兢,对面的远光、突然的超车、忽略的小细节,开车真的是精神的高度紧张,随时的应急处理,累并享受着,虽然你享受着速度带给你的便捷,却也要谨记着安全的准绳。从一二线城市一路狂奔回来的车水马龙穿梭在平常并不拥挤的马路上,瞬间感觉就像每天早高峰的帝都三环路一样,不会让你窒息但是也足够让你踩着刹车等一分钟,然后再突如其来的冒出一辆电动车或者喝到东倒西歪的醉酒人,脑中还不断浮现出,如果这是在帝都是不是会把这种情况直接拦截下来扭送交警支队,回头想想这是老家,你也就继续前行走人了。

·人·潮·

过年的几天各式各样的老同学群从冬天的寂静岭瞬间唤起到夏天的无名骚动,各种饭局各种组队进入自动驾驶模式,一众的老司机带着远方的情谊和瞬间改口的方言来到这土生土长的地儿相聚饭馆,哈一杯啤酒敬过去,再敬还能如此幸运的遇见,从二十多岁的青葱少年到而立之年的孩子他爹他妈,交流育儿经,讨论生意的大计,为来年的商路巩固人脉,何来一场不容易的相遇,老同学,一杯酒的情谊,干了这杯,情谊全在酒里,我先干为敬,你随意。熙熙攘攘,相聚,离合,酒醒,来年我们再续上这一杯。

一年前不是过节的时候去过一次城里刚开的万达广场,门可罗雀的人,冷清至极的店铺,进去之后尴尬的服务员,这让我怀疑万达在这样的四线城市开一家店的决策是不是重大失误,虽然有写字楼可以保证长线的收益稳定,但商铺的人流量怎么保证,这样下去三年基本就有被撤退的风险,但今年的国庆和过年几天基本让我打消了这个年头,停车场的拥堵和极高的餐饮翻桌率令我对万达在这座城市的发展有了更多的敬意,如果说我们正赶上的是节假日消费高峰,那我还是宁愿相信这是一场消费升级,哈哈哈。

·情·份·

今天在家里斜对面的邻居大婶儿说实在认不出来了,胖且白了,从一个120斤的瘦猴儿到140斤的胖子,这个过程只需要一年的时间,如果说为什么?那我只能认怂了,权当消化好了肠道好了比吃健胃消食片都管用了。许久未见面的家人,见面的嘘寒问暖的第一句:哎呀,XXX认不出来了,胖了/瘦了。从脸上寻找的第一个记忆点位,从各自的感情抽屉中找到那个锚点, 试图重建一套针对你的情感模型,再续前缘的沟通就此打开。同样的事情还会发生在尴尬的一个场景—要帐,农民工的欠薪问题由来已久,解决了吗?官方解决了,因为官方解决的是法律问题,解决不了的人情关系问题,当你从哥们、亲戚、老乡那里过活儿的话,这个欠薪就是各种的蹊跷和离奇,或许真如笑话所说,这年头欠账的是老爷,要帐的是孙子,从一踏进家门的好茶好酒到关键问题的求解问题,总是曲折离奇,莫名其妙,无法理解,这就是一个现状,一个仍然依靠关系运转的农村社会体系。

许久的断舍离,许久的汇聚一堂,在起起伏伏中度过这一年的关键结点,向过去做个短暂的告别,向未来展望更好的自己,故事还在演绎,故事还在继续,百转千回,蓦然回首又是一年的默念随笔。。。

Macau

Zircon进程对象

概要

一个Zircon进程就是一个程序的实例:一个或者多个线程的指令执行以及一系列的资源。

描述

进程对象是以下资源的一个集合:

一般来说,进程是一系列关联代码的执行直到进程被强制终止或者进程主动退出。

进程属于作业,它可以在资源、权限和生命周期控制的角度将多个进程组合为一个应用程序。

生命周期

一个进程通过 sys_process_create() 系统调用来创建,这个调用没有参数;当主线程终止或者最后一个句柄被关闭时(⚠ 未实现),进程进入终止状态。

下一步, 主程序代码通过 sys_process_load() 加载进入进程,开始调用 sys_process_start()开始执行。

系统调用

  • job_create – 在父作业内创建一个新的作业
  • vmar_map – 在一个地址空间范围上映射内存
  • vmar_protect – 在一个地址空间范围上修改权限
  • vmar_unmap – 在一个地址空间范围上解除内存映射

Zircon内核对象

Zircon是基于对象的内核。用户模式下的代码基本上都是通过对象句柄与OS资源交互。句柄可以被认为是某个OS子系统与某个资源之间的活动会话。

Zircon动态地管理着如下资源:

  • 处理器时间
  • 内存和地址空间
  • 设备IO内存
  • 中断
  • 信号和等待

应用层内核对象

IPC

任务

信号

内存和地址空间

等待

驱动层内核对象

内核对象与LK层

许多内核对象封装了一个或者多个LK层结构体,比如线程对象封装了 thread_t,相反通道对就没有封装任何LK层对象。

内核对象生命周期

内核对象可以被重新计数。大多数的内核对象在系统调用时产生,被句柄持有计数等于1时处于活动状态,句柄绑定这个句柄值作为系统调用的输出。句柄对象一旦被附加到句柄表中,它就处于活动状态了。当句柄从关闭(调用sys_close())它们的句柄表中卸载时就会递减内核对象的计数。通常最后一个句柄被关闭时内核对象计数会等于0,此时会触发析构函数的运行。

当引用对象的新句柄被创建或者(某些内核代码)获取直接指针引用时,计数会递增。所以一个内核对象的生命周期可能会比创建它的进程的生命周期还要长。

调度器

内核对象是一个派生自Dispatcher 并实现了方法的C++类。所以你会看到线程对象的代码在 ThreadDispatcher中。有许多代码只关心通用意义上的内核对象,这种情况下你看到的名字就是 fbl::RefPtr<Dispatcher>

内核对象安全

原则上说,内核对象没有内在的安全概念,也不会做安全检查。一个单独的进程可能由于同一对象的不同权限拥有两个不同的句柄。

参考更多:

句柄