2
Mar

乡情依旧。。。



从鼠年过完年到牛年就一直没有回过家,总是种种的借口,种种的理由,在这个即将要离开的城市里晃来晃去。但也总想着回去,想着也就现在自由时间比较多一点,可以回去看看。但是去年的暑假还是没有回去,年跟年了,算这算着就想回去,赶紧的写完了论文就想回家,但是却由于一些原因又多留了一周。最后终于回家了。
家始终都是一个牵挂的地方。中国人比较讲求根。以前听童安格的《根》就感动的不行,这也确实反应了国人的“根”的情结,就是在这样的文化之下,到现在大部分的中国人还是还是有这样的情结的,我当然也是其中一个。
回到家已经是腊月二十六了,说也是岁根年末了,到家就很自然的说起了家乡话,家乡的风土依然,人情依然。背着沉重的背包,走过熟悉的小路,寞寞的走到了家门,还是那样子,巷子也还是那样子,一年又一年,还是那么熟悉。呵呵!回家了。。。
年前就基本上在家里待着,没什么特别的事,就和老爹老妈妹妹聊聊,想着做什么好吃的,呵呵!再就是干点家务活,扫扫地,喂喂牛,喂喂狗什么的。冬天的农村么,基本上也就没什么事!到三十下午贴对联,然后整个家族去上坟,回来后就开始一家人在一起吃饭,让后看电视。确实也简单,但是也正是因为这种熟悉的简单才感觉到幸福。
初一,按照村里的传统,每年的正月初一早上,全村的大人小孩都要到一块空地里,互相到祝福。然后有一个简单的仪式才回家,但是到现在也就基本上是家里男的带这小孩们去了,记得小时候还要拉着自家的牛或是驴子,也要给它们弄个小仪式的。现在人懒了也就淡了,估计以后小孩们都不会记起曾经要这么回事了。家乡那些简单而又欢快农村习俗,还真想保留下来。
过年回家拜年是我最喜欢的了,不仅是小时候很喜欢,现在也是,小时候是能收到压岁钱,现在却真想见见亲人们。一年没有见,总是感觉很想他们,所以总想去走亲戚去拜年。给老爹老妈拜年,然后去爷爷奶奶家拜年。总是感觉农村这样事情简单而又有人情味。
拜年从初一到初五,每天都去亲戚家,我们家亲戚不是很多,所以去了之后聊聊玩玩,还是很开心的!
从初七开始开始干农活了,今年立春立的比较早,所以年后就开始地上走动了,还记得爷爷每年都念叨的那句话“九九加一九,耕牛遍地走”。还好现在我们那里使用牛的相对比较少了,呵呵,不过这几天我和老妈还是开着牛车去了地里,年后的天气都很好,尤其到了初留以后,站在地头上暖暖的春分吹着,很舒服。这也有好几年没在家老老实实的干农活了,这几天也买了把命,是有点辛苦,但是机会不是很多了,多干点吧!!!
每每走在村子里那熟悉的路上,就感觉很舒服!!!乡情依旧。。。



21
Jan

白色陶瓷娃娃



  小董婷买草娃娃的时候我也要了一个白色的陶瓷娃娃!虽然有点贵,但是玩么!还是挺不错的!
回来在水里泡了泡,每天给浇点水,居然这几天开始疯狂的长了!!!呵呵!不错吧!
   早上豆瓣电台给我放了一首Eric Clapron的音乐,有点激动了,好长时间都没有听他的音乐了,暑假去宝鸡市里面逛的时候发现他的CD买到50块一张!有点忒贵了!没有买!!!

呵呵,看我的陶瓷娃娃吧!!



29
Dec

我学生时代之源代码



自己的学生时代就要结束了,不管有多么的不舍,终究是要结束的,但还是想做点什么吧!至少是对自己这个浑浑噩噩的前20多年有一个交代,也不用去管到底是好还是不好了。总结历史只是让我们能更清楚的认识自己,认识自己应该走的路。。。



想把自己学生时代的东西总结一下,总结一本册子,从小学到目前应该也写了不少东西了,应该也是一本非常有意思的个人传记吧,哈哈,现在就开始给自己写传记了,老是把自己看的太牛了。。。应该要低调阿。。。

书名就叫《我学生时代之源代码》吧,名字感觉有点不顺呢!!!斟酌。。。 


25
Dec

冬至记事



冬至吃饺子,说是中国的传统习俗了。百度了一下关于冬至的相关知识,冬至还是有着深厚的内涵的。无论从天体行星运行到民族习俗,无一不是表明冬至这个一天的重要。现在,一些地方还把冬至作为一个节日来过。北方地区有冬至宰羊、吃饺子、吃馄饨的习俗,南方地区在这一天则有吃冬至米团、冬至长线面的习惯。各个地区在冬至这一天还有祭天祭祖的习俗。毕竟是一次民俗的节日。我还是一个比较传统的年青人么。对于这些节日我还是感觉文化气息和底蕴要比更为深厚一些。

而最近我也是一直在组织各样的活动,而这次我想组织一次冬至这一天的聚会,因为我不准备去过所谓的平安夜或是圣诞节,这个好像和中国没有什么关系。而现在人们却把这样的节日商业化的到了让人恶心的地步。

所以想在这样一个传统节日的时候来点特别的,让其他人也能感觉到传统节日在我们的生活中还是很有意义的。这样一个想法也是琢磨了一周了,之前很早就记住了这个日子,再计算了时间和其他人的近期计划,感觉还是有意义去搞的,也是会有很多人来参与的。呵呵!计划的还是比较好的。。。

果不其然,那天白天我出去陪朋友转了转,然后在下午3点多的时候回来了,和师弟师妹们出去张罗着买了点水果,当然还有饺子。还和董婷师妹出去买了一点菜蔬–她说要给我们大家煲个汤,呵呵,这个小师妹老是给我们说她做什么什么好吃的,老馋我们,今天就看她的手艺了。老苏和老谢还去把电磁炉拿了过来,万事具备,只欠宾客了,都准备好了,开始给她们打电话通知了,其实在之前也都给他们打过招呼了,现在也就是告诉他们开饭了。武婷自告奋勇的要给大家煮饺子,呵呵!最后我也记不清出来了多少人,但是粗粗的估计一下也有20左右人吧!呵呵还是比较大的饺子大聚餐阿!

把大家都叫齐了,也开吃了,看着大家调汁的调汁,弄水果的弄水果,煮饺子的煮饺子,呵呵,其实吃饭在这种时候也就成了一种简单的形式,重要的是大家在一去弄吃的,大家有说有笑的那种感觉。把大伙聚到了一起,一起开始真正的生活,这个时候感觉大家都是真实的,生活也才是真实的。虽然后来由于饺子比较香甜大家吃的不够了,看着大家意犹未尽的样子,我想–也许下一年我可以不用去提醒大家了,他们会自己聚到一起。



20
Dec

一颗不安份的心



就要离开学校了,总想着还应该做点什么事情,做点有意义的事情,做点我力所能及还能对别人都有意义的事情。在这个学校学习生活了6年多了,在这里我们都收获了不少,也应该为她做点什么了。。。

呵呵,总是有一颗不安份的心!正如我总结的那句话—一切的躁动都想归于平静,但一切的平静也会不甘于平静!

那就继续不安份下去吧!

最近每周我都在组织讨论,在新校区组织讨论之后,接着就在老校区连续几周都没有停的组织讨论会,以方面我需要学习,另一方面还是想留下来一些东西。上上周邀请曹老师给我还讲了一下软件测试理论和一些基本方法,上周的小苏的登录管理系统讲述和虚拟文件系统讨论,这周的审计系统的讨论,这一路下来反而感觉我收获颇多呢!!!

下周准备讨论一下lsm的动西和继续完成虚拟文件系统的实现问题,还有这个次还想组织一次针对于研究生的Linux基础讲座,当然我是主讲啦!呵呵。。。老校区这边研究生还有很多对Linux感兴趣的同学,所以也想通过这次活动让他们可以学习的更顺利一点!

Linux基础讲座

针对对象:对Linux感兴趣的研究生
活动主题:
1.The Culture and History of UNIX and GNU/Linux
2.The Subsystem of GNU/Linux
3.How to Ride This Black Beauty

主办组织:西邮Linux兴趣小组

地点: 西安 雁塔区 西安邮电学院(老校区)15楼会议室
类型: 讲座/沙龙

计划分为三场去讲,主要针对于咱们学校的研究生,时间在进一步确定吧!哈哈



20
Dec

禅悟凡事



也不知道怎么会写这样以题目!只是它在我脑边一闪而已!

听着宗胜大哥的《凡人歌》。。。我就是一个平凡的人,去做着一些平凡的而且自认为有意义的事。

舍友给我假设:“如果真有2012这样的灾难,你怎么办!”,过好我的每一天吧,该怎么生活还是怎么生活,那是天灾非你个人能力所及的,而且真能有机会坐方舟逃过,那对你的机会也是渺茫的,何不去享受现在每一天的生活呢。

酒桌上一位兄弟对我说:“人最难的是什么–宽容一切!”。你能都每一个认都能宽容的对待么?扪心而问“不能”。但我在学者去宽容,宽容让我每天可以笑的很自然!让我的心得以自由。

佛家倡导无欲无求,认为无欲无求是人生的最高境界,但我却不以为然,无欲无求-这岂不是最大的欲望么!呵呵!!没有欲望即是最大的欲望,没有自由即是最大的自由,没有方向这才是最大的方向!

终是在学习对事代物以平常心待之,尤其在现在这个比较混乱的社会,更需要平常之–最大的欲望阿!

你我皆凡人,生在人世间,终日奔波苦,一刻不得闲,既然不是仙,难免有杂念!



9
Dec

人生的经历总是有益的



上周四作了一次xhttpd项目开发的讲座,把xhttpd开发所需要的技术和相关知识点都讲了一遍,去讲的也是比较匆忙,因为原计划要简述2个半小再加半小时的互动,结果最后在1个半小时讲完了加了10分钟的一个互动,原因是去的有点迟了,师妹们还要赶着回老校区,所以就。。。讲述的也是有点快了。

其实在那边简述也就是想把这个项目再次的介绍给小组的同学们,说实话这个项目对于练习和提高是非常有帮助的。我也确实真是想把这个项目继续在小组内部发展下去,最近小苏师妹在做登录系统,看她还是做的津津乐道的,从基本的登录识别,到用户的添加,管理用户信息的更新,到用户密码用md5加密再验证,而且也让我学到了不少以前学习时遗漏的知识点。呵呵!也算让我看到这个自由项目发展的希望了。

上周日让武婷在老校区这边也做了一个sysfs的讲座,中间我又补充了一些,武婷现在也算是很厉害了。sysfs也算是搞的比较透彻了,接下来我想应该让她做点什么了,呵呵。。。。

好好做吧,我还是要尽力的去做!毕竟对我对她们来说这都是一种经历。人生的经历总是有益的!



9
Dec

日子



也许真是要离开了,总是感觉在离开前应该做点什么,就如我所信奉的信念一样:在可能的情况下尽量做一些对其他人有用的事。在这个学校也有6年多的时间了,也可以说我最为美好青春岁月是在这样一个学校渡过的,当然我也是很享受我这几年的光阴,虽说也有那么点点的遗憾,也感觉那才是正常的生活,况且太完美那就不是真实的我了。

总想留下点什么,能给别人留下点什么。

在剩下的这段时间里,我会尽量的去对参与小组的活动,我也争取能把那几个小项目真正能够放在小组继续发展下去。我带走了,项目也许就会沉寂下来,留下来将会有更大的用处,我想是这样的。而且我也在努力的这样做。毕竟要走了,总要做点更为有意义的事情吧!

还有实验室的师弟师妹们,毕竟在一起时间那么长了,总想也是能力所能及的为他们做点什么留点什么。在一起学习生活还是很开心的,小孙师妹说在我离开的时候要给我唱首歌–《启程》。呵呵!是“启程”阿!现在想每周组织一次讨论学习,也让她们快点走成长吧。

接下来的日子里,好好做好毕业设计,好好去做那些应该做的、而且有意义的事情!



23
Nov

整理了两张linux网络分析的图





17
Nov

ipv4内核初始化分析-sock的创建



sock创建的主要数据结构是下面这个结构体:

  1. static struct net_proto_family inet_family_ops = {
  2.         .family = PF_INET, //这里的值可以是PF_AX25,PF_UNIX,PF_IPX,PF_INET6。。。
  3.     // 这些都在include/linux/socket.h 这个文件中定义了,
  4.         .create = inet_create,                                                                  
  5.         .owner  = THIS_MODULE,
  6. };

从include/linux/socket.h这个里面可以看出,所谓的PF_INET和AF_INET就是一回事,只是叫法不一样而已
AF = Address Family
PF = Protocol Family
AF_INET = PF_INET
  所以,理论上建立socket时是指定协议,应该用PF_xxxx,设置地址时应该用AF_xxxx。当然AF_INET和PF_INET的值是相同的,混用也不会有太大的问题。
在写网络程序的时候,建立TCP socket一般是这样的:
sock = socket(PF_INET, SOCK_STREAM, 0);
  然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用IP。

  1. static int __init inet_init(void){
  2. 。。。。
  3. (void)sock_register(&inet_family_ops);
  4. 。。。。
  5. }
  6. static const struct net_proto_family *net_families[NPROTO] __read_mostly;

这里进行了内核socket操作操作的注册

  1. int sock_register(const struct net_proto_family *ops)
  2. {
  3. 。。。
  4.  net_families[ops->family] = ops;
  5. 。。。
  6. }

这里是sock创建时调用的函数

  1. static int __sock_create(struct net *net, int family, int type, int protocol,
  2.                          struct socket **res, int kern)
  3. {
  4. 。。。
  5. const struct net_proto_family *pf;
  6. 。。。这里是根据想用的协议来取得相应的sock创建函数
  7. pf = rcu_dereference(net_families[family]);
  8. 。。。
  9. err = pf->create(net, sock, protocol);
  10. 。。。
  11. err = security_socket_post_create(sock, family, type, protocol, kern);
  12. //这里是启用了lsm的安全模块后的,这里不做为重点分析,以后再分析。
  13. 。。。
  14. *res = sock;
  15. }

下面就pf->create(net, sock, protocol);函数进行分析。分析内核如何创建socket。
pf所指向的create这个函数的真实实现是这里net/ipv4/af_inet.c中的这个函数:
static int inet_create(struct net *net, struct socket *sock, int protocol)

在这个函数中创建并且根据用户请求sock的类型去初始化sock的相关操作。即初始化了sock->ops;
在以后的sock相关调用的时候就直接调用sock->ops->xxx函数了,比如sock->ops->bind,
sock->ops->connect,sock->ops->listen,sock->ops->sendmsg,sock->ops->recvmsg,
sock->ops->setsockopt。。。
而且还初始化了sock相关状态等信息。
而这里用于初始化sock->ops的数据结构是inetsw数组,这个数据是事先注册好的一个结构体数组。在后面会继续分析到。