首页 > 代码库 > 工作经历-1-从FreeBSD学起

工作经历-1-从FreeBSD学起

    这里就说一说本人的工作经历。纯属流水文章,长而枯燥。

   

    从去年(2013年)3月份开始,那时还没有毕业,就进入了一家网络设备的公司工作,从事路由方面的开发,主要是负责开发路由的功能模块。我的上司(WMM)就是负责公司路由方面的主要开发,在我进来之前,应该是唯一路由开发,公司的路由系统也就是他开发的。在从事路由开发方面,也得到了WMM的很大帮助。


    开始时是从FreeBSD系统学习起,自己啃了FreeBSD的使用手册 http://www.freebsd.org/doc/zh_CN.UTF-8/books/handbook/index.html  ,不过里面很多东西都不会用到,所以看的时候也就跳过了。看完后,其实对FreeBSD(类UNIX系统)的了解也并不是很多,虽然之前也是用过Linux的,但本人对Linux的了解也并不多,至少对linux的设计理念上没有太大的认识,所以在接解FreeBSD的时候,也就还是一头雾水。说一头雾水,那真是贴切,当一打开手册的时候,一看一下列表,真是给吓到了,这么长的目录,要看到什么时候?后来在啃手册的时候,觉得就是晕晕的,头就像一块铁块沉沉的,然后眼睛就杠铃一样,使劲撑啊撑啊,那时也真够痛苦的。幸好我还是比较扛得了这种苦的。


    学习一个系统,本人觉得第一步就是要先了解这是一个什么样的系统,用来做什么的,以及这个系统有什么样的特色。所以就先去百度了一下FreeBSD系统,经过一番的查阅资料,就对FreeBSD这个东西有了一定的了解,得出了一个结论:FreeBSD是一个类UNIX的操作系统,业界给的评价是“坚如磐石”,然后很少人知道。至少我之前是听都没听过,然后我的同学们也没听过。我就是凭着这个这么任性的结论,走进了FreeBSD,也成为了一名FreeDSB(这个名字要意会)。


    接着就是真正去了解这个系统的时候了,在镜像站点上下一个FreeBSD的iso,我们的产品用的是FreeBSD8.1,那时FreeBSD8.1不久后就不更新了。话说找这个镜像也不容易,虽说是找到了,但那里有4个镜像,不知要用哪个,分别是memstick.img,bootonly.iso,disc1.iso,dvd1.iso四种不同的镜像。经过本人一番研究后,选用了disc1.iso的镜像,然后就借来u盘,隐式地开启了FreeDSB模式,模仿平时装系统的过程,进行安装了。但发现无认怎么启动都不成功,那时真是懊恼的。后来问了WMM才知道我进入了FreeDSB模式。原来FreeBSD的iso的iso不用来制作u盘启动镜像!这个就是被吓到了,怎么linux那些都可以,但为何这些是不可以的呢?那时我就对FreeBSD有了那么一些吐槽。不过算了,反正找到就行,接着也就继续安装。


    进入正常的安装过程后,那就像进入了另一个蛋疼的境界。有时我按着手册来选一些选项,有时候就按照硬件的情况来选,有时也想按照自己的意愿,这样磨磨唧唧地安装了差不多有7、8遍才真正安装好一个FreeBSD系统。这也就算完成了我的第一步了, ^_^ ! 不过开心也仅是这么一瞬间,当你启动后就发现是没有图形界面的,完全要靠终端,T_T。那时我就是手里拿着一个键盘,旁边就放着公司的一个U的工控机,对着显示器,看着黑底白字在不停地滚动,觉得太惊险了。不过想想都有点激动,别人都觉得你很流逼,其实自己就一逗比,就是在那里一直地敲着ls,cd,ls,cd ......。


    接着就进入了下一步,就是一些基本的配置了。说到配置,那问题就来了。网络就个是最蛋疼的。首先得知道你现在的系统不能上网。这个问题一发现,就是心慌了,不能上网,那该如何办才好?幸好我还有一台笔记本,可以上网。对于什么都不懂的我来说,一点点小问题都是像过坐山车一样惊心动魄。既然不能上网,那就得知道要配IP,然后就上网找怎么配IP。配好IP,然后你发现还是ping不能114.114.114.114这些IP,然后就知道原来要配路由。配好路由了,然后就什么IP都ping通了,接着就发现ping不通 www.baidu.com,然后就发现要配dns,然后就要找在哪里配dns,然后就找到了/etc/resolv.conf的文件了,这个文件可谓是太重要了,因为目前接触过的UNIX分支的系统都是用它来配DNS的。配好网络了,然后就开心了。接着一重启,回过头来就发现又上不了网了。然后就知道是刚才的配置重启后就消失,所以要找一个方法来使系统启动时就有IP等。然后就知道了要在/etc/rc.conf中写一些配置。整个网络的配置真是太麻烦了,当时就是这么认为的,但现在想起来,其实是十分正常,没有一个步骤是可以简化的。后面又做了一些其他的配置,如ftp、ssh、dhcp等。其实到这里,就可以发现,一切都是写文件。


    后来就要安装软件,此前用linux,就已经安装过软件,可以从源码自己编译安装,可以下二进制文件直接安装,可以用一些工具如apt-get、yum等来安装。但那时其实都是到软件的官网去下源码安装的,因为觉得官网的东西比较靠谱。而FreeBSD用的是ports来安装软件,给我的感觉就是飞一般的爽。找到要安装的软件,进入目录里面,make,make install就搞定一切。后来WMM告诉我,无论要安装什么软件都要用ports来安装,因为只有ports里面的软件是经过测试的,软件比较安全,另外和FreeBSD兼容比较好,运行起来也比较稳定,所以不要到软件的官网上去下。如果ports里找不到相应的软件,可以到FreeBSD的官网去找,如果找到了就可以下载下来安装。然后就明白到为何FreeBSD会如此的稳定,对比一下linux就会发现,linux安装软件就没有这样的规范,源也只是提供方便,不少的人都还是会自己去下载软件来安装。另一方面,FreeBSD提供ports,就意味着需要有一个专门的组织来维护这一切,这得益于FreeBSD的所有贡献者,在此也发向他们表示感谢。再对比一下linux,linux的贡献者相对来说没有统一的组织,而且很多,所以所开发的软件的不确定性就比较大,如安全性、稳定性、设计理念等。当然,linux的开放使得大家都能够为linux作出贡献,使linux成功unix分支里使用最广泛的分支,这是十分值得赞同的。


    其后,在我不断学习和使用FreeBSD的过程中,深入了解了FreeBSD的一些内容,也逐渐理解FreeBSD的一些设计理念,也是越来越认同和喜欢这个系统的。说到理念,我记得的两在理念就是

    1. KISS。Keep It Simple Stupid。

    2. Everything Is A File.

    这两大理念真可谓是贯穿FreeBSD系统。


    个人觉得,FreeBSD系统比我用过的linux系统都要简单。其中一个很大的原因就是命令行。FreeBSD由于是有一个专门的组织维护所有的事情,所以就连命令提交的用法,都遵守着一种设计风格(应该说是大多数程序的用法都是这样),所以基本上用上了几种命令之后,再用其他的命令,基本上不用看手册都能猜得到命令的用法。而linux上的命令,就经常有意外的惊喜,觉得那些用法很奇怪,或者是那些参数和选项都是为了用户更方便地使用,但恰恰是这种方便,使用户更加难以应用,因为每一个命令的用法都是按照自己的功能来设计的,所以命令用法之间的差异就比较大。比如-a这个选项,在FreeBSD中,这个选项就是all的意思,大多数命令的-a就是列出所有要呈现的内容。而在linux中,这个选项的使用可谓是各有千秋,五花八门。另外,Everything Is A File这个理念也对KISS作了很大的贡献。FreeBSD,应该说是unix系统,在设计上很多的对象都设计成文件的形式,提供给用户的系统调用也操作方式也很类似于文件的操作,例如文件、内存、设备、网络、进程等。而linux这方面也是继承了unix,所以差别不大。


    总的来说,本人是比较认同FreeBSD系统的,或是UNIX系统的。确实作为工业界的操作系统,它的稳定性和安全性是十分优异的。不过本人现在已经不从事网络方面的工作了,现在工作所有的平台是centos,对FreeBSD的接触也变得少了。不过希望以后还有机会更多接触FreeBSD。


    话说本人也从没有用过FreeBSD的图形界面,不知是怎样的。反正我有一次想装,没装成功,那时水平太低了,现在的话就是一般低吧。


    就酱~

本文出自 “chhquan” 博客,请务必保留此出处http://chhquan.blog.51cto.com/1346841/1588511

工作经历-1-从FreeBSD学起