记一次非常逗比的错误, 以及惊险刺激的排错

在某一次重启之后, 我输入了正确的密码也无法登陆我的Ubuntu了,不论是账号登陆,还是游客登陆, 全部不起作用。

我非常惊恐, 因为电脑里面还有我刚写的代码, 以及辛辛苦苦配置的环境。难道就这么毁于一旦了?

思考

有几个可能:被黑了(我随便下的一些程序代码,以及我的服务器好久不用了, 但我还是连上去了), Ubuntu又挂了(我用的14.04 STL的Ubuntu Kylin), 键盘字符集输入错误?

排错

刚开始, 我是搜索的Ubuntu忘记密码怎么办?Ubuntu如何进入单用户模式?

blog.sina.com.cn/s/blog_a2d4803001013vqo.html 百度第一的链接, 你根本不知道他在说什么, 因为现在的Ubuntu 已经不是过去的Ubuntu了,GRUB也换了

很多链接都是直接抄别人的, 图片和文字完全对不上, 搬运信息的更本不知道操作性,就随便复制粘贴, 然后当做一篇文章, 更本没想过看的人该如何操作。

我目前的解决方法也找到了, 实验了很多。我也就直接说正确方法了。

  • 一般需要进入GRUB界面, 我是用Shift进入的
  • 然后在启动项上面按E,进入编辑(好多文章写的是在recovery上面,但是我实际是怎么样都可以的,如果不行的话,可以再考虑进recovery
  • 然后找到 linux /boot/*****  ** ** ro *** 一般是这样的(当时操作截图也没有
  • 将ro 改为 rw 然后 在最后面加上 single #注意:我加上之后进去是一个光标一直在闪,或许是我的错误比较特殊,然后 我又测试了在后面加上 init=/bin/bash 之后才进入shell的
  • 之后就是passwd了 , 或许会有read-only错误,可以试试( mount -rw -o remount /
  • 但是我的错误是 Authentication token manipulation error. password unchange
  • 然后, 就是我逗比的时刻了, 我查了好久, 最后发现, shadow文件被我和 shadowsock配置文件一起删掉了  rm -rf shadow*        QAQ
  • 不过幸好, /etc/passwd 文件没有删, 然后我查了一下, 用 pwconv 重新生成了 shadow
  • 然后, 重新启动, 一切正常 QAQ

工作一月纪事

好吧, 工作已经开始了一个月了, 前两天刚拿到整月的薪水. 感觉还不错!

从6月份决定的借钱&贷款去培训, 到努力的找工作, 然后到第一个需求的实现, 最后是偶尔一段时间的轻松.  从天水到西安再到北京, 经历了好多, 见过了好多, 努力了好多. 最后获得的是薪水翻倍的增长, 以及对未来生活的信心和希望.

时间, 是我们每个人最宝贵的财富, 和出生和成长不同, 他不会因为这些因素而影响. 你的就是你的, 区别是你怎么去使用. 我觉得现在就好, 努力的赚钱, 然后去做想要做到的事情, 所谓的拼搏不就是这样吗? 所谓的人生也不过如此吧!

安全感会影响人生活的状态, 我现在也是这样, 有比较稳定的工作, 有比较稳定的还过得去的收入, 有比较稳定的个人时间以爱好.  同样的也会有缺点, 他会让你无法稳定的去做一件事, 会让你无法稳定的去使用自己的时间, 因为, 这种稳定性只是相对的: 没有稳定的房子, 没有稳定的家庭, 没有稳定的能够无惧的用来赚钱的能力, 甚至连稍微稳定的家族和女朋友都没有, 相对的世界与正常的世界, 同样都是自己的世界. 而你自己需要在两个世界的夹缝中为两个世界而努力, 一个是自己看到的幸福的世界, 另一个是自己看到的不幸福的世界.

世界的恶意是存在的, 而且很大部分世界的恶意, 其实是别人对你的恶意. 当你选择帮助别人的时候,  当你不选择帮助别人的时候, 只要你与人打交道, 这种环境都会靠近你.

美好的生活是快乐的, 同时也是痛苦的. 因为你不知道它什么时候会离你而去. 因为不曾拥有过, 数据不足, 而无法做出比较准确的判断. 恐惧判断, 是每个人都有的, 只是每个人的看法不同, 而且对出错之后的处理能力不同, 所以, 每个人决定的轻重也是不同的. 而我喜欢判断, 喜欢分析, 同样的我也恐惧失败.

从以前的无所谓, 到对世界感兴趣, 对人类感兴趣, 这种体验, 我也说不出来是什么! 所以我最近经常上知乎, twitter, G+, v2ex 我希望能够找到, 我到底喜欢什么样的人? 到底该向什么样的人们学习, 努力成为什么样的人?

北京

刚到北京的时候, 对这儿期望很大的, 但是当我了解之后, 然后再结合人来想的话: 或许每个地方, 其实都差不多, 都有自己独特的魅力所在.

北京有CBD, 高楼大厦, 也有乡间小路, 地摊, 垃圾. 世界是相同的, 只是人们选择在哪儿生存而已. 因为人, 所以城.

北京也有很多很赞的地方, 当然, 基本上是与人相关的. 我去过香山, 索道很赞, 去过故宫, 感受到了时代, 去过水立方, 感受到了城里人的生活. 都很不错, 这是在老家的小城市里所体验不到的. 大城市的味道.

同样的, 只有在大城市的能玩的游戏Ingress, 我真是非常喜欢. 我因为它去过颐和园, 去过清华北大, 和那边的博士/学生, 一起吃饭, 感受他们的生活, 以及他们的努力和能力, 认识很多工作, 结婚之后仍然在玩Ingress的朋友. 为了玩游戏, 翻墙. 为了玩游戏, 坐飞机去曾经没去过的地方, 参加战争. 为了玩游戏, 出国参加战争. Google在游戏方面, 基于lbs的游戏, 走在了世界前面, 我很期待, 未来的vr和lbs的混合, 真正的游戏人生.

同样的, 在北京, 我感受到了什么叫差距. 在我们那 500 可以租一套农村的房子. 在西安, 可以租一间卧室带独立卫生间和厨房, 在北京700元,只能住地下室. 而我现在就在地下室住, 气味有点土味, 偶尔有蟑螂出来散步, 卫生间20多人用一个, 洗澡的也一样, 而且都要交钱.地铁坐一次就能在家乡吃一碗饭, 每天做地铁都够午饭钱了. 而且, 同样的牛肉面, 在北京都是翻了三倍.

最后, 美好的生活仍然在前方, 你需要更加的努力前行.

 

时间好快, 转眼间已经学安卓半个月了

已经半个月过去了, 不知道我学的怎么样, 反正我自己感觉差的太远了. (QAQ)

不过, 最近过的很充实, 虽然比较累, 但是感觉每一天都很努力. 如果我能够经常保持这样的状态, 或许在未来的某一天, 我真的会喜欢上自己也说不一定.

不过也渐渐的了解到了安卓, 了解到了Google在安卓的努力, Material Design 也非常赞, 很喜欢那种给人一种很清楚生动的设计.

不过可悲的是, 安卓比web前端更加的碎片化, 各种屏幕适配. Web虽然浏览器不一, 但是已经有了各种优秀的库, 用来轻松解决浏览器兼容的问题, 虽然我现在还没有碰到大的兼容问题(其实是因为, 我只用过虚拟机和自己的手机), 没有碰到平板什么的. 估计之后会适配起来比较麻烦, 至少我在手机上看到的和虚拟机上看到的差距比较大. 只能祈祷了…

前两天休假, 就花了半天的时间看视频, 学习如果做小项目, 结果都太难了, 我只能挑一个简单的做了. 然后就做了一个单页面的2048小游戏, 有空玩玩也不错, 不过UI我也是没法看的下去.

2048 这就是那个游戏了, 有兴趣的可以玩玩, 顺便给点评价, 我想要知道自己还有什么不足的地方.

最后, 明天的世界, 我会正面上自己…

稍微折腾下博客

主要做的事情就是把主题换了一个颜色鲜艳点的,然后就是因为多说的头像点击起来无法跳转,而且很多博友都已经使用Disqus,所以我就也来试试这个,顺便把多说暂停使用了。

最近也过得比较充实,每天都有新的东西需要学习,有接触到了很多新的名词。比如:

  • Material Design
  • Android Studio
  • ADT
  • SDK
  • NDK

以上这些,都去稍微的了解了一下…… 发现自己要走的路还很远啊,一个小小的APP目前都很难写出来。

这个新主题我还是很喜欢的,因为使用了 Google Material Design 设计规范,有一种很特殊的时尚感以及年轻感(或许会有自豪感?)。Google 在世界上还是比较良心的公司,当然弱小的公司是打不过流氓的,所以只能妥协了。

最近感觉自己好像对于一些Android上的小东西能够参与开发了,但是不知道做个什么,估计比较大的项目还是有点困难的,哪位朋友有不错的开源项目需要帮手可是试试找我,虽然我不一定能够帮上什么忙,但是我会经历努力不添乱的(来个Master带我飞);

明天就是端午节了,最近越来越发现,真正和家人在一起的日子估计会变得越来越少。我要更加努力,争取能够自由的工作和生活,而且要能够经常陪家人,当然也包括未来选择和我一起在这有趣的人生之路上前行的另一半。

还有就是,不知道是不是越来越热了,不出去的话就会穿的越来越少,甚至有时候是拖鞋内裤。难道这是我向猿类进化的信号吗?会不会以后直接在家里裸体,然后我就走上了暴露狂的不归路了!(/▽\=)

渐渐的越来越了解自己,渐渐的越来越接近自己…… Are you ready ? Become the Programmer.

JavaWeb 学完了,稍微休息下吧

JavaWeb在传智急先锋的老师辛勤的工作下,以及顺利学完了。虽然,只学到jsp,框架什么的都没学。不过,对简单的项目,应该已经没问题了。

虽然,说好的要休息一天的,结果怎么样也呆不住,亚历山大啊!所以就准备写一篇博客安慰一下自己了~

这篇文章我也不知道改写什么,想到什么写什么吧。

空间、朋友圈、只要有人的地方,都有现充在晒女友。这让我一个又宅又变态的半吊子程序员,该用什么表情、用什么心情,去观看、回复呢!!!

说真的,喜欢人类的Timing对我来说很简单,几乎每一个在我身边的、我能够接触到的,我都能够喜欢上。甚至对我有帮助的,从未谋面的,我也非常喜欢。

但真正让我去和一个人相处、交谈、消费时间,而且是建立在友人以上的状态,对我来说非常难。或者说,我并不会去主动去建立这样一种关系。这对我非常不利,在这个越来越需要交流的社会。所以说,我现在女性挚友一个没有,男性挚友不到一只手。虽然同学很多,但却不会主动去联系,如果能够见面,倒是感觉不错。我努力的改变自己的心境,结果导致的是单方面的,我只能去聆听,如果让我去主动的话。我会感觉到,好像没有什么是非常必要的需要沟通的东西,我并没有什么必须要说给其他人听的东西。就算说了一些我的情况,反而那些变态的言论会导致我的处境更加的不好。

所以说,心境的提升也是有副作用的。而这个副作用,会因为你自身的环境以及性格进行放大。这会导致你,变得非常怪异。所以,看到这段话的朋友,希望能够静下心来想一想。自己目前的心理状态是否正常,是否在平稳的发展,别基于求成,而导致自己与身边的环境产生巨大的沟壑。

当然,这也不是绝对的不行。当你觉得自己和周围的环境格格不入的时候,或许你该换个环境了。我现在是这么想的——培训完之后找机会去大城市,再去感受一下曾经年轻的时候没有完全感受到的大都市的意志,借助这个提升,让自己跳过目前的薄弱阶段,然后去重新开始。重新开始对世界这个美妙的东西的探究。

稍微总结一下变态的方面吧,希望有热心的朋友能够给我一点提示:

  1. 懒,懒到如果不是非常必要的话,是不会和别人说什么的。就算是最好的朋友、或者家人,我都是按照正常的交流方式,去和他们交流一些必要的语言。这也不是说我在网络上善于交流,我现在网络上也只是获取信息和学习了,对于他们的感谢之心,我只会默默的记下而已。
  2. 同样还是与人交流的问题。我会在和别人谈话到没话题的时候,心里是不会有去找点什么话题的想法的。
  3. 拒绝正常的娱乐方式:
    1. 电视剧,几乎不看,而且现在一般情况下是没有电视的,有电脑也不会主动去找什么电视剧来看。
    2. 电影,很少看,最近看的就是《星际穿越》,好像已经过了好长时间了,而且还是盗版了,没去电影院
    3. 游戏,几乎没玩,过年只配朋友玩过《lol》,然后很少玩游戏了
    4. 小说: 很少看,最近一年之内,只看了一本科幻的作品,会追着作者看,不过有时候几天都想不起来,然后想起来就看完
    5. 运动:几乎不运动,除了去上课的时候走路。因为上课时间紧张,加上除了自行车也没什么喜欢的运动了。
  4. 与二次元的联系也越来越少:以前会追B站几乎所有的新番,还有看不到的也追。最近越来越少了,而且以前准备捡起来的没看的也不想去。渐渐的,好像只有几部需要每周看的了,虽然每到该追番的时候还是很激动。但是,感觉适合我的动漫越来越少了,最近的动画也越来越固定了,越来越没有意思,没有创造。我最初喜欢动漫,就是因为它的天马行空的想象力,无所拘束的剧情,以及敢于针对不正确的问题的探索。但是,越来越丧失了。当我将自身的境界提升之后,我感觉自己对动漫的爱在这次过程中丧失了一些。或许是转移到了对于人类的Timing的喜欢上。这是对于自己的爱的误解吗?我不太清楚,我也不想去知道,我只是觉得,目前这样就好。
  5. 黄色、低俗,虽然对我来说不算什么。但是,和其他人聊天的时候,总喜欢使用一些网络词汇或者出名的梗,但是当其他人不知道的时候,我就悲剧了。我从来没有想传教或者拉人去网络,去推荐贴吧什么的。所以,当他们问我的时候,我只能说自己是个变态了。其实真的挺变态的:本子、图片、AV等等,我有时候会去看看。不过,我好像已经20+了,算是成年人了吧!我觉得体验一下这种感觉也好,单身的感觉,会让你更珍惜将要陪你一起走上死亡之路的最近的伙伴。同样,这个道理其实可以扩展到家人、朋友等等。你需要学习的不只是体位,而是判断会产生的问题以及解决方法,以及如何和自己的身体相处。
  6. 由于最近突然对人类的Timing有兴趣了。所以相对的,对男人和女人都有兴趣了。当然,有与我是男人,所以好多信息可以通过自身来得到。但是,对于女性的一些信息,我却无从得知。而目前,我对直接和女性谈话还是不知道方法,如果只问感兴趣的问题的话,会对别人不太好,我需要同等的交换信息。所以,现在走在路上,对遇到的每一个女性人类生物,我都会仔细的观察一下,分析她们目前的状态。至于为什么这样做,我觉得,女性其实渐渐的开始觉醒了。我以后也是需要和她们进行沟通的,男人和男人是比较简单的就可以沟通,但是对于跨越了半个种族的生物来说,应该是稍微困难一点的。所以我需要了解她们。(我是不是有隐藏的傲娇属性?)其实我心里对于女汉纸的评价是很高的,当然这是说那些喜欢努力,想要超越男人,想要获得不一样的东西的妹子们。妹妹和萝莉之下,就是可爱的女汉纸们了!
  7. 我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!

最后,再说一次:我是变态。 不过希望,看到这篇文章的朋友们不要进行恶意的传播。变态(gentleman),只需要被变态(hentai)认可就足够了!

静下心来之后,往往会胡思乱想。然而,在这胡思乱想之后,却又对人生进行忏悔。为了美好的每一天,我需要变得更加的变态。或许,只有这样,我才能够拯救身边的人,顺便改变所在的一方世界。

Thank Reading! by Etby.

学习日志 – 来到传智博客已经一个月了

目前的时间是2015年5月22日22:53:35,距离开课的时间是-22天,转眼间-我已经在西安传智播客呆了32天了。

对传智播客的感觉

第一,就是感觉他们很真诚。因为,他们目前讲的东西和他们放出来的视频没有多少区别?

我并没有想黑什么的,至于看到这篇文章的人怎么想,我却是不准备去深究的,我只是想把我的看法以及想法记录下来而已

第二,有一半应该是想我这样的工作了一段时间之后想踏入IT行业的求学者。

所以,在这里氛围还是不错的,虽然他们都有放松自己的方式,但是绝对是没有不学习的人。这和普通的学校是非常不同的。或许,会有拼命去学习的强者?

第三,有一半是正在、或者刚刚毕业的大学生,他们感觉自己目前出去还有点无法胜任IT从业者的工作,所以在实习与培训之间选择了后者,为了在结束之后能够有一份非常不错的工作。

虽然我认为,如果在学校正常学习的同学的话,是不会没有自信找不到工作的,他们的能力绝对能够胜任任何一个公司的基本需求。

当然,这些同学都是有所发觉的,他们渐渐的褪去了大学时游戏人生的心态,来开始认真看待自己的生活,并为之付出努力。

第四,传智博客的老师,虽然目前我只正式的接受了一位老师的教导。但是,对于其他老师我也有接触。

他们,心中也怀有为人师表的感情,而且作为培训机构的讲师,从早上9:00——晚上7:00,不停的讲课,虽然会有10分钟/小时的休息时间。但是,我觉得这样比他们去做正常的开发工作累多了。当然,他们所获得的收入比一般公司的开发者的确是高一点。

第五,对于西安校区。由于是刚刚开始,我们属于第一批的学生,而且校长很年轻,老师们也都很年轻。

我们之间的交流也可以说障碍并不大,我觉得唯一的不足就是他们需要照顾大多数人,但是对于走的比较快的学生却没有一个正确的道路去引导。对于走的慢的同学,也没法去专注的帮他。当然,师傅领进门,修行在个人。我们付出了学费,只是得到了资源而已,真正自己学的怎么样,还是很靠自己的。

我的学习状况

第一阶段的java基础课,我是没有参加的。因为之前学过云课堂的C语言,而且在曾经报名黑马的时候,很努力的学过一段时间java基础了。

从4月20号开始的课程,我进入了这个班级学习。

JavaWeb的课程,前面是Html, Css, JavaScript的简单介绍,由于之前玩过博客,虽然玩的不太好,但是只是入门的话对我倒是没有太大压力。

后面,就是关于Http协议的部分,这个老师也把关键的请求字段讲了给我们。我之前看过的云课堂的计算机网络课程,对我帮助还可以(只是因为学的不够好,不然帮助更大)。

Jsp, Servlet 作为JavaWeb的核心,我也不知道老师讲的好不好,但是我觉得我自己学的还不错,至少,如果给出一个简单的需求,我还是可以做出程序的。不过,我目前的前端水平真的是太渣,所以我报了网易前端的课程,准备补一下。

数据库, 这是个大家伙。

从前,接触过的只有为mysql建个库,然后自动安装就好。所以这方面我还是很菜的,所以我对这方面比较认真,然后就是通过云课堂的数据库原理和老师讲的一些东西,重要可以把增删改查的需求掌握了。

对于其他的数据库设计,权限管理什么的,我准备有机会了再补一下。毕竟,如果连这个也不会的话,怎么好意思称自己为程序员?

未来的学习计划

网易前端微专业

因为经常关注云课堂,所以这个微专业在一出来的时候我就知道了。

然后,我就开始纠结,到底要不要花上千元去学。如果没有经历过培训的话,我对一个互联网的课程,是不可能付出上千元去学的,或许几百元我都无法接受。

因为,如果是互联网上的东西,是不可能有绝对的收费的,更何况是网易这样大范围的宣传之后的东西。这怎么可能没有人下载,流出呢?

但是后面我又仔细的想了想,难道我要一辈子被这种思维所禁锢?这种小人物的心态,如果我接受了,默许了,我一定会丧失一些东西的。以前,是因为比较小,没有能力。那么,现在呢?我从云课堂到TED,不断的寻找思想,不断的学习。我发现,无私传播知识的人,都是非常可爱的!我难道,要和其他人一样的不尊重他们吗?

后面,有了云课堂的公开课。虽然是宣传,里面有很多东西没讲。但是,光是两列布局的实现方式那段讲课,以及征服了我。因为,一般情况下,前端的视频都是给你讲,一张图片,如何实现效果。但是,从来不讲,该如何轻松的实现。这或许就是差距,美工与前端工程师的差距。如果让你选择一个老师,你会选择美工还是前端工程师?

我会毫不犹豫的选择前端工程师,因为我崇拜强者,喜欢强者,喜欢更加变态的人类。而且,如果以实际出发,我是一个后端工程师,而未来会成为Full Stack Enginner, 那么在实现需求的时候,css样式、js函数与特效都可以查手册。但是,想这种布局方面的东西,是无法快速的查到的。因为实现方式很多,所以每个人都有每个人的实现,而一般情况下只需要一种实现,如何用比较好的实现,则就是经验的积累与知识的积累了。但是,如果你没有办法接触的话,是谈不上积累的。

至于,结业之后的比赛和网易的实习职位,我感觉我是没机会了。不过,如果有机会的话,我会去杭州参加比赛,看看真正的前端工程师的世界。

安卓开发

JavaWeb已经结束了,剩下就是一个几天的小项目,根据和老师的了解,也不会有多重要。因为我们一般是针对安卓的,不过我感觉,就算是安卓,也没有多难。更多的应该是数据的积累,以及实现的熟悉,能够更加快速的实现需求吧。真正接触底层,或者更高层次的编程,需要我们自己去努力了,不过我现在还是不会去想的,至少先把基础掌握扎实吧!

虽然Android开发的老师没见过,但据说是好几个老师,每个老师负责一个阶段或者项目,我觉得这还是比较负责的。让对某一方面掌握的比较深的老师,专门来教那一个方面。因为,一般来说是没必要换老师的吧,这个成本也是比较大的。

小机器人,我来了!! 有些时候,机器人还是挺萌的,只是不知道它是男是女,不过男女应该对我没什么区别!不是人的东西,一般来说我都比较喜欢,当然这是建立在它与我的交流之上的。能干的**,我是很喜欢的。

Java20岁了

5月23日,java语言诞生20周年。

好吧,这家伙居然比我还小。我还以为,她是大姐姐一般的朋友呢!真是让我伤心,早知道就去拍黄片了,即简单,又来钱快。

=-=,好吧,上面那句话是我胡说。Java作为经常排名前3的语言,许多大型项目的最佳选择,对人类思维的友好,导致了她就算未成年,以及绽放出了巨大的光芒。不过,如果年龄更小一点就好了,不过我也不只喜欢她一个,其他的语言迟早会去探索的。每种编程语言的隐秘,有种奇妙的吸引力。

不过,虽然学过了基础,但是,我对她仍然一无所知。难道终究会分道扬镳吗?不过她女儿或者儿子倒是非常吸引人,而且还不到10岁,真是美妙无比。

或许未来,会母子一起上,不过目前还是专注android吧!毕竟,跟着自己的欲望走,才是最适合自己的道路。

 

操作系统之进程与线程-多线程图像引出-学习笔记

操作系统的目标就是管理硬件

管理cpu最简单的方法

  • 设置PC初始值,然后让他自动递加PC执行即可
    • 会不会产生什么问题?
      • 众所周知,执行IO指令,会比cpu计算指令慢很多,老师的程序算下来的比值是10的6次方,这真是一个恐怖的数字
      • 这样的话,cpu等待IO执行会耗费大量的执行时间
      • 如果cpu,按照这种方式去执行的话,利用率将会下降到0%,这真是非常恐怖的事了

然后,要如何做?

  • 然后,cpu就悲剧了
  • 切来切去,交替执行,拼死拼活
  • 当然,还有难兄难弟的其他设备都变得忙起来了,当然,最我们人类来说,这真是极好的
  • 一个cpu上交替执行的多个程序:并发

切换中间需要做的事情

  • 将正在运行的程序指令地址(PC)与寄存器(ax,bx,…)中的数据等先保存起来
  • 然后切换到另一个程序
  • 做完之后同上面一样,保存数据,然后切换到另一个
    • 每个程序都有一个存放信息的结构:PCB  Process Control Block
  • 这样做的话,正在运行着的程序和存放着的静态程序就不一样了…
  • 所以,出现了“进程”这个概念

“进程”的概念

需要描述多个程序运行的样子,程序运行中和静态的不一样,就用进程来描述。所有不一样的地方就存在了:PCB

进程是进行中的程序

  • 进程有开始、有结束,程序没有
  • 进程会走走停停,走停对程序无意义
  • 进程需要记录ax,bx,… ,程序不用
  • 让cpu工作就是启动进程,而让cpu效率更快,同时运行更多,就是多进程

多进程图像

启动了的程序就是进程,所以是多个进程推进

操作系统只需要把这些进程记录好,要按照合理的次序推进分配资源进行调度

多进程的组织:PCB + 状态 + 队列

进程状态

  • 新建态
  • 就绪态
  • 运行态
  • 阻塞态
  • 终止态

多进程如何交替?

[php] schedule()
{
pNew = getNext(ReadyQueue); //调度 在就绪队列取出某一个进程
switch_to(pCur,pNew); //从一个PCB中切换到另一个PCB
} [/php]

  • 交替的三个部分:队列操作 + 调度 + 切换
    • 就是进程调度
  • FIFO?
    • FIFO是公平的策略
    • 但是FIFO没有考虑进程执行的任务的区别
  • Priority?
    • 优先级调度
    • 但是优先级该如何?进程争夺该怎么办?可能会使某些进程无法得到执行

需要处理的问题

  • 进程的互相访问
  • 进程的通信、合作
  • 恶意地址的访问

如何形成多进程图像

  • 读写PCB,OS中最重要的结构,贯穿始终
  • 要操作寄存器完成切换
  • 要写调度程序
  • 要有进程同步与合作
  • 要有地址映射
# PCB

image

传智播客-西安就业班-演讲1.0

准备了一个演讲稿,不过不知道能不能完整的演讲出来啊!以后有空再做总结与评价吧!

不过不学习的人真的很少!




GaoBoTalk1.0


不会唱歌真是太对不起大家了,所以我稍微做了个准备 — — 我会做一个简短的演讲,作为我在传智的回忆!

大约在3:00左右完成,使用的是Markdown,向童哥致敬,感谢童哥教我这么棒的文字内容格式化排版工具。

我会做一个很真诚的自我介绍,并且会有一些自己感觉不错的学习方法推荐,最后我会谈一下对演讲的理解

GaoBoTalk 1.0

方面

  1. 自我介绍
  2. 我自己的学习方法
  3. Markdown

又一个简短的自我介绍

我记得上次自我介绍是在就业班刚开班的时候吧,虽然刚过了几天,但是由于学习任务比较重,所以连我自己都觉得非常遥远了,所以在演讲开始前,我再做一个简短的自我介绍吧!

  • 我都名字是高博,来自甘肃天水
  • 天水是个不错的地方,有第5大石窟的麦积山,有很多的外地朋友去那旅游
  • 基本的自我介绍就到这里了,就像标识符一样,你可以通过我都名字来找到我

再说一下目前我的状态吧,希望对大家能够有一点点的帮助

  • 想学习就看老师笔记以及示例代码;不想学习就看我在网上下载的一些大学的公开课课程,算是补课了。因为看不懂,所以基本上都是当电视剧来看的。因为我已经基本上不看电视剧了,所以也算是一种回忆吧。
  • 还有就是我在不停老师讲课以及不在学习状态的时候,是属于那种随时可以哭出来或者随时可以笑出来,以及随机进入学习状态的状态。当然,这是局限在传智培训的日子里,不论是现在还是将来。
  • 曾经玩过游戏,现在玩游游戏,未来玩游游戏戏。
  • 在本魔法师等级不断提升,timing不断减少的过程中,我发现自己开始变得不像自己,而是像一个比自己更加变态的类似自己的东西。
  • 因此,我爱好的东西也开始发生变化。

下面提提我的一些正常与不正常的爱好

  • 关于与计算机相关的东西,一般情况我都喜欢。因为在认识她,了解她,学习她,使用她,然后再学习她的过程中,从起初的咫尺天涯,到交叉,再交叉,然后是不断的互相吸引以及改变。如果不出意外的话,我会有50%的几率死在她的旁边。虽然这对于我来说是一个很恐怖的事情,但是当认真思考过后,你会觉得,这也许不错,有点Geek的感觉,有点想要的感觉。

  • 骑自行车。动静结合,实为上上功法。运动系的爱好,或者说是为了爱好的爱好? 我还是很喜欢骑自行车的。而且我有从天水到西安,400公里20小时的自行车经历。白天的是:汗水/太阳/风景,一口气爬上山顶,然后以超越卡车的速度下山。晚上的是:未知的决断/伸手不见五指的前路/行道树在无限黑幕之上的投影,期待着有辆车能够为你照半截路,并且不会装上你。 那种感觉,我相信,在我timing out之前是不会忘记的。

剩下就是其他喜欢的东西了

  • 其他喜欢的东西分别是:可食物品,男人/女人/否人/变态/超人;
  • 为了同学们不会误解我,我对上面的一些条目进行说明;

    • 男人:实现了男人的正常人类;
    • 女人:实现了女人的正常人类;
    • 否人:不是正常人的正常人类,在某一方面或者境界比较突出,并且是正常人;
    • 变态:在某一方面非常突出,而且已经产生某种独特的思考方式,属于超越了正常人的正常人类;
    • 超人:超越了正常人的人类,已经有资格称之为信仰;
  • 休息娱乐方面,我比较喜欢看动漫。因为目前能拍出来的电视剧基本都被某种框架限制了,我感觉不适合我。而每天看电影的话又有点奢侈了。所以,我选择了动漫。有多变的剧情,性格各异的人物,以及天马行空的世界观设定。
  • 还有就是学习方面,不只是编程的学习,还有思考方式以及改变境界的学习。一般我是让网络这个朋友来帮我学习的,我喜欢去的网站有很多。

    • 网易公开课 —— 上面有coursera的链接,以及TED的翻译视频,我很喜欢TED,有时候感受新的思维方式,获得新的认知,也是一种非常大的幸福。
    • 网易云课堂 —— 计算机专业体系好赞,而且我也刚刚入了前端微专业,准备补一下虽然老师讲了但是还不太会的貌似对我们不太重要的前端方面的关于程序员的课程。
    • OSChina —— 全方位的IT网站。有特色的GIT托管服务,虽然我们每个人都可以建立git库,但是简单易用的git托管库以及团队服务,是新手的首选。
    • 博客 —— 这个有很多种,有些团队的公开博客,大牛的技术博客,如果认真找的话,是可以通过博客链找到非常好的博客,这或许比你搜索而来的准确答案更对你有用。

      • 顺带一提,我非常推荐大家去尝试使用现有的框架或者自己来写程序搭建博客
      • 就算是本地电脑上的也无所谓,只要有机会,就写下你的理解与回忆,相信你不会后悔的
      • 本地上的有机会是可以移动到公网的,所以大家如果有想法的话可以开始
      • 而且一般来说,面试的时候,有技术博客会加分的,如果是你自己写的程序会更好
      • 我的个人博客是 gaobo.name , 虽然现在没能力去写关于技术类的博文,但是我相信以后一定会有很多的,欢迎有独立博客的同学与我友链或者交流经验
    • 向老师提问 —— 一般来说大家都会有顾虑,像老师提问,老师会不会认为我上课没认真听啊!我相信每个人都很认真在听的,因为我能感觉得到 90%的人在学习,10%的人在思考接下来该怎么样学习。我的方法是可以先和附近的同学讨论,因为老师并不是时刻都wait在教室,等待你去notify,然后回答你的问题的。在教室的时间很短,而且在这段时间内,也会有其他的同学想要和老师问问题,这样的话大量的冗余问题会浪费掉宝贵的public的老师的time,而导致许多不必要的问题。我的解决方案是先和组里的同学或者身边的同学讨论,然后整理整个小组的问题,然后获得老师的提问句柄,然后以比较好的方式解决所遇到的问题。

接下来就是我要演讲的重点了,虽然不太长,但是是我觉得很不错的学习方法,所以我要在这里分享给大家。

让老师帮你复习而不是帮你预习

我下面会根据我的理解来说明这个论点,大家如果有其他更好的学习方法,可以也来发布一个演讲,让同学们都能够感受你的学习精神,并且能够提升某个人一点点的学习效率,也是非常幸福的事情。

预习&复习

两遍视频学习解决方案

  • 大家都知道,使用视频学习,本身是效率很低的。而且我们又要在有限的时间内,学习N门编程语言,很多编程手法以及逻辑实现。
  • 而且我又比较懒,所以我想了一下,3遍太多会被大脑拒绝的,而一遍又记不住,那么就是2遍最好了。
  • 而两遍对于目前的课来说有两种,一种就是等到老师讲完之后,将视频发下来,然后自己再复习。但是这种如果耐心不够好的话,或许效果不会很理想。
  • 而另一种则是懒人,基础差,面向编程的思维方式不完善等等同学的福音啊!

原理及实现

  • 传智播客是使用的结构化/专业性/效果良好的非常成熟与坚固的教学框架,而且依靠这个成为了目前IT培训界口碑最好的0基础培训机构。
  • 而依据这个特性,我们知道,老师讲课的知识点一般的顺序是相同的。
  • 那么我们就可以在老师讲课之前就看其他的老师的视频提前学习,然后当老师讲课的时候你就是一个有经验的学生了,这时候,听课效率会很高,理解效率也会很高。
  • 这个实现也很依赖学习环境,不知道回家之后能够不断学习到睡觉的同学有几个,反正我一般是做不到。所以,在课堂的这段时间是非常有效率的时刻,而在这一刻接触未知的东西,和有印象的东西,一般来说是后者比较好。

优缺点

  • 开课前需要自学,如果偷懒没有自学,会导致两次学习方案链条碎裂,不得不放弃一部分来调整状态。
  • 老师讲课时要非常认真的听,尽量能够记录老师讲的知识点的逻辑,以及示例解决方案的思维方式。
  • 有可能会遗漏一些知识点,需要在后面挤时间补上
  • 对于一些方法名称不太熟悉,当然可以通过多敲代码来避免。当然,如果你和我一样懒的话,只有多看几遍才能记住了。
  • 会很累,而且有可能导致精神方面的问题。
  • 会越来越觉得自己很帅,顺便回觉得老师真是个好老师,只要他一讲我就懂了。

Markdown

  • Markdown 的目标是实现「易读易写」。

  • 可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。

  • Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大灵感来源其实是纯文本电子邮件的格式。

  • 总之, Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像强调。Markdown 的列表看起来,嗯,就是列表。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。

总结

  • Markdown 作为一种非常好用易写的格式显示文本类型 —— 是非常值得我们去学习以及使用的
  • 因为 Markdown 是目前最流行的软件以及程序的说明文档的格式
  • 在 Github 中基本上是使用 Markdown 作为开源程序的说明文档,而且很多博客以及文章分享类网站都兼容Markdown格式

演讲

这个世界需要娱乐,每个人也是。但是还是要有人站出来,需要有人付出,需要有人来挑战新的娱乐方式,而演讲,这是一个演讲者会越来越帅,而听者会越来越喜欢的娱乐活动。

我希望能够找到朋友,同我一样喜欢演讲,喜欢挑战演讲,喜欢并且已经习惯了孤独的人和我一起学习,一起度过我们在传智的 Timing!!!

娱乐方式总是会改变的,但是决定这个因素的是喜欢的引用,如同GC一般。我不怕独自一人牵引着这巨大的有趣的故事,但是我想的是,既然我们目前在同一条路上短暂的结伴而行。为什么不试试这独特并且具有无穷魅力的很赞的东西呢? 你唱歌我或许会记不住你的名字,但是你如果演讲的话,我是一定可以记住你这个朋友的!!!

最后,感谢大家的聆听,我期待者更精彩的演讲。



程序设计入门-c语言(第7周编程题)

1
单词长度(4分)

题目内容:

你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it’s”算一个单词,长度为4。注意,行中可能出现连续的空格。

输入格式:

输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。

输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

输入样例:

It’s great to see you here.

输出样例:

4 5 2 3 3 4

时间限制:500ms内存限制:32000kb

[php]
#include <stdio.h>
#include <string.h>

int search46(char *p)//在一个字符串中查找’.’,如果找到返回长度,如果没找到返回null
{
int TmpLength;
char searchString=’.’; //需要查找的字符
if(!strchr(p,searchString))
{
return 0;
}
else
{
char *px = strchr(p,searchString);
int re = px-p; //指针相减,得到含有’.’字符串的字符长度
return re;
}
}

int main(void)
{
//获得字符串
char str[1000];
gets(str);
int flag=0; //判断是否是第一个输出
char *pTmpStr=str;
int TmpLength;//字符串的总长度
TmpLength = search46(pTmpStr);
int length=0;//每个字符段的长度
int i;
char tmp;
for(i=0;i<TmpLength;i++)
{ tmp=str[i];
if(tmp==’ ‘)
{
if(length==0)
continue;
if(flag)
printf(" ");
flag++;
printf("%d",length);
length=0;
continue;
}
length++;
}
if(length!=0)
{
if(flag)
printf(" ");
printf("%d",length);
}

return 0;
}
[/php]

2
GPS数据处理(6分)

题目内容:

NMEA- 0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA- The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等 设备。

NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。

NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。

其中$GPRMC语句的格式如下:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

这里整条语句是一个文本行,行中以逗号“,”隔开各个字段,每个字段的大小(长度)不一,这里的示例只是一种可能,并不能认为字段的大小就如上述例句一样。

字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息

字段1:UTC时间,hhmmss.sss格式

字段2:状态,A=定位,V=未定位

字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

字段4:纬度N(北纬)或S(南纬)

字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)

字段6:经度E(东经)或W(西经)

字段7:速度,节,Knots

字段8:方位角,度

字段9:UTC日期,DDMMYY格式

字段10:磁偏角,(000 – 180)度(前导位数不足则补0)

字段11:磁偏角方向,E=东W=西

字段16:校验值

这里,“*”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符(不包括这两个字符)的异或值的十六进制值。上面这条例句的校验和是十六进制的50,也就是十进制的80。

提 示:^运算符的作用是异或。将$和*之间所有的字符做^运算(第一个字符和第二个字符异或,结果再和第三个字符异或,依此类推)之后的值对65536取余 后的结果,应该和*后面的两个十六进制数字的值相等,否则的话说明这条语句在传输中发生了错误。注意这个十六进制值中是会出现A-F的大写字母的。另外, 如果你需要的话,可以用Integer.parseInt(s)从String变量s中得到其所表达的整数数字;而 Integer.parseInt(s, 16)从String变量s中得到其所表达的十六进制数字

现在,你的程序要读入一系列GPS输出,其中包含$GPRMC,也包含其他语句。在数据的最后,有一行单独的

END

表示数据的结束。

你的程序要从中找出$GPRMC语句,计算校验和,找出其中校验正确,并且字段2表示已定位的语句,从中计算出时间,换算成北京时间。一次数据中会包含多条$GPRMC语句,以最后一条语句得到的北京时间作为结果输出。

你的程序一定会读到一条有效的$GPRMC语句。

输入格式:

多条GPS语句,每条均以回车换行结束。最后一行是END三个大写字母。

输出格式:

6位数时间,表达为:

hh:mm:ss

其中,hh是两位数的小时,不足两位时前面补0;mm是两位数的分钟,不足两位时前面补0;ss是两位数的秒,不足两位时前面补0。

输入样例:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

END

输出样例:

10:48:13

时间限制:500ms内存限制:32000kb

[php]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *searchStr(char *p)
{//搜索关键字,并返回指针,没找到返回0
char s[]="$GPRMC";
char *sp=strstr(p,s);
if(sp)
return sp;
return 0;
}

char *getNextPStr(char *p)
{//得到下一个题目要求的字符串,返回指针
char * sp = searchStr(p);
char * pstr = p;
while(1)
{
pstr=pstr+strlen(pstr)+1;
sp=searchStr(p);
if(sp!=p)
return sp;
}
return 0;
}
int xtoi(int num)
{//16进制转10进制
// int a,b,out=0;
// if(num<10)
// return num;
// a=num/10;
// b=num%10;

// out = xtoi(a)*16 + b;
return num*16/10;
}

int chackStr(char *p)
{//检测此语句是否能够通过校验,可以的话1,否则返回0
char *ps = p;
ps++;//跳过$字符
int num;
int pi=0; // 校验和
num = ps[0];
ps++;//第2个字符
while(1)
{
if(ps[0]==’*’)
{
break;
}

num=num^*ps;
ps++;
}
ps++;//将指针指向数字
sscanf(ps,"%x",&pi);
if(num==pi)
return 1;
return 0;

}
char* getOKDate(const char *p)
{//输入验证成功的字符串指针,得到已定位句子的时间,将结果保存
char a[1000];
char b[1000];
char *ps=a;
char *date=b;
strcpy(ps,p);
ps = strchr(ps,’,’);
ps++;
strcpy(date,ps);
strtok(date,".");
ps = strchr(ps,’,’);
ps++;
if(ps[0]==’A’)
return date;
// printf("ok");
return 0;
}
int chackEnd(char *p)
{//检测字符串是否是end
char end[]="END";
if(strcmp(p,end)==0)
return 1;
return 0;
}
void outTime(int i)
{
if(i<10)
printf("0");
printf("%d",i);
}
int main()
{
char str[1000]; //字符串载体
gets(str);

// char str[]="$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50";
char *pstr=str; //活动指针
char *pp=str; //判断指针
char d[30];
char *date=d; //保存时间的字符串
//得到$GPRMC开头语句指针
while(!chackEnd(pstr))
{
if(searchStr(pstr))
{
pp = searchStr(pstr);
if(chackStr(pp))
// printf("success");
//将时间数据保存
if(getOKDate(pp))
date = getOKDate(pp);
}
gets(str);
pstr=str;
}

//得到可以验证通过的最后一个字符串的时间,并且输出
int time,h,m,s;
time = atoi(date);
h = time/10000;
time = time%10000;
m = time/100;
s = time%100;
h += 8;
if(h>=24)
h -= 24;
outTime(h);
printf(":");
outTime(m);
printf(":");
outTime(s);

return 0;
}

[/php]